Vertakkingsalgoritme programmeren. Samenvatting van de les "Forking-algoritmen programmeren"

In programma's met een vertakte structuur worden voorwaardelijke operators gebruikt, die zijn ontworpen om een ​​van de verschillende mogelijke acties (operators) te selecteren voor uitvoering, afhankelijk van een bepaalde voorwaarde (in dit geval kan een van de acties ontbreken - een lege operator) .

Voorwaardelijke operator

Voorwaardelijke exploitant. Voorwaardelijke operator wordt gebruikt als het nodig is om acties uit te voeren afhankelijk van het al dan niet vervullen van een voorwaarde.

De korte vorm van de operator φ. De korte vorm van de voorwaardelijke operator is als volgt geschreven:

waar is een uitdrukking van een logisch type, waarvan we kunnen zeggen dat het is "waar" of "vals"(in feite is dit een vraag met slechts 2 mogelijke antwoorden - "Ja" of "Nee"), Afhankelijk van (van het antwoord op de vraag) vindt de verdere uitvoering van het programma plaats.

Beschrijving van het werk van de korte vorm van de operator f. De AND-operator in korte vorm werkt als volgt:

  • de uitdrukking die in de voorwaarde is geschreven, wordt berekend (het antwoord op de vraag die in de voorwaarde is geschreven, wordt geformuleerd);
  • als je het resultaat hebt - "waar"(niet gelijk aan 0 - antwoord "Ja"), dan wordt het uitgevoerd;
  • indien "vals"(gelijk aan 0 - antwoord "Nee"), dan wordt de programmaregel die volgt op de voorwaardelijke instructie uitgevoerd.

Op het algoritmediagram wordt de korte vorm ії als volgt weergegeven (Fig. 4.1).

Rijst. 4.1.

Een voorbeeld van een programma met een korte vorm van de operator 1 /. Bereken w = tm (s, b).

1. Algoritme diagram

Uitleg. De invoergegevens zijn variabelen c en b. Na het invoeren van de invoergegevens (variabelen c en b) krijgt variabele w (verondersteld minimum) de waarde van variabele c. Dan wordt voorwaarde b gecontroleerd

2. Programma

#erbij betrekken / / subsleutel, standaard bibliotheek

// Ik / O

