Ev - internet
Turbo Pascal. Yapılandırılmış ifadeler

Turbo Pascal'daki koşullu atlama operatörü şu forma sahiptir:

Eğer durum Daha sonra operatör 1 başka operatör 2;

durum algoritmanın iki alternatif dalından hangisinin seçildiğine bağlı olarak mantıksal bir ifadedir. Koşul değeri DOĞRU ise, o zaman operatör 1, Then anahtar sözcüğünden sonra yazılır. Aksi takdirde idam edilecek operatör 2, else kelimesini takip ederken, operatör 1 atlandı. Belirtilen ifadeleri yürüttükten sonra program, if ifadesinin hemen ardından komutu yürütmeye devam eder.

Noktalı virgülün hiçbir zaman else anahtar sözcüğünün önüne konulmadığını unutmamak önemlidir!

else - if ifadesinin bir kısmı eksik olabilir:

Eğer durum Daha sonra operatör 1;

Daha sonra mantıksal koşul karşılanmazsa if yapısından sonra kontrol hemen programda yer alan operatöre aktarılır.

Temel işlemler ve matematiksel prosedürler ve işlevler

Algoritmik gösterimdeki matematiksel ifadeler işlemlerden ve işlenenlerden oluşur. Çoğu işlem ikilidir, yani. iki işlenen içerir (birli işlemler bir işlenen içerir, örneğin: -a, @B adresini alır).

Aritmetik işlemler:

+, -, /, *, div (tam sayı bölümü), mod (kalan bölümü),

Mantıksal: değil ve, veya, xor,

İlişkisel işlemler: >,<, >=, <=, <>, =.

Mantıksal hesaplamalar ve ilişkisel işlemler

Boolean tipinin ve onunla yapılan işlemlerin varlığı, Boolean cebirine dayanan mantıksal hesaplamaları programlamanıza olanak tanır. Sonucu her zaman Boolean türünde olan ve iki değerden (Doğru°1 (doğru) veya Yanlış°0 (yanlış)) yalnızca birine sahip olabilen dört mantıksal işlem tanıtılmıştır.

Hatalardan kaçınmak için mantıksal hesaplamalar sırasında parantezleri kendiniz yerleştirmeniz daha iyidir. Dolayısıyla, örneğin A ve B Değil gösterimi derleyici tarafından (A Değil)Ve B olarak yorumlanacaktır, ancak belki de şu şekilde gerekli olacaktır: (A Ve B Değil).

Matematiksel prosedürler ve işlevler

Turbo Pascal sistem kütüphanesi tabloda gösterilmektedir:

Matematiksel fonksiyonlar argümanlarının aralığına çok duyarlıdır. Ayrıca tamsayı türlerinin dönüş değerlerinin de bunlara uyması gerekir, aksi takdirde ölümcül sonuçlar mümkündür

İşlevlerin çoğu standarttır ve yorum gerektirmez. Ayrı ayrı, belirli olanlar üzerinde durmak istiyorum.

PI işlevi, bir yardımcı işlemcinin varlığına bağlı olarak doğrulukla "Pi" sayısını üretir ve ondalık noktadan sonra 10 ila 14 arasında anlamlı basamak içerir; hesaplamalarda sabit olarak kullanılabilir, ancak hesaplanabilir sabitlere yerleştirilemez; Const bloğunun.

Trigonometrik fonksiyonlar kümesi sınırlıdır, ancak standart matematiği tanımlayan kendi fonksiyonlarınızı ekleyerek matematik kütüphanesini genişletmeyi mümkün kılar.

Veri tipleri

2 numaralı laboratuvar çalışması(2 saat)

Seçenek 5

Operatör, bir programın belirli algoritmik eylemleri gerçekleştirmeyi mümkün kılan bölünmez bir öğesidir. Bir operatörün diğer elemanlardan farkı, her zaman bir tür eylemi ima etmesidir. Pascal'da operatörler fonksiyon sözcüklerinden oluşur. Bir programda kullanılan operatörler birbirlerinden ve diğer program elemanlarından (;) simgesiyle ayrılır. Tüm Pascal operatörleri kabaca ikiye ayrılabilir iki grup:

  1. basit;
  2. yapılandırılmış.

Basit Operatörler diğer operatörleri içermeyen operatörlerdir. Bunlar şunları içerir:

  • atama operatörü (:=);
  • prosedür bildirimi;
  • koşulsuz atlama operatörü (GOTO).

Yapılandırılmış ifadeler diğer operatörleri içeren operatörlerdir. Bunlar şunları içerir:

  • bileşik operatör;
  • koşullu operatörler (IF, CASE);
  • döngü operatörleri (FOR, WHILE, REPEAT);
  • birleştirme operatörü (WITH).

Basit Operatörler

Prosedür operatörü

Prosedür operatörü Bir prosedürü çağırmaya yarar.

Biçim: [prosedür_adı] (çağrı parametrelerinin listesi);

Bir prosedür ifadesi, bir prosedür tanımlayıcısından ve hemen ardından parantez içindeki çağrı parametrelerinin bir listesinden oluşur. Pascal'ın parametresiz prosedürleri vardır. Bu durumda çağrıldığında parametre listesi yoktur. Bir prosedür bildiriminin yürütülmesi, onun gövdesinde açıklanan eylemlerin etkinleştirilmesine yol açar. Pascal'da iki tür prosedür vardır:

  • Dilin kendisinde tanımlanan ve dilin bir parçası olan standart olanlar;
  • Kullanıcı tarafından oluşturulan kullanıcı prosedürleri.

