Turbo Pascal, men inte världens favoriten applikation för programmering, men skaparna som tar de första stegen i skrivprogramvara börjar bekanta sig med den här miljön. Det ger en uppfattning om förgreningar, operatörer, funktioner och procedurer, liksom många andra saker. När du till exempel studerar en programmerare kommer du att stöta på cykler i Turbo Pascal: Under, För och Repetera.
Konceptet av cykeln och dess sorter
En cykel kallas en repetitiv handling. Denna miljö använder:
- med parametern (For ... to ... do);
- med en förutsättning (Medan ... gör);
- med en postcondition (Upprepa ... tills).
Den första typen används när den är känd i förväghur många steg för att lösa problemet. Det finns dock ett antal uppgifter när det inte finns någon information om hur många gånger vissa åtgärder kommer att upprepas. I det här fallet blir slingan oumbärlig i Pascal While, precis som Repeat, i princip.
Cykelstruktur
Vad är kärnan i att arbeta i Pascal While, Foroch upprepa loopar? Sådana konstruktioner har en separat rubrik och kaross. Den första komponenten specificerar variablerna som kommer att "fungera", specificerar villkoren för att kontrollera sanningen, perioden tills kroppen kommer att köras. Den andra komponenten innehåller uttryck som ska användas om villkoret är uppfyllt, det vill säga sant, inte falskt.
När iteration görs på sista radenkod, sedan går det tillbaka till rubriken där villkoret kontrolleras. Om det är sant upprepas operationerna och om villkoret inte är uppfyllt "avslutar" programmet slingan och utför ytterligare operationer.
While-slingan ser ut så här. Pascal ABC och liknande program kräver att du skriver kod så här:
- Medan Skick do;
- Börja;
- Loop kropp;
- Slutet.
Om 1 uttalande (1 åtgärd) kommer att utföras i slingans kropp, kan början ... slut parenteser utelämnas.
Loop blockdiagram
Turbo Pascal While har följande funktioner:
- komplexa förhållanden kan användas inuti strukturen;
- det bör inte finnas något semikolon efter ordet do (detta anses vara ett misstag i Turbo Pascal och Pascal ABC);
- en variabel, konstant eller uttryck som fungerar som utdata för deras subrutin när ett falskt svar tas emot måste vara av boolesk typ, det vill säga boolesk.
Följande är ett blockschema över denna typ av cykel. Den visar sekvensen av åtgärder.
Cykelarbetsalgoritm
I de enklaste programmeringsmiljöerna, inklusive Pascal ABC, fungerar While-slingan enligt följande princip:
- givna iterationer, d.v.s. upprepningar, kommer att köras så många gånger så länge som villkoret är sant;
- så snart villkoret inte är uppfyllt och ger svaret Falskt (eller på annat sätt ”Falskt”) lämnar operatören slingan;
- så snart detta hände "gick" programmet till de konstruktioner som är efter cykeln.
Detta är en signifikant skillnad mellan While och Repeat, det vill säga en loop med en förutsättning från en postcondition.
Det är mycket viktigt att ge en finaländra den angivna variabeln i While-rubriken. Hur som helst måste det någon gång komma en situation som ger värdet Falskt. Annars kommer en slinga att inträffa och sedan måste du använda ytterligare åtgärder för att lämna kompilatorn. Sådana misstag anses vara grova och oförlåtliga.
Hur avslutar jag programmet under en loop?
Ofta uppstår en situation när operatörenMedan Pascal genererar en slinga i den skrivna programkoden. Vad betyder det här? Iterationen upprepas oändligt många gånger eftersom villkoret alltid är sant. Här är till exempel ett programavsnitt:
- Medan 2> 1 gör;
- Skriv (1).
I det här fallet, för att avbryta uppgiften, tryck bara på CTRL + F2.
Det finns ytterligare två sätt att kontrollera dettaprogrambeteende. Till exempel, om du skriver Fortsätt in i koden, som överför kontrollen till början av loopstrukturen (här övervakas looputgångsförhållandet, det vill säga, körningen av den aktuella iterationen avbryts). Kontroll skickas sedan i While-slingan till föregående kontroll.
Break-uttalandet kan avbryta genomförandet av alltloop och överför kontrollen till nästa iteration. Utgången från strukturen kommer inte att övervakas här. Bilden visar exempel på hur dessa operatörer används.
Lösa problem
Låt oss se While-slingan i aktion. Pascal erbjuder att lösa de mest olika problemen. Låt oss dröja på det enklaste för nu för att förstå driftsprincipen. Löste uppgifter i Pascal ABC-programmet. Men det kommer också att finnas bilder av den klassiska Turbo Pascal-miljön för jämförelse.
Övning 1: givet funktionen Y = 5-X ^ 2/2. Skapa en värdetabell med steget sh = 0,5 i intervallet [-5; 5].
Handlingens algoritm:
- ställa in X-variabeln till ett initialvärde på -5 (det vill säga början av intervallet);
- beräkna värdet på Y tills variabeln x når slutet av det angivna segmentet;
- visa funktionens värden och abscissa (X);
- öka X med ett givet steg.
Så här ser koden ut i Pascal ABC.
Hur koden ser ut i Turbo Pascal. Bilden nedan illustrerar detta.
Uppgift 2: ges en matris A, bestående av positiva heltal ochnegativa siffror. Den innehåller 10 element. Det är nödvändigt att bilda en matris B, som visar de positiva elementen i matrisen A med ett jämnt index. Visa summan av kvadrater i numret från den nya matrisen.
Handlingens algoritm:
- Det är nödvändigt att skriva en subrutin som "fungerar" endast med element i array A som har ett jämnt index. I slingan kommer värdet på variabeln som är ansvarig för indexets paritet att öka med 2.
- Om ett tal med ett jämnt index från matris Amotsvarar villkoret x> 0, då ökas räknarelementens räknare med 1. Det aktuella värdet för räknervariabeln är indexet för det kopierade numret i matrisen B.
- Till en början tilldelas den variabla summan, som är ansvarig för att hitta summan av kvadrater med positiva tal, 0. Därefter kommer operationen att utföras: det nya värdet på kvadraten läggs till den tidigare summan.
- Var inte rädd om inte alla positivasiffror passerade från en matris till en annan. Du måste vara försiktig. Många nybörjare programmerare skriver om koden i panik. Du bör noggrant studera tillståndet: positiva tal som finns på jämna "platser", det vill säga att ha index som är multiplar av 2.
Manuell spårning är nödvändig för att säkerställa att beräkningarna är korrekta. Ibland kan du med den här metoden identifiera fel som inte fångar ditt öga under en rutinkontroll av skriven kod.
Om du utför manuella beräkningar kan du se till att detatt programmet fungerar korrekt. Detta antyder i sin tur att algoritmen för att skapa koden är korrekt, åtgärdssekvensen leder till ett logiskt slut.