Döngüsel BİT algoritması paskal örneği. Döngüsel algoritmalar döngü türleri ve pascal üzerinde döngüsel ekipler

Slayt 2.

Plan

Döngü Konsept Operatör Döngüsü Döngü için Döngü Tekrar Edebiyatı

Slayt 3.

Edebiyat

Kastornov A.F., Evstratova G.A. Programlama Dili Pascal: Üniversiteler için öğretici. - Cherepovets: Gou VPO Chsu, 2010. - 117 c. - Bibliyogr .: s.114. Programlama Dilinde Elektronik Ders Kitabı Pascal /http://pascal.guti.ru planı

Slayt 4.

Döngü kavramı

Birçok görevi çözmek için algoritmalar, sonuçta elde etmek için, belirli bir eylem dizisi birkaç kez gerçekleştirilir. Örneğin, Bilgi Kontrol Programı bir soruyu görüntüler, cevabı kabul eder, nokta miktarına cevap için bir işaret ekler, ardından bu eylemleri bu eylemleri tüm sorulara cevap verene kadar tekrar eder. Veya, örneğin, listedeki istenen soyadını aramak için, tesadüf, ardından ikinci, üçüncü, vb. Eşleştirmek için listenin ilk adını kontrol edin. İstenilen soyadı bulunduğu sürece veya listenin sonu bulunur.

Slayt 5.

Birkaç kez gerçekleştirilen bir grup operatörün olduğu algoritma, döngüsel olarak adlandırılır. Tekrarlanan bir grup operatöre döngü gövdesi denir. Pascal'da, çevrimler, döngüsel operatörleri kullanarak kullanılarak uygulanabilir. Plan

Slayt 6.

İçin döngü operatörü

Bisiklete binme operatörü, döngü gövdesi birkaç kez gerçekleştirilmelidir ve tekrarların sayısı önceden bilinmektedir.

Slayt 7.

1. Kayıt Operatör Döngüsü Formu

Operatör için 1. kayıt operatörünün 1. formu genellikle aşağıdaki gibi açıklanmaktadır: FORSCHICHIK: \u003d SONIVIT_TREATTENTTO-SORRISORATOR; Nerede, on, hizmet kelimeleri. Sayaç, döngü tekrarlarının sayısını belirleyen bir dizi tipinin (genellikle tamsayı gibi) değişkenidir. Tekrarlanma sayısı, formüle göre kabul edilir: Final_DATICT, ilk + 1. Final_ değeri, ilke adına eşit veya daha büyük olmalıdır.

Slayt 8.

Döngü gövdesi birkaç operatörden oluşursa, operatör için operatörün 1. kayıt formu şöyle görünür: Fant

Slayt 9.

İlk kayıt biçiminde döngüsünün çalışmaları için algoritmayı düşünün. Sayaç başlangıç \u200b\u200bdeğerine atanır. Durum kontrol edilir: Sayaç değeri final_stasyondan daha büyük? Durum doğruysa (Evet), döngü yürütme biter. Durum yanlışsa (NO) ise, döngü gövdesi gerçekleştirilir, daha sonra sayaç değeri bir tarafından artar ve koşullar tekrar kontrol edin, yani. s.

Kaydırın 10.

2. Kayıt Operatör Döngüsü Formu

Operatör için 2. kayıt operatörünün 2. formu genellikle aşağıdaki gibi açıklanmaktadır: Sayaç için: \u003d inition_downdowndow-end_dactivity. Nerede: Downto, for - servis sözleri. Sayaç, döngü tekrarlarının sayısını belirleyen dizi tipinin (genellikle tamsayı gibi) değişkenidir. Tekrarlanma sayısı, formül tarafından değerlendirilir: ILIST_ VALIK-FINITE_DATION + 1. İlk_namedInInity'den daha büyük veya eşit olarak amaçlanmıştır.

Kaydırın 11.

Döngü gövdesi birkaç operatörden oluşursa, operatör için operatörün 2. kayıt formu şöyle görünür: FORSCHECHIK: \u003d INSTIT_DOWNTOFO-EVENTO BAŞLAYICI // VÜCUT DEĞİŞİMİ;

Slayt 12.

İkinci kayıt şeklindeki döngüsünün çalışması için algoritmayı düşünün: Sayaç başlangıç \u200b\u200bdeğeri atanır. Durum kontrol edilir: Sayaç değeri final_stasyondan daha az mı? Durum doğruysa (Evet), döngü yürütme biter. Durum yanlışsa (Hayır), daha sonra döngü gövdesi gerçekleştirilir, daha sonra birim başına sayaç değeri azalır ve koşullar tekrar kontrol edin, yani s.

Slayt 13.

İçin döngü operatörü

programex1; Var i, n: tamsayı; (I - Tezgah, N - Gerekli sayı sayısı) S: String; (S - Oluşturulan dizge hattı) Writeln'e başlayın ("Yıldız sayısını girin"); (yıldız sayısı) Readln (n) talep edilir; (Kullanıcı spar sayısına girer) S: \u003d ""; (İnme dizesinin oluşumu Boş bir dize ile başlar) (dize döngüsü için birlikte oluşturulur. Başlangıç_nity metredir - 1, final_tility, gerekli spar sayısıdır N.) FORI: \u003d 1 - n S: \u003d S + "*"; (döngünün her aşamasında dize, bir yıldız işareti) Writeln (ler) yapıştırılır; (satır görüntülenir) ReadLn; son. Plan örneği: Program dize dizesini oluşturur. Dizedeki yıldızların sayısı kullanıcı tarafından belirlenir.