Standart prosedürleri çağırmak için, bu prosedürün açıklandığı modül (kütüphane) adının KULLANIMLAR bölümüne bağlanmalısınız. SİSTEM modülünde yer alan bir takım prosedürler programa her zaman otomatik olarak bağlanır ve KULLANIMLAR kısmından bağlanmasına gerek kalmaz. Standart Pascal prosedürleri OKU, YAZ, YENİDEN YAZ, KAPAT, SIFIRLA'dır.

OKU ([dosya_değişkeni], [giriş_listesi])

OKU(x,y)

Kullanıcı prosedürleri (standart olmayan) programda kullanılmadan önce oluşturulmalı ve programın açıklama bölümünde veya modülün ayrı program birimlerinde bulunmalıdır. Eğer prosedür bir modül içerisinde ise USES uygulamasında o modülün adı belirtilmelidir.

Koşulsuz GOTO operatörü

Biçim: GOTO [etiket];

GOTO, Pascal'da ayrılmış bir kelimedir. [etiket] belirli bir program ifadesini işaretlemenize ve daha sonra ona başvurmanıza olanak tanıyan isteğe bağlı bir tanımlayıcıdır. Pascal'da işaretsiz tamsayıları etiket olarak kullanmak mümkündür. Etiket, işaretli operatörün (:) önüne yerleştirilir ve ondan ayrılır. Bir ifade birden fazla etiketle işaretlenebilir. Ayrıca birbirlerinden ayrılırlar (:). Açıklama bölümünde bir etiket kullanılmadan önce ETİKET bölümünde (açıklama bölümü) açıklanması gerekir.

GOTO eylemi, kontrolü uygun işaretli ifadeye aktarır. Etiketleri kullanırken aşağıdaki kurallara uymalısınız:

  • Açıklamalar bölümünde etiket açıklanmalı ve tüm etiketler kullanılmalıdır;
  • tamsayılar etiket olarak kullanılıyorsa bildirilmez.

Yapılandırılmış programlama teknolojisinin ilkeleriyle çelişir. Modern programlama dillerinde böyle bir operatör bulunmamaktadır ve kullanılmasına da gerek yoktur. Ayrıca modern bilgisayarlar konveyör yöntemini kullanır. Bir programda koşulsuz bir atlama operatörüyle karşılaşılırsa, böyle bir operatör tüm boru hattını keserek onu yeniden oluşturmaya zorlar ve bu da hesaplama sürecini önemli ölçüde yavaşlatır.

Yapılandırılmış ifadeler

IF koşul ifadeleri

Koşullu operatör programda algoritmik yapıyı (dallanmayı) uygulamak için kullanılır. Bu yapıda hesaplama süreci olası yönlerden birinde devam edebilir. Yön seçimi genellikle bazı koşulların kontrol edilmesiyle gerçekleştirilir. İki tür dallanma yapısı vardır: çatal ve bypass yapıları.

Pascal dilinde, koşullu IF operatörü, dallara ayrılan bir hesaplama sürecini organize etmenin bir yoludur.

Biçim: IF [boolean_expression] Sonra [operatör_1]; Aksi takdirde [operatör_2];

IF, Then, Else işlev sözcükleridir. [operator_1], [operator_2] - Pascal dilinin sıradan işlemleri. Else kısmı isteğe bağlıdır (eksik olabilir).

IF ifadesi şu şekilde çalışır: İlk önce bir Boolean ifadesinin sonucunu kontrol eder. Sonuç DOĞRU ise, Then işlev sözcüğünü takip eden [ifade_1] yürütülür ve [ifade_2] atlanır. Sonuç YANLIŞ ise, [ifade_1] atlanır ve [ifade_2] yürütülür.

Else kısmı eksikse IF ifadesi tam formda değildir:

IF [boolean ifadesi] Then [operatör];

Bu durumda sonuç True (TRUE) ise [ifade] yürütülür; eğer False (FALSE) ise kontrol IF ifadesini takip eden ifadeye aktarılır.

A ve B olmak üzere 2 sayı vardır. Maksimum sayıyı bulun.

Bileşik operatör

Bileşik ifade, bir programdaki operatör parantezleri (Başlangıç-Son) olarak adlandırılan bir dizi keyfi işlemdir.

Biçim: [Operatörler]'i başlatın; Son;

Bileşik ifadeler, bir grup ifadenin tek bir ifade olarak temsil edilmesine olanak tanır.

CASE seçim bildirimi

Çoklu dalları uygulamak için tasarlanmıştır, IF operatörü hesaplama sürecinin yalnızca iki yönünü uygulayabildiğinden, onu birden fazla dal uygulamak için kullanmak her zaman uygun değildir. CASE ifadesi tarafından çoklu dallanma uygulanır.

Biçim: CASE [select_key] OF

[selection_constant_1]:[operatör_1];

[selection_constant_2]:[operatör_2];

[selection_constant_N]:[operatör_N];

ELSE [operatör];

CASE, OF, ELSE, END - işlev sözcükleri. [select_key] sıralı türlerden birinin parametresidir. [selection_constants] - seçimi uygulayan seçim anahtarıyla aynı türdeki sabitler. [operator_1(N)] sıradan bir operatördür. ELSE eksik olabilir.

