Menü
Bedava
kayıt
ev  /  Eğitim/ Döngüler ve diğer kontroller. Yapılandırılmış programlama

Döngüler ve diğer kontroller. Yapılandırılmış programlama

Şube operatörü

Şube operatörü (koşullu dal), mantıksal koşullara bağlı olarak belirli program komutlarını yürütmenize izin verir. Visual Basic'te dal operatörü iki biçimde kullanılabilir: satır içi ve blok.

öğrenci kağıtlarının çevrimiçi değişimi">

örnek 1

Örneğin, eğer a > b O zaman max = a Else max = b.

Birden çok ifadenin yürütülmesi gerekiyorsa, bunlar iki nokta üst üste ile ayrılır.

Örnek 2

Örneğin, a > 0 ise, b = a + 1: c = a\2.

Blok sözdizimi daha güçlü, daha yapılandırılmış ve daha okunabilir.

Blok sözdizimi:

Koşul - bir değer alabilen mantıksal bir ifade Doğru(doğru), YANLIŞ(yanlış) veya Boş, şuna eşittir: YANLIŞ. Bir blok dal ifadesi yürütüldüğünde, koşul kontrol edilir ve eğer doğruysa, ifadeyi takip eden ifade yürütülür. O zamanlar. Koşul doğru değilse, kontrol edin durum2, arkadan gitmek ElseIf. Gerçek bir değer bulunduğunda, aşağıdaki true_statement2 yürütülür. O zamanlar, bundan sonra programdan çıkar EndIf(yani sonraki ElseIf varsa, kontrol edilmez). Bunun için gerçek koşullar ise ElseIf bulunamadı, deyim_false_condition yürütülür.

Şekil 3. Blok sözdizimi örneği. Author24 - öğrenci belgelerinin çevrimiçi değişimi

İfade seç

Vaka seçim beyanı test edilen ifadenin veya değişkenin değer kümesine bağlı olarak belirli ifadeleri yürütür. İfade sözdizimini seçin:

Şekil 4. Select ifadesinin sözdizimi. Author24 - öğrenci belgelerinin çevrimiçi değişimi

Değer, bir veya daha fazla koşula karşı test edilen bir değişken veya ifadedir. Değerler listesi virgülle ayrılmış olarak belirtilir, değer aralığı bir hizmet sözcüğü kullanılarak belirtilir İle(örneğin, 5 ila 9).

Örnek 3

Yıldaki ay sayısına göre, belirtilen ayın yılın hangi saatine ait olduğu hakkında bir mesaj görüntüleyin.

yapılandırılmış operatörler - bunlar diğer operatörlerin belirli kurallarına göre inşa edilmiş yapılardır. Yapılandırılmış ifadeler şunları içerir:

bileşik operatör

koşullu operatör

seçim operatörleri

Döngü ifadeleri

ifade ile

1. Bileşik operatör

kompozit Şebeke birbirinden noktalı virgülle ayrılmış ve başlangıç ​​ve bitiş operatör parantezleriyle sınırlandırılmış herhangi bir sayıdaki ifadeden oluşan bir gruptur.

Bileşik ifade biçimi:

başlamak<Оператор1>; ... ; <ОператорN>;

İçerdiği deyimlerin sayısına bakılmaksızın, bir bileşik deyim tek bir varlık olarak kabul edilir. Bileşik deyimin en yaygın kullanımı koşullu deyimler ve döngü deyimleridir.

Bileşik deyimler iç içe yerleştirilebilir ve bileşik deyimlerin iç içe geçme derinliği konusunda herhangi bir kısıtlama yoktur.

2. Koşullu operatör

koşullu Şebeke belirli ifadelerin belirli koşullara bağlı olarak yürütülmesini veya yürütülmemesini sağlar.

Koşullu ifade biçimi:

Eğer sonra<Оператор1> ;

Koşul, boole türünün bir ifadesidir. İfade şu şekilde çalışır: eğer koşul doğruysa (True değerine sahipse), o zaman deyim1 yürütülür, aksi takdirde deyim2 yürütülür. Her iki operatör de bileşik olabilir.

Koşullu bir ifade, kendisinden sonra başka bir kelime ve ifade2 olmadığında kısaltılmış olarak yazılabilir.

Dalları üç veya daha fazla yönde düzenlemek için iç içe geçmiş birkaç koşullu ifade kullanabilirsiniz. Bu durumda, her biri, kendisinden hemen önceki o zamana karşılık gelir. Olası hatalardan dolayı, koşullu ifadeleri yuvalamaktan büyük ölçüde kaçınmalısınız.

3. Operatör seçin

Şebeke tercih koşullu operatörün bir genellemesidir ve isteğe bağlı sayıda mevcut seçenek arasından seçim yapmanızı sağlar. Bu ifade, adı verilen bir ifadeden oluşur. seçici, bir seçenekler listesi ve koşullu ifadedekiyle aynı anlama sahip isteğe bağlı bir else dalı.

İfade biçimini seçin:

dava<Выражение-селектор>nın-nin

<Список1> : <Оператор1>;

