Kitaplar / Yöntem Dil Başvurusu / 5. Deyimler
5. Deyimler
deyimler: (deyim (';' | satır sonu))*
govde: deyim | boşDöngü ve koşul yapılarının gövdesi tek bir deyimdir. Birden çok deyim çalıştırmak için gövde başla … bitir arasına alınır. tekrarla … olana dek, değerine göre … bitir ve dene … bitir kendi sınırlarını taşır.
Atama
atama: hedef (':=' | '+=' | '-=' | '*=' | '/=') ifadeHedef bir değişken, alan (n.x) ya da dizin (L[i]) olabilir. a += b, a := a + b ile aynıdır. Atama bir ifade değildir; karşılaştırma =, atama := ile yazılır.
Çağrı deyimi
Tek başına yazılan bir çağrı, ad ya da üye erişimi alt programı çağırır ve varsa sonucunu atar: Selamla, yaz('a', 1), liste.Temizle.
Blok içi değişken
değişken toplam := 0Deyimlerin arasında yazılan değişken bildirimi, içinde bulunduğu alt programın kapsamında yeni bir değişken tanımlar.
Koşul
eger_deyimi: 'eğer' ifade 'ise' govde ['değilse' govde]Koşul mantıksal olmalıdır. değilse en yakın eğer’e bağlanır.
eğer x > 0 ise yaz('pozitif', 1)
değilse eğer x < 0 ise yaz('negatif', 1)
değilse yaz('sıfır', 1)Çok seçenekli karar
degerine_gore: ifade 'değerine' 'göre' kol* ['değilse' [':'] deyimler] 'bitir'
kol: ','.etiket+ ':' govde
etiket: ifade ['..' ifade]İfade bir kez hesaplanır ve kollar yukarıdan aşağıya denenir; uyan ilk kolun gövdesi çalışır, diğerleri atlanır. Etiket tek bir değer ya da alt..üst aralığı olabilir. Hiçbir kol uymazsa değilse bölümü çalışır.
puan değerine göre
90..100: harf := 'A'
80..89: harf := 'B'
0, 1, 2: harf := 'X'
değilse harf := 'F'
bitirSayan döngü
sayan_dongu:
ifade AYRILMA ifade YONELME 'kadar' 'her' AD 'için' govde
| ifade AYRILMA ifade YONELME 'adımda' ifade ('artan' | 'azalan')
'her' AD 'için' govde| Yazım | Sayaç |
|---|---|
1'den 10'a kadar her i için |
1, 2, … 10 |
10'dan 0'a kadar her j için |
10, 9, … 0 |
a'dan b'ye adımda c artan her d için |
a, a+c, … (b’yi geçmeden) |
z'den y'ye adımda v azalan her u için |
z, z−v, … (y’nin altına inmeden) |
Kurallar:
- Başlangıç, bitiş ve adım döngüye girilirken bir kez hesaplanır ve tamsayı olmalıdır.
kadarbirer birer sayar. İki sınır da tamsayı sabiti olarak yazılmışsa ve ilki büyükse sayaç azalır; bu karar derleme sırasında verilir.- Sınırlardan biri değişken ya da hesaplanan bir ifadeyse
kadaryalnızca ileriye sayar; başlangıç bitişten büyükse gövde hiç çalışmaz. Böylece boş bir listede0'dan Uzunluk(L) - 1'e kadargüvenle yazılabilir. adımdaile verilen adım pozitif bir tamsayı olmalıdır; yönüartanya daazalanbelirler. Yön sınırlarla uyuşmuyorsa gövde hiç çalışmaz.- Sayaç bildirilmemişse döngü onu tanımlar. Döngü bittikten sonra sayacın değeri son turdaki değeridir.
Koleksiyon döngüsü
her_dongusu: ifade 'içindeki' 'her' AD [',' AD] 'için' govdeListe, sözlük, metin ve aralık üzerinde dolaşır. Tek adla listede elemanlar, sözlükte anahtarlar, metinde karakterler gelir. İki adla listede numara, eleman, sözlükte anahtar, değer çiftleri gelir.
adlar içindeki her ad için yaz(ad, 1)
yaşlar içindeki her ad, yaş için yaz(ad + ': ' + yaş, 1)Koşullu döngüler
iken_dongusu: ifade 'iken' govde
tekrarla_deyimi: 'tekrarla' deyimler ifade 'olana' 'dek'
kez_dongusu: ifade 'kez' 'tekrarla' govdekoşul iken gövde, koşul doğru olduğu sürece gövdeyi çalıştırır; koşul her turdan önce sınanır. tekrarla … koşul olana dek gövdeyi en az bir kez çalıştırır ve koşul doğru olunca durur. n kez tekrarla gövde gövdeyi n kez çalıştırır.
Döngü denetimi
kır en içteki döngüden çıkar. devam en içteki döngünün sıradaki turuna geçer.
Eleman silme cümlesi
eleman_silme: ifade ('listesindeki' | 'dizisindeki') konum '.' 'elemanı' 'Sil'L listesindeki 2. elemanı Sil, Sil(L, 2) ile aynıdır. Konum bir sayı, bir ad ya da ayraç içinde bir ifade olabilir: L listesindeki (i + 1). elemanı Sil.
Dönüş
dön ifade fonksiyonun sonucunu belirler ve fonksiyondan çıkar. dön tek başına ya da çık deyimi, sonucu değiştirmeden alt programdan çıkar. Ana gövdede çık programı bitirir.