Seçim operatörü şu şekilde çalışır: Operatör işlem yapmadan önce seçim tuşu parametresinin değeri belirlenir. Bu parametre programda değişken olarak ifade edilebileceği gibi başka bir şekilde de ifade edilebilir. Daha sonra seçim anahtarı parametresi sırayla seçim sabitiyle karşılaştırılır. Seçim anahtarının değeri seçim sabitlerinden biriyle eşleşirse, bu sabiti takip eden operatör yürütülür ve diğer tüm operatörler göz ardı edilir. Seçim anahtarı herhangi bir sabitle eşleşmiyorsa Else'den sonraki ifade yürütülür. Çoğunlukla Else isteğe bağlıdır ve seçim anahtarı seçim sabitlerinden herhangi biriyle eşleşmezse ve Else'nin yokluğunda kontrol CASE ifadesini takip eden ifadeye aktarılır.

CASE deyimi, IF deyimi için tipik olan açık koşullu denetime sahip değildir. Aynı zamanda karşılaştırma işlemi örtülü olarak gerçekleştirilir. CASE, Pascal programına uyumsuzluk getirir, çünkü bu ifade, eşleştirilmiş bir Begin'e sahip olmayan End hizmet sözcüğüyle bitmektedir.

Trafik ışığının çalışmasını simüle eden bir problem için bir algoritma ve program oluşturun. Trafik ışığı renklerinin ilk harfinin sembolünü girdiğinizde program, ilgili renk ve eylemlerle ilgili bir mesaj göstermelidir.

Program şu şekilde çalışmaktadır: Okuma işlemi kullanılarak trafik ışığı renginin harf sembolü klavyeden girilmektedir. Yeşil renge karşılık gelen ‘z’ harfi girilirse, CASE deyiminde seçim listesine girilen değer ‘z’ seçim sabitini bulacak ve “Yeşil renk, harekete izin var” mesajı görüntülenecektir. 'K' ve 'zh' harflerinden oluşan sembolü girdiğinizde benzer mesajlar görüntülenecektir. Başka bir karakter girerseniz “Trafik ışığı çalışmıyor” mesajı görüntülenecektir çünkü bu durumda CASE ifadesinin Else kısmı çalışır.

Döngü ifadeleri

Döngüsel algoritmik yapı, bazı eylemlerin birkaç kez gerçekleştirildiği bir yapıdır. Programlamada iki tür döngü yapısı vardır: parametreli döngü ve yinelemeli döngü.

Bir parametreli bir döngüde her zaman döngü parametreleri adı verilen parametreler bulunur: X, Xn, Xk, ∆X. Bazen parametreli bir döngüye normal döngü denir. Karakteristik bir özellik, döngü yürütülmeden önce döngü ve tekrar sayısının belirlenebilmesidir.

Yinelemeli bir döngüde, çalıştırmadan önce döngü sayısını belirlemek imkansızdır. Döngünün devamı koşulu sağlandığı sürece yürütülür.

Pascal dilinin döngüsel hesaplama yapılarını uygulayan üç operatörü vardır:

  • FOR sayma operatörü. Bir parametreyle bir döngü uygulamak için tasarlanmıştır ve yinelenen bir döngüyü uygulamak için kullanılamaz;
  • WHILE önkoşullu döngü operatörü;
  • REPEAT sonkoşulu döngü operatörü.

Son ikisi yinelemeli bir döngü uygulamaya odaklanmıştır, ancak aynı zamanda parametreli bir döngü uygulamak için de kullanılabilirler.

FOR operatörü

Biçim: FOR [loop_parameter] := [n_z_p_ts] To [k_z_p_ts] Yapın [operator];

FOR, To, Do işlev sözcükleridir. [cycle_parameter] - döngü parametresi. [n_z_p_ts] - döngü parametresinin başlangıç ​​değeri. [k_z_p_ts] - döngü parametresinin son değeri. [operatör] - isteğe bağlı operatör.

Döngü parametresi sıralı bir değişken olmalıdır. Döngü parametresinin başlangıç ​​ve bitiş değerleri döngü parametresi ile aynı tipte olmalıdır.

Operatörün çalışmasını algoritmasını kullanarak ele alalım:

İlk adımda döngü parametresinin değeri [n_z_p_ts] alır, ardından döngü parametresinin [k_z_p_ts] değerinden küçük veya ona eşit olup olmadığı kontrol edilir. Bu koşul döngünün devam etmesinin koşuludur. Yürütülürse döngü işlemine devam eder ve [ifade] yürütülür, ardından döngü parametresi bir artırılır (azaltılır). Daha sonra döngü parametresinin yeni değeri ile döngünün devam etmesi koşulu kontrol edilir. Eğer yerine getirilirse, eylemler tekrarlanır. Koşul karşılanmazsa döngünün çalışması durur.

For operatörü, diğer programlama dillerindeki benzer operatörlerden önemli ölçüde farklıdır. Farklılıklar aşağıdaki gibidir:

  • For operatörünün gövdesi. Döngünün devamı koşulu döngü gövdesinden önce kontrol edildiğinden, ifade bir kez bile çalıştırılamayabilir;
  • döngü parametresi değiştirme adımı sabittir ve 1'e eşittir;
  • For deyimindeki döngünün gövdesi bir deyimle temsil edilir. Döngü gövdesinin eylemi birden fazla basit ifade gerektiriyorsa, bu durumda bu ifadeler operatör parantezleri (BEGIN-END) kullanılarak tek bir bileşik ifadeye dönüştürülmelidir;
  • Bir döngü parametresi yalnızca sıralı bir değişken olabilir.