<СписокN> : <ОператорN>

seçici ifade sıralı tipte olmalıdır. Her varyant, o varyantla ilişkili operatörden iki nokta üst üste ile ayrılmış bir sabitler listesidir. Seçim sabitlerinin listesi, birbirinden virgülle ayrılmış, isteğe bağlı sayıda değer ve aralıktan oluşur. Aralık sınırları ".." ile ayrılmış iki sabit olarak yazılır. Sabitlerin türü, seçici ifadesinin türüyle eşleşmelidir.

Select ifadesi aşağıdaki gibi yürütülür:

1. Seçici ifadesinin değeri değerlendirilir.

2. Seçici değerinin ilgili listenin aralıklarındaki sabitler ve değerlerle eşleşmesi için seçeneklerin sıralı bir incelemesi yapılır.

3. Bu arama bir sonraki varyant için başarılı olursa, bu varyantın operatörü yürütülür. Bundan sonra, select ifadesinin yürütülmesi sona erer.

4. Tüm kontroller başarısız olursa, else (varsa) kelimesinden sonraki ifade yürütülür.

Örnek.İfade seç

caseNumberDay of

1..5: strDay:= "İş günü";

6..7: strDay:= "İzin günü"

başka strDay:="";

Haftanın gün sayısını içeren NumberDay tamsayı değişkeninin değerine bağlı olarak, strDay dize değişkenine uygun değer atanır.

Bölüm 6. KONTROL YAPILARI Atama ifadesi Basit ve bileşik ifadeler Koşullu ifade Çoktan seçmeli ifade Ön koşullu döngü ifadesi Son koşullu döngü ifadesi Parametreli döngü ifadesi Koşulsuz atlama ifadesi ve prosedürleri


2 Böl. 6. KONTROL YAPILARI Atama operatörü Operatör, bir programdaki bazı eylemleri veya eylemler dizisini veriler üzerinde ayarlamaya hizmet eden bir programlama dili yapısıdır. Program operatörleri seti, içine gömülü algoritmayı uygular. Herhangi bir operatör bazı eylemleri ima eder. Bir değeri bir değişkene "itme" işlemine atama denir (ilk atamaya başlatma denir). Atama, özel bir yapı kullanılarak gerçekleştirilir - atama operatörü: değişken tanımlayıcı:=:= ifade Var W,H: Tamsayı; W:= 23; H:= 17; G:=G*H; son.


3 Böl. 6. KONTROL YAPILARI Basit ve bileşik ifadeler Ardışık iki ifade noktalı virgülle ayrılmalıdır (yani ifadenin sonu): a:= 11; b:= a * a; (a,b) yazın; Bileşik deyim, tek bir deyim olarak ele alınan bir dizi deyimdir. Başlangıç ​​ve bitiş ayrılmış sözcükleri kullanılarak oluşturulmuştur (operatör parantezleri). Bir programdaki operatör, bazı eylemleri gerçekleştiren bölünmez tek bir cümledir. Basit bir ifade başka ifadeler içermez (atama ifadesi, prosedür çağrısı, ...). a:= 11; b:= a * a; (a, b) sonu yaz;


5 sonra X'i başlatın:= X + 5; Y:= 1 end else Y:= -1; Koşullu operatör dalları programlamak için kullanılır, yani. " title="(!LANG:4 Ch. 6. KONTROL YAPILARI K > 5 ise koşullu ifade X:= X + 5 ile başlar; Y:= 1 ve aksi takdirde Y:= - belirli koşullar altında yürütülmesinin gerekli olduğu durumlar) 1 ; Koşullu operatör, dalları programlamak için kullanılır, yani belirli koşullar altında yürütmenin gerekli olduğu durumlar" class="link_thumb"> 4 !} 4 Böl. 6. KONTROL YAPILARI Koşullu ifade K > 5 ise X:= X + 5 ile başlar; Y:= 1 end else Y:= -1; Koşullu operatör dalları programlamak için kullanılır, yani. belirli koşullar altında çeşitli eylemleri gerçekleştirmenin gerekli olduğu durumlar. Koşullu ifadenin yapısı vardır: eğer mantıksal ifade o zaman ifade else ifadesi Dal başına sadece bir ifadeye izin verilir. 5 sonra X'i başlatın:= X + 5; Y:= 1 end else Y:= -1; Koşullu operatör dalları programlamak için kullanılır, yani. belirli koşullar altında "> 5'i yürütmenin gerekli olduğu durumlar, ardından X:= X + 5; Y:= 1 end else Y:= -1; Koşullu operatör, dalları programlamak için kullanılır, yani ihtiyaç ortaya çıktığında durumlar belirli koşullar altında farklı eylemler gerçekleştirin.Koşullu ifadenin yapısı vardır: eğer mantıksal ifade o zaman ifade else ifadesi Dal başına sadece bir ifadeye izin verilir."> 5 o zaman X:= X + 5; Y:= 1 end else Y:= -1; Koşullu operatör dalları programlamak için kullanılır, yani. " title="(!LANG:4 Ch. 6. KONTROL YAPILARI K > 5 ise koşullu ifade X:= X + 5 ile başlar; Y:= 1 ve aksi takdirde Y:= - belirli koşullar altında yürütülmesinin gerekli olduğu durumlar) 1 ; Koşullu operatör, dalları programlamak için kullanılır, yani belirli koşullar altında yürütmenin gerekli olduğu durumlar"> title="4 Böl. 6. KONTROL YAPILARI Koşullu ifade K > 5 ise X:= X + 5 ile başlar; Y:= 1 end else Y:= -1; Koşullu operatör dalları programlamak için kullanılır, yani. belirli koşullar altında gerçekleştirmenin gerekli olduğu durumlar"> !}




