Samenvatting van de les "Vertakkingsalgoritmen programmeren. Eenvoudige en samengestelde voorwaardelijke uitspraken"
Les onderwerp : Programmeren van vertakkingsalgoritmen. Voorwaardelijke operator.Leerboek: Bosova L. L. Informatica: leerboek voor groep 8 - M.: BINOM. Kennislaboratorium, 2014. – 160 p. : ziek.
Lestype: les in het leren van nieuw materiaal.
Lesdoelstellingen :
leerzaam : organiseer de activiteiten van studenten om vertrouwd te raken met de syntaxis van de voorwaardelijke operator (operatorals); omstandigheden scheppen waarin leerlingen het vermogen ontwikkelen om de operator te gebruikenalsbij het schrijven van programma's;
ontwikkelen : helpen de belangstelling voor het onderwerp te vergroten; de ontwikkeling van algoritmisch denken onder studenten bevorderen; de ontwikkeling van logisch denken, cognitieve interesse en geheugen van studenten bevorderen;
verzorgend : het bevorderen van de vorming van onafhankelijkheid bij het oplossen van problemen; bevordert de teameenheid en de vorming van een respectvolle houding ten opzichte van elkaar.
Gevormde universele leeractiviteiten (UAL) :
fantasie en verbeeldingskracht bij het uitvoeren van educatieve activiteiten;
wens om onderwijsactiviteiten uit te voeren.
logische acties en operaties;
creatie en transformatie van modellen en diagrammen om problemen op te lossen.
het formuleren van uw eigen mening en standpunt.
het plannen van uw acties in overeenstemming met de taak en de voorwaarden voor de uitvoering ervan.
Persoonlijke UUD :
Cognitieve UUD :
Communicatieve UUD :
Regelgevende UUD :
Apparatuur : personal computer (PC), multimediaprojector, scherm.
Softwaretools : presentatie “Programmeren van vertakkingsalgoritmen. Voorwaardelijke operator."
Lesplan
Voortgang van de les.
1. Organisatorisch momentBegroeten, controleren of ze klaar zijn voor een les, de aandacht van kinderen ordenen.
Raak betrokken bij het zakelijke ritme van de les.
2. Kennis actualiseren
Hallo jongens! Vandaag gaan we verder met het bestuderen van de syntaxis van de voorwaardelijke operator in de taalPascal.
Noteer de datum van vandaag en het onderwerp van de les van vandaag: “Het programmeren van vertakkingsalgoritmen. Voorwaardelijke operator."
Laten we nu het materiaal uit het gedeelte ‘Algoritmisering’ en eerdere lessen herhalen:
Welke algoritmische constructie wordt vertakking genoemd;
Welke vertakkingsvormen ken je?
Teken blokdiagrammen van de volledige en verkorte vormen van vertakking;
Hoe logische functies AND, OR, NOT in de taal worden geschrevenPascal.
(Beantwoord vragen)
Vertakking is een algoritmisch ontwerp waarbij, afhankelijk van het resultaat van het controleren van een voorwaarde (“ja” of “nee”), de keuze wordt gegeven tussen één van twee reeksen acties (vertakkingen).
Er zijn volledige en verkorte vormen van vertakking.
Blokdiagrammen:
EN, OF, NIETrespectievelijk.
3. Nieuw materiaal leren
Laten we nu eens kijken naar de syntaxis van filiaaloperatoren in de taalPascal. Om te beginnen stel ik voor dat u een tabel met twee kolommen maakt. Geef de kolommen van de tabel een label 'Volledige vorm van de voorwaardelijke operator' en 'Verkorte vorm van de voorwaardelijke operator'. Noteer nu in de juiste kolommen de blokdiagrammen van de volledige en verkorte vormen van vertakkingen, die op het bord worden weergegeven.
Hieronder noteren we de algemene vorm van de volledige en verkorte vormen van de voorwaardelijke operator.
Het volledige formulier heeft de volgende syntaxis:
als<условие>
Dan<оператор 1>
anders<оператор 2>;
alsDan, gevolgd door een instructie die wordt uitgevoerd als de voorwaarde waar is. Vervolgens wordt het functiewoord geschrevenanders, gevolgd door een instructie die wordt uitgevoerd als de voorwaarde onwaar blijkt te zijn.
Noteer in uw notitieboekje dat vóór het functiewoordandersteken ";" niet geïnstalleerd.
De korte vorm van de voorwaardelijke verklaring heeft de volgende syntaxis:
als<условие>
Dan<оператор 1>;
Het functiewoord wordt eerst geschrevenals, dan – een voorwaarde waarvan de waarheid afhankelijk is van de uitvoering van een of andere tak van de voorwaardelijke operator. Na de voorwaarde wordt een functiewoord geschrevenDan, gevolgd door een instructie die wordt uitgevoerd als de voorwaarde waar is.
Houd er rekening mee dat als de test resulteert in een voorwaarde die onwaar is, de korte voorwaardelijke instructie eenvoudigweg zal worden overgeslagen en het programma zal doorgaan met het uitvoeren van de instructies die erop volgen. Voor de volledige vorm van de voorwaardelijke operator is deze verklaring niet waar: hij zal altijd worden uitgevoerd (de operator van een van de takken van de voorwaardelijke operator zal worden uitgevoerd).
Houd er ook rekening mee dat de voorwaarde in een voorwaardelijke instructie een eenvoudige (geschreven met relationele operatoren) of een complexe (geschreven met logische operatoren) logische expressie is.
(Maak een tafel)
als <условие>Dan <оператор 1>
anders <оператор 2>;
als <условие>
Dan <оператор 1>;
Voorandersteken ";" niet geïnstalleerd!
(Schrijf in notitieboekjes)
Een voorwaarde in een voorwaardelijke instructie is een eenvoudige (geschreven met behulp van relationele bewerkingen) of complexe (geschreven met behulp van logische bewerkingen) logische expressie.
4. Consolidatie van wat er is geleerd
Laten we het volgende probleem eens bekijken (schrijf de staat ervan op in uw notitieboekjes): de gebruiker voert drie verschillende cijfers in, waaronder het nodig is om het minimum te vinden en op het scherm weer te geven.
Laten we proberen het vorige algoritme voor het oplossen van dit probleem te veranderen, zodat we een lus met een postvoorwaarde toepassen. Terwijl ik het probleem in de editor typ, noteer je de oplossing in je notitieboekje. [Samen met de studenten los ik het probleem op op de computer in de IO, en tegelijkertijd wordt de oplossing op het scherm geprojecteerd ].
Lijst met mogelijke vragen voor het bespreken van de taak.
1) Hoeveel variabelen moeten we beschrijven?
2) Hoe vind je consequent het minimale element tussen de bekende elementen?
Laten we eens kijken naar het volgende stukje code:
a:=11;
b:=een div 3;
a:=a-b;
als a*b mod 2 = 0
schrijf dan ln(a*b)
anders schrijfln(b-a);
Wat zullen de waarden zijn van variabelen a en b na het uitvoeren van deze reeks instructies? Wat wordt er op het scherm weergegeven?
Ga nu naar uw computer en voer zelf de volgende taken uit.
1) Zoek de waarde van de functie y(x) en geef deze tot op duizendste nauwkeurig op het scherm weer: . BetekenisXingevoerd via het toetsenbord.
2) Schrijf een programma dat bepaalt of het punt A(X, j) van het gearceerde gebied, inclusief de grens van het gebied:
Noteer de toestand in uw notitieboekjes.
Neem deel aan een discussie over het probleem en noteer de oplossing in hun notitieboekje.
programma minimaal;
var
a, b, c, min: echt;
beginnen
lees(a, b, c);
min:=een;
als b< min then min:=b;
als c< min then min:=c;
geschreven(" Min -> ", min);
einde.
(Beantwoord vragen)
a = 8, b = 3. Het getal 24 wordt op het scherm weergegeven.
Zelfstandig problemen op de computer oplossen.
Programmacode voor taak 1:
programmafunc;
var
x, y: echt;
beginnen
lees(x);
als x<= 5 then
y:=x*x*x+2*x*x-sqrt(5-x)
anders
y:=sqrt((x+1)/(3*x*x*x-x));
writeln("y(", x, ") = ", y:0:3);
einde.
Programmacode voor taak 2:
programmapunt;
var
x, y: echt;
beginnen
leesln(x, y);
als (x >= -1) en (x<= 3) and (y >= -2) en (j<= 4) then
geschreven("Het punt behoort tot de regio")
anders
geschreven("Het punt behoort niet tot de regio");
einde.
5. Samenvattend
Wat heb je geleerd tijdens de les van vandaag?
Wat is de voorwaarde in een voorwaardelijke verklaring?
We leerden de syntaxis van de volledige en korte vorm van de voorwaardelijke verklaring.
Eenvoudige of complexe logische expressie.
6. Huiswerk
Sectie 3.5.
Taken:
1) Gegeven drie segmenten met lengte a, b, c. Controleer of er een driehoek met zulke zijden bestaat. Zo ja, geef dan het bericht “Er bestaat een driehoek!” weer, zoek het gebied ervan en geef het op de volgende regel weer; Als dit niet het geval is, geeft u het bericht 'Driehoek bestaat niet' weer.
2) Opgave nr. 14 (leerboek 2012, p. 205)
Een schaakbordveld wordt bepaald door een paar natuurlijke getallen, die elk niet groter zijn dan 8. Schrijf een programma dat, met behulp van de ingevoerde veldcoördinaten (k, P) En (M, N) bepaalt of deze velden velden van dezelfde kleur zijn.
Voorbeeld invoergegevensVoorbeelduitvoer
2 2
3 3
Velden van dezelfde kleur
2 3
3 3
Velden van verschillende kleuren
2 7
5 4
Velden van dezelfde kleur
Opgenomen in gezondheidsdagboeken.
Algemeen beeld van de voorwaardelijke operator else. Vóór else staat er een teken “;” niet geïnstalleerd. Volledige vorm van de voorwaardelijke operator: ifthenelse if then else Korte vorm van de voorwaardelijke operator: ifthen if then Relationele bewerkingen Relationele bewerkingen Logische bewerkingen Logische bewerkingen Eenvoudige complexe voorwaarden - logische uitdrukkingen!
>>); readln (a, b); schrijven ("Voer x in>>"); readln (x); Voorwaardelijk instructieprogramma n_9; var x, a, b: real;"Определение принадлежности точки отрезку"); write ("Введите а, b>>"); readln (a, b); write ("Введите x>>"); readln (x); if (x>=a) and (x=a) and (x" class="link_thumb">
4
!} Voorwaardelijk instructieprogramma n_9; var x, a, b: reëel; begin writeln ("Bepalen of een punt tot een segment behoort"); write("Voer a, b>>"); leesln(a, b); write("Voer x in>>"); leesln(x); als (x>=a) en (x=a) en (x >"); readln (a, b); write ("Voer x in>>"); readln (x); if (x>=a) en (x=a) en (x"> >"); readln ( a, b); write("Voer x>>" in); (x>=a) en (x">>"); a) en (x=a) en (x" title="Voorwaardelijk instructieprogramma n_9; var x, a, b: real; begin writeln("Определение принадлежности точки отрезку"); write ("Введите а, b>>"); readln (a, b); write ("Введите x>>"); readln (x); if (x>=a) and (x=a) and (x">
!} >>); readln (a, b); schrijven ("Voer x in>>"); readln (x); Voorwaardelijk instructieprogramma n_9; var x, a, b: real;"Определение принадлежности точки отрезку"); write ("Введите а, b>>"); readln (a, b); write ("Введите x>>"); readln (x); if (x>=a) and (x=a) and (x">
!}
>"); readln (a, b, c); y:=a; als (b>y) dan y:=b; als (c>y) dan y:=c; writeln ("y=", y ) end. " title=" korte vorm van het voorwaardelijke instructieprogramma n_10; var y, a, b, c: geheel getal; begin writeln ("Нахождение наибольшей из трёх величин"); write ("Введите а, b, с>>"); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ("y=", y) end. " class="link_thumb">
5
!} Verkorte vorm van het voorwaardelijke instructieprogramma n_10; var y, a, b, c: geheel getal; begin writeln("De grootste van drie grootheden vinden"); write("Voer a, b, c in>>"); leesln(a, b, c); j:=een; als (b>y) dan y:=b; als (c>y) dan y:=c; writeln("y=", y) einde. Y:=A B>Y Y:=B Y:=C C>Y ja ja nee >"); readln (a, b, c); y:=a; als (b>y) dan y:=b; als (c>y) dan y:=c; writeln ("y=", y ) einde "> >"); (b>y) dan y:=b; dan y:=c; Y:=A B>Y Y:=B Y:=C C>Y danet danet"> >"); readln (a, b, c); c>y) then y:=c; writeln ("y=", y) end. " title=" korte vorm van het voorwaardelijke instructieprogramma n_10; var y, a, b , c: geheel getal; begin geschreven ("Нахождение наибольшей из трёх величин"); write ("Введите а, b, с>>"); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ("y=", y) end. ">
!} >"); readln (a, b, c); y:=a; als (b>y) dan y:=b; als (c>y) dan y:=c; writeln ("y=", y ) end. " title=" korte vorm van het voorwaardelijke instructieprogramma n_10; var y, a, b, c: geheel getal; begin writeln ("Нахождение наибольшей из трёх величин"); write ("Введите а, b, с>>"); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ("y=", y) end. ">
!}
Samengestelde instructie thenelse In een voorwaardelijke instructie kan slechts één instructie worden gebruikt na zowel then als else. then else Als u in een voorwaardelijke verklaring na then of after else verschillende instructies moet uitvoeren, gebruik dan een samengestelde operator - een constructie van de vorm: begin end
0 ja Start Voer coëfficiënten a, b, c d:=b*b-4*a*c d in 0 ja Start Voer coëfficiënten a, b, c d:=b*b-4*a*c d in 7 Blokdiagram van de CVUR-oplossing Eind Conclusie “Wortels van de vergelijking: x1=”, x1, “x2=”, x2 x1:=(-b+sqrt(d))/2/a d>0 ja Begin Voer coëfficiënten in a, b, c d :=b*b-4*a*c d 0 ja Start Voer coëfficiënten in a, b, c d:=b*b-4*a*c d 0 ja Start Voer coëfficiënten in a, b, c d:=b*b -4* a*c d 0 ja Start Voer coëfficiënten a, b, c d:=b*b-4*a*c d 0 ja Start Voer coëfficiënten a, b, c d:=b*b-4*a*c d title= "(! LANG: Blokdiagram van de CVUR-oplossing Einduitvoer “Wortels van de vergelijking: x1=”, x1, “x2=”, x2 x1:=(-b+sqrt(d))/2/a d>0 ja Begin Voer de coëfficiënten a, b, c d:=b*b-4*a*c d in
Begin x1:=(-b+sqrt(d))/2/a; x2:=(-b-sqrt(d))/2/a; schrijven("Корни уравнения:"); writeln ("x1=", x1:9:3); writeln ("x2=", x2:9:3) end; begin x1:=(-b+sqrt(d))/2/a; x2:=(-b-sqrt(d))/2/a; writeln ("Корни уравнения:"); writeln ("x1=", x1:9:3); writeln ("x2=", x2:9:3) end; begin x:=-b/2/a; writeln ("Корень уравнения x=", x:9:3) end; begin x:=-b/2/a; writeln ("Корень уравнения x=", x:9:3) end; program n_11; var a, b, c: real; var d: real; var x, x1, x2: real; begin writeln ("Решение квадратного уравнения"); write ("Введите коэффициенты a, b, c >>"); readln (a, b, c); d:=b*b-4*a*c; if d0 then end. !} >"); readln (a, b, c); d:=b*b-4*a*c; als d0 dan end.">
>"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Wortel van de vergelijking x=", x:9:3) end else if b0 then wri" title=" (! LANG:Een lineair vergelijkingsprogramma n_12 oplossen; var a, b, x: real; begin writeln ("Решение линейного уравнения"); write ("Введите коэффициенты a, b>>"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Корень уравнения x=", x:9:3) end else if b0 then wri" class="link_thumb">
10
!} Oplossing van lineaire vergelijkingsprogramma n_12; var a, b, x: reëel; begin writeln("Een lineaire vergelijking oplossen"); write("Voer coëfficiënten a, b>> in"); leesln(a, b); als a0 begin dan met x:=-b/a; writeln ("Wortel van de vergelijking x=", x:9:3) end else if b0 then writeln ("Geen wortels") else writeln ("x is een willekeurig getal"); einde. Er zijn geen wortels Lijst met gegevens a, b, x - dingen a, b a0 x:=-b/a b0 Elk getal nee ja nee >"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Wortel van vergelijking x=", x:9:3) end else if b0 then wri"> >") ; readln (a, b); if a0 then begin x:=-b/a; ("Wortel van vergelijking x=", x:9:3) end else if b0 then writeln ("Geen wortels") else writeln (" x – elk getal"); Geen wortels Lijst met gegevens a, b, x - ding a, b a0 x:=-b/a b0 Elk getal nee ja nee"> >"); b); if a0 then begin x:=-b/a; ("Wortel van de vergelijking x=", x:9:3) end else if b0 then wri" title="Een lineaire vergelijking oplossen programma n_12; var a, b, x: real;"Решение линейного уравнения"); write ("Введите коэффициенты a, b>>"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Корень уравнения x=", x:9:3) end else if b0 then wri">
!} >"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Wortel van de vergelijking x=", x:9:3) end else if b0 then wri" title=" (! LANG:Een lineair vergelijkingsprogramma n_12 oplossen; var a, b, x: real; begin writeln ("Решение линейного уравнения"); write ("Введите коэффициенты a, b>>"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Корень уравнения x=", x:9:3) end else if b0 then wri">
!}
Het belangrijkste bij het schrijven van vertakkingsalgoritmen in Pascal wordt een voorwaardelijke operator gebruikt: if then else. Om onvolledige vertakkingen te schrijven, wordt een verkorte voorwaardelijke operator gebruikt: if then If, onder bepaalde omstandigheden, moet een bepaalde sequentiële operator worden uitgevoerd, vervolgens worden ze gecombineerd tot één samengestelde operator, die er als volgt uitziet: begin end .
>3, 4 Eerste punt" title="Vragen en taken Hoe wordt volledige en onvolledige vertakking geschreven in Pascal? Is een reeks tekens een voorwaardelijke operator? a) als x=y dan x:=0; y:=0 schrijf anders (z) c) als xb dan d:=2; indien a1, 2 Coördinaten van het 2e punt>>3, 4 Eerste punt" class="link_thumb"> 12 !} Vragen en taken Hoe wordt volledige en onvolledige vertakking geschreven in Pascal? Is een voorwaardelijke operator een reeks tekens? a) als x=y dan x:=0; y:=0 schrijf anders (z) c) als xb dan d:=2; if a1, 2 Coördinaten van het 2e punt>>3, 4 Het eerste punt ligt dichterbij Voorbeeld van invoergegevensVoorbeeld van uitvoergegevens a b c>> 1 2 1Bestaat niet a b c>> 2 2 2Gelijkzijdig a b c>> Gelijkbenig a b c>> 3 4 5 Scalene Er zijn drie natuurlijke getallen gegeven. Schrijf een programma om te bepalen of er een driehoek met deze zijdelengtes bestaat. Als zo'n driehoek bestaat, bepaal dan het type (gelijkzijdig, gelijkbenig, ongelijkzijdig). Er zijn gegevens over het aantal volledige jaren van drie Spartakiad-winnaars. Schrijf een programma dat de leeftijd van de jongste winnaar selecteert en weergeeft. Voorbeeld van invoergegevens Voorbeeld van uitvoergegevens k, 1>>-1 5 xa, ya >>1 2 Het punt ligt onder de lijn k, 1>>-1 5 xa, ya >>1 10 Het punt ligt boven de lijn k, 1>>-1 5 xa, ya >>1 4 Het punt ligt op de lijn Schrijf een programma dat bepaalt of het punt A(xa, ya) ligt: a) op de lijn y = kx + 1, erboven of eronder; b) op de cirkel x 2 + y 2 = r 2, erboven of eronder. Ontwikkel zelf voorbeelden van inputdata en bijbehorende outputdata. Voorbeeld van invoergegevens Voorbeeld van uitvoergegevens x >> 5 y >> 6 x = 5 y = 6 x >> 6 y >> 5 x = 5 y = 6 Schrijf een programma dat de waarden van de variabelen x en y als x groter is dan y. Gegeven een voorwaardelijke uitspraak: If a5 then c:=2 else c:=3 Welke waarde heeft variabele a als, als gevolg van het uitvoeren van de voorwaardelijke uitspraak, variabele c de waarde 3 krijgt? Voorbeeld van invoergegevens Voorbeeld van uitvoergegevens -5y = - 1 0y = 0 5y = 1 Schrijf een programma dat de waarde van de functie berekent: -1 voor x 0 y = Schrijf een programma om het probleem op te lossen: Het is bekend dat januari 31 december 2011 valt op maandag. Welke waarden moeten worden toegewezen aan de letterlijke variabele y in het algoritme dat de dag van de week bepaalt voor elk getal (chislo) van januari 2011? chislo:= chislo mod 7 als chislo=3 dan y:="... als chislo=4 dan y:="... als chislo=5 dan y:="... als chislo=6 dan y:= "... if chislo=0 then y:="... if chislo=1 then y:="... if chislo=2 then y:="... Voorbeeld van invoergegevens Voorbeeld van uitvoergegevens Coördinaten van het 1e veld >> 2 2 Coördinaten van het 2e veld >> 3 3 Velden dezelfde kleur Coördinaten van het 1e veld >> 2 3 Coördinaten van het 2e veld >> 3 3 Velden met verschillende kleuren Coördinaten van het 1e veld >> 2 7 Coördinaten van het 2e veld >> 5 4 Velden van dezelfde kleur Een schaakbordveld wordt bepaald door een paar natuurlijke getallen, waarvan elk niet groter is dan 8. Schrijf een programma dat op basis van de ingevoerde coördinaten van twee velden (k, l) en (m, n) bepaalt of deze velden velden van dezelfde kleur zijn. Schrijf een programma waarin de gebruiker wordt gevraagd een geheel getal a tot en met 100 in te vullen (a is een willekeurig getal kleiner dan 100). Het antwoord van de gebruiker wordt gecontroleerd en becommentarieerd. >3, 4 Eerste punt"> >3, 4 Eerste punt is dichterbij Voorbeeld van invoergegevens Voorbeeld van uitvoergegevens a b c>> 1 2 1Bestaat niet a b c>> 2 2 2Gelijkzijdig a b c>> 20 20 30Gelijkbenig a b c>> 3 4 5 Scalene Er zijn drie natuurlijke getallen gegeven. Schrijf een programma dat bepaalt of er een driehoek bestaat met zulke lengtes van zijden. Als zo'n driehoek bestaat, bepaal dan het type (gelijkzijdig, gelijkbenig, ongelijkbenig). Er zijn gegevens over het aantal volledige jaren van de drie winnaars van de Spartakiad Schrijf een programma dat de leeftijd van de jongste winnaar selecteert en weergeeft Voorbeeld van invoergegevens Voorbeeld van uitvoergegevens k, 1>>-1 5 xa, ya >>1 2 Het punt ligt onder . de lijn k, 1>>-1 5 xa, ya >>1 10 Het punt ligt boven de lijn k, 1>>- 1 5 xa, ya >>1 4 Het punt ligt op de lijn Schrijf een programma om te bepalen of het punt A(xa, ya) ligt: a) op de lijn y = kx + 1, erboven of eronder b) op de cirkel x 2 + y 2 = r 2, erboven of eronder; gegevens en de bijbehorende uitvoergegevens zelf. Voorbeeld van invoergegevens Voorbeeld van uitvoergegevens x >> 5 y >> 6 x = 5 y = 6 x >> 6 y >> 5 x = 5 y = 6 Schrijf een programma dat de waarden van de variabelen x en y als x groter is dan y. Gegeven een voorwaardelijke uitspraak: If a5 then c:=2 else c:=3 Welke waarde heeft variabele a als, als gevolg van het uitvoeren van de voorwaardelijke uitspraak, variabele c de waarde 3 krijgt? Voorbeeld van invoergegevens Voorbeeld van uitvoergegevens -5y = - 1 0y = 0 5y = 1 Schrijf een programma dat de waarde van de functie berekent: -1 voor x 0 y = Schrijf een programma om het probleem op te lossen: Het is bekend dat januari 31 december 2011 valt op maandag. Welke waarden moeten worden toegewezen aan de letterlijke variabele y in het algoritme dat de dag van de week bepaalt voor elk getal (chislo) van januari 2011? chislo:= chislo mod 7 als chislo=3 dan y:="... als chislo=4 dan y:="... als chislo=5 dan y:="... als chislo=6 dan y:= "... if chislo=0 then y:="... if chislo=1 then y:="... if chislo=2 then y:="... Voorbeeld van invoergegevens Voorbeeld van uitvoergegevens Coördinaten van het 1e veld >> 2 2 Coördinaten van het 2e veld >> 3 3 Velden dezelfde kleur Coördinaten van het 1e veld >> 2 3 Coördinaten van het 2e veld >> 3 3 Velden met verschillende kleuren Coördinaten van het 1e veld >> 2 7 Coördinaten van het 2e veld >> 5 4 Velden van dezelfde kleur Een schaakbordveld wordt bepaald door een paar natuurlijke getallen, die elk niet groter zijn dan 8. Schrijf een programma dat, gebaseerd op de ingevoerde coördinaten van twee velden (k, l) en (m, n), bepaalt of deze velden velden van dezelfde kleur zijn. Schrijf een programma waarin de gebruiker wordt gevraagd een getal tot 100 aan te vullen. geheel getal a (a is een willekeurig getal kleiner dan 100). Het antwoord van de gebruiker wordt gecontroleerd en becommentarieerd."> >3, 4 Eerste punt" title="Vragen en taken Hoe wordt volledige en onvolledige vertakking geschreven in Pascal? Is een reeks tekens een voorwaardelijke operator? a) if x =y dan x :=0; y:=0 schrijf anders (z) c) als xb dan d:=2; als a1, 2 Coördinaten van het 2e punt>>3, 4 Eerste punt"> title="Vragen en taken Hoe wordt volledige en onvolledige vertakking geschreven in Pascal? Is een voorwaardelijke operator een reeks tekens? a) als x=y dan x:=0; y:=0 schrijf anders (z) c) als xb dan d:=2; indien a1, 2 Coördinaten van het 2e punt>>3, 4 Eerste punt"> !}
Vertakken is een algoritme waarbij de volgorde en het aantal uitgevoerde opdrachten afhankelijk zijn van het al dan niet voldoen aan bepaalde voorwaarden. Vertakkingsalgoritmen gebruiken opdrachten vertakking En keuze uit een groot aantal opties. Een grafische weergave van vertakkingsopdrachten wordt weergegeven in figuur 3.1.
Rijst.3.1 Vertakkingsopdrachten: a) – in volledige vorm; b) , c) – in verkorte vorm
Gebruik de operator om vertakkingen te programmeren als, en voor programmeringsselectie - operators schakelaar En pauze.
3.2 Operatoren voor het besturen van een vertakkend rekenproces
3.2.1 Logische uitdrukkingen
Booleaanse expressie(voorwaarde) - een expressie die bevat relationele operatietekens en/of logische bedieningstekens. De waarde van een logische expressie kan alleen 1 zijn als de logische expressie TRUE is, of 0 als de logische expressie FALSE is.
Relatie-operaties zijn binair en worden als volgt aangeduid (gerangschikt in volgorde van afnemende prioriteit):
< (minder);
<= (kleiner dan of gelijk aan);
> (meer);
>= (groter dan of gelijk aan);
== (is gelijk aan);
!= (niet gelijk).
Voorbeelden: A =8,1, d<>(WC).
Logische bewerkingen- dit zijn de bewerkingen:
&& - logische AND (binaire bewerking);
|| - logische OR (binaire bewerking);
! - logische NOT (unaire bewerking).
Logische bewerkingen hebben een lagere prioriteit dan relationele bewerkingen. De resultaten van logische bewerkingen worden weergegeven in tabellen 3.1-3.3.
Tabel 3.1 Tabel 3.2 Tabel 3.3
|
|
|
Bijvoorbeeld de logische uitdrukking a>3 && c<7 при a=5, c=6 будет иметь значение ИСТИНА, а при a=3, c=8 – ЛОЖЬ; логическое выражение a>3 || C<7 при a=5, c=6 будет иметь значение ИСТИНА, при a=2, c=6 – ЛОЖЬ; при a=7 логическое выражение!a>2 zal ONWAAR zijn.
Bij het samenstellen van logische expressies moet u rekening houden met de prioriteit van bewerkingen.
Voorbeelden van het schrijven van logische expressies worden gegeven in Tabel 3.4.
Tabel 3.4
Logische expressietabel
Voorwaarde |
Booleaanse expressie |
|
x>=a && x<=b |
|
X B |
|
x>=a && x<=b || x>=c && x<=d |
Ten minste één van de getallen x, y is positief |
x>0 || y>0 |
Slechts één van de getallen x, y is positief |
(x>0 && !y>0) || (y>0 && !x>0) |
Geen van de getallen x en y zijn even |
x % 2 !=0 && y % 2 !=0 |
Het punt (x,y) behoort tot het gearceerde gebied |
x>=0 && x<=a && y>=0 && j<=b/a*x |
Om vertakkingsalgoritmen te programmeren, worden de volgende gebruikt: voorwaardelijke operator , selectie operator En onvoorwaardelijke sprongoperator .
1. Voorwaardelijke operator heeft een volledige en verkorte vorm. De volledige vorm van de voorwaardelijke verklaring is:
als logische uitdrukking Dan exploitant_1 anders exploitant_2;
De waarde wordt berekend logische uitdrukking exploitant_1, als - onwaar - exploitant_2.
De verkorte vorm van de voorwaardelijke operator is:
als <logische uitdrukking> Dan <exploitant>;
De waarde wordt berekend logische uitdrukking; als het waar is, wordt het uitgevoerd exploitant, daarna geschreven, if - false, dan dit exploitant wordt niet uitgevoerd.
Voorbeelden:
als x>y
Dan z:=sqr(x) anders z:=y;
Hier krijgt de variabele z als gevolg van het uitvoeren van de voorwaardelijke operator in ieder geval een nieuwe waarde.
als(x>=2) en(x<4)Dan b:=zonde(x);
Hier, bijvoorbeeld, wanneer x = 5, behoudt de variabele b de waarde die deze had voordat de voorwaardelijke instructie werd uitgevoerd.
In een voorwaardelijke verklaring wordt na de servicewoorden then of else slechts één verklaring geschreven; als het nodig is om meerdere acties uit te voeren, worden de overeenkomstige operatoren gecombineerd tot een samengestelde operator, die er als volgt uitziet: beginnen exploitant_1;
exploitant_2;
operator_n
Voorbeeld: als x>y begin dan min:=j; maximaal:=x einde
anders beginnen min:=x; maximaal:=j einde;
2. Met selectie operator u kunt een van een aantal opties kiezen. De selectieoperator ziet er als volgt uit:
geval < expressie> van
< constante_1 > : < exploitant_1 > ;
< constante_2 > : < exploitant_2 > ;
< constante_ n> : < exploitant_ n> ;
andersexploitant
einde;
Eerst wordt de waarde berekend uitdrukkingen(met een ordinaal type), en vervolgens tussen constanten er wordt een constante gevonden die gelijk is aan de berekende waarde. In uitvoering exploitant, geschreven na de gevonden constante, en de select-instructie wordt afgesloten. Als er geen constante wordt gevonden die overeenkomt met de berekende waarde van de uitdrukking in de keuzelijst, dan exploitant achter het woord anders. Als onderdeel anders exploitant ontbreekt en de selectielijst bevat niet de vereiste constante, dan eindigt de selectie-instructie.
Voorbeeld:geval M van
12,1,2: writeln('winter');
3,4,5: writeln('lente');
6,7,8: writeln('zomer');
9,10,11: writeln('herfst')
anders writeln('gegevensfout')
einde;
3. Onvoorwaardelijke sprongoperator Hiermee kunt u naar de gewenste verklaring springen, terwijl u de natuurlijke volgorde van uitvoering van de verklaringen verstoort. De operator ziet er als volgt uit: ga naar label;
Het label is een identificatie of een geheel getal zonder teken (0-9999). Het label wordt beschreven in het labelgedeelte:
labellabel _1,label _2, label_N;
Bijvoorbeeld: label 1,ab;
Er kan slechts één operator met één label worden gemarkeerd. Het label wordt door een dubbele punt gescheiden van de gemarkeerde verklaring.
etiket: exploitant;
Bijvoorbeeld: ab: writeln('ga naar label');
Voorbeeld: label T;
var x,y:reëel;
beginnen…ga naar T; …..
t: y: =sqr(x); …..
Cyclische algoritmen programmeren
Lusoperatoren worden gebruikt om cyclische algoritmen te programmeren. Er zijn drie soorten lusoperatoren in Pascal: : voor , terwijl , herhalen . Loop-operator voor heeft de vorm:
voorlusparameter:= expressie_1 naar expressie_2 Doen exploitant;
voorlusparameter:=expressie_1 naar beneden expressie_2 Doen exploitant;
lusparameter- variabele van ordinaal type;
expressie_1- initiële waarde van de cyclusparameter;
expressie_2– eindwaarde van de cyclusparameter.
Eerst worden de waarden berekend en opgeslagen expressies_1 En expressies_2. Vervolgens wordt gecontroleerd: waarde expressies_1 kleiner dan of gelijk (voor naar beneden- groter dan of gelijk aan) de waarde expressies_2. Als dat niet het geval is, eindigt de uitvoering van de lusoperator; zo ja, dan lusparameter krijgt de waarde expressies_1, wordt geëxecuteerd exploitant En lusparameter krijgt de volgende waarde (voor naar beneden– vorige waarde). lusparameter Vervolgens controleert het: naar beneden kleiner dan of gelijk (voor expressies_2- groter dan of gelijk aan) de waarde exploitant En lusparameter. Zo ja, dan wordt het opnieuw uitgevoerd
Voorbeelden:
voor ontvangt een nieuwe waarde; zo niet, dan eindigt de uitvoering van de lusoperator. naar 10Doen ik:=1
voor writeln(‘i=’,i); naar beneden 1Doen ik:=1
ik:= 10 terwijl heeft de vorm:
terwijl logische uitdrukking Doen exploitant;
Loop-operator exploitant Zolang de logische uitdrukking waar is, is de uitdrukkingen, geschreven na het do-functiewoord, zal de lusoperator zijn werk voltooien zodra de waarde onwaar wordt. Als de waarde exploitant vanaf het allereerste begin false, vervolgens gespecificeerd in de lus
Voorbeeld: zal nooit worden geëxecuteerd.
terwijl ik:=1;<=10 Doen
beginnen i
writeln(‘i=’,i);e
zd; herhaallusoperator
heeft de vorm:
exploitanten logische uitdrukking;
tot Exploitanten logische uitdrukking worden uitgevoerd tot de waarde zal niet waar worden. Dus ongeacht de waarde, heeft de vorm: logische uitdrukking
Voorbeeld: , opgegeven in de herhalingslus, wordt minstens één keer uitgevoerd.
herhalen i