FOR operatörünü kullanma örneği: Rubleyi dolara dönüştürmek için bir tablo oluşturun.

WHILE ifadesi (ön koşullu döngü ifadesi)

Biçim: WHILE [koşul] [operatör] yapın;

WHILE, Do - işlev kelimeleri. [koşul] - mantıksal türün ifadesi. [operatör] - sıradan operatör.

;

While ifadesi şu şekilde çalışır: Öncelikle mantıksal koşulun sonucu kontrol edilir. Sonuç doğruysa, ifade yürütülür ve ardından koşulun mantıksal ifadesindeki parametrelerin yeni değeriyle koşulu kontrol etmeye geri döner. Sonuç yanlış ise döngü sonlandırılır.

While ile çalışırken özelliklerine dikkat etmeniz gerekir:

  • While'da kullanılan koşullar döngünün devamı koşuludur;
  • döngünün gövdesinde, koşul ifadesinde yer alan parametrenin değeri her zaman değişir;
  • Döngü devamındaki durum kontrolü döngü gövdesinden önce yapıldığından, While döngüsü bir kez bile çalışmayabilir.

REPEAT ifadesi (son koşullu döngü ifadesi)

Biçim: TEKRAR [döngü_gövdesi]; UNTIL [koşul];

REPEAT ifadesi şu şekilde çalışır: İlk önce döngünün gövdesindeki ifadeler yürütülür, ardından sonuç mantıksal koşul açısından kontrol edilir. Sonuç yanlışsa, bir sonraki döngü gövdesinin ifadelerini yürütmeye geri döner. Sonuç doğruysa operatör çıkar.

Tekrarlama operatörü aşağıdaki özelliklere sahiptir:

  • Tekrarlamada döngü sonlandırma koşulu kontrol edilir ve koşul karşılanırsa döngü çalışmayı durdurur;
  • Döngünün gövdesi her zaman en az bir kez yürütülür;
  • durumu kontrol etmek için kullanılan parametre döngünün gövdesinde değiştirilir;
  • Döngü gövdesi ifadelerinin operatör parantezleri (BEGIN-END) içine alınmasına gerek yoktur, operatör parantezlerinin rolü ise Repeat ve Until tarafından gerçekleştirilir.

y=sin(x)'i hesaplayın; burada xn=10, xk=100, adım 10'dur.

Programların dallanmayı organize etmesi gerekiyor. Bu durumda problemin çözümü süreci, bir şartın gerçekleşmesi veya gerçekleşmemesi esasına göre gerçekleşir.

Pascal dilinde, bazı koşullara bağlı olarak bir eylemin seçimi, yapı kullanılarak gerçekleştirilebilir.

eğer... öyleyse... yoksa...eğer... o zaman...

2. Pascal'da koşullu atlama operatörünün tam biçimi nedir?

Koşullu atlama operatörünün tam formu eğer :

eğerdurumDaha sonraoperatör1başkaoperatör2;