6 Böl. 6. KONTROL YAPILARI Çoktan Seçmeli Operatör Seçim operatörü, her biri bazı parametrelerin kendi değerlerine karşılık gelen eylemler için birkaç alternatif seçeneği uygulamak için kullanılır. sabit/aralık else deyimlerinin durum ifadesi: deyim end ; ve değeri, sıra türlerinden biri olmalıdır (LongInt dışında). Değere bağlı olarak, hesaplanan değere eşit bir seçim sabitinden önce gelen ifade seçilir (alternatif olarak, else'den sonra gelen ifadeler). Sabit değerler her sette benzersiz olmalıdır, yani. yalnızca bir varyantta görünebilirler.


7 Böl. 6. KONTROL YAPILARI (I: Word) 1: X:= X +1; 2.3: X:= X +2; 4..9: Write(X)'i başlat; X:= X + 3 (m.b. ";") bitiş (m.b. ";") başka X:= X * X; Writeln(X) (m.b. ";") sonu;


8 Böl. 6. KONTROL YAPILARI Döngü deyimi "While" (ön koşullu) while koşullu ifade do deyimi (döngü gövdesi) hizmet sözcüğünden sonra mantıksal koşul karşılanana kadar döngüsel olarak yürütülür, yani. değer True iken. Bir döngünün sona erme şansına sahip olması için, gövdesinin içeriği döngünün durumunu etkilemelidir. Koşul, döngü gövdesinin ilk yürütülmesinden önce tanımlanan geçerli ifadelerden ve değerlerden oluşmalıdır. VarF,N: LongInt;(hesaplama 10 Begin F:= 1; N:= 1; while N !}


9 Böl. 6. KONTROL YAPILARI Döngü ifadesi "Before" (sonkoşullu) Kelimeler arasındaki ifadeler döngünün gövdesini oluşturana kadar tekrar eder. Doğruysa, döngü sona erer. "While" döngüsü - "koşul doğruyken, gövdenin deyimlerini yürütün." Döngü "Önce" - "koşul doğru olana kadar döngünün gövdesini yürütün"; False'a kadar tekrarlayın; koşullu ifadeye kadar t operatörünü tekrarlayın;


10 Böl. 6. KONTROL YAPILARI Parametreli bir döngü operatörü (bir sayaç üzerinden döngü) sıralı tipte bir değişkendir, ve değerleri de aynı tipe ait olmalıdır. Değer, atıfta bulunduğu türdeki en yakın iki değer arasındaki aralığa (tamsayı türleri için, bu 1'dir, karakter türleri için, kodu 1 artırırken bir karakterden diğerine vb.). For döngüleri, iç içe döngülerden hiçbiri değişkenleri - dış döngülerin parametreleri - kullanmıyor veya değiştirmiyorsa, yuvalamaya izin verir. Belirli sayıda yapılması gereken "katı" döngüleri düzenlemek için kullanılır. r döngü parametresi için:= ifade 1'den ifade 2'ye kadar aşağı ifadeyi yapın


12 Böl. 6. KONTROL YAPILARI Koşulsuz Atlama Operatörü Programın herhangi bir yerinde operatörler arasında bir etiket görünebilir ve ikinci operatörden iki nokta üst üste ":" ile ayrılır. Koşulsuz atlama operatörlerinin kapsamı kesinlikle yerelleştirilmiştir. Goto deyiminde prosedürler arasında ve ayrıca ana blok ile prosedür arasında geçişler yasaktır. Koşulsuz şube operatörü, yürütme kontrolünü etiketle belirtilen programın yerine aktarır (yapılandırılmış programlama teorisi açısından "gereksizdir"). goto etiket Etiket işaretsiz tamsayı; Etiket Kimliği, Sözdizimi Diyagramları ve: LabelL1, L2; Başla... L1'e git;... L1: L2'ye git;... L2: Bitir.


13 Böl. 6. KONTROL YAPILARI Koşulsuz atlama prosedürleri Döngüsel yapılarla çalışırken yapısal olmayan kontrolün transferi için prosedürler: Break - herhangi bir türde bir döngüden bir çıkış uygular; Devam - döngü gövdesinin sonuna kadar kalan ifadeleri yok sayarak döngünün bir sonraki yinelemesine geçiş. Çıkış ve Durdurma prosedürleri, program bloklarından (prosedürler, fonksiyonlar, ana program bloğu) çıkmak için özel olarak tasarlanmıştır. Halt(), belirtilen çıkış kodunu işletim sistemine döndürerek programdan çıkar. Exit, alt programdan koşulsuz olarak çıkar. Prosedür ana blokta kullanılıyorsa, Halt ile aynı şekilde gerçekleştirilir.

Döngü deyimleri Döngü deyimleri, tekrarlanan hesaplamaları düzenlemek için kullanılır. Bir çevrimi organize etmek için çevrim parametresi veya çevrim kontrol değişkeni olarak adlandırılan bir değişkene ihtiyaç vardır. Herhangi bir döngü şunlardan oluşur: başlangıç ​​ayarları veya bir döngü parametresi başlatma bloğu; döngü gövdeleri, yani birkaç kez yürütülen ifadeler; döngü parametresi değiştirme bloğu; döngü gövdesinden önce yerleştirilebilen döngüden çıkış koşulunun kontrol edilmesi, daha sonra bir ön koşullu döngüden veya gövdeden sonra konuşulur ...


Çalışmaları sosyal ağlarda paylaşın

Bu çalışma size uymuyorsa sayfanın alt kısmında benzer çalışmaların listesi bulunmaktadır. Arama butonunu da kullanabilirsiniz


Konu 2 Kontrol ifadeleri

2.1 Temel Yapılandırılmış Programlama Yapıları

V programlama teorisiHerhangi bir karmaşıklıktaki bir problemi çözmek için bir programın sadece üç yapıdan oluşabileceği kanıtlanmıştır. takip et , dalla ve döngü yap . Arandılar temel yapılaryapılandırılmış programlama

Takip etme iki veya daha fazla ifadenin (basit veya bileşik) sıralı yürütülmesi olan bir yapı olarak adlandırılır.

dallanma bir koşulun yerine getirilmesine bağlı olarak bir veya başka bir operatörün yürütülmesini belirtir.

Döngü operatörün tekrarlanan yürütülmesini belirtir.

Temel yapıların bir özelliği, herhangi birinin yalnızca bir giriş ve bir çıkışa sahip olmasıdır, bu nedenle yapılar keyfi bir şekilde iç içe yerleştirilebilir.

Şekil 2.1 - Yapılandırılmış programlamanın temel yapıları

Temel yapıları kullanmanın amacı, basit bir yapıya sahip bir program elde etmektir. Böyle bir programın okunması, hatalarının ayıklanması ve gerekirse üzerinde değişiklik yapılması kolaydır.

Noktalı virgülle biten herhangi bir ifade, yürütülmesi ifadeyi değerlendirmek olan bir ifade olarak kabul edilir.

2.2 İlişkisel ve mantıksal işlemler

ilişki işlemleri(<, <=, >, >=, ==, !=) ilkini karşılaştırın ikinci ile işlenen. işlenenler aritmetik türde veya işaretçiler olabilir. İşlemin sonucu değerdir doğru ya da yanlış . Eşitlik ve eşitsizlik için karşılaştırma operatörleri, diğer karşılaştırma operatörlerinden daha düşük önceliğe sahiptir. Örneğin: x >=0, y != 10, z == 0.

DİKKAT! Eşitlik testi işlemi arasındaki farka dikkat edin (== ), bunun sonucu doğru ya da yanlış ve atama işlemi (= ) bu, sol işlenene atanan değerle sonuçlanır.

Boole işlemleri(&& , || , ^ ). işlenenler mantıksal işlemler VE (&& ), VEYA (|| ), ÖZEL VEYA (^ ) türe dönüştürülebilen bir tür olmalıdır bool , işlenenler ise bir operasyonda farklı tipler olabilir. İşlemin sonucu ise doğru ya da yanlış .

operasyon sonucu boole VE doğrudur yalnızca her iki işlenen de geçerliyse doğru . operasyon sonucu mantıksal VEYA doğrudur işlenenlerden en az birinin bir değeri varsa doğru . operasyon sonucumantıksal ÖZEL VEYA doğru işlenenlerden birinin bir değeri varsa true ve ikincisi false . mantıksal olumsuzlama ( !) bir değerle sonuçlanır işlenen doğruysa false , işlenen yanlışsa true . işlenen aritmetik tipte olabilir. Bu durumda, gerçekleştirirörtük dönüştürme bool yazmak . Mantıksal işlemler soldan sağa doğru yapılır. İlk işlenenin değeri işlemin sonucunu belirlemek için yeterliyse, ikinci işlenen işlenen değerlendirilmez.

AND, OR, EXCLUSIVE OR, NOT operasyonlarının sonuç tablosu

(A ve B işlenenlerdir)

A&B

Bir || B

A^B

Mantıksal işlemler içeren ifade örnekleri:

x > 0 && y<=10

(a< -1 && b >0) || c != 100

koşullu işlem(? :). Bu, içindeki tek c++ üçlü işlemi (üç işleneni vardır), biçimi şöyledir:

işlenen_1 ? işlenen_2: işlenen_3

işlenenler soldan sağa doğru hesaplanır. İlk işleneni değerlendirmenin sonucu, türe dönüştürülebilen bir tür olmalıdır. bool . sonuç ise doğru , o zaman tüm koşullu işlemin yürütülmesinin sonucu ikinci işlenenin değeri, aksi takdirde üçüncü işlenenin değeri olacaktır. Türleri farklı olabilir.

Örnek: Değeri aşmıyorsa bir tamsayı değerinin 1 artması istensin. n , aksi halde 1 değerini aldı. Bu, tek bir kod satırı ile yazılabilir:

ben = (ben< n) ? i + 1: 1;


2.3 Şube operatörleri. Koşullu if ifadesi

Koşullu if ifadesihesaplama sürecini iki yöne ayırmak için kullanılır. algoritma şeması operatör Şekil 2.1'de gösterilmiştir. Operatör formatı:

if (ifade) ifadesi_1; [ else deyimi_2;]

İlk olarak, aritmetik veya işaretçi türünde olabilen bir ifade değerlendirilir. Sıfıra eşit değilse, yani. eşittir doğru , ardından ilk ifade yürütülür, aksi takdirde ikinci ifade yürütülür. Bundan sonra kontrol, koşullu ifadeyi takip eden ifadeye aktarılır. Dallardan biri eksik olabilir.

Herhangi bir dalda birden fazla deyimin yürütülmesi gerekiyorsa, bunlar bir blok içine alınmalıdır. Bir blok, bildirimler ve diğer koşullu ifadeler dahil olmak üzere herhangi bir ifade içerebilir.

Örnekler:

Eğer bir< 0) b = 1;

Eğer bir< b && (a >gün|| bir == 0)))