Slayt 14.

Döngü iken

Bu döngü, programdaki bisikletin vücut tekrarlarının sayısı bilinmiyorsa ve yalnızca işlemi sırasında belirlenebilir. Genel olarak, iken açıklama aşağıdaki gibi yazılır: Douperatörün durumu; Nerede olursa olsun, hizmet kelimeleri. Durum, döngünün devamını belirleyen mantıksal tip bir ifadedir.

Slayt 15.

Döngü gövdesi birkaç operatörden oluşursa, iken döngü aşağıdaki gibi yazılır: Bahset başlar // vücut döngüsü sonu;

Slayt 16.

Süre döngüsünün algoritmasını düşünün: bir durum kontrol edilir. Durum gerçekten ise, döngü gövdesi gerçekleştirilir. Bundan sonra durum tekrar kontrol edilir. Durum yanlışsa, döngü tamamlanır.

Kaydırın 17.

Böylece, çevrim önkoşulu veya çevrimiyle "iken" (döngü gövdesi hala doğru durumdur). Eğer, döngüyü ilk önce geçtiğinizde, durum yanlış olacaktır, döngü gövdesi asla yerine getirilmez. Koşul asla yanlış hale gelmezse, döngü sonsuz şekilde tekrarlanacaktır, yani. Soğuk olur.

Slayt 18.

EX2 programı; Varaccount: gerçek; (Hesap Boyutu) Ay: Tamsayı; (Hesabın açılmasından bu yana ay sayısı) Hesap başlayabilir: \u003d 1000; (Giderde 1000 ruble koyun) ay: \u003d 0; (Hesap yeni açtı) Whileaccount

Slayt 19.

Tekrar döngüsü

Tekrar döngüsü yanı sıra, birkaç kez bir döngü gövdesi yapmanız gerekiyorsa, programda da kullanılır, ancak tekrarlama sayısı önceden bilinmemektedir. Genel olarak, tekrar döngüsü aşağıdaki gibi yazılmıştır: duruma kadar // vücut döngüsünü tekrarlayın; Nerede tekrar tekrar - servis sözleri. Durum, döngünün sonunu belirleyen mantıksal bir ifadedir.

Slayt 20.

Tekrarlama döngüsünün çalışma algoritmasını göz önünde bulundurun: Tekrarla ve ayrılmış kelimeler arasında bisiklet gövdesi gerçekleştirilinceye kadar. Durum kontrol edildi. Koşul gerçekten ise, döngü tamamlanır. Durum yanlışsa, döngü gövdesi tekrar yapılır.

Slayt 21.

Böylece, tekrarlama, dalga sonrası veya "ila" döngüsüne sahip bir döngüdür (çevrim gövdesi durumun gerçeğine yapılır). Sonuç olarak, döngü gövdesi en az bir kez gerçekleştirilir. Koşul asla gerçekleşmezse, döngü sonsuz hale gelir.

Slayt 22.

