Contoh Pascal Algal Pascal Cyclic TIK. Algoritma siklik Jenis siklus dan tim siklik di Pascal

Slide 2.

Rencana

Siklus Operator Konsep Siklus Untuk Siklus Sementara Siklus Literatur Berulang

Slide 3.

literatur

Kastornov A.F., Evstratova G.A. Bahasa Pemrograman Pascal: Tutorial untuk universitas. - Cherepovets: gou vpo chsu, 2010. - 117 c. - Bibliogr.: Hal.114. Buku teks elektronik tentang bahasa pemrograman pascal /http://pascal.guti.ru Plan

Slide 4.

Konsep siklus

Algoritma untuk menyelesaikan banyak tugas adalah siklus, di mana, untuk mencapai hasilnya, urutan tindakan tertentu dilakukan beberapa kali. Misalnya, program kontrol pengetahuan menampilkan pertanyaan, menerima jawabannya, menambahkan tanda untuk jawaban atas jumlah poin, kemudian mengulangi tindakan ini sampai subjek merespons semua pertanyaan. Atau, misalnya, untuk mencari nama belakang yang diinginkan dalam daftar, periksa nama depan daftar untuk mencocokkan kebetulan, lalu yang kedua, ketiga, dll. Selama nama keluarga yang diinginkan ditemukan atau akhir dari daftar akan ditemukan.

Slide 5.

Algoritma di mana ada sekelompok operator yang dilakukan beberapa kali disebut siklik. Sekelompok operator berulang disebut tubuh siklus. Di Pascal, siklus dapat diimplementasikan menggunakan untuk, sementara dan mengulangi operator siklus. Rencana

Geser 6.

Operator Siklus untuk

Untuk operator siklus digunakan jika tubuh siklus harus dilakukan beberapa kali, dan jumlah pengulangan diketahui sebelumnya.

SLIDE 7.

Bentuk 1 siklus operator perekaman untuk

Bentuk pertama dari operator perekaman untuk operator umumnya digambarkan sebagai berikut: forschechik: \u003d initial_treatmentto-repeat_dorator; Di mana, untuk, lakukan - kata-kata layanan. Meteran adalah variabel dari jenis urutan (biasanya seperti integer), yang menentukan jumlah pengulangan siklus. Jumlah pengulangan dipertimbangkan menurut formula: final_dative adalah initial_station + 1. Nilai final_ harus lebih besar dari atau sama dengan initial_name.

Slide 8.

Jika tubuh siklus terdiri dari beberapa operator, maka bentuk perekaman pertama dari operator untuk operator terlihat seperti ini: forschechik: \u003d initial_nameto-confined_do end (tubuh siklus)

Slide 9.

Pertimbangkan algoritma untuk pekerjaan siklus dalam bentuk perekaman pertama. Penghitung ditugaskan ke nilai awal. Kondisi dicentang: Nilai balik lebih besar dari final_station? Jika kondisinya benar (ya), eksekusi siklus berakhir. Jika kondisinya salah (tidak), tubuh siklus dilakukan, maka nilai counter meningkat satu per satu dan kondisi periksa lagi, mis .. hlm

Slide 10.

2 bentuk siklus operator rekaman untuk

Bentuk 2 dari operator perekaman untuk operator umumnya digambarkan sebagai berikut: untuk counter: \u003d initial_downdo-end_dactivity. Di mana: untuk, downto, lakukan - kata-kata layanan. Penghitung adalah variabel dari jenis urutan (biasanya seperti integer), yang menentukan jumlah pengulangan siklus. Jumlah pengulangan dipertimbangkan oleh formula: nilai awal-finite_dation + 1. Initial_named interiority menjadi lebih besar atau sama dimaksudkan.

Slide 11.

Jika tubuh siklus terdiri dari beberapa operator, maka bentuk perekaman operator ke-2 untuk operator terlihat seperti ini: forschechik: \u003d initial_dedtofo-ingdo mulai // ujung siklus tubuh;

Slide 12.

Pertimbangkan algoritma untuk pengoperasian siklus dalam bentuk perekaman kedua: penghitung ditugaskan nilai awal. Kondisi dicentang: Nilai counter kurang dari final_station? Jika kondisinya benar (ya), eksekusi siklus berakhir. Jika kondisinya salah (tidak), maka tubuh siklus dilakukan, maka nilai counter berkurang per unit dan kondisinya memeriksa lagi, I.E. hlm

Slide 13.

Operator Siklus untuk