Operatörün eylemi şu şekildedir: İlk olarak ifadenin değeri hesaplanır. durum . Doğruysa (TRUE'ya eşitse), o zaman kelimeyi takip eden ifade yürütülür Daha sonra (operatör1). Değer false (FALSE) ise, kelimeyi takip eden ifade yürütülür. başka(operatör2 ).

Operatörler operatör1 Ve operatör2 bileşik olabilir, yani birkaç satır kod içerebilir. Bu tür operatörler operatör parantezlerine yerleştirilir başla...son. Bu ihtiyaç, ayrılmış kelimelerden sonra ortaya çıkar Daha sonra veya başka birkaç operatör belirtmeniz gerekir.

Bu durumda koşullu atlama operatörünün genel formu örneğin aşağıdaki forma sahip olabilir:

eğerdurumDaha sonrabaşlamak// birkaç operatör ... sonbaşkabaşlamak// birkaç operatör ... son ;

3. Koşullu atlama operatörünün kısaltılmış şekli nedir?

Koşullu atlama operatörünün kısa biçimi bir blok içermiyor başka ve şu forma sahiptir:

eğerdurumDaha sonraŞebeke;

Bu durumda operatör aşağıdaki gibi çalışır. İlk olarak mantıksal (Boolean) ifadenin değeri hesaplanır. durum . Mantıksal bir ifadenin sonucu ise durum doğru (eşit DOĞRU), ardından kelimeyi takip eden operatör yürütülür Daha sonra. Sonuç FALSE ise bu ifadeyi takip eden ifade yürütülür. eğer(açıklamada eğer... o zaman hiçbir şey yapılmadı).

Bir koşul karşılandığında birden fazla operatörün yürütülmesi gerekiyorsa, koşullu atlama operatörünün genel formu aşağıdaki gibi olabilir:

eğerdurumDaha sonrabaşlamak// iki veya daha fazla operatör ... son ;

4. Tam temsil formuna sahip koşullu atlama operatörünün kullanımına örnekler.

Örnek 1.İki reel sayı arasındaki maksimum değeri bulmaya yarayan programın parçası.

var a,b:gerçek; // a, b - maksimumun arandığı değişkenler maksimum:gerçek; // maksimum ... başlamak ... // a, b - belirtildi eğer a>b Daha sonra maksimum:=a başka maksimum:=b; ... son ;

Örnek 2.

Bu sorunu çözen program kodunun bir parçası:

... var x,f:gerçek; başlamak ... // x - belirtildi eğer -5 Daha sonra f:= x*x+8 başka f:= -x*x*x+2 ; // f değişkeninde - sonuç ... son ;

5. Kısaltılmış bir gösterim biçimine sahip koşullu atlama operatörünün kullanımına ilişkin örnekler.

Örnek 1.İki reel sayı arasındaki minimum değeri bulan kod parçacığı X Ve sen .

... var minimum:gerçek; ... başlamak ... // x, y - verilmiştir en az:= x; eğer dk. Daha sonra dk:= y; ... son ;

Örnek 2. Bir fonksiyonun değerini bir koşula göre hesaplayın. Bir fonksiyonun değerini bulmamız gerektiğini varsayalım:

var x, f:gerçek; başlamak ... // x - belirtildi eğer X<-6 Daha sonra f:=3 *x*x-x; eğer (-6 <=x) Ve(X<=5 ) Daha sonra f:=sqrt(7 -x); eğer x>5 Daha sonra f:=8 *x-3 ; ... son ;

Bu ders Pascal'daki koşullu operatöre bakar ( eğer). Tek bir yapıda birden fazla koşulun nasıl kullanılacağını açıklar ( VE Ve VEYA). Bir operatörle çalışma örnekleri dikkate alınır

Bu sitenin konuyla ilgili eksiksiz bir bilgi sunumu sağlama iddiasında olmadığını size hatırlatırız. Portalın amacı, “Pascal Programlama Dili” konulu hazır çözümlü örneklere dayalı materyali, materyali pekiştirecek pratik görevlerle öğrenme fırsatı sağlamaktır. Sitede sunulan Pascal görevleri, karmaşıklıkları arttıkça sıralı olarak düzenlenmektedir. Web sitesi öğretmenler ve öğretim görevlileri tarafından yardımcı görsel yardımcı olarak kullanılabilir.

Bu konuyu ele almadan önce, esas olarak Pascal'daki doğrusal algoritmalar kullanıldı; bunlar, eylemlerin (operatörlerin) birbiri ardına sıralı olarak gerçekleştirildiği çok basit problemler için tipiktir. Daha karmaşık algoritmalar dallanma yapısının kullanımını içerir.

Koşullu operatör blok şeması:

Pascal'daki koşullu ifade aşağıdaki sözdizimine sahiptir:

Kısaltılmış versiyon:

if koşulu ardından ifade;

Tam versiyon:

if koşul sonra ifade else ifadesi;

Pascal'daki koşullu operatör - if - bir görevin ilerlemesini, operatörlerin yürütme sırasının bazı mantıksal koşullara bağlı olarak değişeceği şekilde düzenlemeye yarar. Mantıksal bir koşul iki değerden birini alabilir: sırasıyla doğru veya yanlış, doğru veya yanlış olabilir.

Bileşik operatör

Doğru bir koşul altında birden fazla ifadenin yürütülmesi gerekiyorsa, o zaman Pascal dilinin kurallarına göre bir blok içine alınmaları gerekir. begin işlev sözcüğüyle başlayıp end işlev sözcüğüyle biter. Böyle bir bloğa genellikle denir operatör braketleri ve bu yapı - bileşik operatör:

Pascal'da operatör parantezleri ve bileşik operatör:

mantıksal ifade ise ifade1'e başlayın; operatör2; end else begin ifade1; operatör2; son;

Koşul operatörünün İngilizceden çevirisi, kullanımının anlaşılmasını kolaylaştıracaktır:

EĞER DAHA SONRA BAŞKA
EĞER O AKSİ TAKDİRDE


Koşul (mantıksal bir ifadede) ilişkisel operatörleri kullanır.
Pascal'ın ilişkisel operatörler listesini düşünün:

  • daha fazlası >
  • az
  • Pascal cinsinden büyük veya eşit >=
  • Pascal'da küçük veya eşit
  • Pascal'da karşılaştırma =
  • Pascal'da eşit değil

Örnek: iki sayıdan en büyüğünü bulun

seçenek 1 seçenek 2


Çalışmayı ayrıntılı olarak anlayın Eğitim videosunu izleyerek Pascal'da koşullu operatörü kullanabilirsiniz:

Örnek: iki daldan birini kullanarak y değişkeninin değerini hesaplayın

Çözümü göster:

var x,y:gerçek; writeln'e başla("x'i gir"); oku(x); eğer x>0 ise y:=ln(x) else y:=exp(x); writeln ("y=", y:6:2) (sonuçta ortaya çıkan sayı 6 konumu kaplayacak ve 2 ondalık basamağa sahip olacaktır) end.

Bu örnekte y çıktısının nasıl olduğuna dikkat edin. Pascal'da tür değişkenlerini çıkarırken, sözde kullanabilirsiniz. biçimlendirilmiş çıktı, veya iki iki nokta üst üste içeren gösterim:
sen:6:2
- ilk iki nokta üst üsteden (6) sonraki sayı, ekranda görüntülendiğinde sayının kaç karakter kaplayacağını gösterir
- ikinci kolondan (2) sonraki sayı, gerçek sayının kaç ondalık basamağının görüntüleneceğini gösterir

Bu nedenle, pascal'da bu tür gösterimi kullanmak pratik olarak yüzde birlere, binde birlere vb. yuvarlamanıza olanak tanır.

Görev 0.İki daldan birini kullanarak y değişkeninin değerini hesaplayın:

Görev 1. Bilgisayara iki sayı girilir. Birincisi ikinciden büyükse, toplamlarını, aksi halde ürünü hesaplayın. Bundan sonra bilgisayar sonucu ve SORUN ÇÖZÜLDÜ metnini yazdırmalıdır.

Görev 2. Ejderhanın her yıl üç başı çıkar ama 100 yaşına geldiğinde yalnızca iki başı olur. Bir ejderhanın kaç kafası ve gözü vardır? N yıllar mı?

Pascal'da mantıksal işlemler (mantıksal ifadede)

Pascal'da double koşulu kullanmanız gerektiğinde mantıksal işlemlere ihtiyacınız olacaktır.

  • Mantıksal işlem VE (Ve), iki koşulun arasına yerleştirildiğinde, bu koşulların her ikisinin de aynı anda karşılanması gerektiğini (doğru olması gerektiğini) söyler. İşlemin mantıksal anlamı “bağlaç”tır.
  • İki durum arasında yer alan işaret VEYA (VEYA) bunlardan en az birinin karşılanmasının yeterli olduğunu söylüyor (iki koşuldan biri doğru). Operasyonun mantıksal anlamı “ayrılma”dır.
  • Pascal'da XOR - "katı ayrım" anlamına gelen ve iki koşuldan birinin yerine getirilmesinin (doğru) ve diğerinin yerine getirilmemesinin (yanlış) gerekli olduğunu gösteren mantıksal bir işlemin işareti.
  • Mantıksal işlem OLUMSUZ mantıksal bir ifade veya değişkenden önce "olumsuzlama" veya "tersine çevirme" anlamına gelir ve belirli bir değişken veya ifade doğruysa, onun olumsuzlamasının yanlış olduğunu veya bunun tersini belirtir.

Önemli: Her basit koşul parantez içine alınmalıdır.

Örnek: Pascal'daki mantıksal ifadelerdeki mantıksal işlem örneklerine bakalım

1 2 3 4 5 6 7 8 var n: tamsayı ; başlangıç ​​n: = 6; eğer (n>5) ve (n)<10 ) then writeln ("истина" ) ; if (n>7 ) veya (n<10 ) then writeln ("истина" ) ; if (n>7)xor(n)<10 ) then writeln ("истина" ) ; if not (n>7) sonra writeln("doğru"); son.