EX3 programı; Var zamanı: tamsayı; (Teslim süresi) hücreleri: tamsayı; (hücre numarası) zamana başlar: \u003d 0; (hücre hala hiç başlatılmadı) hücreleri: \u003d 1; (tek) tekrar tekrar: \u003d zaman + 3; (önümüzdeki üç saatten sonra) hücreler: \u003d Hücreler * 2; (hücre sayısı 2 kez artmıştır) hücreler\u003e 24; (Gerçeğe kadar "" 24'ten fazla hücre sayısı ") Writeln (zaman); (çıkış) Readln; son. Fabrika örneği: Her 3 saatte bir tek hücreli AMEBA 2 hücreye ayrılmıştır. Belirle, kaç saatin sayısı 24'ü aştı.

Tüm Slaytları Görüntüle

Slayt 1.

Yüklenici Robot Döngüsel Algoritma
Bilişim dersine sunum. Sınıf 9 Konu: Yönetim ve Algoritmalar

Slayt 2.

I için: \u003d 1 ila n eylem1 başlar. Action2; Son;
I için: \u003d 1 ila n eylem1; Action2;
1

Slayt 3.

2
(DOĞRUDAN DURUM) ACTICT1'e başlar. Action2; Son;
(Şart doğru) çalışırken eylem1; Action2;

Slayt 4.

3
17 hücre
12 hücre

Slayt 5.

4
Program n1; Var i: tamsayı; I için başlayın: \u003d 1 ila 12 robotforw; Robotleft; I için: \u003d 1 ila 17 robotforw; Robotleft; I için: \u003d 1 ila 12 robotforw; Robotleft; I için: \u003d 1 ila 17 robotforw; Robotleft; son.
Aşağı hareket etmek
Sağa doğru hareket
Harekete geçmek
Sola doğru hareket
Bu ve aşağıdaki komutlar robotun köşesine sola döner

Slayt 6.

5
Duvarı koyarsanız, robot içine dalacak ve program duracak

Slayt 7.

6
N2 programı; Var i: tamsayı; FreeForw RobotForw yaparken başlayın; Robotleft; FreeForw RobotForw yaparken; Robotleft; FreeForw RobotForw yaparken; Robotleft; FreeForw RobotForw yaparken; Robotleft; son.
Önümüzde ücretsiz iken, bir robot ileri doğru yapın.

Slayt 8.

Slayt 9.

8
Program n3; Var i: tamsayı; I için başlayın: \u003d 1 ila 4 FreeForw RobotForw; Robotleft; son; son.
Öne geçmek için dört kez, engel yok ve sola dönünceye kadar

Kaydırın 10.

9
Öne geçmek için dört kez, engel yok olana kadar sola dönün

Kaydırın 11.

10
Bağımsız iş için görevler
Görev 1. Durumun sol duvarında keyfi bir yerde sol duvar bir engel koymaktır. Robot 1 puan almalı ve orijinal durumuna geri dönmelidir. Not: Henüz üç ardışık olarak bağlı döngü kullanın.
1
1

Slayt 12.

11
Görev 2. Durumun isteğe bağlı bir yerde sol duvar oyulmuştur. Robot kargoya gitmeli, depoya taşınması ve orijinal durumuna geri dönmesi gerekir. Not: Henüz iki ardışık olarak bağlı döngü kullanın.

Slayt 13.

12
Görev 3. Keyfi bir konumda durumun sol duvarının beş kargo yerleştirilir. Robotun depoya taşınması için tüm kargolar olmalıdır. NOT: Şimdiye kadar bir parametre ile bir döngüye yatırılan iki sıralı bağlı iki döngü kullanın.

Slayt 14.

13
Örnek 1 Robot, koridorun girişinin önünde bulunur. Koridorun içindeki tüm hücrelerin not edilmesi ve geri dönmesi gerekir.

Slayt 15.

14
N7 programı; Robotforw'a başla; Serbest değilken, seçmeye başlar; Robotforw; son; Robotback; Serbest değilken robotback; son.
Tüneli girmek için öne çıkıyoruz
Soldayken bir duvar var, kafesleri kutlayın ve öne çıkın
Tünele geri dön
Sol duvar iken, bir adım geri hareket ettirin

Slayt 16.

15
Örnek 2 Bir açıyla sağlanan iki duvar vardır. Duvarların uzunlukları keyfidir. Robot duvarlar arasındaki köşede (bkz. Şekil). Robotun duvarın içindeki tüm hücreleri işaretleyen bir program yapmak gerekir. Robotun nihai konumu keyfi olarak.

Kaydırın 17.

16
Program n8; Serbest değilken başla başlayın; Robotforw; son; BRECTEBACK ROBOTBACK'INDA; Robotleft; Serbest değilken, seçmeye başlar; Robotforw; son; son.
Doğru ücretsiz olmasa da, hücreyi kutlarım ve öne çıkıyorum.
Robotu geri döndür
Sola dön
Sol ücretsiz olmasa da, hücreyi kutlarım ve ileri bir adım atarım.

Slayt 18.

Slayt 19.

18
Örnek 3 Durum durumu iki bölüme ayıran duvarın örtüşmesi. Duvar, rastgele bir yerde bir hücre boyutunda bir geçişe sahiptir. Robotun bu pasajı bulduğu ve durumun başka bir bölümüne gittiği bir program yapmak gerekir.

Slayt 20.

19
N9 programı; Robotleft'e başla; FreeForw RobotForw yaparken; Robotroght; Serbest değilken RobotForw; Robotleft; Robotforw; Robotforw; son.
Robotu duvara doğru çevirin.
Duvarda durmayana kadar ilerliyoruz
Robotu duvar boyunca çevirin
Duvar bitinceye kadar ileri doğru ilerlemek
Robotu pasaja doğru çevirin
İki adım öne çıkardık, durumun başka bir yarısına gidiyoruz

Bireysel Slaytlardaki Sunumun Açıklaması:

1 slayt

Slayt Açıklaması:

Sınıfların konusu: "Döngüsel yapının algoritmaları. Pascal'da Programlama Döngüleri »Disiplin" Bilişim "

2 slayt

Slayt Açıklaması:

Bu işgaldeki konunun temel kavramları aşağıdaki kavramlar tarafından incelenmiştir: bir döngü kavramı; Döngüsel algoritmaların çeşitleri (ön koşullandırma, posta bandlı döngü, parametre ile çevrimi); Döngüsel algoritmaların blok diyagramları; Döngü operatörlerinin paskal programlama dilinde temsil edilmesi; Sorunları çözerken döngüleri uygulamak.

3 slayt

Slayt Açıklaması:

Birçok görevi çözerken bir döngü kavramı, bir ve aynı eylem dizisi birkaç kez gerçekleştirilir. Örneğin, kabul ettikten sonra eğitim kurumu Öğrenci sınavlara, kendileri tarafından atılan noktalarla hesaplanırken (değişkenler; başlangıç \u200b\u200bdeğeri S: \u003d 0;). Her sınav için, tahminleri n alırlar. Tahmin "2" den büyükse, S: \u003d S + N; Aksi takdirde, hesaplamaları durdurun (döngüden çıkın).

4 slayt

Slayt Açıklaması:

Döngü döngüsü kavramı, bir kereden fazla gerçekleştirilebilecek bir operatör dizisidir. Döngüsel algoritma, yeni verilerdeki aynı işlemin birden fazla tekrarı sağlayan bir algoritma adı verilir. Üç tür döngü operatörü vardır: ön koşullu döngüler; POSTIONTION ile döngüler; Bir metre ile döngüler.

5 slayt

Slayt Açıklaması:

Önkoşul ile döngü. Tür çevrimi ise, çevrim gövdesini durumun yürütülmesine kadar reçete edilirken, önkoşul ile akış şeması kelimesinden sonra kaydedilir.

6 slayt

Slayt Açıklaması:

Önkoşul ile döngü. Türü döngüsü, yukarıdakilerle birlikte döngü döngüsü, döngü gövdesinin tekrarı sayısının önceden bilindiği ve duruma bağlı olduğunda kullanılır. Durum doğruysa, döngü gövdesi yürütülür, ardından koşulları tekrar kontrol eder ve böylece durum yanlış olur.

7 slayt

Slayt Açıklaması:

Operatör Döngüsü, PrepAna ile (iken - döngü iken) bu en yaygın kullanılan tekrarlama operatörü, bir Pascal (format) ortak bir görünümüne sahiptir:<условие> Yapmak.<оператор>; Burada, ayrılmış kelimeler (ingilizceden: ingilizce, do - do);<условие> - Mantıksal ifade;<оператор> - keyfi (muhtemelen kompozit) operatör.

8 slayt

Slayt Açıklaması:

Postband ile döngü. Tür döngüsü bir patlama ile döngü operatörünün sırasına kadar, 1-N operatörlerin yürütülmesi, durum doğru hale gelinceye kadar tekrarlanır. Bu döngüde, durum yalnızca döngünün organlarından sonra doğrulanır. Vücudun her zaman en az bir kez akış şemasını postcal ile yaptığını takip eder.

9 slayt

Slayt Açıklaması:

Postband ile döngü. Önceden önce döngü türü! Posta ile döngü, durumun en az bir kez bağımsız olarak gerçekleştirilir. Döngü döngüsünün şüphesiz rahatlığı, içinde bir kompozit operatör kullanmadan birkaç operatör yazabileceğinizdir. Koşullar kontrolü döngü gövdesinden sonra. Servis sözcüğü kadar.

10 slayt

Slayt Açıklaması:

Postabandlı Operatör Döngüsü (Bisiklete Kadar Tip) Genel Görünüm (Biçimlendirme) Bisiklet İşletmecisi Pascal Pascal ile Sonraki: Tekrarla<Оператор 1>; <Оператор 2>; … <Оператор N>; A kadar<условие>;

11 Slayt

Slayt Açıklaması:

Döngü operatörünün operatörünün, çıkışın postbanı için ekranı çift yönünde, N \u003d 1, 2, 3, 4, 5, 6, 7, 8, 9'sinin değerleri ve Değişken A \u003d 10, 20, 30, 40, 50, 60, 70 ve 70, 80, 90, 90, 90, 90, n: \u003d 0; N: \u003d n + 1'i tekrarlayın; A: \u003d 10 * n; Writeln (n: 2, '', A: 3); N\u003e \u003d 9'a kadar;

12 Slayt

Slayt Açıklaması:

Parametre ile döngü. Belirli bir sayıda döngü adımını gerçekleştirmek istediğinizde parametreli bir tür tipi türü kullanılır. Pascal'ın pascal döngüsünün çok esnek olmadığı belirtilmelidir (örneğin, bu tür çevrimden C dilindeki bu tip). Çünkü, Pascal'da, döngü parametresi (veya sayaç), birine eşit bir değerle değişir. Bu nedenle, kesirli bir adım gerçekleştirmesi gerektiğinde, süre türünün bir döngüsünü kullanmanız gerekir. Döngüsün iki çeşitleri vardır: artan ve sayaç değerlerinde (veya parametrenin) değerlerinde bir azalma ile. Parametre ile çevrim blok diyagramı (döngü için)

13 slayt

Slayt Açıklaması:

14 Slayt

Slayt Açıklaması:

Parametre ile döngü operatörü. Parametre için bir döngü operatörünün ortak bir görüşü (format) için çevrim tipi<счетчик> := <начальное значение> için.<конечное значение> Başla.<Операторы> son; İçin<счетчик> := <начальное значение> Aşağı.<начальное значение> Başla.<Операторы> son; Sayaç değerlerinde (parametre) ölçüm değerlerinde (parametre) bir artışla (parametre)

15 slayt

Slayt Açıklaması:

Parametre ile döngü operatörü. Döngü Türü - İçin Döngüsü Yapan Operatör İçin - İçin, Program Fragmanı'nın belirtilen sayıda kez tekrarlanması gerektiğinde kullanılırsa kullanılır.<переменная цикла>: = <начальное значение> Bu<конечное значение> Yapmak.<оператор>; İşte:, için, ayrılmış kelimeler (İngilizce: önce, yürütülür);<счетчик (параметр) цикла> - değişken Tipi Segmentte değişen tamsayı<начального значения>, her döngü adımının sonunda üniteyi arttırmak;<оператор> - Herhangi biri (daha sık bileşik) operatör.

16 slayt

Slayt Açıklaması:

Parametre ile döngü operatörü. Bir tip döngüsü, ifadesi bir başlık ve bir döngü gövdesinden oluşur. Döngü gövdesinde bulunan kompozit operatör, başlangıç \u200b\u200bve bitiş operatör parantez içine alınmalıdır. · Ölçer tanımlayıcısı genellikle "I" kullanılır. · Metre değişkeni bir dizi türü olmalıdır. Örneğin, tamsayı tipi: byte, tamsayı. · Döngü parametresinin başlangıç \u200b\u200bve bitiş değerleri döngü sırasında değiştirilemez. · Operatör için, programın tekrarı sayısına göre, programın yürütülmesi sırasında önceden bilinen veya belirlenen, sabit olan döngüleri organize etmek için kullanılır.

17 Slayt

Slayt Açıklaması:

Sorunları çözerken döngülerin kullanılması, yukarıda açıklanan çevrimlerin her biri, aynı görevlerin pascalını bir siklik algoritma ile programlamak için kullanılabilir.

18 Slayt

Slayt Açıklaması:

Görev numarası 1 PASCALABC.NET programını açın (programlama programları için entegre programlar Pascal) Programı sisteme adınızla klasöre kaydedin. çalışma klasörü Pabcwork.net \\ your_in / cikl_1.pas Kaydet ...

19 slayt

Slayt Açıklaması:

Tüm doğal sayıların karelerinin toplamını 1 ila 100 arasında hesaplayan bir programı hesaplamak ve hata ayıklamak için döngüyü kullanarak (ön koşuluyla). Sonuç - Miktar: S: LONGINT; EX1 programı; Var a: tamsayı; S: uzunlama; (Uzun tamsayı) A başlar: \u003d 1; S: \u003d 0; (miktarları biriktirmek için değişkenler)<=100 Do { Начало цикла – проверка условия } Begin S:=S+A*A; A:=A+1 End; Writeln(‘Вывод результата S= ’ ,S) End. Сохранить программу в папке с Вашим именем в системной рабочей папке PABCWork.NET \ Ваше_имя\Cikl_1.pas

20 slayt

Slayt Açıklaması:

Görev 2. Pascalabc.net program ABC ortamındaki pascal dilinde döngüsel yapıyı kıstır; Var x, u: tamsayı; X: \u003d 2'ye başla; 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























İleri geri

Dikkat! Önizleme slaytları sadece bilgilendirme amaçlı kullanılır ve tüm sunum yetenekleri hakkında fikirler vermeyebilir. Bu işle ilgileniyorsanız, lütfen tam sürümü indirin.

Amaç: Çevrimlerin algoritmik yapısını incelemek, pratik problemleri çözmek için modellerin ve algoritmaların oluşturulması.

Sınıflar sırasında

I. Bilginin gerçekleştirilmesi

  • Algoritma kavramını, algoritmik dilin temel tasarımlarını tekrarlayın.
  • Matematiksel bir model, algoritma ve sorunu çözmek için blok şeması geliştirebilme.
  • Programlama dilleri kavramı ve randevuları var.
  • Programlama ortamında çalışabilme.
  • Programın yapısını bilir.
  • Sayısal ve karakter değerleri içeren ifadeleri kaydedebilirsiniz.
  • Operatörlerin yapısını ve işlerinin özelliklerini bilir.
  • Doğrusal ve dallanma yapılarıyla program yazarken operatörleri uygulayabilme.
  • Hata ayıklama için programlar oluşturabilme ve çalıştırabilme.

II. Teorik malzeme dersi

Çoğu pratik görev, aynı işlemlerin birden fazla tekrarı gerektirir, yani bir veya daha fazla operatörün yeniden kullanılması. (Sunum)

Sayıların sırasını girmek ve işlemek için gerekli olmasına izin verin. Sayılar sadece beş ise, doğrusal bir algoritma yapabilirsiniz. Binlerce varsa, doğrusal bir algoritma yazın, ancak çok sıkıcı ve mantıksız. Algoritmanın bilinmeyen zamanın sayısı sayıları, doğrusal algoritma temelde imkansızdır.

Başka bir örnek. Listedeki bir kişinin soyadını bulmak için, listenin ilk adını, ardından ikinci, üçüncü vb. Kontrol etmeniz gerekir. İstenilen veya listenin sonu bulunana kadar veya bulunmaz. Bisikletlerle bu tür zorlukların üstesinden gelebilirsiniz.

Döngü algoritmanın (programların) birden çok çalıştırılabilir kısmı olarak adlandırılır. Buna göre, döngüsel algoritma, döngü içeren bir algoritmadır.

İki tür çevrim vardır: bilinen sayıda tekrarla ve bilinmeyen sayıda tekrarlama ile. Aynı zamanda, her iki durumda da, algoritmanın gelişimi aşamasında bir dizi tekrar vardır.

3 tür siklik yapı vardır:

  • Önkoşul ile döngü;
  • Satış sonrası ile döngüsü;
  • Parametre ile döngü;

Aksi takdirde, bu yapılar "kadar", "için" tip döngüleri denir.

Veri Kaydı Algoritmik Yapıların Grafik Formu:

Önkoşul ile döngü (aksi takdirde döngü a kadar) Görünüyor:

şart - Mantıksal ifade.

Mantıksal ifadenin değeri derhal yalan söylüyorsa, döngü yürütülmeyebilir.

Başlama ve bitiş arasında bulunan komut serisi yapılır Şimdiye kadar, durum doğru .

İçin döngü ucuna, BAŞLATMA VE UND arasındaki talimatların sırasının, dahil edilen değişkenlerin değerini değiştirmesi gerekir. şart.

Meslek ile çevrimi (aksi takdirde döngü) önce) Görünüyor:

şart - Mantıksal ifade.

Not:

Her biri arasındaki talimatların sırasıtekrar et. vea kadar. her zaman yerine getirilecek en azından bir kere;

Döngünün tamamlanması için, operatörlerin arası sırasınıntekrar et. vea kadar. İfade durumuna dahil edilen değişkenlerin değerlerini değiştirdi.

Tekrarlama talimatının yanı sıra, bazı tekrarlayan hesaplamalar (döngü) yapmanız gerekiyorsa, ancak tekrarlama işlemi yapmanız gerekiyorsa, ancak tekrarlama sayısı önceden bilinmemektedir ve hesaplamanın kendisi sayısına göre belirlenir.

Bir parametre ile döngü (aksi takdirde döngü için) Formu var:

i - bisiklet parametresi;
a - döngünün ilk değeri;
b - döngünün son değeri;
H bir parametre değişim adımdır.

Bu döngünün yapısı aksi takdirde denir döngü I Zevki.

Bu komut bu şekilde yapılır: I atandığı parametre, A'nın A adını A'nın B son değeri ile karşılaştırılır ve B'nin son değerine eşit veya ona eşitse, bir dizi komut gerçekleştirilir. Parametre, önceki, büyütülmüş değeri atandı h. - Parametredeki değişikliklerin ve tekrar nihai değeri ile karşılaştırıldığında değişiklikler.