B++;

Başka

( b *= a; a = 0;)

Eğer bir< b)

Eğer bir< c )

M = bir;

Başka

M = c;

Başka

eğer (b< c )

M = b;

Başka

m = c;

1. örnekte eksik dal Başka . Bu yapıya "ifade atlama" denir çünkü atama koşulun karşılanıp karşılanmadığına bağlı olarak yürütülür veya atlanır.

Birkaç koşulu kontrol etmeniz gerekiyorsa, bunlar işaretlerle birleştirilir.mantıksal işlemler. Örneğin, ifadeörnek 2'de a koşulu varsa doğru olur< b и одно из условий в скобках. Если опустить внутренние скобки, будет выполнено сначала логическое И, а потом – ИЛИ.

Örnek 3'teki operatör üç değişkenin en küçük değerini hesaplar.

Operatör sözdizimine göre Eğer şubelerinde birden fazla operatör bulunmamalıdır. Daha fazlası varsa, bunlar kullanılarak bir blokta birleştirilmelidirler. kıvırcık parantez veya ile "virgül" işlemleri (,).

Örnek. Ekranda gösterilen hedefe bir atış yapılır.şekil 3.2. Nokta sayısını belirleyin.

Şekil 3.2 - Hedef

#Dahil etmek

int ana()