int hoofd () ( // functiekoptekst hoofdgerecht (9

int c, d, m; // beschrijving van variabelen met, d, m type int

printf ("Voer c en d in gescheiden door spatie"); /* uitvoer op display

invoerprompts met en NS en verplaats de cursor naar het begin van de volgende regel van het scherm * / scanf ("% d% d", & c, & d); // voer de waarden van variabelen in met en NS

m = c; // variabele toewijzingsoperator m variabele waarden met

als (d // als d

m = d; // dan toewijzen aan de variabele m variabele waarde NS

printf ("m =% d", m);

//gevolgtrekking m en de cursor naar het begin van de volgende regel van het scherm verplaatsen getchar ();

De volledige vorm van het if-statement. De volledige vorm van de voorwaardelijke verklaring is als volgt geschreven:

; anders; als en anders - trefwoorden;

Dit is een uitdrukking van een logisch of rekenkundig type, waarvan we kunnen zeggen dat het "waar" is (een rekenkundige uitdrukking is niet nul) of "onwaar" (een rekenkundige uitdrukking is gelijk aan nul) - in feite is dit een vraag die slechts 2 mogelijke antwoorden veronderstelt - "Ja" of "Nee". Afhankelijk daarvan vindt de verdere uitvoering van het programma plaats.

Een operator die wordt uitgevoerd als de voorwaarde waar is (niet nul);

Een operator die wordt uitgevoerd als de voorwaarde onwaar is (gelijk aan nul).

De voorwaardelijke instructie wordt als volgt uitgevoerd:

  • eerst gecontroleerd;
  • indien waar (de waarde van de uitdrukking die de voorwaarde vertegenwoordigt is niet gelijk aan 0), dan wordt deze uitgevoerd;
  • als de voorwaarde onwaar is (de waarde van de uitdrukking die de voorwaarde vertegenwoordigt is 0), dan wordt deze uitgevoerd.

Op het algoritmediagram wordt de volledige vorm ії als volgt weergegeven (Fig. 4.2).

Rijst. 4.2.

x + 0,5 als x

Doelstelling 2. gegeven x. Berekenen jij -

- + 1 als x> 0,6.

1. Algoritme diagram


Uitleg. De invoergegevens zijn de variabele X. Voordat Y wordt berekend, moet de voorwaarde "X"

2. Programma

ttinclude

voornaamst () // variabele beschrijving x, ja type dubbele

scanf ("% lf", & x); als (x

NS

// voer de waarde van de variabele in NS

//indien x // bereken dan y = x + 0,5 // anders berekenen y = x / 2 + 1

printf ("y =% lf", y);

// stop het programma voordat u op een toets drukt

Uitleg. Omdat y wordt berekend met een van de twee formules, afhankelijk van de waarde van x, gebruikt het programma een voorwaardelijke if-instructie. Na het berekenen van y volgens een van de formules, wordt de waarde van y weergegeven volgens de specificatie van het % lf-formaat, aangezien y het type heeft

U kunt de nieuwe voorwaardelijke operator ook gebruiken als een van de "ingebouwde" operators in een voorwaardelijke instructie.

Doelstelling 3. Bereken de waarde Bij: 4x - 2 als x

x + 4 als x> -210.

1. Algoritme diagram


Uitleg. De invoergegevens zijn X. Voordat y wordt berekend, moet de voorwaarde "X"

dan wordt de waarde van Y berekend volgens de formule Y = 4 X - 2 (X -2). Na het berekenen van Y (volgens een van de formules), wordt het resultaat (Y-waarde) op het scherm weergegeven.

2. Programma

dubbele x, y; printf ("Enter

weinig ("% lf", & x); als (x

// subsleutel, standaard, bibliotheken

// I / O // functiekop hoofdgerecht (9 // variabele beschrijving x, ja type dubbele

// geef een prompt weer om een ​​variabele in te voeren NS

// voer de waarde van de variabele in NS

//indien x // bereken dan y = 4 * x + 2 // anders als x // bereken dan y = 10 * x + 5 // anders berekenen y = x + 4

printf ("y =% lf", y);

// toon en verplaats de cursor naar het begin van de volgende regel van het scherm krijg char (); // stop het programma voordat je op een willekeurige drukt

sleutels

Uitleg. Omdat y wordt berekend met een van de drie formules, afhankelijk van de waarde van x, gebruikt het programma twee voorwaardelijke if-instructies (met nesting). Na het invoeren van de waarde x vanaf het toetsenbord, wordt de voorwaarde "x

Meerdere statements (statementblokken) in een if-statement. Als het nodig is om meerdere operators op een of beide takken van een voorwaardelijke operator te gebruiken, worden ze gecombineerd tot een blok - een accolade voor openen wordt voor de eerste geplaatst en een accolade voor sluiten na de laatste

Voorbeeld 1. Zijn gegeven a, b, c - kwadratische coëfficiënten bijl 2 + bx + c= 0. Zoek de wortels van deze vergelijking of druk het bericht "geen wortels" af, ervan uitgaande dat a F 0.

1. Algoritme diagram

Uitleg. De invoergegevens zijn de coëfficiënten van de kwadratische vergelijking - de variabelen a, b, c. Eerst wordt de discriminant van de kwadratische vergelijking b = b 2 - 4 a c berekend. Als de discriminant groter is dan of gelijk is aan nul (b> 0), worden twee wortels van de kwadratische vergelijking berekend met behulp van de volgende formules:

, -B - l1b 2 -4ac L -B + y! B 2 -4 Ace x1 = -; x2 --.

2a 2a

Vervolgens worden de resultaten op het scherm weergegeven (de waarden van de variabelen x1 en x2).

Als de discriminant kleiner is dan nul (b

2. Programma

/ 1Sluit standaard I / O-bibliotheek aan#erbij betrekken Verbinding met wiskundebibliotheek

// functies

int hoofd () ( // functiekoptekst hoofd $

dubbel a, b, c, xl, x2, d; // beschrijving van variabelen

printf ("Voer a, b, cn in gescheiden door spaties");

// geef een prompt weer om de waarden van variabelen in te voeren a, b, c schaars ("% lf% lf% lf", & a, & b, & c); // voer de waarden van variabelen in a, b, c

d = b * b-4 * a * c; // bereken discriminant (d.)

als (d> = 0) //indien d> = 0

(xl = (- b-sqrt (d)) / (2 * a);

// bereken dan de wortels van de kwadratische vergelijking xl en x2 x2 = (- b + sqrt (d)) / (2 * a);

printf ("xl =% lf x2 =% lf", xl, x2); // en toon ze op het scherm

anders //indien NS

printf ("Geen wortels"); // toon de tekst "Geen wortels"

getchar (); retourneer 0;

Voorbeeld 2. Bereken de waarde y - - +-. Indien Bij berekenen

het onmogelijk is, laat er dan een bericht over zien. De x-waarde wordt ingevoerd via het toetsenbord.

Dit probleem kan op twee manieren worden opgelost: a) met behulp van logische AND (&&); b) logische OR . gebruiken 1e manier (met behulp van logische EN).

1. Algoritme diagram

Conclusie Y

Kan je niet-

district! "

Uitleg. De invoergegevens zijn X. Je kunt niet delen door nul, dus de noemers van de breuken mogen niet nul zijn (in de probleemstelling worden twee breuken gegeven: 1 / X en 3 / (X + 1)). Om Y te berekenen, is het dus noodzakelijk om te controleren of de noemers van beide breuken zijn niet tegelijkertijd gelijk aan nul. Hiervoor is de complexe voorwaarde “X F 0 en X + 1 F 0 ". Als het waar is (het antwoord is "Ja" op beide vragen), dan wordt de Y-waarde berekend en weergegeven op het scherm. Als de voorwaarde onwaar is (het antwoord is "Nee" op ten minste één van de vragen), wordt het bericht "U kunt Y niet berekenen!" weergegeven.

2. Programma

#include int main () (

dubbele x, y; printf ("Voer x in");

als ((x! = 0) && (x + 3! = 0)) ( // als tegelijkertijd xFO zij + 1 ^ 0

y = 1 / x + 3 / (x + 1); // berekenen Bij

printf ("y = 51f", y); // en uitvoer Bij op het scherm

else printf ("Kan y niet berekenen! n"); getchar (); retourneer 0;

Uitleg. Om y te berekenen is het nodig dat tegelijkertijd waren de noemers van beide breuken niet gelijk aan nul. Hiervoor wordt de && (logische AND) operatie gebruikt. De AND-operator "controleert de complexe voorwaarde" x φ 0 en x + 1 ф 0 "(in C ++ wordt het geschreven als ((x! = 0) && ((x + 1) 1 = 0), en elke eenvoudige voorwaarde staat tussen afzonderlijke haakjes).

  • 2e manier (met OR).
  • 1. Algoritme diagram

^ Begin ^

Z1 Ingang X 3 ^

Conclusie U Z 7

Uitleg. Bij het oplossen van het probleem met behulp van "logische OR", wordt de onmogelijkheid om Y te berekenen gecontroleerd. Hiervoor is het noodzakelijk om te controleren dat tenminste één van de noemers van de breuken is nul. Hiervoor is de complexe voorwaarde “X = 0 of X-r 1 = 0 ". Als het waar is (het antwoord is "Ja" op ten minste één van de vragen), dan wordt het bericht "U kunt Y niet berekenen!" weergegeven. Als de voorwaarde onwaar is (het antwoord is "Nee" op beide vragen), wordt de Y-waarde berekend en weergegeven op het scherm.

2. Programma

printf ("Voer x in");

weinig ("% lf", & x);

als ((x == 0) ik ik (x + l == 0))

printf ("Kan y niet berekenen!");

anders (y = l / x + 3 / (x + 1);

printf ("y =% lf", y);

getchar (); retourneer 0;

Uitleg. Het programma gebruikt de bewerking | | (logische OF). In de if-instructie is de complexe voorwaarde "x = 0" of x + 1 = 0 "(in C ++ wordt het geschreven als ((x == 0) I I ((x + 1) == 0)).

| Lessen plannen voor het academiejaar (FSES) | 3.4. Vertakkingsalgoritme programmeren

Lessen 27 - 28
3.4. Vertakkingsalgoritme programmeren

trefwoorden:

Voorwaardelijke operator
onvolledige voorwaardelijke verklaring
samengestelde operator
geneste takken

3.4.1. Voorwaardelijke operator

Bij het schrijven in Pascal-taal gebruiken vertakkende algoritmen een voorwaardelijke operator. Zijn algemeen beeld:

indien <условие> dan <оператор_1> anders <оператор_2>

Om onvolledige takken te schrijven, wordt een onvolledige vorm van de voorwaardelijke operator gebruikt:

indien <условие> dan <оператор>

Woorden als dan anders zijn vertaald uit het Engels in het Russisch als als - dan - anders, wat volledig overeenkomt met het schrijven van vertakkingen in de algoritmische taal.

Voorkant anders teken «;» niet gezet.

Booleaanse uitdrukkingen worden gebruikt als voorwaarden:

Eenvoudig - relaties vastgelegd met behulp van bewerkingen;
complex - geschreven met behulp van logische bewerkingen.

Voorbeeld 1. Laten we in Pascal het algoritme schrijven dat in paragraaf 2.4.2 (voorbeeld 8) is besproken om te bepalen of een punt x tot het segment [ een, b].

Voorbeeld 2. We zullen een onvolledige voorwaardelijke operator gebruiken om in Pascal het algoritme te schrijven voor het toewijzen van een variabele aan de waarde van de grootste van de drie waarden die in paragraaf 2.4.2 worden beschouwd (voorbeeld 9) a, b en c.

Vul dit programma zo aan dat de uitvoering ervan leidt tot de toewijzing van de variabele y aan de waarde van de grootste van de vier waarden. a, b, c en d.

3.4.2. Samengestelde operator

In de voorwaardelijke verklaring en daarna dan, en daarna anders er kan slechts één operator worden gebruikt. Als het onder bepaalde omstandigheden nodig is om een ​​bepaalde reeks operatoren uit te voeren, dan worden ze gecombineerd tot één samengestelde operator.

Bekijk constructie

beginnen <последовательность операторов> einde genaamd samengestelde operator.

Voorbeeld. Het algoritme voor het oplossen van een kwadratische vergelijking is u wel bekend. Laten we het bijbehorende programma in Pascal schrijven.


3.4.3. Verschillende manieren om branches te schrijven

U kunt daarna en anders een voorwaardelijke operator als instructie gebruiken. De volgende constructie is bijvoorbeeld mogelijk:

indien <условие1> dan

indien <условие2> dan <оператор1>

anders <оператор2>

Houd er bij het gebruik van dergelijke complexe structuren (ze worden ook geneste takken genoemd) rekening mee dat anders altijd naar de dichtstbijzijnde operator verwijst indien.

Voorbeeld. Laten we geneste vertakking gebruiken om in Pascal het algoritme te schrijven voor het oplossen van een lineaire vergelijking die in paragraaf 2.4.2 (voorbeeld 10) wordt besproken.

In de regel kunnen meerdere algoritmen worden voorgesteld om hetzelfde probleem op te lossen. Laten we dit verifiëren door het programma op te schrijven voor het oplossen van de lineaire vergelijking zonder toevlucht te nemen tot geneste vertakkingen.

Misschien lijkt de tweede versie van het programma u intuïtiever. Maar de eerste optie heeft ook zijn voordelen: er worden minder controles uitgevoerd.

indien <условие> dan <оператор_1> anders <оператор_2>

Gebruik geneste takken om een ​​programma te schrijven dat bepaalt of punt x tot het segment [a, b] behoort.

indien <условие> dan <оператор>

HET BELANGRIJKSTE

Bij het schrijven in Pascal-taal gebruiken vertakkende algoritmen de voorwaardelijke operator:

indien <условие> dan <оператор_1> anders <оператор_2>

Een onvolledige voorwaardelijke operator wordt gebruikt om onvolledige takken te schrijven:

indien <условие> dan <оператор>

Als het onder een bepaalde voorwaarde nodig is om een ​​bepaalde sequentiële operator uit te voeren, dan worden ze gecombineerd tot één samengestelde operator, die de vorm heeft:

beginnen <последовательность операторов> einde

Vragen en taken

1. Lees het materiaal van de presentatie voor de paragraaf in de elektronische bijlage bij het leerboek. Gebruik deze bronnen om vragen te beantwoorden en opdrachten uit te voeren.

2. Hoe wordt volledige en onvolledige vertakking geschreven in Pascal?

3. Is de volgende reeks tekens een voorwaardelijke instructie?

maar) indien NS<у dan x: = 0 lees anders (y)
B) indien x> = y dan x: = 0; y: = 0 anders schrijf (z)
in) indien x dan a: = een + l

4. Wat is een samengestelde operator? Waar wordt het voor gebruikt in een voorwaardelijke verklaring?

5. Gebruik een samengestelde instructie om de volgende code te vereenvoudigen:

indien a> b dan c: = 1;
indien a> b dan d: = 2;
indien een<=b dan c: = 3;
indien een<=b dan d: = 4

6. Er wordt een driecijferig nummer gegeven. Schrijf een programma dat detecteert:

a) of er identieke cijfers zijn van een gegeven driecijferig geheel getal;


b) is het getal een "flip", dat wil zeggen een getal waarvan de decimale notatie gelijkelijk van links naar rechts en van rechts naar links wordt gelezen.

7. Twee punten zijn gegeven in een plat rechthoekig coördinatensysteem. Schrijf een programma dat bepaalt welk punt het dichtst bij de oorsprong ligt.

8. Gegeven drie natuurlijke getallen. Schrijf een programma om te bepalen of er een driehoek is met deze lengtes van de zijden. Als zo'n driehoek bestaat, bepaal dan het type (gelijkzijdig, gelijkbenig, veelzijdig).

9. Er zijn gegevens over het aantal volledige jaren van de drie prijswinnaars van de Olympische Spelen. Schrijf een programma dat de leeftijd van de jongste winnaar selecteert en weergeeft.

10. Schrijf een programma dat bepaalt of punt A (xa, ya) op de lijn y = kx + l erop of eronder ligt.

11. Schrijf een programma dat de waarden van de variabelen x en y uitwisselt als x groter is dan y.

12. Gegeven een voorwaardelijke operator:

indien maar<5 dan met: = 1 anders

indien a> 5 dan c: = 2

anders met: = 3

Welke waarde heeft de variabele a als door het uitvoeren van de conditionele instructie de variabele c de waarde 3 krijgt?

13. Schrijf een programma dat de waarde van een functie berekent:

14. Maak een programma voor het oplossen van probleemnummer 21 t/m § 2.4 (bepalen van de dag van de week).

15. Het veld van een schaakbord wordt bepaald door een paar natuurlijke getallen, die elk niet groter zijn dan 8. Schrijf een programma dat, gegeven de ingevoerde coördinaten van twee velden (k, l) en (m, n), bepaalt of deze velden hebben dezelfde kleur.

16. Schrijf een programma waarin de gebruiker wordt gevraagd een geheel getal a op te tellen bij 100 (a is een willekeurig getal kleiner dan 100). Het antwoord van de gebruiker wordt gecontroleerd en becommentarieerd.

Lesonderwerp : Forking-algoritmen programmeren. Voorwaardelijke exploitant.

Leerboek: Bosova L. L. Informatica: een leerboek voor groep 8 - M.: BINOM. Kennislaboratorium, 2014 .-- 160 p. : ziek.

Soort les: een les in het leren van nieuwe stof.

Lesdoelen :

    onderwijs : organiseer de activiteiten van studenten om vertrouwd te raken met de syntaxis van de voorwaardelijke operator (operatorindien); voorwaarden scheppen voor de vorming van het vermogen van leerlingen om de operator te gebruikenindienbij het schrijven van programma's;

    ontwikkelen : het bevorderen van een grotere belangstelling voor het onderwerp; de ontwikkeling van algoritmisch denken bij studenten bevorderen; de ontwikkeling van logisch denken, cognitieve interesse, geheugen van studenten bevorderen;

    opvoeden : bijdragen aan de vorming van zelfstandigheid bij het oplossen van problemen; bijdragen aan teambuilding, het vormen van een respectvolle houding naar elkaar toe.

Gevormde Universele Leeractiviteiten (ULE) :

    Persoonlijke UUD :

    1. fantasie en verbeelding bij het uitvoeren van educatieve activiteiten;

      de wens om educatieve activiteiten uit te voeren.

    Cognitieve UUD :

    1. logische acties en operaties;

      creatie en transformatie van modellen en schema's voor het oplossen van problemen.

    Communicatieve UUD :

    1. eigen mening en standpunt formuleren.

    Regelgevende UUD :

    1. het plannen van uw acties in overeenstemming met de taak en de voorwaarden voor de uitvoering ervan.

Apparatuur : personal computer (pc), multimediaprojector, scherm.

Software : presentatie “Forking-algoritmen programmeren. Voorwaardelijke exploitant".

Lesplan

Tijdens de lessen.

1. Organisatorisch moment

Groeten, de gereedheid voor de klas controleren, de aandacht van kinderen organiseren.

Ze worden meegenomen in het zakelijke ritme van de les.

2. Kennis actualiseren

Hallo jongens! Vandaag gaan we over tot de studie van de syntaxis van de voorwaardelijke operator in de taalPascal.

Noteer de datum en het onderwerp van vandaag voor de les van vandaag: Forking-algoritmen programmeren. Voorwaardelijke exploitant".

Laten we nu het materiaal uit de sectie "Algoritmen" en eerdere lessen herhalen:

Wat voor soort algoritmische constructie wordt vertakking genoemd;

Wat voor soort vertakking ken je;

Teken blokschema's van de volledige en verkorte vertakkingsvormen;

Hoe logische functies AND, OR, NOT zijn geschreven in taalPascal.

(Vragen beantwoorden)

Vertakking is een algoritmische constructie waarin, afhankelijk van het resultaat van het controleren van een voorwaarde ("ja" of "nee"), een keuze uit twee reeksen acties (vertakkingen) wordt geboden.

Er zijn volledige en verkorte vormen van vertakking.

Blokschema's:

EN, OF, NIETrespectievelijk.

3. Nieuw materiaal leren

Laten we nu eens kijken naar de syntaxis van de vertakkingsoperatoren in de taalPascal... Om te beginnen raad ik u aan een tabel met twee kolommen voor te bereiden. Noem de kolommen van de tabel "Volledige vorm van voorwaardelijke operator" en "Verkorte vorm van voorwaardelijke operator". Voer nu in de juiste kolommen de stroomdiagrammen in van de volledige en verkorte vertakkingsformulieren, die op het bord worden weergegeven.

Hieronder noteren we de algemene weergave van de volledige en verkorte vormen van de voorwaardelijke operator.

Het volledige formulier heeft de volgende syntaxis:

indien<условие>

dan<оператор 1>

anders<оператор 2>;

indiendan, waarna de operator wordt geschreven, die wordt uitgevoerd als de voorwaarde waar is. Dan wordt het servicewoord geschrevenanders, waarna de operator wordt geschreven, die wordt uitgevoerd als de voorwaarde onwaar blijkt te zijn.

Markeer in uw notitieboekjes dat vóór het servicewoordandersteken ";" niet gezet.

De korte vorm van de voorwaardelijke instructie heeft de volgende syntaxis:

indien<условие>

dan<оператор 1>;

Het servicewoord wordt eerst geschrevenindien, dan - de voorwaarde, waarvan de uitvoering van deze of gene tak van de voorwaardelijke operator afhangt. Na de voorwaarde wordt een servicewoord geschrevendan, waarna de operator wordt geschreven, die wordt uitgevoerd als de voorwaarde waar is.

Houd er rekening mee dat als, als resultaat van de test, de voorwaarde onwaar blijkt te zijn, de voorwaardelijke instructie in korte vorm gewoon zal worden overgeslagen en het programma zal doorgaan met het uitvoeren van de volgende instructies. Voor de volledige vorm van de voorwaardelijke operator is deze instructie niet waar - hij zal altijd worden uitgevoerd (de operator van een van de takken van de voorwaardelijke operator wordt uitgevoerd).

Merk ook op dat de voorwaarde in de voorwaardelijke instructie een eenvoudige (geschreven met behulp van relatiebewerkingen) of complexe (geschreven met logische bewerkingen) booleaanse expressie is.

(Maak een tafel op)

indien <условие>

dan <оператор 1>

anders <оператор 2>;

indien <условие>

dan <оператор 1>;

Voorkantandersteken ";" niet zetten!

(Schrijf op 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) booleaanse expressie.

4. Consolidatie van wat is geleerd

Overweeg het volgende probleem met u (schrijf de toestand op in uw notitieboekjes): de gebruiker voert drie verschillende getallen in, waarvan 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 wijzigen door een lus met een postconditie toe te passen. Terwijl ik het probleem typ in de editor, noteer je de oplossing in je notitieblok. [Samen met de studenten los ik het probleem op een computer in de IO op, onderweg wordt de oplossing op het scherm geprojecteerd ].

Lijst met mogelijke vragen voor de bespreking van het probleem.

1) Hoeveel variabelen moeten we beschrijven?

2) Hoe vind je consequent het kleinste element tussen de bekende elementen?

Overweeg samen met u het volgende stukje code:

een: = 11;

b: = een div 3;

een: = a-b;

als a * b mod 2 = 0

schrijf dan (a * b)

anders schrijven (ba);

Wat zijn de waarden van variabelen a en b nadat deze reeks instructies is uitgevoerd? Wat wordt er op het scherm weergegeven?

Ga nu verder met computers en voer de volgende taken zelf uit.

1) Zoek de waarde van de functie y (x) en toon deze op het scherm tot op de dichtstbijzijnde duizendsten:. Betekenisxingevoerd via het toetsenbord.

2) Schrijf een programma dat bepaalt of punt A (x, ja) van het gevulde gebied, inclusief de rand van het gebied:

Noteer de voorwaarde in notitieboekjes.

Neem deel aan de bespreking van het probleem, noteer de oplossing in hun notitieboekje.

minimaal programma;

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;

schrijven(" Min -> ", min);

einde.

(Vragen beantwoorden)

a = 8, b = 3. Het getal 24 wordt weergegeven.

Los zelf problemen op een computer op.

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:

programma punt;

var

x, y: echt;

beginnen

leesln (x, y);

als (x> = -1) en (x<= 3) and (y >= -2) en (y<= 4) then

schrijven( "Het punt behoort tot het gebied")

anders

schrijven("Het punt hoort niet bij het gebied");

einde.

5. Samenvattend:

Dus wat heb je geleerd in de sessie van vandaag?

Wat is een voorwaarde in een voorwaardelijke verklaring?

We hebben de syntaxis van de volledige en korte vorm van de voorwaardelijke operator geleerd.

Eenvoudige of complexe logische uitdrukking.

6. Huiswerk

Artikel 3.5.

Taken:

1) Drie segmenten met lengte a, b, c zijn gegeven. Controleer of er een driehoek is met zulke zijden. Zo ja, toon dan het bericht "De driehoek bestaat!", Vind het gebied en toon het op de volgende regel; zo niet, toon dan het bericht "De driehoek bestaat niet".

2) Opgave nummer 14 (leerboek 2012, p. 205)

Het schaakbordveld wordt bepaald door een paar natuurlijke getallen, die elk niet groter zijn dan 8. Schrijf een programma dat, gegeven de ingevoerde veldcoördinaten (k, P) en (m, N) bepaalt of deze velden velden van dezelfde kleur zijn.

Voorbeeldinvoer

Voorbeelduitvoer

2 2

3 3

Velden van dezelfde kleur

2 3

3 3

Velden met verschillende kleuren

2 7

5 4

Velden van dezelfde kleur

Noteer in dagboeken voor f / s.

Lesdoelen: 1. Competentievorming op het gebied van cognitieve activiteit;

2. Competentievorming op het gebied van communicatie.

Lesdoelen: 1. Maak kennis met de regels voor het schrijven van vertakkingsalgoritmen, voorwaardelijke operator;

2. Overweeg voorbeelden van het programmeren van vertakkingsalgoritmen;

3. Breng de leerlingen tot de conclusie dat er verschillende algoritmen ontwikkeld kunnen worden om hetzelfde probleem op te lossen;

4. Vormen van het vermogen om korte algoritmen met vertakkingen op te schrijven in de programmeertaal;

5. Doe ervaring op in het programmeren van branches.

downloaden:


Voorbeeld:

LES VAN INFORMATICA OVER HET ONDERWERP:

"Programmeren van Forking-algoritmen"

Onderwerp: Computerwetenschappen

Onderwerp: "Forking-algoritmen programmeren. Voorwaardelijke exploitant".

Klasse: 9

Docent: Olga V. Sukhanova

School: Gymnasium GBOU № 363, St. Petersburg.

Lesdoelen: 1. Competentievorming op het gebied van cognitieve activiteit;

2. Competentievorming op het gebied van communicatie.

Lesdoelen: 1. Maak kennis met de regels voor het schrijven van vertakkingsalgoritmen, voorwaardelijke operator;

2. Overweeg voorbeelden van het programmeren van vertakkingsalgoritmen;

3. Leid de leerlingen tot de conclusie dat er verschillende algoritmen kunnen worden ontwikkeld om hetzelfde probleem op te lossen;

4. Vormen van het vermogen om korte algoritmen met vertakkingen op te schrijven in de programmeertaal;

5. Doe ervaring op in het programmeren van branches.

Geplande onderwijsresultaten:

Onderwerp - het vermogen om korte algoritmen te schrijven in een programmeertaal die de "vertakkende" algoritmische constructie bevat;

Metaonderwerp - het vermogen om zelfstandig manieren te plannen om doelen te bereiken; het vermogen om hun acties te correleren met de geplande resultaten, om hun activiteiten te monitoren, om de actiemethoden te bepalen binnen de voorgestelde voorwaarden, om hun acties aan te passen aan de veranderende situatie; het kunnen beoordelen van de juistheid van de onderwijstaak;

Persoonlijk - algoritmisch denken noodzakelijk voor professionele activiteit in de moderne samenleving; begrip van programmeren als een gebied van mogelijke professionele activiteit.

Soort les: gecombineerd, is de les een spel van het verbeteren van vaardigheden en capaciteiten, het generaliseren van kennis,praktische opdrachten.

De belangrijkste organisatievormen van lesgeven in de les:

  • frontaal werken met de klas
  • individueel werken op de computer
  • groepswerk

Apparatuur:

  1. personal computers van leerlingen waarop software is geïnstalleerd: besturingssysteem Windows 7; PascalABC.net;
  2. personal computer (PC) van de leraar, multimedia projector, scherm;
  3. demonstratiemateriaal (taken voor twee teams, antwoordkaarten, - bijlage 1);presentatie "Forking-algoritmen programmeren",
  4. in de map van elke student in elektronische vorm op de pc van de blanco - materiaal voor het opstellen van een programma voor het geselecteerde probleem uit het leerboek.

Les technologie.

  1. Actualiseren van basiskennis.
  2. Instrueren van studenten om de opdracht op PascalABC.net te voltooien;
  3. Zelfstandig werken in groepen op een pc om je eigen programma te maken.
  4. Presentatie van voltooide werken voor discussie door klasgenoten.
  5. Huiswerk.
  6. De les samenvatten. Reflectie.
  7. Bibliografie.

Tijdens de lessen

  1. Tijd organiseren. Doelen en doelstellingen van de les.

Hartelijk groeten. Aankondiging van het onderwerp en de doelstellingen van de les. (3 minuten)

  1. Actualiseren van basiskennis.(8 minuten)

Aan het begin van de les:

  1. het bestuderen van het bestudeerde materiaal over dit onderwerp in de vorm van het spel "Pascal in een zeeslag". ( bijlage 1 ). De volgende vragen worden herhaald met de leerlingen:

Wat staat er in het Pascal-alfabet?

Aan welke vereisten moet worden voldaan bij het kiezen van namen voor verschillende objecten in Pascal en welke gegevenstypen worden gebruikt?

Wat is de structuur van een programma dat in Pascal is geschreven?

Welke operators worden gebruikt om gegevens in en uit te voeren?

  1. visuele controle van huiswerk in een notitieboekje.
  2. rekening houden met taken die problemen veroorzaakten bij het maken van huiswerk.
  3. een nieuw onderwerp bestuderen "Forking-algoritmen programmeren", te beginnen met het onderwerp "Voorwaardelijke operator", waaraan de studenten thuis werkten, met behulp van het materiaal dat door de leraar voor hen was voorbereid,
  4. controle door de leraar van het materiaal dat door de studenten is bestudeerd, hiervoor wordt een willekeurige student naar het bord geroepen en schrijft:

als dan anders

als dan

De docent vraagt ​​de student om te verduidelijken wat de trefwoorden in dit item betekenen; als dan ……. anders leuk vinden ze zijn vertaald in het Russisch.

  1. klassikale discussie van twee voorbeelden uit het leerboek van de 9e klas. NS. Bosova, A.Yu. Bosova is het eerste programma waarmee het mogelijk is om te bepalen of een punt erbij hoort x-segment [A, B] (bijlage 2).

De leerlingen bepalen of alles goed op het bord is geschreven door een klasgenoot, zo nodig moeten ze aanpassingen maken.

De volgende stap is dat de studenten het tweede programma op het bord schrijven.de grootste van drie getallen vinden(Bijlage 2).

Als de leraar ziet dat de studenten de stof onder de knie hebben, is het raadzaam om door te gaan naar de volgende fase van de les - praktisch werk

  1. Instrueren van studenten om de praktische opdracht in het PascalABC.net-programma te voltooien(2 minuten).

Voor deze les hebben de leerlingen zelfstandig materialen voorbereid voor het voltooien van een praktische taak met behulp van het programma PascalABC.net.De notitieboekjes van de leerlingen bevatten een wiskundige formulering van het probleem, er wordt een algoritme gecompileerd om de taak die ze aan het programmeren zijn te voltooien.

Dientengevolge zullen de studenten, verenigd in groepen, zelfstandig en gezamenlijk een programma voor het geselecteerde probleem moeten schrijven, met toepassing van de nodige kennis, om een ​​reëel en tastbaar resultaat te krijgen.

Je kunt studenten uitnodigen om het opgenomen programma nog eens goed te bekijken en te bespreken of alles erin klopt. Als het programma geen fouten bevat, moet je naar het proces gaan om de programmacode op de computer door studenten te typen.

  1. Zelfstandig werken aan het schrijven van een programma (taak in een leerboek) met behulp van een onvolledige conditionele operator en het uitvoeren ervan op een computer (20 min) (bijlage 3).

Studenten zijn vertrouwd met de algemene informatie over de programmeertaal Pascal, met de organisatie van data input en output, en kunnen lineaire algoritmen programmeren.

De studenten, verenigd in groepen, voeren zelfstandig praktisch werk uit bij het werven en lanceren van hun programma in de Pascal-taalomgeving, stellen vragen aan elkaar en aan de leraar, terwijl ze zelf lesgeven en elkaar ondersteunen, aanbevelingen gebruiken en het resultaat opslaan in hun persoonlijke map.

Om de juistheid van het programma te controleren, kan aan studenten worden gevraagd om de gegevens te gebruiken, waardoor ze de antwoordoptie op hun scherm zouden moeten zien.

In deze fase van de les wordt het hoofddoel bereikt. De leerlingen leerden wat een conditionele operator is, terwijl de docent zelf niets uitlegde tijdens de les. De leerlingen verduidelijkten en schreven zelfstandig alle elementen van de nieuwe stof op het bord. Zelfs als een van de studenten onvoorbereid naar de les komt, zal hij na het luisteren en kijken naar alles wat zijn klasgenoten hebben gedaan en uitgelegd, een nieuw onderwerp begrijpen.

  1. Presentatie van voltooide werken.(10 minuten) .

De leerlingen presenteren de gemaakte opdracht op de computer.

Iedereen verdedigt zijn kleine programma door te praten over de technieken die ze hebben gebruikt om het programma te maken.

De leerlingen geven hun mening over het resulterende werk.

  1. Huiswerk.

Bekijk het materiaal dat over het onderwerp wordt behandeld: « Vertakkingsalgoritme programmeren. Voorwaardelijke exploitant".

  1. De les samenvatten. Reflectie. (2 minuten).

De docent vat de les samen. Controleert voltooide opdrachten en kent cijfers toe. Alle leerlingen hebben de opdracht met succes afgerond.

De studenten leerden wat een voorwaardelijke operator is en realiseerden zich dat je verschillende varianten van opnamevertakkingen kunt gebruiken.

Reflectie.

Wat voor nieuws hebben we geleerd in de les van vandaag? Wat heb je geleerd?

Welke taak veroorzaakte de moeilijkheid?

Heb ik het programma correct getypt om het geselecteerde probleem op te lossen?

Vandaag kwam ik erachter ... ..

Vandaag realiseerde ik me ... ..

Bibliografie:

  1. Informatica: een leerboek voor leerjaar 9. NS. Bosova, A.Yu. Bosov. - M.: BINOM. Kennislaboratorium, 2013.
  2. Computertechnologie. methodische handleiding voor de rangen 7-9: L.L. Bosova, A.Yu. Bosov. - M.: BINOM. Kennislaboratorium, 2015.
  3. Computertechnologie. werkboek voor groep 8: L.L. Bosova, A.Yu. Bosov. - M.: BINOM. Kennislaboratorium, 2015.
  4. Informatica: een leerboek voor groep 8. NS. Bosova, A.Yu. Bosov. - M.: BINOM. Kennislaboratorium, 2013.

Bijlage 1. Opdrachten voor het eerste elftal

  1. Wat worden operatorhaakjes genoemd:

3а) () 4B) () 6g) 1d) begin… eind

  1. Welke van de programmakopteksten is correct:

8a) Programmataak 1 4e) Programma 1

1j) Programma zadacha_1 6 g) Programma 1_zadacha

  1. Hoe de invoerverklaring is geschreven:

6c) SCHRIJVEN (X, Y) 2b) LEZEN (X, Y)

8c) SCHRIJF (X; Y) 2i) LEES (X; Y)

  1. Hoe de toewijzingsoperator wordt geschreven:

2k) A: = B + 5 3a) A = B + 5 6k) A: = B + 5 3c) B + 5: = A

  1. Als u in Pascal de uitdrukking y = 5x - 10x + 2 schrijft, ziet x er als volgt uit:

10a) y = 5 * x-10 * x + 2 / x 6e) y = 5x-10x + 2 / x

9i) y: = 5x-10x + 2: x 3b) y: = 5 * x-10 * x + 2 / x

  1. Welke operator is fout als beschrijvingen worden gegeven: var i, j: integer; x, y: echt;

5a) x: = i * y 4e) y: = i / i 3e) j: = i / 2 6i) j: = ik * ik

  1. De voorwaardelijke operator wordt geschreven als:

1g) Terwijl doe

4k) Als dan anders

8b): =

4i) Indien dan;

1e) indien b> 5 dan b: = b-3; anders b: = b + 15

3d) als b> 5 dan b: = b + 15; anders b: = b-3

5c) als b> 5 dan b: = b + 15 else b: = b-3

10k) als b> 5 dan b: = b + 15 b: = b-3

  1. Na het uitvoeren van de opdracht operators: a: = 3; b: = 5, c: = 7, d: = een; een: = b; b: = c, c: = d, de verhouding van de waarden van variabelen a, b, c is als volgt:

3а) a> b> c 5i) b> c> a 8g) c> b> a 6h) b> a> c

  1. Bepaal de waarde van integer variabelen x, y en t na het uitvoeren van het programmafragment: x: = 5; y: = 7; t: = x; x: = y mod x; y: = t;

7a) x = 2, y = 5, t = 5 3c) x = 7, y = 5, t = 5 2e) x = 2, y = 2, t = 2

7k) x = 5, y = 5, t = 5

  1. Wat zal de waarde van de variabele zijn? TOT nadat je het volgende hebt gedaan?

K: = 5;

S: = K + 2;

K: = S + 2;

K: = K + 10 + S;

6i) 5 7g) 12 6g) 7 7h) 26

  1. Als resultaat van de uitvoering van het programma

Programma klassikaal;

beginnen

schrijven (45 / (12-3));

schrijven ("klassen");

einde.

het volgende item verschijnt op het scherm:

8c) 5 klassen 10c) 9 klassen

9c) 5 klassen; 10d) 9 lessen

Bijlage 1. Opdrachten voor het tweede team

  1. In welke sectie staat de beschrijving van de variabelen:

1e) in de sectie die constanten beschrijft 2a) in de sectie die typen beschrijft

1a) in de sectie die variabelen beschrijft 6c) in de sectie die uitdrukkingen beschrijft

  1. Hoe het programma eindigt:

2b) READLN 6b) READLN; EINDE 1e) EINDE 1b) EINDE

  1. Hoe de uitvoerinstructie is geschreven:

1d) SCHRIJVEN (A, D) 2c) LEZEN (A, D)

1g) SCHRIJF (A; D) 6k) LEES (A; D)

  1. De toewijzingsoperator is:

2d) =

4e): =

3e) :: =

10c): =

  1. Uitdrukking x = 4vs-h + 2: (in + 3) in Pascal wordt geschreven als:

6i) x = 4vs-h + 2: (v + 3) 2d) x: = 4 * v * s-h + 2 / (v + 3)

3g) x: = 4 * b * s-h + 2 / (s + 3) 1h) x: = 4 * b * s-h + 2: (s + 3)

  1. Welke operator is correct gespeld als beschrijvingen worden gegeven:

Var i, j: geheel getal; x, y: echt

4a) x: = i * j 1 i) y: = i / x 3h) j: = i + 2 6d) j: = i * y

  1. De voorwaarde "als A groter of gelijk is aan C, dan is B gelijk aan 1" komt overeen met het programmafragment:

2f) als A> C dan B: = 1 6h) als A> B = C dan B: = 1

4k) als A> = C dan B = 1 1k) als A> = C dan B: = 1

  1. Na het uitvoeren van de opdracht operatoren: a: = c; B : = d; een: = een + b; b: = a-b; a: = a-b, variabelen a en b nemen de waarden van variabelen:

9a) a = c, b = d 5b) a = c, b = c 7e) a = d, b = c 3k) a = c + d, b = c-d

  1. Bepaal de waarden van de integer-variabelen a en b na het uitvoeren van het programmafragment: a: = 42; b: = 14; a: = een div b; b: = een * b; a: = b div a;

10h) a = 42, b = 14 8d) a = 1, b = 42

5b) a = 0, b = 588 7h) a = 14, b = 42

  1. Wat is de waarde van K na het volgende te hebben gedaan?

K: = 10;

S: = K + K + 5;

K: = S

S: = K-10

3i) 10 6k) 15 7c) 5 7i) 25

  1. De uitspraak "Als de waarde van de variabele b groter is dan 5, verhoog dan de waarde van b met 15, anders verlaag de waarde van b met 3", komt overeen met de operator:

1e) indien b> 5 dan b: = b-3; anders b: = b + 15

3d) als b> 5 dan b: = b + 15; anders b: = b-3

5c) als b> 5 dan b: = b + 15 else b: = b-3

10k) als b> 5 dan b: = b + 15 b: = b-3

  1. Als resultaat van de uitvoering van het programma

Programma klassikaal;

beginnen

schrijven (30 / (11-5));

schrijven ("klassen");

einde.

het volgende item verschijnt op het scherm:

8c) 5 klassen 10c) 6 klassen

9c) 5 klassen; 10d) 6 lessen

Bijlage 3.

Praktijkopdracht voor twee groepen in de les:

Opdracht voor groep 1:

Er wordt een driecijferig nummer gegeven. Schrijf een programma dat bepaalt of de cijfers van een gegeven driecijferig geheel getal hetzelfde zijn;

Voorbeeld brongegevens

Voorbeelduitvoer

Opdracht voor groep 2:

Voer drie cijfers in vanaf het toetsenbord A, B, C ... Bepaal of de ingevoerde getallen gelijk zijn. Van het toetsenbord.

Taken nummer 3 (geavanceerde versie)

Er worden drie natuurlijke getallen gegeven. Schrijf een programma om te bepalen of er een driehoek is met deze lengtes van de zijden. Als zo'n driehoek bestaat, bepaal dan het type (gelijkzijdig, gelijkbenig, veelzijdig).