Programlama dilinde Pascal, parametre değişikliği kademesi bir veya eksi birine eşit olabilir.

Keşke bir operatör başlama ve bitiş arasında ise, operatör parantezleri yazamaz. Bu kural "henüz" ve "için" tip bir döngü için çalışır.

Bu yapıları kullanarak görevleri çözme örneğini düşünün.

Misal.

Çeşitli döngü seçenekleri kullanarak 1 ila 5 numaraların ürününü hesaplayın.

Matematiksel model:

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

Bir akış şeması şeklinde bir algoritma yapalım.

Algoritmanın doğruluğunu doğrulamak için, iz tablosunu doldurun.

Adım Operasyon R bEN. Kontrol durumu
1 P: \u003d 1 1
2 i: \u003d 1; 1 1
3 bEN.<=5
P: \u003d p * ben
I: \u003d i + 1
1 1 1<=5, да (истина)
4 bEN.<=5
P: \u003d p * ben
I: \u003d i + 1
2 2 2<=5, да (истина)
5 bEN.<=5
P: \u003d p * ben
I: \u003d i + 1
6 3 3<=5, да (истина)
6 bEN.<=5
P: \u003d p * ben
I: \u003d i + 1
24 4 4<=5, да (истина)
7 bEN.<=5
P: \u003d p * ben
I: \u003d i + 1
120 5 5<=5, да (истина)
8 bEN.<=5
P: \u003d p * ben
I: \u003d i + 1
6<=5, нет (ложь)

