Особенное место в Turbo Pascal занимают циклы.Ekrandaki bilgilerin giriş-çıkış becerilerini uyguladıktan hemen sonra çalışmaya başlarlar. Aslında, çoğu görev, bir parametre ve diğer yapılarla yapılan döngülerin, belirli bir program bloğunun yazılmasını ve çalışmasını kolaylaştırmaya yardımcı olduğu gerçeğinden kaynaklanmaktadır.
Döngü çeşitleri
Toplamda üç tür vardır:
- bir parametre ile
- bir ön koşulla,
- bir şartla.
Parametreli döngüler, aksi takdirde For ... to ... olarak adlandırılırlar.do veya For… down to…. yapmak, belirli bir eylem dizisini birçok kez tekrarlayın. Prensip olarak, diğer çeşitler aynı amaç için kullanılır, sadece for-döngüsünde önceden sadece adımların sayısı bilinmektedir.
Diğer iki yapıda (While ve Repeat), iterasyonların sayısı başlangıçta bilinmemektedir. Bu nedenle, ödevi incelerken, hangi döngünün kullanılacağını anlamak zaten gereklidir.
Konuyla ilgili temel tanımlar
Parametreli döngüler - tekrarlayanyinelemeler. Sayaç, belirli bir tasarımın gerçekleştirildiği ana göstergedir. Aralığın sınırları, belirli yinelemelerin gerçekleştirileceği sınırları gösterir. Bu arada, başlangıç değerinin 1'e eşit olması hiç gerekli değildir. Kullanıcı, aralığın her iki sınırını da bağımsız olarak belirler. Döngünün gövdesi, tekrar sayısının önceden belirlenmiş olduğu bir dizi komuttur.
"Parametreli döngüler" terimi,bu yapının durumu kontrol edilir ve ardından bir dizi yineleme gerçekleştirilir. Sayaç artar (veya azalır) ve her şey tekrar eder. Döngünün gövdesi, koşul doğru olduğu sürece kullanılacaktır.
For… to… do: iş algoritması, sözdizimi
Daha önce bahsedildiği gibi, bir parametreye sahip döngüler, çalışılacak "aralığı" belirleyen görevlerde kullanılır. Dolayısıyla, bir sayı dizisi, haftanın günleri, bir şiirin dizeleri vb. Olabilir.
2 tip konstrüksiyon vardır: sayacı arttırmak ve azaltmak. İlk yapı şu şekilde yazılacaktır:
için out.variable : = sınır 1 -e sınır 2 yapmak
başla
döngü gövdesi;
son;
Buraya: ref. değişken kullanıcı tarafından bir programın veya bloğun başında bildirilen; kenarlık 1 ve kenarlık 2 - aralığın ilk ve son değeri; içinde vücut döngü yapılması gereken bir dizi eylemprogram tarafından çalıştırılır. Döngünün gövdesi yalnızca 1 komut içeriyorsa, operatör parantezlerinin başlar… bitiş atlanabileceği unutulmamalıdır. Tasarımın bu versiyonunda, sayaç, yani <init.variable>, 1'e eşit bir adımla artacaktır.
için out.variable : = sınır 1 aşağı sınır 2 yapmak
başla
döngü gövdesi;
son;
İşte ref. değişken 1'lik artışlarla azalacaktır.
For ... to ... do parametresiyle döngü işleminin şeması aşağıdaki gibi görünecektir:
- Boşluğun üst sınırının değeri belirlenir, yani. sınır 2.
- Kaynak değişkeni parametre değeri atanır sınır 1.
- Durum kontrol edilir: referans değişkeni ≤ sınır 2.
- Sonuç alırken Doğru (Doğru) döngünün gövdesi yürütülür.
- Sayaç 1 artırılır.
- Madde 3-5, koşul doğru olana kadar tam olarak yürütülür: referans değişkeni> sınır 2... Bu olur olmaz döngüden çıkılır ve verilen yapıyı takiben kontrol komuta aktarılır.
For ... downto ... do'da, işlem algoritması bazı noktalar haricinde yukarıdakine benzer:
- 3. paragrafta durum kontrol edilir: referans değişkeni ≥ sınır 2.
- Algoritmanın 5. satırında sayaç 1 azaltılır.
- 6. paragrafta, 3-5 komutları, koşul yerine getirilene kadar yürütülür: kaynak değişken <sınır 2.
Her iki çalışma algoritmasında da her şey aynıdır.
Parametreli döngü blok şeması
Parametreye sahip döngüler, aşağıdaki blok diyagram biçimine sahiptir (daha önce yukarıda sunulmuş olmasına rağmen). Aynı zamanda yapının basitleştirilmiş bir organizasyonunu da gösterir.
Parametreli bir döngü için temel gereksinimler
Parametreli döngüler, belirli türde koşullar gerektirir.
- Sayaç ve Boşluk Sınırları (ör. Ref.değişken, kenarlık 1 ve kenarlık 2) aynı veri türünde olmalıdır. Yalnızca segmentin başlangıç ve son değerleri ile orijinal değişken arasında uyumluluk varsa, sınırlar orijinal parametrenin veri türüne göre dönüştürüleceğinden program yanlış davranabilir.
- Parametre değerlerinin ait olması gereken veri türü bir tam sayı olmalıdır. Gerçek bir tip kullanmak kesinlikle tavsiye edilmez.
- Döngünün gövdesindeki out.variable parametresinin değerini zorla değiştirmek istenmeyen bir durumdur. Aksi takdirde, kullanıcı ortaya çıkan olası hataları hemen hemen takip edemez.
- Diğer döngü türlerinin aksine, For ... to ... do veya Çünkü… aşağıya… yapmak adım değişemez 1 dışında bir parametreye.
Turbo Pascal: Döngüden Nasıl Çıkılır
Genellikle içinde olduğu görevler vardır.döngü, yani kontrol edilen koşul her zaman doğrudur. Kesme prosedürü, ön koşul, son koşul, parametre ile döngülerin kırılmasına yardımcı olur. Yani, çalışmaları planlanandan önce sonlandırılır.
Pascal cinsinden parametrelere sahip çevrimler (programlamakoşulun "ebedi" gerçeğini varsayar) Devam kullanılarak durdurulabilir. Burada iş şu şekilde düzenlenir: mevcut yineleme, yürütmeyi planlanandan önce bitirir, kontrol bir sonraki komuta aktarılır, ancak döngüden çıkılmaz.
Çıkış prosedürü,program kodundaki bir veya daha fazla bloğun çalışmasını tamamlamak için. Bir prosedür (fonksiyon) içinde çağrılır ve aynı anda bu "parçanın" yürütülmesi hemen durur. Çıkış, programın ana bloğundaysa, o zaman çıkar.
Durdurma prosedürü, çalışma prensibini şu şekilde azaltır: programın çalışması tamamen sona erdirilir.
Çözümlü görev örnekleri
Konuyu inceledikten sonra kullanıcı için faydalı olacaktır."Pascal içinde parametreli döngüler" örnekleri önce çalışın, sonra kodu kendiniz yazma alıştırması yapın. Basit görevler, gelecekteki programcının teoriyi pratikte öğrenmesine ve ardından onu başarılı bir şekilde uygulamasına yardımcı olur. "Parametreli döngüler" konusunda, çözümlü problem örnekleri kolay ve karmaşık bulunabilir. İşte çalışma algoritmalarının analiz edildiği ve her çözüme açıklama ve yorumların verildiği 3 problem.
Problem 1
[0..199] aralığında rastgele seçilen iki boyutlu bir doğal sayı dizisi verildiğinde. Basamak toplamı 2'nin katı olan tüm iki basamaklı sayıların sayısını bulun.
Eylemlerin algoritması:
- İki boyutlu bir dizi oluşturun.
- Koşullara uygunluk için her numarayı kontrol edin:
a) 9 <X <100 ise, div kullanarak tamamen 10'a bölün;
b) mod ile bölerek sayının ikinci basamağını seçin;
c) vurgulanan numaraları ekleyin;
d) verilen miktarı mod ile 2'ye bölmek;
e) sonuç 0 ise, sayaç 1 artırılır.
Problem 2
Tek boyutlu bir tamsayı öğeleri dizisi verildiğinde. Pozitif sayıların sayısını bulun.
Eylemlerin algoritması:
- Randomize ile oluşturulmuş bir tamsayı öğeleri dizisi oluşturun.
- Belirtilen öğenin X> 0 koşuluyla uyumluluğunu kontrol edecek parametrenin bulunduğu döngüye koşullu bir IF ifadesi ekleyin.
- Koşul karşılanırsa, sayaç 1 artırılır.
- Döngüden sonra, ortaya çıkan sayaç değerini görüntüleyin.
Parantez içindeki veriler {}yorumlar. 11. satırda, diziyi ekranda iki şekilde görüntüleyebilirsiniz: sayılar arasında bir boşluk bırakın veya her öğe için belirli sayıda hücre ayırın (bu durumda, bunlardan 5 tane vardır).
12. satırda, sayaç değişkeni iki şekilde artırılabilir: önceki değere 1 ekleyin veya standart Inc. işlevini kullanın.
Sorun 3
Size bir kare matris verilir. Ana köşegendeki pozitif elemanların sayısını bulun.
Açıklamalar:
Bir sayı dizisinde, ana köşegen,sol üst köşeden sağ alta. Özelliği, satır ve sütun indekslerinin aynı olmasıdır. Bu nedenle, diğer öğelerin üzerinden geçmeden çizgiler arasında hareket etmek için 1 döngü düzenlemek yeterlidir.
Eylemlerin algoritması:
- Bir kare matris oluşturun.
- Pozitif elemanların sayılmasından sorumlu değişkeni "0" değerine ayarlayın.
- Kare matris oluşturmak için bir döngü oluşturun.
- Koşulu kontrol etmek için bir döngü düzenleyin: ana köşegendeki sayı> 0 ise, o zaman sayaç 1 artar.
- Döngünün bitiminden sonra, ekranda pozitif elemanların sayısını saklayan değişkenin değerini görüntüleyin.
İki programlama dilinin karşıtlığı: C ve Turbo Pascal
Kural olarak, kendine saygılı bir programcı bilirbirkaç dil. Örneğin, C ++, Turbo Pascal, Delphi, Java vb. Olabilir. İkisi arasındaki çatışma 80'lerde açıkça ifade edildi. (C ve turbo pascal). 20. yüzyılın sonunda C ++ ile Java arasında da aynı mücadele görüldü.
Üç düzine arasında sanal uzaydaMuhalefeti siber uzayın en büyük zihinlerini hayrete düşüren en parlak üç programlama dili çifti vardır: Algol-60 ve Fortran, Pascal ve C, Java ve C ++. Tabii ki, bu duygular özneldir, ancak zaman zaman çiftlerden biri liderdi. Bu, endüstrinin gereksinimleri ve belirli bir yazılım ürününe duyulan ihtiyaçtan kaynaklanıyordu. 70'lerde. Fortran dünyayı yönetiyordu, 80'lerde Turbo Pascal, 90'larda C ++. Tabii ki hiçbiri "ölmedi". Aksine, gelişmiş yazılım ürünlerine dönüştüler.
Programlama dillerini öğrenirken, bazı konularda sözdiziminin benzer olduğunu fark edeceksiniz. Bu nedenle, C'deki bir parametreye sahip döngüler, bazı noktalar haricinde, Pascal'daki benzer yapılara benzer.
İlginç bir şekilde, Turbo Pascal'ın geliştiricileri (EskiLight) Amerikalı bilim adamlarının gelişmelerinin sonuçlarını kullanırken, Yeni Dünya'da Avrupalı uzmanların araştırma sonuçlarını aktif olarak kullandılar. Avrupa'da, geliştiriciler programlama dillerinin temizliği ve kompaktlığı için daha fazla savunuculuk yapıyor ve Amerikan zihinleri kod yazmada yeni çıkmış eğilimleri kullanmaya daha meyilli.