döngüler. Parametreli döngü (for)


Aynı kelimeyi ekranda göstermemiz gereken bir durum hayal edin, 10 kez "HELLO" kelimesini söyleyelim. Ne yapmalıyız?
10 defa writeln('HELLO');
komutunu alıp yazabilirsiniz.
Peki ya 10 kez değil, 20, 30, 40 kez ve 200 kez ihtiyacınız varsa? Bu durumda kopyalama çok uzun zaman alacaktır. Ve kullanıcının ekranda bilgilerin kaç kez görüntüleneceğini seçmesi gerekiyorsa? 

Bu görevin üstesinden gelmek için LOOP
adlı özel bir yapı kullanabiliriz.
Döngü, belirli bir komut dizisinin birkaç kez tekrarlandığı algoritmik bir yapıdır.


Pascal programlama dilinde iki tür döngü vardır: (for) değişkenli bir döngü ve (while) koşullu bir döngü

İlk türden döngülerle tanışmaya başlayalım.

DEĞİŞKEN VEYA BİLİNEN ADIM SAYISI (FOR) İLE DÖNGÜ

Genellikle bazı eylemlerin tekrar sayısını biliriz veya bildiğimiz verileri kullanarak tekrar sayısını hesaplayabiliriz. Bazı programlama dillerinde, Rusça'da REPEAT (sayı) gibi görünen bir komut vardır - yani tam tekrar sayısını belirtebiliriz. 

Bu döngünün makine seviyesinde nasıl çalıştığını görmek ilginç:
1. Hafızada belirli bir hafıza hücresi tahsis edilir ve tekrar sayısı ona yazılır,
2. program döngü gövdesini bir kez çalıştırdığında, bu hücrenin (sayaç) içeriği bir azaltılır.
3. döngü yürütme, bu hücre sıfır olduğunda sona erer.

Pascal programlama dilinde böyle bir yapı yoktur, ancak bir yapı için vardır.  

for döngüsü deyiminin genel biçimi şu şekildedir:
*başlangıç ​​değeri* ile *bitiş değeri* için yapın
başlamak
      /*bir ifade veya ifade bloğu - döngü gövdesi*/;
bitiş;
Bu yapı, biz
1. açık bir şekilde bir sayaç olacak bir bellek hücresini tahsis etti ve başlangıç ​​değerini belirledi
2. Bu hücredeki değerin nasıl değişeceğini belirtin.
3. döngü gövdesinin yürütüleceği bir koşul yazılmıştır

Uygulamalı kısımda Merhaba kelimesini 10 kez göstermeye çalışacağız. Aşağıdaki görevlerde, bu yapıyı daha ayrıntılı olarak analiz edeceğiz.

For döngüsü, tekrarlanan eylemler arasında geçiş yapmanın bir yoludur. Nasıl çalıştığına daha yakından bakalım.

Tipik olarak, bir for döngüsünün parçaları aşağıdaki adımları gerçekleştirir: 
1. Başlangıç ​​değerini ayarlayın. 
2. Döngü değişkeninin değişeceği adımı belirleme
3. Bitiş değerini ayarlama.
3. Döngü eylemleri gerçekleştirin. 
4. Testte kullanılan değerleri güncelleyin. 
ve ardından koşul sağlanana kadar 2-4 adımları tekrarlanır. Koşul yanlış olur olmaz döngü sona erer ve for döngüsü ifadesinden sonraki ifade yürütülür.

Döngü ifadesinin genel biçimine geri dönelim ve tüm bölümleri daha ayrıntılı olarak inceleyelim.
için *başlangıç ​​değerini değişkene* ayarla *bitiş değerine* kadar/aşağı doğru başlayın
      /*bir ifade veya ifade bloğu - döngü gövdesi*/;
bitiş;

Bir değişkeni başlangıç ​​değerine ayarlamak

döngü değişkeninin (sayaç) başlangıç ​​değerini ayarlamaktan sorumludur, parantez veya başka bir şeyle VURGULANMAZ
Örneğin :
ben := 0; //çevrim değişkeni i'ye sıfıra eşit başlangıç ​​değeri atanır. Böyle bir kayıtla,
//i değişkeni döngüden önce bildirilmelidir
aşağıya/aşağıya
Bu, döngüde kullanılan değişkenin değişeceği adımdır. 'ye yazarsak, değişkenin değeri her yinelemede 1 artacak, eğer aşağıya - 1 azalacaksa
Son değer

, döngü gövdesinin yürütülmeye devam edeceği son değerdir. Örneğin, son değeri 100 olarak ayarlarsak, 100'de döngümüz yine yürütülür ve 101'de yürütülmez.


for döngüsünün başlığını yazmaya çalışalım

Pascal'da bir for döngüsünün başı birkaç bölümden oluşur:
1) için
kelime 2) hangi değişkeni ve hangi değeri atıyoruz. Bu programda bu, b = 1'dir, yani b'ye 1 değerini atadık.
3) to veya downto sözcüğü, döngünün yürütüldüğü adımı belirtir. to yazarsak değişken her iterasyonda 1 artar, aşağı ise 1 azalır.
4) değişkenin son değeri
5) kelime yap
6)  begin  sözcüğü (döngü gövdesinde yalnızca bir satır varsa atlanabilir, aksi takdirde yazılması gerekir. Başla yazmazsanız, yalnızca ilk satır döngünün tüm gövdesinden yürütülür). Döngü gövdesinden sonrasını unutmayalım begin kelimesini yazdıysak end; kelimesini de yazın !

Şimdiye kadar yazdığımız for döngüsüne sahip tüm programlara evrensel denemez. Çünkü döngü gövdesinin tekrar sayısını kendimiz belirliyoruz. 
Peki ya tekrar sayısı başka bir değere bağlıysa? Örneğin, kullanıcının kendisi döngünün tekrar sayısını ayarlamak istiyor.
Bu durumda ne yapmalı?
Her şey çok basit. Sayısal başlangıç ​​ve bitiş değerleri yerine kullanıcı tarafından hesaplanabilen veya ayarlanabilen herhangi bir değişkeni kullanabiliriz.

Örneğin n değişkeninin değerinin kullanıcı tarafından klavyeden girildiği 1'den n'ye kadar olan sayıların karelerini göstermemiz gerekiyor.
Program şöyle görünecektir:
 
var i, n :integer; // ben – döngü değişkeni, n - karesini hesapladığımız maksimum sayı
başlamak
 oku(n); // klavyeden n girin
 for i := 1'den n'ye do // döngü: 1'den n'ye kadar tüm i'ler için - i değişkeni sırayla 1'den n'ye kadar değerler alacaktır
  writeln('Kvadrat chisla ', i, ' kuzgun ', i * i); // Bir sayının karesini belirli bir formatta gösterme ve yeni bir satıra taşıma
son.

Döngüye girerken, i := 1 ifadesi yürütülür ve ardından i değişkeni her adımda bir (to) artırılır. Döngü, i <= n koşulu doğruyken yürütülür. Döngü gövdesinde sadece çıktı deyimi belirtilen formata göre sayının kendisini ve karesini ekrana yazdırır.
Kare alma veya diğer küçük üsler için çarpmayı kullanmak daha iyidir.

Programı çalıştırın ve çalışmasının sonucunu n değişkeninin farklı değerleri ile görün.