Doğrulama koşulları birkaç adımda meydana gelir: Şubelerden birindeki komutların şartlarını ve yürütülmesini kontrol eder. Bu nedenle, TRACE tablosu algoritma komutlarını kaydetmez, ancak bilgisayar tarafından her adımda yapılan ayrı işlemler.

Adım bir: P bir değer bir değer atanır.

İkinci adım: Ben birine atanır.

Üçüncü adım: Ben Eşit ünitede, beşe göre daha az veya beşe eşit durumun kontrol edilmesi, evet, durum doğrudur, birinin birine çarpılan değerin iki olacağı anlamına gelir. I için: Bir artı bir tane, iki olacak.

Adım dört:İkiye eşittir, durum şu anda beşe göre daha az veya ona eşittir, evet, durum doğrudur, 2'nin birine çarpıldığı, 2 olacaktır. I: İki artı biri için üç olacak, üç olacak .

Fift beşinci:Üçüne eşit olarak, üçten daha az veya beşe eşit durumunu kontrol ediyoruz, evet, durum doğrudur, yani p iki ile çarpılan iki değeri atar, altı olacaktır. I için: Üç artı biri, dört olacak.

Adım Altı:dört'e eşit, durum dört ya da beşe eşittir, evet, durum doğrudur, bu, altı ile çarpılan altı değerin yirmi dört olacağı anlamına gelir. I için: Dört artı biri, beş olacak.