yüzer x, y;

int sütun;

printf("\n Atış koordinatlarını girin ");

scanf("%f", &x);

Scanf("%f", &y);

(x * x + y * y ise)< 1)

Kol = 2;

Başka

(x*x + y*y ise)< 4)

sütun = 1;

Başka

sütun = 0;

printf ("\n Puan : %d", kol);

2.4 Şube operatörleri. Çoktan seçmeli operatör değiştirmek

geçiş ifadesihesaplama sürecini çeşitli yönlere ayırmaya yöneliktir. Operatör formatı:

geçiş (ifade)

Durum sabiti_ifadesi_1: operatörler 1;

Durum sabiti_ifadesi_2: ifadeler 2;

...

Durum sabiti_ifadesi_n: operatörler n;

İfadenin yürütülmesi ile başlarifade değerlendirmesi(bir tamsayı olmalıdır) ) ve ardından kontrol aktarılır dava -label - değeri hesaplananla çakışan sabit bir ifadeyle işaretlenmiş operatörler, bundan sonra çıkış durumunda diğer tüm dallar sırayla yürütülür. anahtarı açıkça belirtilmemiştir.

Tüm sabit ifadeler farklı değerlere sahip olmalı, ancak aynı olmalıdırtamsayı türü. Arka arkaya birden fazla etiket gelebilir. Eşleşme yoksa, kelimeden sonraki ifadeler yürütülür. varsayılan (ve yokluğunda, kontrol bir sonrakine aktarılır geçiş ifadesi).

eğer herhangi birinde dava -etiketler eksik operatör kırmak , ardından sonraki ifadeler dava -etiket vb. operatör bir yerde karşılaşana kadar kırmak.

Örnek (program 4 adım için en basit hesaplayıcıyı uygular):

#Dahil etmek

int ana()

int a, b, res;

karakter işlemi;

printf("\n 1. işleneni girin: ");

scanf("%d", &a);

printf("\n İşlemin işaretini girin: ");

scanf("%c", &op);

printf("\n 2. işleneni girin: ");

scanf("%d",&b);

bool f = doğru ;

Anahtar (çalışma)

Durum "+": res = a + b; kırmak;

