kitaran. Gelung dengan parameter (untuk)


Bayangkan situasi di mana kita perlu memaparkan perkataan yang sama pada skrin, mari kita sebut perkataan "HELLO", 10 kali. Apa yang perlu kita lakukan?
Anda boleh mengambil dan menulis arahan 10 kali writeln('HELLO');

Tetapi bagaimana jika anda tidak memerlukan 10 kali, tetapi 20, 30, 40 kali ?, dan jika 200 kali? Dalam kes ini, penyalinan akan mengambil masa yang sangat lama. Dan jika perlu pengguna boleh memilih berapa kali untuk memaparkan maklumat pada skrin? 

Untuk mengatasi tugas ini, kita boleh menggunakan binaan khas yang dipanggil LOOP

Gelung ialah binaan algoritma di mana urutan perintah tertentu diulang beberapa kali.


Dalam bahasa pengaturcaraan Pascal, terdapat dua jenis gelung: gelung dengan pembolehubah (untuk) dan gelung dengan keadaan (semasa)

Mari mulakan perkenalan kita dengan kitaran dari jenis pertama.

LOOP DENGAN PEMBOLEH UBAH ATAU DENGAN BILANGAN LANGKAH YANG DIKENALI (UNTUK)

Selalunya berlaku bahawa kita mengetahui bilangan pengulangan beberapa tindakan, atau kita boleh mengira bilangan pengulangan menggunakan data yang diketahui oleh kita. Sesetengah bahasa pengaturcaraan mempunyai perintah yang dalam bahasa Rusia berbunyi seperti REPEAT (bilangan kali) - iaitu, kita boleh menentukan bilangan pengulangan yang tepat. 

Adalah menarik untuk melihat bagaimana kitaran ini berfungsi pada peringkat mesin:
1. sel memori tertentu diperuntukkan dalam ingatan dan bilangan ulangan ditulis kepadanya,
2. apabila atur cara melaksanakan badan gelung sekali, kandungan sel ini (kaunter) dikurangkan dengan satu.
3. pelaksanaan gelung tamat apabila sel ini sifar.

Dalam bahasa pengaturcaraan Pascal, tidak ada pembinaan seperti itu, tetapi ada untuk pembinaan.  

Bentuk umum pernyataan gelung for adalah seperti berikut: untuk *nilai permulaan* hingga *nilai akhir* lakukan bermula /*satu pernyataan atau blok pernyataan - badan gelung*/; tamat; Pembinaan ini memerlukan kita
1. memperuntukkan sel memori secara eksplisit, yang akan menjadi pembilang, dan menetapkan nilai awalnya
2. Tentukan bagaimana nilai dalam sel ini akan berubah.
3. keadaan telah ditulis di mana badan gelung akan dilaksanakan

Di bahagian praktikal, kami akan cuba memaparkan perkataan Hello sebanyak 10 kali. Dalam tugasan berikut, kami akan menganalisis pembinaan ini dengan lebih terperinci.

Gelung untuk ialah satu cara untuk melangkah melalui tindakan berulang. Mari kita lihat dengan lebih dekat cara ia berfungsi.

Biasanya, bahagian gelung for melakukan langkah berikut: 
1. Tetapkan nilai awal. 
2. Menetapkan langkah yang mana pembolehubah gelung akan berubah
3. Menetapkan nilai tamat.
3. Lakukan tindakan gelung. 
4. Kemas kini nilai yang digunakan dalam ujian. 
dan kemudian langkah 2-4 diulang sehingga syarat dipenuhi. Sebaik sahaja syarat menjadi palsu, gelung ditamatkan dan pernyataan yang mengikuti pernyataan gelung for dilaksanakan.

Mari kita kembali kepada bentuk umum pernyataan gelung dan menganalisis dengan lebih terperinci semua bahagian untuk *tetapkan nilai awal kepada pembolehubah* ke/turun ke *nilai akhir* bermula /*satu pernyataan atau blok pernyataan - badan gelung*/; tamat;