Adım Yedinci:Çünkü beşe eşit, durum beş ya da beşe eşittir, evet, durum doğrudur, bu, beş ile çarpılan yirmi dört değerinin yüz yirmi olacağı anlamına gelir. I için: Beş artı biri, altı olacak.

Adım sekizinci:altı'a eşit, durum altı ya da beşe eşit, hayır, hayır, durum yanlış, sonra döngüsünü terk ediyoruz ve sonuç olarak, son değeri yüz ve yirmi kadar eşit alıyoruz.

Program pr1;
Var i: tamsayı;
Başla.
P: \u003d 1;
i: \u003d 1;
I.<=5 do
Başla.
P: \u003d p * ben;
İ: \u003d i + 1;
son;
('P \u003d', p) yazmak;
son.

Seçimi olan bir döngü için, bir blok diyagramı ve izleme tablosu oluştururuz. (slayt16)

Sonuç olarak, yedinci adımda yüz yirmıklığına eşit son değeri alıyoruz.

Ve bir parametre ile bir döngü için, bir blok diyagramı ve izleme tablosu oluştururuz. (slayt17)

Sonuç olarak, altıncı adımda yüz yirmıklığına eşit son değeri alıyoruz.

Bir görev:

1 ila 5 V arasında numaraları görüntüleme:

  1. basit;
  2. ters sipariş.

Matematiksel model:

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

Blok şeması ve sorunu çözme sorunu doğrudan ve ters sırada sayılar için sunulmuştur.

(Slayt 21)

Görülen algoritmaları programlama dili Pascal'da kaydederiz.

(Slayt 22)

III. Dersi toplamak

Ve böylece aşağıdaki soruları gözden geçirdik:

  1. Algoritmik yapı döngüsü;
  2. Algoritmik Yapılar Türleri:
    1. Önkoşul ile döngü;
    2. Satış sonrası ile döngüsü;
    3. Parametre ile döngü;
  3. Bu yapıları yazmanın yolları;
  4. Bu yapıların yardımıyla çözme problemlerinin çözülmesi örnekleri.

Siklik algoritmalar06.04.2017
Döngüsel algoritmalar
Döngü ve döngü türleri
Pascal'da takımlar

Döngü tekrarlandı
Dizinin tekrarlanması
aksiyon
Algoritmanın tekrarlayan bir parçası
Döngü gövdesi denir
Döngü türleri
Belirli bir sayı ile
Tekrarlama
Şartlar ve koşullar
döngü
Şartlı
Çıkış durumu
döngü

Döngü türleri (içerik)
Önkoşul ile döngü
Uygulama
Postband ile döngü
Uygulama
Parametrelerle döngü
Uygulama
Karmaşık görevlerin çözümü

Önkoşul ile döngü

Uygulama

Durum ve sadece yapılması gereken eylem
Koşulları kontrol ettikten sonra, önkoşuldaki çevrimi kullanın.


Döngü gövdesinin her birinin yürütülmesinden önce kontrol edilir
Koşullar, "gerçek" nin bir sonucu ise, döngü gövdesi gerçekleştirilir.
Bir kez daha, eğer "yalan" ise, o zaman döngüden çıkış yolu var.
Blok üzerinde - Şema
Başlat Döngüsü
Değil
Durum
EVET
Döngü gövdesi
Döngüsünün sonu
Pascal'da.
Süre<условие> yapmak.
Başla.
<тело цикла>
son;

Postband ile döngü

Uygulama
Tekrarlama sayısı önceden bilinmiyorsa, ancak yalnızca belirtilmişse
durum ve daha önce yapılması gereken eylem
Durum kontrolleri postcal ile döngüsü kullanın.
Bir durum olarak, mantıksal bir ifade kullanılır, vücut
Döngü basit veya kompozit bir operatördür.
Döngü gövdesinin her yerine getirilmesinden sonra kontroller
Sonuç "false" ise, döngü gövdesi gerçekleştirilir.
Bir kez daha, "gerçek" ise, o zaman döngüden bir yol var.
Blok üzerinde - Şema
Pascal'da.
Tekrar et.
Döngü gövdesi
<тело цикла>
Evet
Değil
Durum
A kadar<условие>;

Parametre ile döngü

Uygulama
Parametre ile döngü
Tekrarlanma sayısının önceden bilindiği durumlarda
Parametrede bir döngü kullanılır.
Tekrarlanma sayısını belirten bir değişken çağrılır
Döngü parametresi veya kontrol değişkeni.
Her vücut yürütme döngüsü yönetimi sonrasında
Değişken artar veya azalır, döngü
Ya aşana kadar zamanı gelinceye kadar koşuyor.
daha az sınırlama olacaktır.
Blok üzerinde - Şema
Pascal'da.
X için: \u003d a ila b doo
X: \u003d a, b, c
Döngü gövdesi
X - Kontrol değişkeni (bisiklet parametresi)
A - ilk anlam x, içinde - sonlu x
C - bir değişim adım
Başla.
<тело цикла>
Son;
Bir adım olarak kullanabilirsiniz
sadece:
"To" \u003d 1;
"Downto" \u003d -1