Durum "-": res = a - b; kırmak;

Durum "*": res = a * b; kırmak;

Durum "/": res = a / b; kırmak;

varsayılan: printf ("\n Bilinmeyen işlem"); f = yanlış;

eğer (f)

printf("\n Sonuç: %d", res);

Çıkış anahtarı genellikle ifadelerle yapılır kırmak veya geri dönmek.

2.5 Döngü ifadeleri

Döngü ifadeleri tekrarlayan hesaplamaları düzenlemek için kullanılır.

Bir döngüyü organize etmek için bir değişkene ihtiyaç vardır. döngü parametresi veya döngü kontrol değişkeni. Her döngü şunlardan oluşur:

  • başlangıç ​​ayarları veya döngü parametresi başlatma bloğu;
  • döngü gövdesi , yani birkaç kez yürütülen ifadeler;
  • döngü parametresi değiştirme bloğu;
  • çıkış durumu kontrolü önce yerleştirilebilen döngüden döngü gövdesi (sonra bir döngü hakkında konuşunönkoşul ile) veya döngü gövdesinden sonra (sonkoşul ile döngü).

Şekil 3.3 - İki tür çevrim

Döngünün bir geçişi denir yineleme . Her birinde bir tamsayı ile değişen tamsayı döngü parametreleri yinelemeler denir döngü sayaçları.

Kontrolü döngünün dışından içine aktarmak imkansızdır. Döngüden çıkış, hem çıkış koşulu karşılandığında hem de ifadelerle mümkündür. kırmak, iade etmek veya koşulsuz atlama git.

2.6 Ön koşullu döngü (while)

Ön koşullu döngü algoritma şemasını uygular

while (ifade) ifadesi;

Örneğin:

İfade bir tekrar koşulunu tanımlar döngü gövdesi , basit veya bileşik bir operatörle temsil edilir. İfade 0 (doğru) değilse, döngü ifadesi yürütülür ve ardından ifade yeniden değerlendirilir. İlk testte ifade 0 (yanlış) ise, döngü hiçbir zaman çalışmayacaktır. İfadenin türü aritmetik veya dökülebilir olmalıdır.

fonksiyon değerleri y=x 2 +1 girilen aralıkta):

#Dahil etmek

int ana()

yüzer Xn, Xk, Dx;

batmadan yüzmek X=Xn; //ilk döngü ayarları

süre (X<= Xk) //проверка условия выхода

Printf("\n %5.2f %5.2f", X, X*X + 1); // gövde

X += Dx; //değişiklik

2.7 Son koşullu döngü (do while)

Sonkoşullu döngü algoritma şemasını uygular aşağıda ve benziyor:

ifade sırasında ifade yapmak;

İlk olarak, basit veyabileşik operatör, döngünün gövdesidir ve ardından ifade değerlendirilir. 0'a (doğru) eşit değilse, döngü gövdesi yeniden yürütülür ve bu, ifade sıfıra (yanlış) eşit olana veya döngü gövdesinde bir eylem yürütülene kadar devam eder.transfer operatörü. İfadenin türü aritmetik veya dökülebilir olmalıdır.

Örnek (program giriş doğrulamasını gerçekleştirir):

#Dahil etmek

int ana()

cevap;

printf ("\ n Bir fil satın alın!");

scanf("%c" , &cevap) ;

while (cevap != "y");

2.8 for döngüsü

döngü için aşağıdaki algoritma şemasını uygular ve şu şekle sahiptir:

için (başlatma bloğu; durum kontrol bloğu; değişiklik bloğu)

Döngü gövdesi;

Örnek :

başlatma bloğudöngüde kullanılan değerleri bildirmek ve bunlara başlangıç ​​değerleri atamak için kullanılır. Bu bölümde, virgülle ayırarak birkaç ifade yazabilirsiniz.

Durum kontrol bloğudöngü yürütme koşulunu tanımlar: 0'a (doğru) eşit değilse, döngü yürütülür.

değişiklik bloğuher birinden sonra gerçekleştirilen yinelemeler çevrim ve genellikle çevrim parametrelerini değiştirmek için kullanılır. Değişiklik kısmında virgülle ayırarak birkaç operatör yazabilirsiniz.

Basit veya bileşikŞebeke temsil etmek döngü gövdesi . Operatörün herhangi bir parçası için atlanabilir (ancak noktalı virgüller yerinde bırakılmalıdır!). Herhangi bir bölümde "virgül" işlemini (sıralı hesaplama) kullanabilirsiniz, örneğin:

for (int i = 1, s = 0; ben<= 100; i++)

S += ben; // 1'den 100'e kadar olan sayıların toplamı

Örnek (program bir tablo yazdırırfonksiyon değerleri y=x2 Girilen aralıkta +1):

#Dahil etmek

int ana()

yüzer Xn, Xk, Dx;

printf("Argümanın aralığını ve artışını girin: ");

scanf("%f%f%f", &Xn, &Xk, &Dx);

için (şamandıra X = Xn; X<= Xk; X += Dx)

Printf("\n %5.2f %5.2f", X, X*X + 1);

