/ / Turbo Pascal. Mens ... gør - forudsætningsløkke

Turbo Pascal. Mens ... gør - forudsætningsløkke

Turbo Pascal, men ikke verdens favoriten ansøgning til programmering, men skaberne, der tager de første skridt i skriftlig software, begynder deres bekendtskab med dette særlige miljø. Det giver en ide om forgreninger, operatører, funktioner og procedurer, såvel som mange andre ting. For eksempel, når man studerer en programmør, står overfor cykler i Turbo Pascal: Mens, For og Gentag.

pascal mens

Konceptet af cyklen og dens sorter

Cyklen hedder gentagne handlinger. I dette miljø anvendes:

  • med parameteren (For ... til ... gør);
  • med en forudsætning (mens ... gør);
  • med postcondition (gentag ... indtil).

Den første type bruges, når den er kendt på forhåndhvor mange trin i løsningen af ​​problemet. Der er dog en række opgaver, når der ikke er oplysninger om hvor mange gange bestemte handlinger vil blive gentaget. I dette tilfælde, i Pascal Mens cyklen bliver uundværlig, som i princippet og Gentag.

Cykelstruktur

Hvad er essensen af ​​arbejdet i Pascal While, Forog gentag cyklusser? Disse strukturer allokerer titel og krop. Den første komponent angiver de variabler, der vil "arbejde", sæt betingelserne for at verificere sandheden, den periode, indtil hvilken kroppen vil blive udført. Den anden komponent indeholder udtryk, som skal bruges, når betingelsen er opfyldt, det vil sige sandt og ikke falsk.

Når iteration udføres på den sidste linjekode, så vender den tilbage til overskriften, hvor tilstanden er markeret. I tilfælde af sandhed gentages operationerne, og i tilfælde af manglende opfyldelse af tilstanden afslutter programmet "fra" cyklusen og udfører yderligere operationer.

Mens løkken ser sådan ud. Pascal ABC og lignende programmer kræver, at du skriver en sådan kode:

  • mens tilstand gøre;
  • Begynd;
  • Cyklus krop;
  • End.

Hvis 1 sætning (1 handling) i loopens krop udføres, så kan "parenteserne" begynde ... ende udelades.

Cykelblokdiagram

Turbo Pascal While har følgende funktioner:

  • inde i strukturen kan vanskelige forhold anvendes
  • Efter ordet skal der ikke være et semikolon (dette betragtes som en fejl i Turbo Pascal og Pascal ABC);
  • En variabel, konstant eller udtryk, der, når det falske svar modtages af output fra deres subrutine, skal være af en logisk type, dvs. Boolean

Det følgende er blokdiagrammet for denne type cyklus. Det viser rækkefølgen af ​​handlinger.

pascal abc mens

Cyklusalgoritme

I de enkleste programmeringsmiljøer, herunder Pascal ABC, Mens cyklen fungerer i henhold til følgende princip:

  • givet iterationer, dvs. gentagelser, vil blive udført så mange gange som betingelsen er sand (sand);
  • så snart betingelsen ikke er opfyldt, og svaret er falsk (eller ellers "falsk"), forlader operatøren sløjfen;
  • så snart dette skete, gik programmet "til" de strukturer, der stod efter cyklen.

Dette er en signifikant forskel mellem Mens og Gentag, det vil sige en cyklus med en forudsætning og en postkondition.

Det er meget vigtigt at inkludere en endelig i linsens kropSkift den angivne variabel i Mens overskrift. Under alle omstændigheder bør en situation med falsk værdi komme engang. Ellers vil der være en looping, og så skal du bruge yderligere foranstaltninger for at afslutte kompilatoren. Sådanne fejl betragtes som grove og uforgivelige.

Sådan afslutter du programmet under looping?

Ofte opstår der en situation, når operatørenMens Pascal giver en loop i skriftlig programkode. Hvad betyder dette? Iterationen gentager et uendeligt antal gange, da betingelsen altid er sand. Her er f.eks. Et fragment af programmet:

  • Mens 2> 1 gør;
  • Skriv (1).

I dette tilfælde, for at afbryde udførelsen af ​​opgaven, skal du bare trykke på CTRL + F2.

Der er 2 flere måder at kontrollere dette på.programadfærd. For eksempel, hvis du indtaster i koden Fortsæt, som overfører kontrollen til begyndelsen af ​​den cykliske konstruktion (her er tilstanden for udgang af sløjfen styret, dvs. den aktuelle iteration vil blive afbrudt). Derefter styres kontrollen i en While-loop til den forrige kontrol.

Оператор Break способен прервать выполнение всего loop og bestå kontrol til næste iteration. Her vil udgangen fra strukturen ikke blive styret. Billedet viser eksempler på brugen af ​​disse operatører.

mens pascal erklæring

Problemløsning

Overvej While loop i aktion.Pascal tilbyder at løse en række opgaver. Lad os dvæle på den enkleste for at forstå princippet om drift. Løste opgaver i programmet Pascal ABC. Men billeder af det klassiske Turbo Pascal-miljø vil blive præsenteret for sammenligning.

Opgave 1: givet funktion Y = 5-X ^ 2/2. Lav en tabel med værdier med sh = 0,5 i intervallet [-5; 5].

Algoritme for handlinger:

  • indstil variabel X til en begyndelsesværdi på -5 (dvs. begyndelsen af ​​spalten);
  • beregne værdien af ​​y indtil variablen x når slutningen af ​​det angivne segment
  • vis funktionen og abscisseværdierne (X);
  • stig X ved det givne trin.

Sådan ser koden i Pascal ABC ud.

mens pascal opgaver

Hvordan går koden i programmet Turbo Pascal. Billedet nedenfor viser tydeligt dette.

mens pascal opgaver

Opgave 2: Et array A er givet, der består af positive heltal ognegative tal. Den indeholder 10 elementer. Det er nødvendigt at danne en matrix B, hvori de positive elementer i array A, der har et jævnt indeks, vil blive vist. Vis summen af ​​kvadrater i nummeret på den nye matrix.

Algoritme for handlinger:

  • Det er nødvendigt at skrive en subrutine, der kun vil "arbejde" med elementer i array A, som har et jævnt indeks. I kredsløbet vil værdien af ​​variablen, der er ansvarlig for indeksets paritet, stige med 2.
  • Hvis tallet med et jævnt indeks fra matricen Asvarer til tilstanden x> 0, øges antallet af arrayelementerne med 1. Aktuel værdi af tællervariablen vil være indekset for det nummer, der skal kopieres i array B.
  • I første omgang er summa-variablen ansvarlig for at finde summen af ​​kvadrater af positive tal tildelt 0. Derefter udføres operationen: den nye værdi af kvadratet tilføjes til forrige sum.
  • Vær ikke bange hvis ikke alle positiveTallene overføres fra en matrix til en anden. Skal være opmærksomme. Mange novice programmerere i panik omskrive koden. Tilstanden skal undersøges nøje: Positive tal, der er i lige "steder", dvs. har indekser, der er multipler af 2.

mens pascal abc loop

Manuel sporing er nødvendig for at sikre rigtigheden af ​​beregningerne. Nogle gange kan du ved hjælp af denne metode identificere fejl, der ikke er fanget i øjet under en rutinekontrol af den skrevne kode.

mens pascal abc loop

Hvis du foretager manuelle beregninger, kan du sørge for detat programmet fungerer korrekt. Dette antyder på sin side, at algoritmen til oprettelse af koden er korrekt, handlingssekvensen fører til en logisk ende.