var n:tamsayı; başlangıç ​​n:=6; eğer (n>5) ve (n)<10) then writeln("истина"); if (n>7) veya (n<10) then writeln("истина"); if (n>7)xor(n)<10) then writeln("истина"); if not(n>7) sonra writeln("doğru"); son.

Örnek:Şirket, 25 ila 40 yaş arası çalışanları işe almaktadır. Kişinin yaşını girin ve bu şirket için uygun olup olmadığını belirleyin (“uygun” veya “uygun değil” yanıtını görüntüleyin).
tuhaflık: iki koşulun aynı anda karşılanıp karşılanmadığını kontrol etmemiz gerekiyor.

Geçiş operatörü

Bu sefer “Operatörler” konusunu ele almaya devam edeceğim.

(Koşulsuz) atlama ifadeleri, kontrolü bir etiketle işaretlenmiş (öncesinde etiket bulunan) bir ifadeye aktarmak için tasarlanmıştır.

Yazarın dil sürümü, etiketin aralıktaki bir tamsayı ondalık sayı olarak biçimlendirildiğini varsayar. 1..9999 . Turbo Pascal tanımlayıcıların etiket olarak kullanılmasına olanak sağlar. Atlama operatörlerini kullanırken aşağıdaki kurallara uyulmalıdır:

1) Bloktaki tüm işaretler açıklanmalıdır. Bu durumda her etiket birden fazla kez tanımlanamaz. Onlar. Bir blok içerisinde aynı isimde iki etiket bulunamaz.

2) Atlama operatöründe belirtilen etiket, atlama operatörünün kendisiyle aynı blokta bulunan bir ifadeye (etiket) işaret etmelidir. Onlar. Prosedürlerin (fonksiyonların) dışında veya içinde geçişlere izin verilmez.

3) Bir yapı operatörünün içine atlama (kontrol aktarımı) girişimi öngörülemeyen etkilere neden olabilir, ancak bu durumda derleyici bir hata mesajı üretmeyebilir.

Bir programda koşulsuz bir atlamanın kullanılması teorik olarak gereksiz kabul edilir, çünkü mantıksal olarak yerleştirilmiş program işlemleri zincirinde karışıklığa neden olabilir ve bu da böyle bir programın hata ayıklamasında ve değiştirilmesinde büyük zorluklara yol açabilir. Geçiş operatörlerinin aşağıdaki kurallara göre kullanılması önerilir:

1) geçiş operatörleri olmadan yapmak imkansız görünüyorsa, bunları kontrolü yalnızca program metninin aşağısına (ileri) aktarmak için kullanmaya çalışmalısınız; kontrolü "geriye" aktarmaya ihtiyaç varsa, döngü operatörlerini kullanmak daha iyidir (aşağıya bakın);

2) netlik sağlamak adına, etiket ile ona atlanacak operatör arasındaki mesafe bir metin sayfasını (veya görüntüleme ekranının yüksekliğini) aşmamalıdır, aksi takdirde bu tür koşulsuz bir geçişin anlamının anlaşılması zor olacaktır.

Etiketler, bir işlev sözcüğüyle başlayan açıklamalarla tanımlanır. etiket ve virgülle ayrılmış bir dizi etiket adı içerir. Kontrolü etiketle işaretlenmiş operatöre aktarmak için koşulsuz bir geçiş operatörü sağlanır git. Bir etiket aşağıdaki ifadeden ':' (iki nokta üst üste) ile ayrılır. Örnek:

var j:tamsayı;

(iki etiketi duyuruyoruz)

etiket Başla bitir;

Başlat: writeln('Programın başlangıcı');

git Sona ermek;

Bitiş: writeln('Programın sonu');

Bileşik operatör

En basit yapı operatörü bileşik operatördür. Bu ifade, içerdiği operatörlerin yürütme sırasını belirtir. Bileşik operatör, birbirinden ';' (noktalı virgül) sembolüyle ayrılmış ve yardımcı sözcükler arasına alınmış operatörlerin listesi olarak biçimlendirilir. başlamak Ve son.

Pascal dilinin sözdiziminin, programda çok sayıda eylemin (operatör) gerekli olduğu bir yerde yalnızca bir operatörün kullanılmasına izin verdiği durumlarda bileşik operatöre ihtiyaç duyulabilir, aşağıdaki örneklere bakınız. İşte bileşik operatörün basit bir örneği:

Koşullu operatör

Koşullu operatörün anlamı, belirli bir mantıksal koşulu analiz etmek ve bu koşulun sağlanıp sağlanmadığına göre kontrolü ilgili operatöre devretmektir. Koşul, Boolean değeri döndüren bir ifade olabilir. Durum analizinin sonucu değer olabilir doğru yani durum karşılandı ve YANLIŞ yani koşul sağlanmıyor.

Koşullu ifade aşağıdaki gibi yürütülür. Servis sözcüğünden sonra belirtilen ifade önceden hesaplanır EĞER. Koşul karşılanırsa kontrol, servis sözcüğünden sonra belirtilen operatöre aktarılır. Daha sonra değilse, else hizmet sözcüğü yürütüldükten sonra belirtilen operatör. Bu durumda koşul operatörünün else sözcüğüyle başlayan bir kısmı eksik olabilir. Koşullu ifadelerin örnekleri şunlardır:

Eğer Basılı tuş Daha sonra writeln('Tuşa basıldı');

Eğer A>B Daha sonra Min:= B

başka Min:= A;

eğer X1 > X2 o zaman başla

Son örnek, tam olarak duruma göre bir dizi operatörün yürütülmesinin gerekli olduğu durumdur, ancak hizmet kelimesinin arkasında olması nedeniyle Daha sonra veya başka Bunu yalnızca bir ifade takip edebilir, yani bu gerekli ifadelerden yalnızca birkaçını içeren bileşik bir ifade kullanarak durumu çözmek mümkündür.

İç içe koşullu ifadeler oluştururken else dalının her zaman bir önceki dala ait olduğunu unutmayın. EĞER Henüz else şubesi bulunmayan . Onlar. aşağıdaki inşaat

eğer Durum1 o zaman eğer Durum2 Daha sonra Operatör1 başka Operatör2;

netlik açısından şu şekilde yorumlanabilir

eğer Durum1 o zaman başla

eğer Durum2 Daha sonra Operatör1 başka Operatör2;

Yuvalanmış koşullu ifadeleri kullanırken dikkatli olmak gerekir, böylece programın bir sonraki koşullu ifadesini oluştururken o anın hararetinde, tamamen farklı bir yürütmeye yol açabilecek görünüşte küçük bir ayrıntıyı gözden kaçırmazsınız. koşullu dallanma

Varyant operatörü

Çoğu zaman, bir koşullu ifadeler zincirinin muazzam boyutlara ulaştığı bir durum ortaya çıkar; örneğin, aşağıdaki örnek, boyut olarak mütevazı olan ancak zaten içinde var olan anlamı algılamanın karmaşıklığını içeren bir dallanmayı göstermektedir:

tip TWay = (Yukarı, Sağ, Aşağı, Sol);

var Yol: İki Yol;

MapX, MapY: kelime;

eğer Yol = Yukarı Daha sonra HaritaY:= HaritaY - 1

başka eğer Yol = Sağ Daha sonra HaritaX:= HaritaX + 1

başkaeğer Yol = Aşağı Daha sonra HaritaY:= HaritaY + 1

başka HaritaX:= HaritaX - 1;

Son else şubesinin bir beyanı yok Eğerçünkü her üç koşul da karşılanmazsa, türün olası değerlerinin dördüncü ve son seçeneğine karşılık gelen operatörün yürürlüğe girmesi mantıklı olacaktır. Çok.

Bu durumda şanslıyız ki tip Çok yalnızca dört olası değeri vardır. On veya daha fazla seçenek olsaydı bu tür dalları oluşturmak bir angarya haline gelir miydi? Ancak sunulan dallanmada basit bir model görülebilir. Peki onu bir şekilde basitleştirmek, daha verimli ve okunabilir hale getirmek mümkün mü? Bu mümkündür ve bu amaçla dil, yapısı belirli bir ifade için isteğe bağlı sayıda alternatif içerebilen bir değişken operatör sağlar. O zaman son örnek yeni bir şekilde yeniden yazılabilir:

dava Yol ile ilgili

Yukarı: HaritaY:= HaritaY - 1;

Sağ: MapX:= MapX + 1;

Aşağı: HaritaY:= HaritaY + 1;

Sol: HaritaX:= HaritaX - 1;

