Turbo Pascal, men ikke verdens favorittet program for programmering, men skaperne som tar de første skrittene i skriftlig programvare, begynner å bli kjent med dette bestemte miljøet. Den gir en ide om forgreninger, operatører, funksjoner og prosedyrer, så vel som mange andre ting. For eksempel når du studerer en programmerer, møtes sykluser i Turbo Pascal: Mens, For og Gjenta.
Konseptet av syklusen og dets varianter
Syklusen kalles gjentatte handlinger. I dette miljøet brukes:
- med parameteren (For ... til ... gjør);
- med en forutsetning (mens ... gjør);
- med postcondition (Gjenta ... til).
Den første typen brukes når den er kjent på forhåndhvor mange trinn for å løse problemet. Det er imidlertid en rekke oppgaver når det ikke er informasjon om hvor mange ganger bestemte handlinger vil bli gjentatt. I dette tilfellet blir sløyfen uunnværlig i Pascal While, akkurat som Repeat, i prinsippet.
Syklusstruktur
Hva er essensen av å jobbe i Pascal While, Forog gjenta løkker? Slike konstruksjoner har en egen overskrift og hoveddel. Den første komponenten spesifiserer variablene som vil "fungere", spesifiser betingelsene for å kontrollere sannheten, perioden til kroppen vil bli henrettet. Den andre komponenten inneholder uttrykk som skal brukes hvis vilkåret er oppfylt, det vil si sant, ikke falskt.
Når iterasjon er gjort på siste linjekoden, så går den tilbake til overskriften der tilstanden blir sjekket. Hvis det er sant, gjentas operasjonene, og hvis betingelsen ikke er oppfylt, "avslutter" programmet sløyfen og utfører ytterligere operasjoner.
While-sløyfen ser slik ut. Pascal ABC og lignende programmer krever å skrive kode slik:
- Samtidig som Tilstand gjøre;
- Begynne;
- Loop kropp;
- Slutt.
Hvis en setning (1 handling) vil bli utført i kroppen av sløyfen, kan begynnelsen ... slutt parenteser utelates.
Sløyfeblokkdiagram
Turbo Pascal While har følgende funksjoner:
- komplekse forhold kan brukes inne i strukturen;
- det skal ikke være noe semikolon etter ordet do (dette regnes som en feil i Turbo Pascal og Pascal ABC);
- en variabel, konstant eller et uttrykk som fungerer som utdata fra deres underrutine når et falskt svar mottas, må være av boolsk type, det vil si boolsk.
Følgende er et blokkskjema av denne typen syklus. Den viser rekkefølgen av handlinger.
Syklusarbeidsalgoritme
I de enkleste programmeringsmiljøene, inkludert Pascal ABC, fungerer While-sløyfen i henhold til følgende prinsipp:
- gitte iterasjoner, dvs. repetisjoner, vil løpe så mange ganger så lenge tilstanden er sant;
- så snart betingelsen ikke er oppfylt og gir svaret Falsk (eller på annen måte “Falsk”), går operatøren ut av sløyfen;
- så snart dette skjedde, "gikk" programmet til konstruksjonene som står etter syklusen.
Dette er en signifikant forskjell mellom Mens og Gjenta, det vil si en løkke med en forutsetning fra en posttilstand.
Det er veldig viktig å gi en finaleendre den spesifiserte variabelen i While-overskriften. I alle fall må det en gang være en situasjon som gir verdien False. Ellers vil det oppstå en sløyfe, og da må du bruke ytterligere tiltak for å avslutte kompilatoren. Slike feil anses som grove og utilgivelige.
Hvordan avslutter jeg programmet under en loop?
Ofte oppst
- Mens 2> 1 gjør;
- Skriv (1).
I dette tilfellet er det bare å trykke CTRL + F2 for å avbryte oppgaven.
Det er to måter å kontrollere dette påprogramatferd. For eksempel, hvis du skriver Fortsett inn i koden, som vil overføre kontrollen til begynnelsen av sløyfestrukturen (her overvåkes sløyfeutgangstilstanden, dvs. utførelsen av gjeldende iterasjon blir avbrutt). Deretter overføres kontrollen i While-sløyfen til forrige sjekk.
Break-uttalelsen er i stand til å avbryte gjennomføringen av altloop og overfør kontrollen til neste iterasjon. Utgangen fra strukturen vil ikke bli overvåket her. Bildet viser eksempler på bruk av disse operatørene.
Løser problemer
La oss se While-løkken i aksjon. Pascal tilbyr å løse de mest forskjellige problemene. La oss dvele ved det enkleste for nå for å forstå driftsprinsippet. Løste oppgaver i Pascal ABC-programmet. Men det vil også være bilder av det klassiske Turbo Pascal-miljøet for sammenligning.
Øvelse 1: gitt funksjonen Y = 5-X ^ 2/2. Lag en verditabell med trinnet sh = 0,5 i intervallet [-5; 5].
Handlingens algoritme:
- sett X-variabelen til en startverdi på -5 (det vil si begynnelsen på intervallet);
- beregne verdien av Y til variabelen x når slutten av det spesifiserte segmentet;
- vise verdiene til funksjonen og abscissen (X);
- øke X med et gitt trinn.
Slik ser koden ut i Pascal ABC.
Hvordan koden ser ut i Turbo Pascal. Bildet nedenfor illustrerer dette.
Oppgave 2: gitt en matrise A, bestående av positive heltall ognegative tall. Den inneholder 10 elementer. Det er nødvendig å danne en matrise B, som viser de positive elementene i matrisen A med en jevn indeks. Vis summen av kvadrater i tallet fra den nye matrisen.
Handlingens algoritme:
- Det er nødvendig å skrive en underrutine som bare vil "fungere" med elementer i matrise A som har en jevn indeks. I løkken øker verdien av variabelen som er ansvarlig for indeksens paritet med 2.
- Hvis et tall med en jevn indeks fra matrise Atilsvarer tilstanden x> 0, så øker telleren til matriseelementer med 1. Den nåværende verdien av tellervariabelen vil være indeksen til det kopierte tallet i matrise B.
- Opprinnelig tildeles den variable summen, som er ansvarlig for å finne summen av kvadrater med positive tall, 0. Deretter vil operasjonen bli utført: den nye verdien av kvadratet legges til forrige sum.
- Ikke vær redd hvis ikke alle positivetall overført fra en matrise til en annen. Du må være forsiktig. Mange nybegynnere programmerer skriver om koden i panikk. Du bør nøye studere tilstanden: positive tall som er til og med "steder", det vil si å ha indekser som er multipler av 2.
Manuell sporing er viktig for å sikre at beregningene er riktige. Noen ganger, ved hjelp av denne metoden, kan du identifisere feil som ikke fanger oppmerksomheten din under en rutinemessig sjekk av den skrevne koden.
Hvis du utfører manuelle beregninger, kan du sørge for detat programmet fungerer som det skal. Dette antyder i sin tur at algoritmen for å opprette koden er riktig, sekvens av handlinger fører til en logisk slutt.