2.9 İç İçe Döngüler

Döngü deyimlerinin her biri, herhangi bir sırayla herhangi bir diğerinin içine yerleştirilebilir. Döngülerin iç içe geçme derinliği sınırlı değildir. Sadece çözülmekte olan problemin algoritması tarafından belirlenir.

Aşağıda iç içe döngülere bir örnek verilmiştir için

Bu program parçası aşağıdaki gibi çalışır. Dış döngünün bir parametre değeri için ben (ör. ben = 1 ) iç döngü parametresi J minimumdan maksimum değere (1'den m ). Sadece bu parametreden sonra Bence bir artar. Böylece, döngünün gövdesi yürütülecek N*M kez.

İç içe döngülerin diğer çeşitleri de benzer şekilde çalışır: dış döngünün parametresi yavaş, içteki ise hızlı değişir. Bunları kendi başınıza öğrenmeniz önerilir. Bunu yapmak için, döngü gövdesi bloğu yerine iç döngü algoritmasının şeması bütünüyle eklenmelidir.

2.10 Kontrol transfer ifadeleri

C++'da Hesaplamaların gerçekleştirildiği doğal sırayı değiştiren beş operatör vardır:

  • döngü çıkış ifadesi ve geçiş molası;
  • atlama operatörü devam döngüsünün bir sonraki yinelemesine;
  • işlev dönüş ifadesi dönüş;
  • Şebeke koşulsuz atlama git;
  • istisna atma operatörü atmak .

çıkış ifadesi sonu hemen sonlandırmak için kullanılır döngü veya anahtar ifadesi . Yürütme, tamamlanan ifadeden sonra bir sonraki ifadeye aktarılır.

Bir örnekle kullanımına bir göz atalım.yinelemeli döngüyü aç için . 1'den 100'e kadar sayıların toplamını hesaplama örneğini kullanma.

int i = 1, toplam = 0;

için (; ;)

Eğer(i > 100) kırılırsa;

toplam += ben ;

ben++;

Sonraki yineleme operatörüne atla döngüye devam et sonuna kadar kalan tüm ifadeleri atlar döngü gövdesi , ve döngü parametrelerini değiştirmek için kontrolü aktarır (bir döngü durumunda için ) ve bir sonrakinin başlangıcı yinelemeler.

Toplamı hesaplama örneğinde kullanımını düşünün 1 / x ise x [-5, 5] aralığında değişir.

#Dahil etmek

int ana()

kayan nokta X, Toplam = 0;

for(X=-5; X<= 5; X++)

Eğer(X == 0)

devam et;

Toplam = Toplam + 1/X;

Printf("\n Toplam = %f", Toplam);

İşlev dönüş ifadesi dönüş işlevin yürütülmesini sonlandırır ve kontrolü çağrı noktasına aktarır. Özellikleri ile birlikte ilgili başlıkta ele alacağız.

Koşulsuz atlama operatörü goto şu biçime sahiptir:

etikete git;

Aynı işlevin gövdesi, formun tam olarak bir yapısını içermelidir:

etiket: operatör;

ifadeye git kontrolü etiketli operatöre aktarır. Etiket normal bir tanımlayıcıdır,dürbünbu, vücudunda meydana geldiği işlevdir.

kullanım koşulsuz atlama operatörüiki durumda haklı:

  • program metninden birkaç tanesinden zorla çıkmakİç içe geçmiş döngülerveya anahtarlar;
  • işlevin birkaç yerinden birine geçiş yapın (örneğin, işlevden çıkmadan önce her zaman bir işlem yapmanız gerekiyorsa).

Diğer durumlarda, herhangi bir algoritma yazmak için daha uygun araçlar vardır.

İstisna(veya sadece bir istisna ) operatör kullanılarak programcı tarafından oluşturulur atmak veya çalışma zamanının kendisi. Bu, programın yürütülmesi sırasında sıfıra bölme veya sıfıra bölme gibi bir tür hata oluştuğunda meydana gelir. taşma. mekanizma istisna işlemeUygulanan C++ , bu tür hatalara tepki vermenizi ve böylece programın çökmesini önlemenizi sağlar. Başka bir başlıkta tartışılacaktır.

İlginizi çekebilecek diğer ilgili çalışmalar.vshm>

2784. Koşul ve Seçim Operatörleri 16KB
Eğer koşul operatörü. Bu nedenle, aşağıdaki atama ifadelerini zaten yazabilirsiniz: Koren:=Sqrtxy; Modül:=bsxy. Pascal'da bu tür koşullu atlamaları uygulamak için If ve Else operatörlerinin yanı sıra Goto koşulsuz atlama operatörü kullanılır. If ifadesini düşünün.
2750. Write ve WriteLn ifadeleri 12.34KB
İngilizce yaz WriteLn operatörü aynı eylemi gerçekleştirir, ancak İngilizce ile biten bir Ln satırı da olduğundan. Genel görünüm: İfadelerin listesi WriteLn İfadelerin listesi Write ve WriteLn prosedürleri yalnızca sonucu görüntülemek için değil, aynı zamanda çeşitli mesajları veya sorguları görüntülemek için de kullanılır.
6706. Yapılandırılmış Sorgu Dili - SQL: tarihçe, standartlar, temel dil operatörleri 12.1KB
Yapılandırılmış Sorgu Dili SQL, değişken tanımlama gruplarıyla ilişkisel hesaplamaya dayanır. SQL dili, tablolar üzerinde, oluşturma, silme, yapı değiştirme ve tablo verileri üzerinde, seçme, değiştirme, ekleme ve silme işlemlerini ve bazı ilgili işlemleri gerçekleştirmek için tasarlanmıştır. SQL, prosedürel olmayan bir dildir ve G/Ç alt rutinlerini vb. düzenlemek için kontrol ifadeleri içermez.

En basit yapı aşağıdaki gibidir. Şu şekilde temsil edilebilir:

"a" ve "c" modülleri, hem bir ifadeyi hem de birbiri ardına gelen herhangi bir sayıda yapıyı içerebilir. ve aşağıda tartışılmıştır.

Çatal yapısı (if-then-else), algoritmayı yürütmenin iki olası yolundan birini seçmeye yarar. Doğrulama onun temelidir. Çatal şöyle görünür:

IF-THEN-ELSE yapıları örneğin bu şekilde iç içe yerleştirilebilir.

İç içe yapıların sayısı, PC'nin yetenekleri ve üzerine kurulu yazılım ile sınırlıdır. Bu sayı genellikle dilin açıklamasında belirtilir. Blok diyagramın okunabilirliğini sağlamak için iç içe yapılar dikdörtgenlerle değiştirilebilir ve her bir dikdörtgenin blok diyagramı ayrı bir sayfada ayrıntılı olarak gösterilir. Genel olarak, herhangi bir akış şeması veya program, tamamen tek bir sayfaya yerleştirilirse daha iyi okunur.

Son blok şemada gösterilen yapı, üç yoldan birini seçmenize izin verir. Benzer şekilde, iç içe yapıları kullanarak, herhangi bir sayıdaki yoldan birinin seçimini düzenleyebilirsiniz. Buna ihtiyaç oldukça sık görüldüğünden, özel bir yapı getirildi - buna benzeyen bir seçim

Burada, "P" sembolü, olası yollardan hangisinin seçildiğinin yerine getirilmesine bağlı olarak hala koşulu belirtir.

Algoritma geliştirirken, herhangi bir işlemi veya işlem grubunu tekrarlamak genellikle son derece önemli hale gelir. Algoritmanın bu tür parçalarını görüntülemek için özel yapılar sağlanır - döngüler. Üç tür Οʜᴎ vardır: güle güle döngüsü, do-döngüsü ve karşı döngü. Döngünün çalışması aşağıdaki blok diyagramda gösterilmiştir.

Genellikle döngü gövdesi olarak adlandırılan ifade bloğunun ilk çalıştırılmasından önce, "P" koşulu kontrol edilir ve eğer doğruysa, döngü gövdesi yürütülür ve kontrol döngünün başına döndürülür. Ardından koşul tekrar kontrol edilir ve bu, döngü koşulu yanlış olana kadar devam eder. Bu durumda döngü sonlandırılır. Koşul karşılandığı sürece yürütülür.

Do döngüsü farklı şekilde düzenlenmiştir.

Döngü koşulunun doğruluğunun doğrulanması, döngü gövdesinin yürütülmesinden sonra gerçekleştirilir ve koşul doğru olduğunda ondan çıkış gerçekleştirilir. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, döngü gövdesi her zaman bir kez yürütülür, aksine hoşçakal, döngü koşulu karşılanmazsa asla yürütülmez.

Üçüncü döngü türü, karşı döngüdür. Döngü gövdesini belirli sayıda tekrarlamanın son derece önemli olduğu durumlarda kullanılır. Yapısı aşağıdaki blok diyagram ile gösterilebilir.

Ondan bu döngünün özel bir durum olduğu görülebilir. hoşçakal, ancak bu durum yaygın olduğu için, programlama dillerinde, özellikle VBA'da, sayaçlı bir döngüyü tanımlamak için özel bir operatör tanıtıldı.
ref.rf'de barındırılıyor
Bu nedenle bu döngü için özel bir yapı tahsis ettik.

Örnek olarak, N sayıdan oluşan bir tabloda maksimum öğeyi bulmak için bir akış şeması düşünün.

Burada Max maksimum sayıdır, i sayılar tablosundaki sayının sayısıdır X, N tablonun boyutudur. Akış şeması aşağıdaki yapısal yapıları içerir: takip, kontrol edilen sayının sayısı tablonun boyutundan küçük veya ona eşit olana kadar yürütülen bir while döngüsü ve atamayı içeren yolun seçildiği bir çatal tablodaki geçerli sayının Maks değişkenine, bu durumda, bu değişken geçerli sayıdan küçükse.

Temel kontrol yapıları - kavram ve türleri. "Ana yönetim yapıları" kategorisinin sınıflandırılması ve özellikleri 2017, 2018.