pramex1; Var i, n: integer; (i - counter, n - jumlah bintang yang diperlukan: string; (s - garis string yang dihasilkan) mulai writeln ("masukkan jumlah bintang"); (Jumlah tanda bintang) Readln (n) diminta; (Pengguna memasukkan jumlah spars n) s: \u003d ""; (Pembentukan string stroke dimulai dengan string kosong) (string dibentuk sepanjang untuk siklus. Initial_nity adalah meter - 1, final_tility adalah jumlah spars n.) FORI: \u003d 1 ke N: \u003d s + "*"; (pada setiap langkah siklus ke string, satu asterisk) writeln dilem; (garis ditampilkan) readln; akhir. Contoh rencana: Program membentuk string string. Jumlah bintang dalam string ditentukan oleh pengguna.

Slide 14.

Sementara siklus

Siklus sementara digunakan jika jumlah pengulangan tubuh siklus selama program tidak diketahui dan hanya dapat ditentukan selama operasinya. Secara umum, pernyataan sementara ditulis sebagai berikut: sedangkan kondisi devaror; Dimana sementara, lakukan - kata-kata layanan. Kondisi adalah ekspresi tipe logis yang menentukan kelanjutan dari siklus.

Slide 15.

Jika tubuh siklus terdiri dari beberapa operator, sedangkan siklus ditulis sebagai berikut: Winterboard memulai // ujung siklus tubuh;

Slide 16.

Pertimbangkan algoritma siklus sementara: suatu kondisi diperiksa. Jika kondisinya benar-benar, tubuh siklus dilakukan. Setelah itu, kondisinya diperiksa lagi. Jika kondisinya salah, siklus selesai.

Slide 17.

Dengan demikian, ketika siklus dengan prasyarat atau siklus "sementara" (tubuh siklus masih kondisi nyata). Jika, ketika Anda pertama kali lulus siklus, kondisinya akan salah, tubuh siklus tidak akan pernah terpenuhi. Jika kondisinya tidak pernah menjadi salah, siklus akan diulang tanpa batas, I.E. Dingin akan terjadi.

Slide 18.

Program EX2; Varaccount: nyata; (Ukuran Akun) Bulan: Integer; (Jumlah bulan sejak pembukaan akun) mulai akun: \u003d 1000; (pada biaya menempatkan 1000 rubel) bulan: \u003d 0; (Akun baru saja dibuka) whileaccount

Slide 19.

Ulangi siklus

Siklus berulang, serta siklus sedangkan, digunakan dalam program jika Anda perlu melakukan tubuh siklus beberapa kali, tetapi jumlah pengulangan tidak diketahui sebelumnya. Secara umum, siklus berulang ditulis sebagai berikut: ulangi // siklus tubuh sampai kondisi; Di mana ulangi, sampai - kata-kata layanan. Kondisi adalah ekspresi tipe logis yang menentukan akhir siklus.

Slide 20.

Pertimbangkan algoritma operasi dari siklus berulang: pengulangan dan sampai tubuh siklus dilakukan antara kata-kata yang dipesan. Kondisi diperiksa. Jika kondisinya benar-benar, siklus selesai. Jika kondisinya salah, tubuh siklus dilakukan kembali.

Slide 21.

Dengan demikian, Repet adalah siklus dengan gelombang pasca atau siklus "(badan siklus dilakukan dengan kebenaran kondisi). Akibatnya, tubuh siklus dilakukan setidaknya sekali. Jika kondisinya tidak pernah benar, siklus akan menjadi tak terbatas.

Slide 22.

Program EX3; VAR Time: Integer; (Waktu pengiriman) sel: integer; (nomor sel) waktu mulai: \u003d 0; (sel masih belum dimulai) sel: \u003d 1; (tunggal) berulang waktu: \u003d waktu + 3; (setelah tiga jam berikutnya) sel: \u003d Sel * 2; (jumlah sel meningkat 2 kali) hingga sel\u003e 24; (hingga kondisi kebenaran "jumlah sel lebih dari 24") Writeln (waktu); (output) readln; akhir. Contoh pabrik: Ameba uniseluler setiap 3 jam dibagi menjadi 2 sel. Tentukan, setelah berapa jam jumlah sel melebihi 24.

Lihat semua slide.

Slide 1.

Algoritma Cyclic Robot Kontraktor
Presentasi untuk pelajaran informatika. Kelas 9 Subjek: Manajemen dan Algoritma

Slide 2.

Untuk I: \u003d 1 hingga n mulai Action1; Action2; Akhir;
Untuk i: \u003d 1 ke n do action1; Action2;
1

Slide 3.

2
Sementara (kondisi benar) mulai melakukan tindakan1; Action2; Akhir;
Sementara (kondisi benar) melakukan tindakan1; Action2;

Slide 4.

3
17 sel
12 sel

Slide 5.

4
Program N1; Var i: integer; Mulailah untuk i: \u003d 1 hingga 12 lakukan robotforw; Robotleft; Untuk I: \u003d 1 hingga 17 lakukan robotforw; Robotleft; Untuk I: \u003d 1 hingga 12 lakukan robotforw; Robotleft; Untuk I: \u003d 1 hingga 17 lakukan robotforw; Robotleft; akhir.
Pindah ke bawah
Pindah ke kanan
Bergerak naik
Bergerak ke kiri
Ini dan perintah-perintah berikut berputar ke sudut robot ke kiri

Geser 6.

5
Jika Anda meletakkan dinding, robot akan menyelam ke dalamnya dan program akan berhenti

SLIDE 7.

6
Program N2; Var i: integer; Mulai sementara freeforw lakukan robotforw; Robotleft; Sementara freeforw melakukan robotforw; Robotleft; Sementara freeforw melakukan robotforw; Robotleft; Sementara freeforw melakukan robotforw; Robotleft; akhir.
Sementara di depan gratis, lakukan robot ke depan.

Slide 8.

Slide 9.

8
Program N3; Var i: integer; Mulailah untuk i: \u003d 1 hingga 4 mulailah sementara freeforw lakukan robotforw; Robotleft; akhir; akhir.
Empat kali untuk maju, sampai tidak ada kendala dan belok kiri

Slide 10.

9
Empat kali untuk bergerak maju, sampai tidak ada kendala, dan belok kiri

Slide 11.

10
Tugas untuk pekerjaan independen
Tugas 1. Dinding kiri situasi di tempat sewenang-wenang adalah menaruh rintangan. Robot harus sampai ke titik 1 dan kembali ke keadaan semula. Catatan: Gunakan tiga siklus yang terhubung secara berturut-turut.
1
1

Slide 12.

11
Tugas 2. Dinding kiri situasi di tempat sewenang-wenang diukir. Robot harus sampai ke kargo, ambil untuk mengangkutnya ke gudang dan kembali ke keadaan semula. Catatan: Gunakan dua siklus yang terhubung secara berurutan.

Slide 13.

12
Tugas 3. Dinding kiri situasi di lokasi sewenang-wenang ditempatkan lima kargo. Robot harus semua kargo untuk diangkut ke gudang. Catatan: Gunakan dua siklus yang terhubung secara berurutan sejauh ini diinvestasikan dalam siklus dengan parameter.

Slide 14.

13
Contoh 1 robot terletak di depan pintu masuk koridor. Perlu untuk mencatat semua sel di dalam koridor, dan kembali

Slide 15.

14
Program N7; Mulai robotforw; Meskipun tidak Freeleft mulai pilih; Robotforw; akhir; Robotback; Meskipun tidak freeleft melakukan robotback; akhir.
Kami membuat langkah maju untuk memasuki terowongan
Sementara di sebelah kiri ada tembok, rayakan kandang dan lakukan langkah maju
Kembali ke terowongan
Sementara tembok kiri, bergerak mundur

Slide 16.

15
Contoh 2 Ada dua dinding yang dipasok oleh sudut. Panjang dinding sewenang-wenang. Robot berada di sudut antara dinding (lihat gambar). Perlu untuk membuat program di mana robot menandai semua sel di bagian dalam dinding. Posisi akhir robot secara sewenang-wenang.

Slide 17.

16
Program N8; Mulailah sementara bukan Freeright, mulailah pilih; Robotforw; akhir; Sementara freeback melakukan robotback; Robotleft; Meskipun tidak Freeleft mulai pilih; Robotforw; akhir; akhir.
Sedangkan haknya tidak gratis, saya merayakan sel dan melangkah maju.
Kembalikan robot kembali
Belok kiri
Sementara kiri tidak gratis, saya merayakan sel dan melangkah maju.

Slide 18.

Slide 19.

18
Contoh 3 situasinya tumpang tindih dinding yang membagi situasi menjadi dua bagian. Dinding memiliki bagian dalam ukuran sel di tempat yang sewenang-wenang. Perlu untuk membuat program di mana robot menemukan bagian ini dan pergi ke bagian lain dari situasi tersebut.

Slide 20.

19
Program N9; Mulai robotleft; Sementara freeforw melakukan robotforw; Robotright; Meskipun tidak freeleft melakukan robotforw; Robotleft; Robotforw; Robotforw; akhir.
Putar robot ke arah dinding.
Kami bergerak maju sampai saya tidak berdiri di dinding
Putar robot di sepanjang dinding
Bergerak maju sampai dinding tidak akan berakhir
Putar robot ke arah bagian itu
Kami membuat dua langkah ke depan, kami pergi ke setengah situasi

Deskripsi presentasi pada slide individu:

1 slide.

Deskripsi Slide:

Subjek kelas: "Algoritma struktur siklik. Siklus Pemrograman pada Pascal »Disiplin" Informatika "

2 slide.

Deskripsi Slide:

Konsep utama topik dalam pekerjaan ini dipelajari oleh konsep-konsep berikut: konsep siklus; Varietas algoritma siklik (siklus dengan prasyarat, siklus dengan postband, siklus dengan parameter); blok diagram algoritma siklik; Representasi operator siklus dalam bahasa pemrograman Pascal; Menerapkan siklus saat memecahkan masalah.

3 Slide

Deskripsi Slide:

Konsep siklus ketika memecahkan banyak tugas, satu dan urutan tindakan yang sama dilakukan beberapa kali. Misalnya, setelah masuk lembaga pendidikan Siswa memberikan ujian, sementara dihitung oleh poin yang dicetak oleh mereka (variabel S; nilai awal S: \u003d 0;). Untuk setiap ujian, ia menerima estimasi N. Jika estimasi lebih besar dari "2", maka S: \u003d S + N; Kalau tidak, hentikan perhitungan (keluar dari siklus).

4 Slide

Deskripsi Slide:

Konsep siklus siklus adalah urutan operator yang dapat dilakukan lebih dari satu kali. Algoritma siklik disebut algoritma yang menyediakan pengulangan berganda pada tindakan yang sama pada data baru. Ada tiga jenis operator siklus: siklus dengan prasyarat; Siklus dengan postcondition; Siklus dengan meter.

5 Slide.

Deskripsi Slide:

Siklus dengan prasyarat. Ketik siklus sementara sambil meresepkan tubuh siklus sampai kondisinya dieksekusi, dicatat setelah kata diagram alur dengan prasyarat

6 Slide.

Deskripsi Slide:

Siklus dengan prasyarat. Ketik siklus sementara sementara siklus dengan di atas digunakan ketika jumlah pengulangan badan siklus tidak diketahui sebelumnya, dan tergantung pada kondisinya. Jika kondisinya benar, maka tubuh siklus dijalankan, sekali lagi memeriksa kondisi dan sampai kondisinya menjadi salah.

7 Slide.

Deskripsi Slide:

Siklus operator dengan prepala (sementara - saat siklus) operator pengulangan yang paling umum digunakan memiliki pandangan umum dari Pascal (format): sementara<условие> Melakukan.<оператор>; Di sini sementara, lakukan - kata-kata yang dipesan (dari bahasa Inggris: saat-in, lakukan - lakukan);<условие> - Ekspresi logis;<оператор> - operator arbitrer (mungkin komposit).

8 slide.

Deskripsi Slide:

Siklus dengan Postband. Ketik siklus hingga urutan operator siklus dengan detonasi, pelaksanaan operator 1-N diulang sampai kondisinya menjadi benar. Dalam siklus ini, kondisinya diverifikasi hanya setelah tubuh siklus. Ini mengikuti bahwa tubuh selalu melakukan setidaknya sekali alur dengan pos

9 Slide

Deskripsi Slide:

Siklus dengan Postband. Jenis siklus sebelum itu penting! Siklus dengan pos dilakukan setidaknya sekali secara independen dari kondisi tersebut. Kenyamanan yang tidak diragukan dari siklus loop adalah bahwa di dalamnya Anda dapat menulis beberapa operator tanpa menggunakan operator komposit. Kondisi pemeriksaan adalah setelah tubuh siklus. Kata layanan sampai.

10 Slide.

Deskripsi Slide:

Siklus Operator dengan Postband (Jenis Sampel) Pemandangan Umum (Format) Operator Siklus dengan Pascal Pascal Berikutnya: Ulangi<Оператор 1>; <Оператор 2>; … <Оператор N>; Sampai<условие>;

11 Slide

Deskripsi Slide:

Contoh penerapan operator siklus dengan postband untuk output ke layar secara berpasangan, nilai variabel n \u003d 1, 2, 3, 8, 8, 9, 8, 8, 9, 8, 8, 8, 9, 8, 8, 9, 8, 9, 9, 8, 9, 9, 9 Variabel A \u003d 10, 20, 30, 40, 50, 60, 70, dan 70, 80, 90 operator ini akan: n: \u003d 0; Ulangi N: \u003d N + 1; A: \u003d 10 * n; Writeln (N: 2, '', A: 3); Sampai n\u003e \u003d 9;

12 Slide

Deskripsi Slide:

Siklus dengan parameter. Jenis siklus jenis dengan parameter digunakan ketika Anda ingin melakukan sejumlah langkah siklus. Perlu dicatat bahwa siklus Pascal Pascal tidak terlalu fleksibel (sebaliknya, misalnya, dari jenis siklus ini dalam bahasa C). Karena, pada Pascal, parameter siklus (atau penghitung) bervariasi dengan nilai yang sama dengan satu. Dengan demikian, ketika diperlukan untuk melakukan langkah fraksional, Anda harus menggunakan siklus jenis sementara. Ada dua varietas untuk siklus: dengan meningkat dan dengan penurunan nilai meter (atau parameter). Diagram Blok Siklus dengan Parameter (untuk Siklus)

13 Geser

Deskripsi Slide:

14 Slide

Deskripsi Slide:

Operator siklus dengan parameter. Jenis siklus untuk tampilan umum (format) dari operator siklus dengan parameter<счетчик> := <начальное значение> untuk.<конечное значение> Mulailah.<Операторы> akhir; Untuk<счетчик> := <начальное значение> Ke.<начальное значение> Mulailah.<Операторы> akhir; Dengan peningkatan nilai meteran (parameter) dengan penurunan nilai meteran (parameter)

15 Slide

Deskripsi Slide:

Operator siklus dengan parameter. Jenis siklus untuk operator yang mengimplementasikan siklus - untuk digunakan jika perlu bahwa fragmen program mengulangi beberapa kali untuk<переменная цикла>: = <начальное значение> Bahwa<конечное значение> Melakukan.<оператор>; Di sini: untuk, untuk, lakukan - kata-kata yang dipesan (Bahasa Inggris: untuk, sebelum, mengeksekusi);<счетчик (параметр) цикла> - ketik variabel Integer, yang bervariasi pada segmen dari<начального значения>, meningkatkan unit pada akhir setiap langkah siklus;<оператор> - Operator (lebih sering komposit).

16 Slide

Deskripsi Slide:

Operator siklus dengan parameter. Siklus jenis untuk pernyataan terdiri dari header dan tubuh siklus. Operator komposit yang terletak di badan siklus harus dilampirkan dalam tanda kurung operator mulai dan akhir. · Pengidentifikasi meteran biasanya digunakan "i". · Variabel meteran harus berupa urutan urutan. Misalnya, tipe integer: byte, integer. · Nilai awal dan akhir parameter siklus tidak dapat diubah selama siklus. · Untuk operator digunakan untuk mengatur siklus dengan tetap, terlebih dahulu diketahui atau ditentukan selama pelaksanaan program dengan jumlah pengulangan.

17 Slide.

Deskripsi Slide:

Penggunaan siklus saat memecahkan masalah, masing-masing siklus yang dijelaskan di atas dapat digunakan untuk memprogram Pascal dari tugas-tugas yang sama dengan algoritma siklik.

18 Slide

Deskripsi Slide:

Tugas nomor 1 Buka program Pascalabc.net (Program Terpadu untuk Program Pemrograman Pascal) Simpan program di folder dengan nama Anda di sistem folder kerja Pabcwork.net \\ your_in / cikl_1.pas simpan bagaimana ...

19 Geser

Deskripsi Slide:

Tugas nomor 1 menggunakan siklus sementara (dengan prasyarat) untuk membuat dan men-debug program yang menghitung jumlah kuadrat dari semua angka alami dari 1 hingga 100. Data awal: A: Integer; Hasil - Jumlah: S: lama; Program EX1; Var A: integer; S: lama; (Integer panjang) Mulai A: \u003d 1; S: \u003d 0; (variabel S untuk mengakumulasi jumlah) sementara a<=100 Do { Начало цикла – проверка условия } Begin S:=S+A*A; A:=A+1 End; Writeln(‘Вывод результата S= ’ ,S) End. Сохранить программу в папке с Вашим именем в системной рабочей папке PABCWork.NET \ Ваше_имя\Cikl_1.pas

20 slide.

Deskripsi Slide:

Tugas 2. Menyuserasi struktur siklik dalam bahasa Pascal di program Pascalabc.net ABC Lingkungan; Var x, u: integer; Mulai x: \u003d 2; Sementara X.<= 10 do begin Y:=x*x; writeln(‘вывод х: ’, x, ‘вывод у: ’, y); x:= x+2; end; end. Применить оператор цикла с предусловием для вычисления значения функции y=x2, при значениях x 2, 4, 6, 8, 10. Сохранить программу в папке с Вашим именем в системной рабочей папке PABCWork.NET \ Ваше_имя\Cikl_2.pas























Maju ke depan

Perhatian! Slide pratinjau digunakan secara eksklusif untuk tujuan informasi dan mungkin tidak memberikan ide tentang semua kemampuan presentasi. Jika Anda tertarik dengan pekerjaan ini, silakan unduh versi lengkap.

Tujuan: Mempelajari struktur algoritmik siklus, penciptaan model dan algoritma untuk menyelesaikan masalah praktis.

Selama kelas

I. Aktualisasi pengetahuan

  • Ulangi konsep algoritma, desain dasar bahasa algoritmik.
  • Untuk dapat mengembangkan model matematika, algoritma dan skema blok untuk menyelesaikan masalah.
  • Memiliki konsep bahasa pemrograman dan janji temu mereka.
  • Dapat bekerja di lingkungan pemrograman.
  • Tahu struktur program.
  • Dapat merekam ekspresi yang mengandung nilai numerik dan karakter.
  • Ketahui struktur operator dan fitur pekerjaan mereka.
  • Untuk dapat menerapkan operator saat menulis program dengan struktur linear dan percabangan.
  • Untuk dapat membuat dan menjalankan program untuk debugging.

Ii. Pelajaran Materi Teoritis

Sebagian besar tugas praktis memerlukan banyak pengulangan dari tindakan yang sama, I.E. Penggunaan kembali satu atau lebih operator. (Presentasi)

Biarlah perlu memasukkan dan memproses urutan angka. Jika angka-angka hanya lima, Anda dapat membuat algoritma linier. Jika ada ribuan dari mereka, tulis algoritma linier, tetapi sangat membosankan dan tidak rasional. Jika jumlah angka pada saat algoritma tidak diketahui, algoritma linier secara fundamental tidak mungkin.

Contoh lain. Untuk menemukan nama keluarga seseorang dalam daftar, Anda perlu memeriksa nama depan daftar, lalu yang kedua, ketiga, dll. Sampai yang diinginkan atau akhir daftar ditemukan atau tidak akan ditemukan. Anda dapat mengatasi kesulitan seperti itu dengan siklus.

Siklus ini disebut beberapa bagian algoritma yang dapat dieksekusi (program). Dengan demikian, algoritma siklik adalah algoritma yang berisi siklus.

Ada dua jenis siklus: dengan jumlah pengulangan yang diketahui dan dengan jumlah pengulangan yang tidak diketahui. Pada saat yang sama, dalam kedua kasus, ada sejumlah pengulangan pada tahap pengembangan algoritma.

Ada 3 jenis struktur siklik:

  • Siklus dengan prasyarat;
  • Siklus dengan kuliah;
  • Siklus dengan parameter;

Kalau tidak, struktur ini disebut "sampai", "untuk" jenis siklus.

Bentuk grafis dari struktur algoritmik perekaman data:

Siklus dengan prasyarat (jika tidak siklus sampai) Terlihat:

kondisi - Ekspresi logis.

Siklus ini tidak dapat dieksekusi jika nilai ekspresi logis segera ternyata bohong.

Serangkaian perintah yang terletak di antara awal dan akhir dilakukan sampai sejauh ini, kondisinya benar .

Untuk ke ujung siklus, perlu bahwa urutan instruksi antara awal dan akhir mengubah nilai variabel termasuk dalam kondisi.

Siklus dengan postcondition (jika tidak siklus sebelum) Terlihat:

kondisi - Ekspresi logis.

catatan:

Urutan instruksi antara masing-masingulang. dansampai akan selalu dipenuhi setidaknya sekali;

Agar siklus selesai, perlu urutan operator antaraulang. dansampai Mengubah nilai variabel yang termasuk dalam kondisi ekspresi.

Instruksi yang berulang, serta instruksi sementara, digunakan dalam program, jika Anda perlu melakukan beberapa perhitungan berulang (siklus), tetapi jumlah pengulangan tidak diketahui sebelumnya dan ditentukan oleh jumlah perhitungan itu sendiri.

Siklus dengan parameter (jika tidak siklus untuk) Ini memiliki bentuk:

i - parameter siklus;
A - nilai awal dari siklus;
b - nilai akhir dari siklus;
h adalah langkah perubahan parameter.

Struktur siklus ini disebut sebaliknya siklus I kali..

Perintah ini dilakukan dengan cara ini: parameter I ditugaskan nilai awal A dibandingkan dengan nilai akhir B dan, jika kurang dari atau sama dengan nilai akhir B, serangkaian perintah dilakukan. Parameter ditugaskan nilai sebelumnya, diperbesar h. - Langkah-langkah perubahan dalam parameter dan lagi dibandingkan dengan nilai akhir b.

Dalam bahasa pemrograman, Pascal, langkah perubahan parameter dapat sama dengan satu atau minus satu.

Jika hanya satu operator antara awal dan akhir, tanda kurung operator tidak dapat menulis. Aturan ini berfungsi untuk siklus tipe "belum" dan "untuk".

Pertimbangkan contoh pemecahan tugas menggunakan struktur ini.

Contoh.

Hitung produk angka dari 1 hingga 5 menggunakan berbagai opsi siklus.

Model matematika:

P \u003d 1 · 2 · 3 · 4 · 5 \u003d 120

Mari kita buat algoritma dalam bentuk diagram alur.

Untuk memverifikasi kebenaran algoritma, isi tabel jejak.

Langkah Operasi R. sAYA. Memeriksa kondisi
1 P: \u003d 1 1
2 i: \u003d 1; 1 1
3 sAYA.<=5
P: \u003d p * i
I: \u003d i + 1
1 1 1<=5, да (истина)
4 sAYA.<=5
P: \u003d p * i
I: \u003d i + 1
2 2 2<=5, да (истина)
5 sAYA.<=5
P: \u003d p * i
I: \u003d i + 1
6 3 3<=5, да (истина)
6 sAYA.<=5
P: \u003d p * i
I: \u003d i + 1
24 4 4<=5, да (истина)
7 sAYA.<=5
P: \u003d p * i
I: \u003d i + 1
120 5 5<=5, да (истина)
8 sAYA.<=5
P: \u003d p * i
I: \u003d i + 1
6<=5, нет (ложь)

Kondisi verifikasi terjadi dalam beberapa langkah: Memeriksa persyaratan dan pelaksanaan perintah di salah satu cabang. Oleh karena itu, tabel jejak tidak mencatat perintah algoritma, tetapi operasi terpisah dilakukan oleh komputer di setiap langkah.

Langkah pertama: P diberi nilai satu.

Langkah dua: Saya ditugaskan untuk satu.

Langkah Ketiga: Pada saya unit yang sama memeriksa kondisi saja kurang dari atau sama dengan lima, ya, kondisinya benar, itu berarti bahwa nilai satu dikalikan untuk satu. Untuk I: satu plus satu, akan ada dua.

Langkah Empat:pada saya sama dengan dua, kondisinya saat ini kurang dari atau sama dengan lima, ya, kondisinya benar, itu berarti bahwa nilai 2 dikalikan dengan satu, akan 2. Untuk i: dua ditambah satu, akan ada tiga .

Pitch kelima:pada saya sama dengan tiga, kami memeriksa kondisi tiga kurang atau sama dengan lima, ya, kondisinya benar, yang berarti p memberikan nilai dua dikalikan tiga, akan ada enam. Untuk I: Tiga plus satu, akan ada empat.

Langkah enam:pada saya sama dengan empat, kondisinya empat kurang atau sama dengan lima, ya, kondisinya benar, itu berarti bahwa nilai enam dikalikan empat akan dua puluh empat. Untuk I: Empat plus satu, akan ada lima.

Langkah ketujuh:untuk saya sama dengan lima, kondisinya lima kurang atau sama dengan lima, ya, kondisinya benar, itu berarti bahwa nilai dua puluh empat dikalikan lima akan seratus dua puluh. Untuk I: lima plus satu, akan ada enam.

Langkah kedelapan:pada saya sama dengan enam, kondisinya enam kurang atau sama dengan lima, tidak, kondisinya salah, maka kita meninggalkan siklus, dan sebagai hasilnya kita mendapatkan nilai terakhir sama dengan seratus dua puluh.

Program PR1;
Var i: integer;
Mulai.
P: \u003d 1;
i: \u003d 1;
Ketika saya.<=5 do
Mulai.
P: \u003d p * i;
i: \u003d i + 1;
akhir;
Tulis ('p \u003d', p);
akhir.

Untuk siklus dengan deselasi, kami membangun diagram blok dan tabel jejak. (slide16)

Akibatnya, kami mendapatkan nilai terakhir sama dengan seratus dua puluh pada langkah ketujuh

Dan untuk siklus dengan parameter, kami membangun diagram blok dan tabel jejak. (slide17)

Akibatnya, kita mendapatkan nilai terakhir sama dengan seratus dua puluh pada langkah keenam

Sebuah tugas:

Tampilkan angka dari 1 hingga 5 V:

  1. mudah;
  2. urutan terbalik.

Model matematika:

  1. 1 2 3 4 5;
  2. 5 4 3 2 1.

Diagram blok dan masalah pemecahan masalah disajikan untuk angka dalam urutan langsung dan terbalik.

(Slide 21)

Kami merekam algoritma yang dianggap dalam bahasa pemrograman Pascal.

(Slide 22)

AKU AKU AKU. Meringkas pelajaran

Jadi kami meninjau pertanyaan-pertanyaan berikut:

  1. Siklus struktur algoritmik;
  2. Jenis struktur algoritmik:
    1. Siklus dengan prasyarat;
    2. Siklus dengan kuliah;
    3. Siklus dengan parameter;
  3. Dianggap cara untuk menulis struktur ini;
  4. Contoh-contoh pembongkaran pemecahan masalah dengan bantuan struktur ini.

Algoritma siklik06.04.2017.
Algoritma siklik
Jenis siklus dan siklik
Tim di Pascal.

Siklus diulang
Pengulangan urutan
tindakan
Mengulangi bagian dari algoritma
disebut tubuh siklus
Jenis siklus
Dengan nomor yang diberikan
Pengulangan
Syarat syarat
siklus
Dengan kondisi
Kondisi Keluar
siklus

Jenis siklus (konten)
Siklus dengan prasyarat.
Praktek
Siklus dengan Postband.
Praktek
Siklus dengan parameter
Praktek
Solusi tugas yang kompleks

Siklus dengan prasyarat.

Praktek

kondisi dan tindakan yang perlu dilakukan hanya
Setelah memeriksa kondisi menggunakan siklus dalam prasyarat.


Sebelum setiap eksekusi tubuh siklus diperiksa
kondisi, jika hasil "kebenaran", maka tubuh siklus dilakukan
Sekali lagi, jika "bohong", maka ada jalan keluar dari siklus.
Pada blok - skema
Mulai siklus
Tidak
Kondisi
IYA
Tubuh siklus
Akhir siklus
Di Pascal.
Sementara<условие> melakukan.
Mulai.
<тело цикла>
akhir;

Siklus dengan Postband.

Praktek
Jika jumlah pengulangan tidak diketahui sebelumnya, tetapi hanya ditentukan
kondisi dan tindakan yang harus dilakukan sebelumnya
Kondisi memeriksa siklus penggunaan dengan postcal.
Sebagai suatu kondisi, ekspresi logis digunakan, tubuh
Siklus adalah operator sederhana atau komposit.
Setelah setiap eksekusi tubuh siklus, cek
kondisi jika hasilnya "salah", maka tubuh siklus dilakukan
Sekali lagi, jika "kebenaran", maka ada jalan keluar dari siklus.
Pada blok - skema
Di Pascal.
Ulang.
Tubuh siklus
<тело цикла>
Iya
Tidak
Kondisi
Sampai<условие>;

Siklus dengan parameter.

Praktek
Siklus dengan parameter.
Dalam kasus di mana jumlah pengulangan diketahui sebelumnya
Siklus digunakan dalam parameter.
Variabel yang menentukan jumlah pengulangan disebut
Parameter siklus atau variabel kontrol.
Setelah setiap siklus eksekusi tubuh mengelola
Variabel meningkat atau berkurang, siklus
Ini dijalankan sampai saatnya sampai melebihi
akan lebih sedikit batasan.
Pada blok - skema
Di Pascal.
Untuk x: \u003d A ke B doo
X: \u003d A, B, C
Tubuh siklus
X - Variabel Kontrol (Parameter Siklus)
A - makna awal x, dalam - 2 x
C - langkah dari perubahan x
Mulai.
<тело цикла>
Akhir;
Sebagai langkah yang dapat Anda gunakan
hanya:
"Ke" \u003d 1;
"Downto" \u003d -1

Contoh tugas yang menggunakan siklus dengan prasyarat
Teori

Algoritma Sliver:
Lipat gandakan angka x pada awalnya sama dengan 1
Jumlah waktu yang ditentukan (h) adalah 3.
Mulailah
Programm bertepuk;
Var.
H, b, x: integer;
Mulai.
Writeln (gelar? '');
Readln (h);
X: \u003d 1;
B: \u003d 1;
Sementara B.<=H do
Mulai.
X: \u003d x * 3;
B: \u003d B + 1;
Akhir;
Writeln ('Hasil', x);
Akhir.
Pascal.
N.
Masukkan gelar yang diberikan
X: \u003d 1
Nilai awal
B: \u003d 1
Tidak
TANDAAN "B"
B≤h.
Iya
X: \u003d x * 3
Multiplikasi oleh 3.
B \u003d in + 1
Tambah meter
H.
Deriovasi yang diterima
Nilai-nilai
akhir
Block diagram.
Penjelasan

Contoh tugas menggunakan siklus dengan postcal
Teori
Tugas: Naikkan angka 3 dalam tingkat tertentu
Algoritma Sliver:

Programm bertepuk;
Var.
H, b, x: integer;
Mulai.
Writeln (gelar? '');
Readln (h);
X: \u003d 1;
B: \u003d 0;
Ulang.
X: \u003d x * 3;
B: \u003d B + 1;
Tidak
Sampai b\u003e \u003d h;
Writeln ('Hasil', x);
Akhir.
Mulailah
N.
Masukkan gelar yang diberikan
X: \u003d 1
Nilai awal
B: \u003d 0
Multiplikasi oleh 3.
X: \u003d x * 3
Tambah meter
B \u003d in + 1
Iya
B\u003e \u003d h
TANDAAN "B"
H.
Deriovasi yang diterima
Nilai-nilai
akhir
Pascal.
Block diagram.
Penjelasan

Contoh tugas menggunakan siklus dengan parameter
Teori
Tugas: Naikkan angka 3 dalam tingkat tertentu
Algoritma Sliver:
Lipat gandakan angka x pada awalnya sama dengan 1 kali ditentukan kali (h) sebesar 3.
Programm bertepuk;
Var.
H, b, x: integer;
Mulai.
Writeln (gelar? '');
Readln (h);
X: \u003d 1;
Untuk B: \u003d 1 hingga H doo
Mulai.
X: \u003d x * 3;
Akhir;
Writeln ('Hasil', x);
Akhir.
Pascal.
Mulailah
N.
X: \u003d 1
B: \u003d 1, H, 1
X: \u003d x * 3
H.
akhir
Block diagram.
Masukkan gelar yang diberikan
Nilai awal x \u003d 1
Parameter dari 1 SM
Multiplikasi oleh 3.
Deriovasi yang diterima
Nilai-nilai
Penjelasan

Pemilihan siklus tergantung pada karakteristik masalah. Hanya latihan yang akan memberi tahu Anda solusi optimal.

Tugas: memulai pelatihan, atlet pada hari pertama
Berlari 10 km. Setiap hari dia meningkatkan siang hari
Norma untuk 10% dari norma pada hari sebelumnya.
Apa path total yang menjalankan atlet selama 7 hari.
Variabel input:
d - Jumlah hari
SD - Jarak untuk Hari Sekarang
Variabel output:
S - cara bersama

Blok - skema untuk dipecahkan

mulailah
S: \u003d 10
Sd: \u003d 10
D: \u003d 1
D: \u003d D + 1
SD: \u003d SD * 1.1
S: \u003d s + sd
tidak
D \u003d 7.
Iya
S.
akhir

Program pada Pascal.

Siklus "untuk"
Siklus "sementara"
Siklus "sebelumnya"
Program memohon;
Program memohon;
Program memohon;
Var.
Var.
Var.
S, sd: nyata;
S, sd: nyata;
S, sd: nyata;
D: byte;
D: byte;
D: byte;
Mulai.
Mulai.
Mulai.
S: \u003d 10;
S: \u003d 10;
S: \u003d 10;
SD: \u003d 10;
SD: \u003d 10;
SD: \u003d 10;
Untuk D: \u003d 2 hingga 7 lakukan
Mulai.
Sementara D.<7 do
Mulai.
Ulang.
D: \u003d D + 1;
SD: \u003d 1.1 * SD;
D: \u003d D + 1;
SD: \u003d 1.1 * SD;
S: \u003d S + SD;
SD: \u003d 1.1 * SD;
S: \u003d S + SD;
akhir;
S: \u003d S + SD;
Sampai (d \u003d 7);
Writeln ('s \u003d', s);
akhir;
Writeln ('s \u003d', s);
Akhir.
Writeln ('s \u003d', s);
Akhir.
Akhir.

Pertanyaan untuk Kontrol:
1. Operator apa dalam Pascal yang mengatur siklus dengan
Provuct.
2. Seperti dalam siklus dalam parameter menunjukkan langkah "1" dan "-1"
3. Cabang apa yang berasal dari siklus dengan
postcondition.
4. Apakah ada siklus dengan parameter kondisi
5. Apa yang bisa menjadi tubuh siklus
6. Ketika siklus digunakan dengan parameter
tamat