Bu tamamen farklı bir konu. Şimdi bu ifadenin yürütme sırasına bakalım. Fonksiyon kelimesini takip eden ifadenin değeri önceden hesaplanır dava, ancak bu durumda değişken adı olduğundan Yol, daha sonra bu değişkenin değeri okunur. Ortaya çıkan değer, servis kelimesinden sonra belirtilen her alternatifle (sabit, anlık değer) sırayla karşılaştırılır. ile ilgili. Bir ifadenin değeri bir sonraki sabite eşitse, bu sabiti takip eden ve kendisinden iki nokta üst üste işaretiyle ayrılan alternatif operatör yürütülür. Alternatif ifadenin yürütülmesi tamamlandıktan sonra eylem, değişken ifadeyi takip eden ifadeye geçer. Değer eşleşmiyorsa Yol Sabit olmadığından bu değişken operatör herhangi bir eylem gerçekleştirmez.

Peki ya ifadenin değeri herhangi bir sabitle eşleşmediğinde çalıştırılacak belirli bir operatör dalının sağlanması gerekiyorsa? Bunun için başka bir alternatif kullanabilirsiniz, örneğin:

dava Yol ile ilgili

Yukarı: HaritaY:= HaritaY - 1;

Sağ: MapX:= MapX + 1;

Aşağı: HaritaY:= HaritaY + 1;

başka HaritaX:= HaritaX - 1;

Bu nedenle, durum operatörü kullanılarak oluşturulan yapı, daha önce operatör kullanılarak yapılan yapıya tamamen eşdeğerdir. EĞER. Ayrıca birçok konuda daha net ve kafa karışıklığı riski yok başka.

Değişken operatöründeki sabitlerin hem doğrudan tamsayılar hem de daha önce açıklanan türlenmemiş sabitlerin adları olabileceği gerçeğine bir kez daha dikkatinizi çekmek istiyorum. Değişken operatörüne alternatif olarak yazılan sabitlerin kullanımına izin verilmez. Ayrıca, her seçenekte virgüllerle veya bir değer aralığıyla ayrılmış sabitlerin tam listesini belirleyebilirsiniz, örneğin:

dava Yol ile ilgili

Yukarı, Aşağı: writeln('Dikey hareket etme');

Sağ, Sol: writeln('Yatay olarak hareket etme');

dava X ile ilgili

10,20,30: writeln('onlarca');

1..9: writeln('birimler');

Son yapımda operatör writeln('birimler') X değişkeni aşağıdaki değerlerden birine sahipse yürütülür 1,2,3,..,8,9 .

Fark ettiğiniz gibi çizgileri iki nokta üst üste sabitlerle hizaladım, çünkü bu tip daha görsel gibi geliyor bana, her ne kadar bu bir zevk meselesi olsa da ve bildiğiniz gibi lezzetin dostu yok;O)

Varyant operatörü aşağıdaki kurallara uygun olarak kullanılmalıdır:

1) Fonksiyon kelimesinden sonra yazılan “anahtar” ifadesinin kabul edilebilir değerleri dava, ayrık türü karşılamalıdır: bir tamsayı türü için aralıkta yer almalıdırlar -32768..32767 .

2) Belirtilen tüm alternatif sabitler, ifadenin türüyle uyumlu bir türde olmalıdır.

3) Alternatiflerdeki sabitler, bir varyant ifadesi içerisinde tekrarlanmamalı, aralıklar çakışmamalı ve bu veya diğer alternatiflerde belirtilen sabitleri içermemelidir.

Bir şey daha. Tasarım dava Her alternatif için bir ifade sağlar. Birden fazla ifadeyi yürütmeniz gerekiyorsa bunları bileşik bir ifade halinde gruplamalısınız. başla..son. Alternatif olarak ";" sembolünü yerleştirerek boş bir operatör belirtmek mümkündür. (noktalı virgül) iki nokta üst üsteden hemen sonra, bu hiçbir şey yapmaz. Ve şube sözdizimi başka';' (noktalı virgül) sembolüyle ayrılmış bir operatör dizisinin belirtilmesini sağlar.

 


Okumak:



İki SIM kartlı Nokia X2 akıllı telefonda melodinizi istediğiniz kişiye nasıl ayarlayabilirsiniz?

İki SIM kartlı Nokia X2 akıllı telefonda melodinizi istediğiniz kişiye nasıl ayarlayabilirsiniz?

ibnlive.in.com Nokia Lumia'da melodi nasıl ayarlanır? İnsanlar bu soruyu telefon satın aldıktan hemen sonra soruyorlar. Sonuçta, genellikle, tüm modern...

Windows için ücretsiz programlar ücretsiz indir

Windows için ücretsiz programlar ücretsiz indir

Microsoft .NET Framework, ".NET" mimarisinde çalışan programlar için tasarlanmıştır. İlk versiyonu 2002 yılında analog olarak piyasaya sürüldü...

Herhangi bir ISO görüntüsü USB flash sürücüye nasıl yazılır?

Herhangi bir ISO görüntüsü USB flash sürücüye nasıl yazılır?

Merhaba arkadaşlar! Bugün yeniden önyüklenebilir bir USB flash sürücü oluşturma hakkında konuşacağız. Önyüklenebilir bir USB aygıtı nasıl oluşturulur? Hangi amaçlarla kullanılmalı?...

Bilinmeyen numaralardan gelen aramalar

Bilinmeyen numaralardan gelen aramalar

Son zamanlarda Rusya'da kullanıcılar, abonenin sürekli olarak arandığı ve bilinmeyen bir yerden çıkarıldığı yeni bir tür "spam" ile karşılaştı...

besleme resmi RSS