Menetapkan pembolehubah kepada nilai awal

bertanggungjawab untuk menetapkan nilai awal pembolehubah kitaran (pembilang), TIDAK diserlahkan dengan kurungan atau sesuatu yang lain
Sebagai contoh : i := 0; //pembolehubah kitaran i diberikan nilai awal bersamaan dengan sifar. Dengan rekod sedemikian, //pembolehubah i mesti diisytiharkan sebelum gelung ke/ke bawah Ini ialah langkah di mana pembolehubah yang digunakan dalam gelung akan berubah. Jika kita menulis kepada, maka setiap lelaran nilai pembolehubah akan meningkat sebanyak 1, jika turun ke - menurun sebanyak 1 Nilai akhir ialah nilai terakhir di mana badan gelung masih akan dilaksanakan. Sebagai contoh, jika kita menetapkan nilai terakhir kepada 100, maka pada 100 gelung kita masih akan dilaksanakan, dan pada 101 ia tidak akan dilaksanakan. Mari kita berlatih menulis tajuk gelung untuk

Kepala gelung untuk dalam Pascal terdiri daripada beberapa bahagian:
1) perkataan untuk
2) apakah pembolehubah dan apakah nilai yang kita berikan. Dalam program ini, ini ialah b := 1, iaitu. kita tetapkan nilai 1 kepada b.
3) perkataan ke atau ke bawah, yang menunjukkan langkah dengan mana gelung itu dilaksanakan. Jika kita menulis kepada, maka pembolehubah akan meningkat sebanyak 1 setiap lelaran, jika ke bawah, maka berkurang sebanyak 1.
4) nilai akhir pembolehubah
5) perkataan buat
6) perkataan  mulakan  (ia boleh ditinggalkan jika hanya terdapat satu baris dalam badan gelung, jika tidak, ia mesti ditulis. Jika anda tidak menulis bermula, maka hanya baris pertama akan dilaksanakan dari seluruh badan gelung). Jangan lupa selepas badan gelung, jika kita menulis perkataan mulakan, tulis perkataan tamat; !

Semua program dengan gelung for yang telah kami tulis setakat ini tidak boleh dipanggil universal. Kerana kami sendiri menetapkan bilangan ulangan badan gelung. 
Tetapi bagaimana jika bilangan ulangan bergantung pada beberapa nilai lain? Sebagai contoh, pengguna sendiri ingin menetapkan bilangan ulangan kitaran.
Apa yang perlu dilakukan dalam kes ini?
Semuanya sangat mudah. Daripada nilai mula dan tamat angka, kita boleh menggunakan sebarang pembolehubah yang boleh dikira atau ditetapkan oleh pengguna.

Sebagai contoh, kita perlu memaparkan petak nombor dari 1 hingga n, di mana nilai pembolehubah n dimasukkan daripada papan kekunci oleh pengguna.
Program ini akan kelihatan seperti ini:
  var i, n :integer; // i – pembolehubah gelung, n - nombor maksimum yang mana kita mengira kuasa dua bermula baca(n); // input n dari papan kekunci untuk i := 1 hingga n buat // gelung: untuk semua i dari 1 hingga n - pembolehubah i secara berurutan akan mengambil nilai dari 1 hingga n writeln('Kvadrat chisla ', i, ' gagak ', i * i); // Mengeluarkan kuasa dua nombor dalam format tertentu dan bergerak ke baris baharu tamat. Apabila memasuki gelung, pernyataan i := 1 dilaksanakan, dan kemudian pembolehubah i ditambah satu (ke) dengan setiap langkah. Gelung dilaksanakan manakala syarat i <= n adalah benar. Dalam badan gelung, satu-satunya pernyataan output mencetak nombor itu sendiri dan segi empat samanya pada skrin mengikut format yang ditentukan.
Untuk kuasa dua atau eksponen rendah yang lain, lebih baik menggunakan pendaraban.

Jalankan program dan lihat hasil kerjanya dengan nilai berbeza pembolehubah n.