Bir önkoşul ile bir döngü kullanarak bir görev örneği
Teori

Şerit algoritması:
Çarpın X'in başlangıçta 1'e eşittir.
Belirtilen sayıda (H) 3'tür.
Başlat
Programlama step;
Var.
H, B, X: Tamsayı;
Başla.
Writeln ('derece?' ');
ReadLn (h);
X: \u003d 1;
B: \u003d 1;
B.<=H do
Başla.
X: \u003d x * 3;
B: \u003d B + 1;
Son;
Writeln ('Sonuç', X);
Son.
Paskal
N.
Belirli bir derece girin
X: \u003d 1
Başlangıç \u200b\u200bdeğerleri
B: \u003d 1
Değil
"B" derece sayacı
B≤h.
Evet
X: \u003d x * 3
3 ile çarpma.
B \u003d + 1'de
Ölçmek
H.
Alınanın Disasyonu
Değerler
son
Blok diyagramı
Açıklamalar

Bir postcal ile bir döngü kullanarak bir görev örneği
Teori
Görev: 3 numarayı belirli bir dereceye kadar yükseltin
Şerit algoritması:

Programlama step;
Var.
H, B, X: Tamsayı;
Başla.
Writeln ('derece?' ');
ReadLn (h);
X: \u003d 1;
B: \u003d 0;
Tekrar et.
X: \u003d x * 3;
B: \u003d B + 1;
Değil
B\u003e \u003d H'ye kadar;
Writeln ('Sonuç', X);
Son.
Başlat
N.
Belirli bir derece girin
X: \u003d 1
Başlangıç \u200b\u200bdeğerleri
B: \u003d 0
3 ile çarpma.
X: \u003d x * 3
Ölçmek
B \u003d + 1'de
Evet
B\u003e \u003d h
"B" derece sayacı
H.
Alınanın Disasyonu
Değerler
son
Paskal
Blok diyagramı
Açıklamalar

Bir parametre ile bir döngü kullanarak bir görev örneği
Teori
Görev: 3 numarayı belirli bir dereceye kadar yükseltin
Şerit algoritması:
Çarpın X'in ilk olarak 1 tarafından belirtilen 1'e (H) 1'e eşittir.
Programlama step;
Var.
H, B, X: Tamsayı;
Başla.
Writeln ('derece?' ');
ReadLn (h);
X: \u003d 1;
B: \u003d 1 ila H doo için
Başla.
X: \u003d x * 3;
Son;
Writeln ('Sonuç', X);
Son.
Paskal
Başlat
N.
X: \u003d 1
B: \u003d 1, H, 1
X: \u003d x * 3
H.
son
Blok diyagramı
Belirli bir derece girin
X \u003d 1'in ilk değeri
1 BC'den parametreler
3 ile çarpma.
Alınanın Disasyonu
Değerler
Açıklamalar

Döngünün seçimi, sorunun özelliklerine bağlıdır. Sadece pratik size en uygun çözümü söyleyecektir.

Görev: Başlangıç \u200b\u200beğitimi, ilk gün atlet
10 km koştu. Her gün gün ışığını arttırdı
Norma, önceki günün normunun% 10'u için.
Toplam yolun 7 gün boyunca sporcuyu çalıştırır.
Giriş değişkenleri:
D - Gün sayısı
SD - Geçerli Gün için Mesafe
Çıkış değişkenleri:
S - Paylaşılan yol

Blok - Çözme Şeması

başlat
S: \u003d 10
Sd: \u003d 10
D: \u003d 1
D: \u003d D + 1
SD: \u003d SD * 1.1
S: \u003d S + SD
değil
D \u003d 7.
Evet
S.
son

Pascal'da Program

"İçin" döngü
"İken" döngü
"Önce" Döngü
Program yalvarmak;
Program yalvarmak;
Program yalvarmak;
Var.
Var.
Var.
S, sd: gerçek;
S, sd: gerçek;
S, sd: gerçek;
D: bayt;
D: bayt;
D: bayt;
Başla.
Başla.
Başla.
S: \u003d 10;
S: \u003d 10;
S: \u003d 10;
Sd: \u003d 10;
Sd: \u003d 10;
Sd: \u003d 10;
D: \u003d 2 ila 7 için yapın
Başla.
D.<7 do
Başla.
Tekrar et.
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;
son;
S: \u003d s + sd;
Kadar (d \u003d 7);
Writeln ('s \u003d', s);
son;
Writeln ('s \u003d', s);
Son.
Writeln ('s \u003d', s);
Son.
Son.

Kontrol için sorular:
1. Pascal'da hangi operatör ayarla
Kanıtlamak
2. Parametredeki döngüde olduğu gibi "1" ve "-1" adımı gösterir.
3. Hangi dal ile döngüden geliyor?
posta ücreti
4. Durum parametresi ile bir döngü var mı
5. Döngü gövdesi ne olabilir
6. Döngü parametrelerle kullanıldığında
son