Ciklusi. Ciklički algoritmi. Petlje s preduvjetom i postuslovom Izvodi se operater petlje s preduvjetom

Ciklični računski postupak (CMP) karakterizira ponavljanje istih izračunavanja za određeni skup podataka. Broj ponavljanja petlje kontrolira posebna varijabla tzv brojač ili kontrolna varijabla ciklus. Brojaču se nameće uvjet koji određuje koliko dugo treba izvršiti petlju.

Poziva se ponovljivi blok računanja tijelo ciklus. Tijelo petlje mora osigurati promjena vrijednosti brojača tako da može dovršiti. Ako se tijelo petlje sastoji od više izjava, ono je zatvoren u zagrade operatora početak ... kraj;. Izvršenje tijela petlje jednom ga je pozvalo korak.

Dakle, za programiranje petlje dovoljno je definirati uvjet koji kontrolira broj njegovih ponavljanja i opisati operatore koji čine tijelo petlje. S ovog su gledišta teoretski moguće samo dvije vrste petlji - provjera stanja prethodi izvođenju tijela petlje ili se događa nakon njega. Prikažimo ove cikluse u obliku blok dijagrama s pripadajućim opisima:

Petlja s preduvjetom: prvo se provjerava stanje, a zatim, ovisno o tome je li istinito ili netačno, izvršava se ili tijelo petlje, ili slijedi prijelaz na izraz koji slijedi tijelo petlje. Nakon završetka tijela petlje, kontrola se ponovno prenosi kako bi se provjerilo stanje. Prirodno, pretpostavlja se da je neka promjena varijabli uključenih u uvjet osigurana u tijelu petlje - inače, petljanje i program će se zamrznuti.

Petlja s postkondicijom: prvo se izvršava tijelo petlje, a zatim se prenosi kontrola radi provjere stanja. Ovisno o istinitosti ili neistini stanja, tijelo petlje se ponovno izvršava ili se događa prijelaz na operatora koji slijedi tijelo petlje. Sve što je rečeno o mogućem petljanju petlje s preduvjetom vrijedi i za petlju s postuslovom.

Na temelju danih blok dijagrama, očita je glavna razlika između dvije petlje: petlja s postuslovom zajamčena je da se izvrši barem jednom, a petlja s preduvjetom ne smije se izvršiti niti jednom ako je stanje odmah lažno.

Obje vrste petlji implementirane su u Pascalu. Petlja s preduvjetom ima sljedeći opći oblik:

dok boolean_expression doista započinje

(operatori tijela petlje)

Rad ciklusa može se opisati riječima: " sve dok je logički izraz istinit, tijelo petlje se ponavlja".

Logični izraz izrađen je prema pravilima proučenim u poglavlju 7. Bilo koji Pascal operateri mogu oblikovati tijelo petlje. Ako je u tijelu petlje samo jedan operator, zagrade operatora ne moraju biti zapisane.

Opći zapis petlje s postuslovom je sljedeći:

(operatori tijela petlje)

do boolean_expression;

Petlja s postkondicijom djeluje na sljedeći način: " tijelo petlje se ponavlja sve dok logički izraz ne postane istinit Imajte na umu da, za razliku od while, Pascalova ponavljajuća petlja radi sve dok lažno... Ta se razlika naglašava upotrebom ključne riječi dok ("dok god ne") umjesto while (" dokle god "). Osim toga, kao iznimka, tijelo ponavljajuće petlje, čak i ako se sastoji od nekoliko naredbi, može ne priložite u zagrade.

Petlje se često koriste naizmjenično. Zamislite, na primjer, da za svaku od vrijednosti varijable x = 1,2, ..., 20 trebate izvršiti neki izračun (matematički se ovaj zakon promjene x može zapisati kao
ili
). Pokažimo opći prikaz while i ponovimo petlje:

dok je x<=20 do begin

(operateri izračuna)

(operateri izračuna)

Kao što možete vidjeti iz popisa, kontrolnoj varijabli x u oba slučaja dodjeljuje se početna vrijednost 1, obje petlje mijenjaju vrijednost x i, shodno tome, uvjet petlje, s operatorom x: = x + 1;, ali za petlja ponavljanja uvjet je "obrnut" ("dok x ne postane veći od 20"), a tijelo nije zatvoreno u zagrade operatora.

Često se čini da je korištenje jedne od petlji poželjnije. Na primjer, rukovanje korisničkim unosom s tipkovnice praktičnije je kod ponavljanja (prvo korisnik mora pritisnuti tipku, a zatim slijede provjera valjanosti i obrada).

Također, petlja se može nazvati bilo kojim slijedom uputa koje se mogu izvršavati više puta, organizirano na bilo koji način.Definicije Slijedom uputa namijenjenih ponovljenom izvršavanju naziva se tijelo petlje. Pojedinačno izvršavanje tijela petlje naziva se iteracija. Definirajući izraz ponovit će se ili će petlja završiti naziva se izlaznim uvjetom ili uvjetom prekida petlje ili uvjetom nastavka, ovisno o tome kako se njegova istina tumači kao znak nužnosti ...


Podijelite svoj rad na društvenim mrežama

Ako vam ovo djelo nije odgovaralo, na dnu stranice nalazi se popis sličnih djela. Možete koristiti i gumb za pretraživanje


Ciklus - vrsta upravljačke strukture uprogramski jezici visoke razine, namijenjen organizaciji višestrukog izvođenja seta upute ... Također, petljom se može nazvati bilo koji slijed uputa koje se opetovano izvršavaju, organizirane na bilo koji način.

Definicije

Pozvan je slijed uputa dizajniranih za višekratno izvršavanje tijelo ciklusa ... Poziva se jedno izvršenje tijela petlje ponavljanje. Izraz određuje hoće li se iteracija ponovno izvršiti ili će petlja završiti, poziva se izlazno stanje ili uvjet za kraj ciklusa(ili uvjet nastavkaovisno o tome kako se tumači njegova istina - kao znak potrebe za dovršenjem ili nastavkom ciklusa). Promjenjiva pohranjuje se trenutni iteracijski brojbrojač iteracijaciklus ili samo brojač ciklusa ... Petlja ne mora nužno sadržavati brojač, brojač ne mora biti jedan - uvjet za izlazak iz petlje može ovisiti o nekoliko varijabli promijenjenih u petlji ili se može odrediti vanjskim uvjetima (na primjer, početak određeno vrijeme), u potonjem slučaju brojač možda uopće neće trebati.

Izvršenje bilo koje petlje uključuje početnu inicijalizaciju varijabli petlje, provjeru stanja izlaza, izvršavanje tijela petlje i ažuriranje varijable petlje na svakoj iteraciji. Uz to, većina programskih jezika pruža sredstva za ranu kontrolu petlje, na primjer, operatori da prekinu petlju, odnosno da izađu iz petlje, bez obzira je li izlazni uvjet istinit.

Petlja s preduvjetom

Petlja s preduvjetom je petlja koja se izvršava sve dok je istinit određeni uvjet naveden prije njegovog početka. Ovo je stanje provjereno prije izvršenje tijela petlje, tako da se tijelo možda neće izvršiti niti jednom (ako je uvjet netačan od samog početka). U većini proceduralnih programskih jezika implementira ga operator dok , pa otuda i njegovo drugo ime - while-loop. U Pascalu preduslovljena petlja izgleda ovako:

dok<условие>čini

početi

<тело цикла>

kraj;

Petlja s postkondicijom

Petlja s postuslovom - petlja u kojoj se provjerava stanje nakon izvršenje tijela petlje. Slijedi da tijelouvijek izvršenbarem jednom. U Pascalu se ova petlja implementira operater ponoviti..dok; u C, učinite ... dok.
U Pascalu, petlja postkondicije izgleda ovako:

ponoviti

<тело цикла>

do <условие выхода>

Petlja s izlazom iz sredine

Petlja iz sredine je najčešći oblik uvjetne petlje. Sintaktički se takva petlja formira pomoću tri konstrukcije: početkom petlje, krajem petlje i naredbom za izlaz iz petlje. Startna konstrukcija označava točku u programu gdje počinje tijelo petlje, a krajnja konstrukcija označava točku na kojoj tijelo završava. Unutar tijela mora postojati naredba za izlazak iz petlje, kada se izvrši, petlja se završava i kontrola se prenosi u izraz nakon završetka konstrukcije petlje. Naravno, da bi se petlja izvršila više puta, naredba exit ne smije se pozivati ​​bezuvjetno, već samo kada je zadovoljen uvjet izlaska iz petlje.

zapravo ovo je pauza;

Biciklirajte s brojačem

Ciklus s brojačem je ciklus u kojem neki varijabilna mijenja svoju vrijednost iz zadane početne u konačnu vrijednost nekim korakom, a za svaku vrijednost ove varijable tijelo petlje se izvršava jednom. U većini proceduralnih programskih jezika implementira ga operator za , koji označava brojač (tzv. "varijablu ciklusa"), potreban broj prolaza (ili graničnu vrijednost brojača) i, možda, korak s kojim se brojač mijenja.

za i: = 0 do 9 do

početi

Tijelo petlje

kraj;

Rani izlazak iz ciklusa

Naredba za rani izlaz koristi se kada je potrebno prekinuti izvršavanje ciklusa u kojem još nije postignut uvjet izlaska. To se događa, na primjer, kada se tijekom izvršavanja tijela petlje otkrije pogreška, nakon čega je daljnji rad petlje besmislen.

Obično se zove naredba za rani izlaz EXIT ili pauza , a njegovo je djelovanje slično djelovanju naredbe bezuvjetnog skoka ( ići ) na naredbu koja neposredno slijedi petlju unutar koje se nalazi ova naredba.

Ugniježđene petlje

Moguće je organizirati petlju unutar tijela druge petlje. Takav će se ciklus nazvatiugniježđena petlja... Ugniježđeni ciklus u odnosu na ciklus u čije je tijelo ugniježđeno bit će imenovanunutarnja petlja, i obrnuto, imenovat će se ciklus u tijelu u kojem ugniježđeni ciklus postoji vanjski u odnosu na ugniježđene. Unutar ugniježđene petlje, zauzvrat se može ugnijezditi još jedna petlja, čineći sljedećerazina gniježđenjaitd. Broj razina gniježđenja u pravilu nije ograničen.

Ukupan broj izvršavanja tijela unutarnje petlje ne premašuje umnožak broja iteracija unutarnje i svih vanjskih petlji. Na primjer, uzimajući tri ugniježđene petlje, svaka s po 10 ponavljanja, dobit ćemo 10 izvođenja tijela za vanjsku petlju, 100 za petlju druge razine i 1000 u najunutarnjoj petlji.

Ostala slična djela koja bi vas mogla zanimati

2740. Ciklički algoritmi. Petlja s preduvjetom 16,37 KB
Upoznajmo se s prvim od njih - operatorom petlje s preduvjetom while. Petlje s preduvjetom koriste se kada je izvršavanje petlje povezano s nekim logičkim uvjetom. Izjava petlje s preduvjetom ima dva dijela: uvjet izvođenja petlje i tijelo petlje. Opći oblik notacije je sljedeći dok uvjet počinje s završetkom tijela petlje; Na ruskom zvuči otprilike ovako: dok je taj uvjet ispunjen, radite grupu operatora od početka do kraja; Sasvim je jasno da se zagrade operatora koriste za odvajanje od ostatka programa ...
7903. Proizvodni ciklus 39,35 KB
Radno razdoblje sastoji se od vremena za izvođenje tehnoloških i netehnoloških operacija; potonji uključuju sve kontrolne i transportne radnje od trenutka dovršetka prve proizvodne operacije do isporuke gotovog proizvoda. Sekvencijalnom vrstom kretanja, proizvodni nalog - jedan dio ili jedan sklopljeni stroj ili serija dijelova 1 serija strojeva 2 - u procesu njihove proizvodnje prebacuje se na svaki sljedeći postupak procesa tek nakon završetka obrade sklopa svih strojni dijelovi ove serije ...
7548. Životni ciklus EIS-a 34,12 KB
Životni ciklus EIS-a Potreba za stvaranjem EIS-a može se odrediti ili potrebom za automatizacijom ili modernizacijom postojećih informacijskih procesa ili potrebom radikalne reorganizacije u aktivnostima poduzeća za obavljanje poslovnog reinženjeringa. Potrebe za stvaranjem EIS-a ukazuju, prvo, za postizanje kojih je ciljeva potrebno razviti sustav; drugo, u kojem je trenutku vremena preporučljivo izvršiti razvoj; treće, koji su troškovi neophodni za dizajn sustava. EIS dizajn ...
7492. PROJEKTNI CIKLUS 5,37 MB
Životni ciklus projekta polazna je točka za istraživanje problema financiranja projektnog rada i donošenja odgovarajućih odluka. Svaki projekt, bez obzira na složenost i količinu posla potrebnog za njegovu provedbu, u svom razvoju prolazi kroz određena stanja: od stanja kada projekt još nije prisutan do stanja kada projekta više nema. Za poslovne ljude početak projekta povezan je s početkom njegove provedbe i početkom ulaganja novca u njegovu provedbu.
8075. Drugi proračunski ciklus 9,25 KB
U drugom slučaju dobili smo takozvane ekvivalentne d-kocke za element 8, koje se od prvog razlikuju samo inverzijom simbola d, pa moramo uzeti ekvivalentnu d-kocku I dobiti rješenje.
21755. Životni ciklus projekta 154,99 KB
Učinkovitost i održivost aktivnosti moderne organizacije u velikoj je mjeri određena kvalitetom upravljačkih aktivnosti koje se provode na polju upravljanja projektnim ciklusom. Nadležno upravljanje projektnim ciklusom pokazatelj je ispravnog smjera strateškog razvoja u skladu s raspoloživim mogućnostima.
2742. Petlja s REPEAT postkondicijom 12,49 KB
Već znate kako organizirati petlju pomoću naredbe while. Sjetimo se da kada se izvrši ova izjava, računalo provjerava vrijednost stanja. Ako je uvjet istinit, tada će se izvršni dio naredbe while ponavljati do
20265. Životni ciklus tvrtke "FERRERO" 13,74 KB
Ale zupinila Imam dobru atmosferu kod svih velikih ljudi poznate slastičarske tvrtke Ferrero. Udio kože četvrte gorčine na svjetlu - nađite se u ustima lasunija, što je toliko dobro za vas s ljubavlju talijanske grupe Ferrero, da u trenutku uspavljivanja u nadolazećem počinje učiti 70 stjenovitih planina . -bojna pasta zvana Nutell ...
1002. Provjera stanja, petlja s dodatnim uvjetom 2,25 MB
Montažni jezik notacijski je sustav koji se koristi za čitanje programa koji su napisani u strojnom kodu, u čitljivom obliku. Montažni jezik omogućuje programeru upotrebu abecednih mnemoničkih kodova
2341. Životni ciklus proizvoda i ponašanje potrošača 14,84 KB
Životni ciklus ponašanja proizvoda i potrošača LCI sastoji se od nekoliko faza: istraživanje i razvoj; provedba; povećanje prodaje; zrelost; recesija. Prva faza životnog ciklusa je istraživanje i razvoj proizvoda. Za poduzeće su ova faza stvaranja proizvoda samo troškovi i mogući budući prihodi. Postupak dovođenja proizvoda na tržište zahtijeva vrijeme; u tom razdoblju prodaja sporo raste, što se može objasniti takvim okolnostima: kašnjenja u proširenju proizvodnih kapaciteta; tehnički problemi; ...

Obustavite AdBlock na ovom web mjestu.

Ponekad ne možete unaprijed predvidjeti koliko puta treba pokrenuti petlju. Ali istodobno je poznato određeno stanje kada bi se ciklus trebao zaustaviti. Na primjer:

Program: Kockice.

Program zamjenjuje uobičajene kockice.

Kontrolirati:

  • 1 - bacite kockice;
  • 0 - Završite igru.

Napišimo predložak za našu igru.

Popis 1.

#include #include #include int main (void) (srand (time (NULL)); printf ("########### Vražje kosti ########### \ n"); printf ("# # \ n"); printf ("# Commands: # \ n"); printf ("# # \ n"); printf ("# 1 - nova igra # \ n"); printf ("# 0 - izlaz # \ n "); printf (" # # \ n "); printf (" ############################# # ########## \ n \ n "); int control; int value = 0; printf (" Enter command: "); scanf ("% d ", & control); if (control == 1) (vrijednost = 1 + rand ()% 6; printf ("Rezultat:% d \ n", vrijednost);) return 0;)

Tu nailazimo na problem. Jasno je da je nemoguće unaprijed znati kada će igra završiti. To znači da petlju for ne možete koristiti izravno. Jedan od izlaza iz ove situacije je uporaba drugih cikličkih konstrukcija. Na primjer, while petlja.

Petlja s preduvjetom while

Popis 2.

Izjava while (uvjet);

  1. Program nailazi na ključnu riječ while, što znači da slijedi petljasta konstrukcija;
  2. Stanje se provjerava. Procjenjuje se logički izraz u zagradama;
  3. Ako je vrijednost uvjeta TRUE, tada se izvršava tijelo petlje. Prolazimo do točke 2;
  4. Ako je vrijednost stanja FALSE, tada ciklus završava. Upravljanje se prenosi na operatora slijedeći tijelo petlje.

Operator znači jedan operater. Ako trebate izvršiti nekoliko naredbi u petlji, morate upotrijebiti složeni operator ().

Prepišimo naš program pomoću ove petlje.

Popis 3.

#include #include #include int main (void) (srand (time (NULL)); printf ("########### Vražje kosti ########### \ n"); printf ("# # \ n"); printf ("# Commands: # \ n"); printf ("# # \ n"); printf ("# 1 - nova igra # \ n"); printf ("# 0 - izlaz # \ n "); printf (" # # \ n "); printf (" ############################# # ########## \ n \ n "); int control; int value = 0; printf (" Enter command: "); scanf ("% d ", & control); while (control! = 0) (prekidač (kontrola) (slučaj 1: vrijednost = 1 + rand ()% 6; printf ("Rezultat:% d \ n", vrijednost); prekid; zadana vrijednost: printf ("Pogreška! Pokušajte ponovo ... \ n "); break;) printf (" Unesi naredbu: "); scanf ("% d ", & control);) printf (" Zbogom! \ n "); return 0;)

Opišimo riječima algoritam ovog programa:

  1. Prikazujemo korisnički izbornik i nudimo unos naredbe;
  2. Pokrećemo while petlju. Provjeravamo stanje;
  3. Ako je korisnik upisao 0, tada uvjet izvršavanja petlje postaje FALSE. Tijelo petlje nije izvršeno. Upravljanje se prenosi na operatora nakon ciklusa. Žica Zbogom! ... Program završava;
    1. Operator odabira:
      1. Ako je korisnik upisao 1, tada generiramo slučajni broj od 1 do 6 i prikazujemo ga na zaslonu. Izađite iz operatora odabira;
      2. Ako je korisnik unio nešto drugo, prikazujemo poruku o pogrešci. Izađite iz operatora odabira.
    2. Korisniku prikazujemo prijedlog za unos nove naredbe;
    3. Pročitali smo naredbeni kod u upravljačku varijablu;
    4. Vraćamo se provjeri stanja. Točka 3.

Petlja while naziva se petlja preduvjeta jer prije izvođenja tijela petlje provjerava se stanje. To znači, na primjer, da je moguće da se tijelo petlje uopće neće izvršiti niti jednom. Drugi naziv petlje while je petlja YET. Doslovni prijevod s engleskog. Ovo ime odražava samu bit ciklusa.

Mnemonsko pravilo:

DOK JE uvjet ISTINA, izvršite tijelo petlje.

Petlja s postkondicijskim praćenjem

I posljednja, treća konstrukcija petlje je do-while petlja.

Ova se petlja razlikuje od while petlje po tome što se stanje provjerava ne prije izvršavanja tijela petlje, već nakon izvršavanja tijela petlje. To znači da se tijelo do-while petlje mora izvršiti barem jednom.

Sintaksa za ovu konstrukciju petlje je sljedeća:

Popis 4.

Do operater; dok (stanje);

Ova konstrukcija radi na sljedeći način:

  1. Program ispunjava ključnu riječ do. To znači petlju za rad ispred nje;
  2. Tijelo petlje je izvedeno;
  3. Stanje se provjerava;
  4. Ako je uvjet ISTINA, tada se tijelo petlje ponovno izvršava;
  5. Ako je uvjet LAŽNO, tada se rad cikličke strukture prekida. Program se izvršava naredbom koja slijedi do-while petlju.

Prepišimo naš program koristeći ovu vrstu konstrukcije petlje.

Popis 5.

#include #include #include int main (void) (srand (time (NULL)); printf ("########### Vražje kosti ########### \ n"); printf ("# # \ n"); printf ("# Commands: # \ n"); printf ("# # \ n"); printf ("# 1 - nova igra # \ n"); printf ("# 0 - izlaz # \ n "); printf (" # # \ n "); printf (" ############################# # ########## \ n \ n "); int ch_control; int vrijednost = 0; do (printf (" Naredba za unos: "); scanf ("% d ", & ch_control); prekidač (ch_control ) (slučaj 0: prekid; slučaj 1: vrijednost = 1 + rand ()% 6; printf ("Rezultat:% d \ n", vrijednost); prekid; zadano: printf ("Pogreška! Pokušajte ponovo ... \ n "); break;)) while (ch_control! = 0); printf (" Zbogom! \ n "); return 0;)

Općenito, vrlo je sličan prethodnom kodu. Istina, morao sam malo promijeniti operatora odabira: tamo dodati slučaj 0: grana. Inače, zbog činjenice da se provjera provodi nakon izvršavanja tijela petlje, program nije radio ispravno. Prilikom unosa nule prikazala se poruka pogreške. U prethodnom programu (s while petljom) takva situacija nije mogla postojati, budući da jednakost nuli provjerena je u stanju petlje. Ako unesete nulu, uvjet će postati netačan, što znači da će se ciklus završiti i tijelo ciklusa neće se izvršiti.

PLAN LEKCIJE KONSEKT

INFORMATIKA I IKT

U 10 RAZREDA NA TEMU:

Ciklički algoritmi. Petlje s preduvjetom i postuslovom ”.

Stvar: Informatika i IKT

Tema lekcije: “ Ciklički algoritmi. Petlje s preduvjetom i postuslovom "

Vrsta lekcije: Učenje novog gradiva

Obrazac: radionica

Ciljevi lekcije

obrazovni: Upoznajte se s konceptom "Ciklusi s preduvjetom i postkondicijom". Utvrditi znanje učenika o algoritmu.

u razvoju: Potaknuti marljivost, neovisnost, kulturu govora i komunikacije.

odgojni: Razviti mišljenje, pamćenje, govor i druge mentalne procese.

Kognitivni UUD: oblikovati i razviti kompetenciju u korištenju IKT-a

(ICT kompetencije).

Regulatorni UUD: znati povezati svoje postupke s planiranim rezultatima.

Komunikativni UUD: znati raditi individualno i u grupi.

Osobni UUD: razumjeti važnost informatike i ICT treninga u okruženju

razvoj informacijskog društva.

Sredstva obrazovanja: projektor, osobno računalo, specijalizirani softver (programsko okruženje "PascalABC").

Tijekom nastave

1. Organizacija početka lekcije

Zdravo. Danas ću predavati lekcije iz "Informatike i ICT-a". Pozdravljam učenike i provjeravam spremnost za nastavu. Studenti se pozdravljaju.

2. Provjera domaće zadaće

Pitam ih pokriveni materijal.

1. Što je linearni algoritam?

Linearni algoritam ili praćenje je vrsta algoritma u kojem se slijed radnji ne mijenja tijekom njegovog izvršavanja. Algoritam, u kojem se naredbe izvršavaju redom kojim su napisane, odnosno uzastopno jedna za drugom, naziva se linearna.

2. Kako se implementira linearni algoritam?

U programu se linearni algoritam provodi sekvencijalnim postavljanjem operatora.

Na primjer, sljedeći algoritam sadnje stabala je linearan:

1) iskopati rupu u zemlji;
2) spustiti sadnicu u rupu;
3) napuniti rupu sadnicom zemljom;
4) zalijevati sadnicu vodom.

3. Koji se oblik organizacije radnji naziva grananjem?

Oblik organiziranja radnji, u kojem se, ovisno o ispunjenju ili neispunjavanju određenog uvjeta, izvodi bilo jedan ili drugi slijed radnji, naziva se grananjem.

4. Kako je formaliziran algoritam grananja?

Logika odlučivanja može se opisati na sljedeći način:

AKO A<условие>DA<действия 1>INAČE<действия 2>

Primjeri:

AKO to želiš biti zdrav, ONDA se kaljenje, U suprotnom, ležati na kauču cijeli dan;
AKO lastavice lete nisko, ONDA će padati kiša, OSTALO neće padati;
AKO se nauče lekcije, ONDA idite u šetnju, OSTALO naučite lekcije.

3. Učenje novog gradiva

Tema naših lekcija bit će: “ Ciklički algoritmi. Petlja s preduvjetom "Bye". Petlja s postkondicijom "Prije"».

    Svrha naše lekcije je: „upoznavanje s pojmom ciklusa i razvoj sposobnosti rješavanja različitih problema na ovu temu“.

Zapišimo sada što je ciklus?

Ciklus - oblik organizacije radnji, u kojem se isti slijed radnji izvodi nekoliko puta do bilo koji uvjet je ispunjen.

Ciklički algoritam Je li algoritam koji sadrži jednu ili više petlji.

Algoritmička struktura "ciklus" može se fiksirati na različite načine:

grafički - pomoću blok dijagrama;

u programskom jeziku kao što je Pascal koristeći posebne upute koje implementiraju petlje različitih vrsta.

Danas ćemo se upoznati s petljama s preduvjetom i postuslovom.

Petlje s preduvjetom koriste se kada je izvršavanje petlje povezano s nekim logičkim uvjetom. Izjava petlje s preduvjetom ima dva dijela: uvjet izvođenja petlje i tijelo petlje.

Na ruskom zvuči otprilike ovako:

dok je ovaj uvjet ispunjen, učinite
od početka
skupina operatora
do kraja;

Kada upotrebljavate petlju s preduvjetom, imajte na umu sljedeće:

    vrijednost uvjeta izvođenja ciklusa mora se utvrditi prije početka ciklusa;

    ako je vrijednost uvjeta istinita, tada se izvršava tijelo petlje, nakon čega se ponavlja provjera stanja. Ako je uvjet netačan, tada se iz petlje izlazi;

    barem jedan od operatora uključenih u tijelo petlje mora utjecati na vrijednost uvjeta izvršavanja petlje, inače će se petlja ponoviti beskonačno mnogo puta.

Kada se izvrši naredba while, izvršava se određena grupa izraza sve dok je logički uvjet definiran u naredbi while istinit. Ako je uvjet odmah netačan, tada se izjava neće izvršiti niti jednom.

Operativne zagrade koriste se za odvajanje od ostatka programa one skupine operatora koja se mora ponoviti u petlji. Ako u petlji treba izvršiti samo jednog operatora, tada se zagrade operatora ne stavljaju.

Ova se izjava izvršava na sljedeći način: prvo se provjerava istinitost stanja nakon riječi WHILE. Ako je ISTINA, tada se izvršava izraz nakon riječi DO, zatim se ponovno provjerava stanje itd. Čim uvjet ne bude zadovoljen na sljedećem koraku (vrijednost izraza postaje jednaka FALSE), tada se izvršavanje operatora petlje prekida.

Ako izvršeni izraz ne promijeni vrijednosti varijabli uključenih u uvjet, tada će uvjet uvijek biti istinit, a petlja će se izvršavati zauvijek, dok kažu da program petlja. Ako se, kad se uvjet provjeri prvi put, odmah pokaže da je netačno, tada se operater petlje uopće ne izvršava.

Ako trebamo izvršiti više od jednog operatora u petlji, tada se koristi složeni operator, t.j. nekoliko je izjava priloženo u zagradama izjava BEGIN… END.

SLIDE (prekidač) !!!

Prilikom izrade programa sa strukturom petlje WHILE:

1) prije ulaska u petlju mora se odrediti početna vrijednost logičkog izraza, tj. prije DOK;

2) slijed izvršenih operatora u tijelu petlje mora biti logički povezan i sadržavati najmanje jednog operatora koji mijenja vrijednost parametra petlje, inače će se petlja nastaviti neograničeno;

3) logički izraz u zaglavlju petlje WHILE mora prihvatiti vrijednost FALSE da bi petlja završila.

Djelovanje naredbe While

Pogledajmo prvi primjer:

U blok dijagramu tablica množenja s 3 izgleda ovako:

Pokušajte napraviti vlastitu tablicu množenja s 1, 2, 4, 5, 6, 7, 8 i 9. Kako će to izgledati kao blok dijagram? (učenici izrađuju tablicu množenja u obliku dijagrama toka).

Pogledajmo sada značajke ovog ciklusa i napišite sebi:

Pokušajmo sada sami riješiti problem u Turbo Pascalu.

Rješavanje problema ispisa 10 cijelih brojeva na zaslon pomoću petlje Dok čini :

Zadatak:

Da bismo riješili taj problem, sjetimo se što je prirodni niz brojeva?

Prirodni niz je niz cijelih brojeva koji počinju od 1. To jest, 1, 2, 3, ... i do nekog broja N.

Rješavanje ovog problema:

Zadatak:

Odluka:

Program KOSHEY_vasilisa;

Var v, s: cijeli broj;

Početi

v: = 18; (Vasilisina dob)

s: = 27360; (Početni glavni grad Koschei)

dok s<30000 do

Početi

s: = s + 33; (Svake godine Koschey postaje bogatiji)

v: = v + 1; (Vasilisa svake godine stari)

kraj;

writeln ("Vasilisa", v, "godine");

Kraj.

Sljedeći zadatak koji morate sami riješiti kod kuće, zapišite zadatak:

    Počevši s treningom, skijaš je prvog dana pretrčao 10 km. Svakog sljedećeg dana povećavao je duljinu trčanja za 10% u odnosu na prethodni dan. Odredite koji dan će pretrčati više od 20 km, a taj dan ukupna kilometraža za sve dane premašit će 100 km.

Pogledajmo koliko ćemo varijabli imati i koji su tip? Imamo samo 2 varijable, jedna će nam biti da izračunamo dnevnu kilometražu veću od 20 km, a druga će izračunati koji će dan ukupna kilometraža za sve dane premašiti 100 km. Kakav će tip biti varijable? Dnevna kilometraža bit će tipa integer (tj. Cijeli broj), a druga stvarna (tj. Stvarni broj ili broj sa zarezom), jer imamo 10%, ako ga pretvorimo u broj, dobivamo 0,1. U programu ćemo imati dva ciklusa, prvi ciklus za određivanje dana kada će skijaš pretrčati više od 20 km, a drugi za pronalazak dana kada ukupna kilometraža za sve dane prelazi 100 km.

Sada se upoznajmo sa sljedećom vrstom petlji - petljama s postuslovom.

Već znate kako organizirati petlju pomoću naredbe while. Sjetimo se da kada se izvrši ova izjava, računalo provjerava vrijednost stanja. Ako je uvjet istinit, tada će se izvršni dio naredbe while ponavljati dok se taj uvjet ne procijeni na False. Ako je vrijednost uvjeta False na samom početku, tada se tijelo while petlje uopće neće izvršiti.

Ponekad, prilikom rješavanja problema, treba izvršiti tijelo petlje barem jednom, a zatim, nakon provjere stanja, odrediti hoće li tijelo petlje ponoviti. Ovaj će zadatak izvršiti druga vrsta petlje - petlja Ponavljanje.

ponoviti(ponoviti)
(operateri)
do <условие>; (dok uvjet nije istinit)

Ova konstrukcija glasi ovako:

Razmotrimo rad petlje s postuslovom:

Značajke petlje s postuslovom:

Riješimo isti problem sada koristeći petlju s postuslovom:

Usporedimo petlju s preduslovima i postuslovima:

Kako sam prije rekao:

Mala je razlika u organizaciji ponavljanja petlje u odnosu na while: da biste izvršili nekoliko izraza u ponavljanju, ne biste ih trebali stavljati u zagrade za početak ... kraj. Rezervirane riječi ponavljaju se i dok se ne ponašaju u zagradama.

Ponavljanje ... dok konstrukcija ne radi na sličan način kao i petlja. Razlika je u tome što while petlja provjerava stanje prije izvođenja radnji, dok ponovljena provjerava stanje nakon izvođenja radnji. To osigurava poduzimanje barem jedne radnje prije kraja ciklusa.

A postoji i nešto zajedničko u ovim ciklusima:

    Prije ciklusa Dan od početna vrijednost varijabli ,
    uključeni u stanje. Stanje - izraz boolean tip.

    U tijelu petlje vrijednost varijabli uključenih u uvjet mora budite sigurni da ste promijenili svoje značenje , inače će doći do situacije "zamrzavanja".

Da biste riješili sljedeći problem, sjetite se geometrijske progresije.

A sada sam zadatak:

Svi su vidjeli problem koji treba riješiti pomoću petlje s postuslovom. Svi možete vidjeti da postoji dijagram toka konstruiran pomoću petlje preduvjeta. Analizirajmo je detaljno, a onda ću dati zadatak. Svi vidimo da blok dijagram ima početak, tada se unose podaci, gdje je i = 7, budući da je ovo sin broj 7, budući da je uzeo zadnja dva smaragda iz očevih prsa, pa q dajemo vrijednost jednaku dva. Budući da je prvi sin uzeo polovicu onoga što je bilo u škrinji, to znači da je razlika u geometrijskoj progresiji jednaka dva, to jest, r dodijelimo vrijednosti jednakoj dvjema. Slovo r pokazuje razliku u geometrijskoj progresiji. Naš će uvjet biti da dok imamo i> 1, izvršimo sljedeći redoslijed radnji, tj. I: = i -1, odnosno ova akcija pokazuje da se broj sljedećeg sina smanjuje za jedan. Zatim izračunavamo konačni termin napredovanja izvođenjem radnje: q = q * r. Ovaj redoslijed dvije radnje izvodit će se sve dok uvjet i> 1 ne postane lažan, nakon čega će se prikazati koliko je smaragda bilo u škrinji i program će završiti.

Ocjenjivanje i bodovanje učenika.

Zahvaljujemo na sudjelovanju i aktivnom radu. Do sljedećeg puta.

5. Domaća zadaća

Domaća zadaća ponovit će što je petlja, što je petlja s postom i preduvjetom, kao i sintaksa za njihovo pisanje u programskom jeziku Pascal ... Zatim kod kuće riješite problem skijaša koristeći bicikl s postom i preduvjetom i donesite mi napisani program u bilježnicu s odgovorima na pitanja postavljena u problemu.

Oznake: C petlje. C petlje. Petlja s postkondicijom. Petlja s preduvjetom. Petlja sa striptizetom. dok. učiniti dok. za. pauza. nastaviti

Uvod. Petlje s preduvjetom.

Pri rješavanju praktičnih problema potrebno je stalno ponavljati radnju određeni broj puta ili dok se ne postigne određeni uvjet. Na primjer, prikažite popis svih korisnika, popločajte ravninu teksturom, izvedite izračune za svaki element niza podataka itd. U C se u ove svrhe koriste tri vrste ciklusa: preduvjet, postkondicija i ciklus za s brojačem (iako je ovo uvjetni naziv, jer brojača možda nema).

Bilo koji ciklus sastoji se od tijela i provjere stanja pod kojim ovaj ciklus treba prekinuti. Tijelo petlje je skup uputa koje treba ponoviti. Svako ponavljanje petlje naziva se iteracijom.

Razmotrimo petlju s preduvjetom.

Int i = 0; dok ja< 10) { printf("%d\n", i); i++; }

Ova se petlja izvodi sve dok je uvjet naveden nakon ključne riječi while istinit. Tijelo petlje je dva retka, jedan prikazuje broj, drugi ga mijenja. Očito će se ova petlja pokrenuti 10 puta i ispisati
0
1
2
3
i tako do 9.

Vrlo je važno da se uvjet za izlazak iz petlje ikad ispuni, inače će se pojaviti beskrajna petlja i program se neće završiti. Na primjer

Int i = 0; dok ja< 10) { printf("%d\n", i); }

Ova petlja ne mijenja varijablu i koja se koristi za određivanje stanja zaustavljanja, tako da petlja ne završava.

Int i = 0; while (i> 0) (printf ("% d \ n", i); i ++;)

U ovom programu petlja će, naravno, završiti, ali zbog pogrešne radnje izvršit će se puno više od 10 puta. Budući da C ne prati prelijevanje varijable, trebat će pričekati dok se varijabla ne prelije i postane manja od nule.

Int i; dok ja< 10) { printf("%d\n", i); i++; }

Ovaj primjer ima nedefinirano ponašanje. Budući da varijabla i nije unaprijed inicijalizirana, ona sprema smeće, prethodno nepoznatu vrijednost. Različiti sadržaji varijable i promijenit će ponašanje.

Ako tijelo petlje while sadrži jedan izraz, tada se kovrčave zagrade mogu izostaviti.

Int i = 0; dok ja< 10) printf("%d\n", i++);

Ovdje povećavamo varijablu i prilikom pozivanja funkcije printf. Treba izbjegavati ovaj stil kodiranja. Nedostatak kovrčavih zagrada, osobito na početku vodiča, može dovesti do pogrešaka. Osim toga, kôd se lošije čita, a dodatne zagrade ne napuhavaju unose.

Petlje s postkondicijom.

Petlja s postuslovom razlikuje se od while petlje po tome što se stanje u njoj provjerava nakon izvršavanja petlje, odnosno ta će se petlja ponoviti barem jednom (za razliku od while petlje, koja se možda uopće neće izvršiti ). Sintaksa petlje

Do (tijelo petlje) while (stanje);

Izgledao bi prethodni primjer korištenja petlje do

Int i = 0; do (printf ("% d \ n", i); i ++;) dok (i< 10);

Pogledajmo primjer korištenja petlje s postuslovom i preduvjetom. Pretpostavimo da moramo integrirati funkciju.

Sl. 1 Numerička integracija funkcije∫ a b f x d x

Integral je zbroj beskonačno malog. Integral možemo smatrati zbrojem, a beskonačno male vrijednosti mogu se jednostavno zamijeniti malim vrijednostima.

∫ a b f x d x = ∑ i = a b f i h

Iz formule možete vidjeti da područje pod grafom zapravo dijelimo na mnogo pravokutnika, gdje je visina pravokutnika vrijednost funkcije u točki, a širina naš korak. Zbrajanjem površina svih pravokutnika, dobivamo time vrijednost integrala s određenom pogreškom.

lijevi pravokutnici "src =" / images / c_loop_rectangles_left.png "alt =" (! LANG: Numerička integracija funkcije pomoću
lijevi pravokutnici"> Рис. 2 Численное интегрирование функции методом!}
lijevi pravokutnici

Neka tražena funkcija bude x 2. Trebat će nam sljedeće varijable. Prvo, zbroj akumulatora za pohranu integrala. Drugo, lijeva i desna granica a i b, i treće, korak h. Također nam je potrebna trenutna vrijednost argumenta funkcije x.

Da bi se pronašao integral, potrebno je prijeći iz a prije b nekim korakom h, a zbroju dodajte površinu pravokutnika sa stranicama f (x) i h.

#include #include int main () (dvostruki zbroj = 0,0; dvostruki a = 0,0; dvostruki b = 1,0; dvostruki h = 0,01; dvostruki x = a; dok (x< b) { sum += x*x * h; x += h; } printf("%.3f", sum); getch(); }

Program daje 0,328.

∫ 0 1 x 2 d x = x 3 3 | 0 1 = 1 3 ≈ 0,333

Ako pogledate graf, možete vidjeti da svaki put kad nađemo vrijednost funkcije u lijevoj točki. Stoga se ova metoda numeričke integracije naziva metodom lijevog pravokutnika. Slično tome, možete uzeti pravu vrijednost. Tada će to biti metoda pravih pravokutnika.

Dok (x< b) { x += h; sum += x*x * h; } desni pravokutnici "src =" / images / c_loop_rectangles_right.png "alt =" (! LANG: Integracija numeričke funkcije od
desni pravokutnici"> Рис. 3 Численное интегрирование функции методом!}
desni pravokutnici

Iznos će u ovom slučaju biti jednak 0,338. Metoda lijevog i desnog pravokutnika nije baš točna. Zapravo smo približili (aproksimirali) glatki graf monotono rastuće funkcije histogramom. Ako malo razmislite, aproksimacija se može provesti ne samo zbrajanjem pravokutnika, već i zbrajanjem trapeza.

trapezium "src =" / images / c_loop_integral_trapezium.png "alt =" (! LANG: Numerička integracija funkcije pomoću
trapezij"> Рис. 4 Численное интегрирование функции методом!}
trapezij

Trapezoidna aproksimacija zapravo je aproksimacija krivulje prvog reda u dijelovima (ax + b). Točke na grafikonu povezujemo pomoću segmenata linija. To se može zakomplicirati povezivanjem točaka ne segmentima, već dijelovima parabole, tada će to biti Simpsonova metoda. Da bismo još više zakomplicirali stvari, dolazimo do interpolacijskog splajna, ali ovo je već drugi, vrlo dugački razgovor.

Vratimo se našim ovnovima. Razmotrimo 4 ciklusa.

Int i = 0; dok (i ++< 3) { printf("%d ", i); } int i = 0; while (++i < 3) { printf("%d ", i); } int i = 0; do { printf("%d ", i); } while(i++ < 3); int i = 0; do { printf("%d ", i); } while(++i < 3);

Ako slijedite ove primjere, vidjet ćete da se petlje izvršavaju dva do četiri puta. Vrijedno je obratiti pažnju na to, jer pogrešna promjena brojača petlje često dovodi do pogrešaka.

Često se dogodi da moramo izaći iz petlje ne čekajući podizanje zastavice ili promjenu vrijednosti varijable. U ove svrhe, operater pauzašto prisiljava program da izađe iz trenutne petlje.

Riješimo jednostavan problem. Korisnik unosi brojeve dok se ne unese broj 0, nakon čega izlazi najveći uneseni. Ovdje postoji kvaka. Koliko će brojeva korisnik unijeti, nije poznato. Stoga ćemo stvoriti beskonačnu petlju i iz nje ćemo izaći pomoću operatora pauza... Unutar petlje primit ćemo podatke od korisnika i odabrati maksimalan broj.

#include #include int main () (int num = 0; int max = num; printf ("Za izlaz, unesite 0 \ n"); / * beskrajna petlja * / while (1) (printf ("Unesite broj:"); scanf ("% d", & num); / * uvjet za izlazak iz petlje * / if (num == 0) (break;) if (num> max) (max = num;)) printf ("max broj je bio % d ", maks.); getch ();)

Da vas podsjetim da u C. ne postoji poseban boolean tip. Umjesto toga koriste se brojevi. Nula je lažna, sve ostale vrijednosti su istinite. Petlja while (1) pokrenut će se neograničeno. Jedina izlazna točka s njega je stanje

Ako (num == 0)

U ovom slučaju izlazimo iz petlje s pauza; Za početak smo postavili kao maksimum 0. Korisnik unosi broj, nakon čega provjeravamo je li nula ili nije. Ako nije nula, usporedite je s trenutnim maksimumom.

Beskonačne petlje koriste se prilično često, jer ulazni podaci nisu uvijek poznati unaprijed ili se mogu promijeniti tijekom izvršavanja programa.

Kada trebamo preskočiti tijelo petlje, ali istodobno nastaviti izvršavanje petlje, operater nastaviti... Jednostavan primjer: korisnik unosi deset brojeva. Pronađite zbroj svih pozitivnih brojeva koje je unio.

#include #include int main () (int i = 0; int positiveCnt = 0; plutajući zbroj = 0.0f; plutajući unos; printf ("Unesite 10 brojeva \ n"); while (i< 10) { i++; printf("%2d: ", i); scanf("%f", &input); if (input <= 0.0) { continue; } sum += input; positiveCnt++; } printf("Sum of %d positive numbers = %f", positiveCnt, sum); getch(); }

Primjer se čini donekle pretjeranim, iako općenito odražava značenje operatora nastaviti... U ovom primjeru varijabla pozitivnoCnt je brojač pozitivnih brojeva, iznos iznos i ulazni- privremena varijabla za unos brojeva.

Evo još jednog primjera. Potrebno je da korisnik unese cijeli broj veći od nule i manji od 100. Dok se ne unese potreban broj, program će nastaviti anketirati.

Učinite (printf ("Unesite broj:"); scanf ("% d", & n); if (n< 0 || n>100) (printf ("loš broj, pokušaj ponovo \ n"); nastavi;) else (break;)) while (1);

Za petlju

Jedna od najčešće korištenih je brojač petlje. za... Sintaksa mu je

Za (<инициализация>; <условие продолжения>; <изменение счётчика>){ <тело цикла> }

Na primjer, prikažimo kvadrate prvih stotinu brojeva.

Int i; za (i = 1; i< 101; i++) { printf("%d ", i*i); }

Jedna od sjajnih stvari u vezi s petljom for je da može raditi s više od običnih cijelih brojeva.

Float num; za (num = 5,3f; num> 0f; num - = 0,2) (printf ("%. 2f", num);)

Ova petlja ispisat će brojeve od 5,3 do 0,1. Petlja for možda nema neke "blokove" koda, na primjer, možda nedostaje inicijalizacija, provjera (tada petlja postaje beskonačna) ili promjena brojača. Evo primjera s integralom implementiranim pomoću brojača za

#include #include int main () (dvostruki zbroj = 0,0; dvostruki a = 0,0; dvostruki b = 1,0; dvostruki h = 0,01; dvostruki x; za (x = a; x< b; x += h) { sum += x*x * h; } printf("%.3f", sum); getch(); }

Pogledajmo komad koda

Dvostruki x; za (x = a; x< b; x += h) { sum += x*x * h; }

Može se mijenjati ovako

Dvostruki x = a; za (; x< b; x+=h) { sum += x*x*h; }

Štoviše, pomoću operatora pauza, možete ukloniti uvjet i napisati

Dvostruki x; za (x = a ;; x + = h) (ako (x> b) (prekid;) zbroj + = x * x * h;)

Dvostruki x = a; za (;;) (if (x> b) (break;) zbroj + = x * x * h; x + = h;)

osim toga, pomoću operatora "," možete prenijeti neke radnje

Dvostruki x; za (x = a; x< b; x += h, sum += x*x*h) ;

NAPOMENA: Iako se to može učiniti, nemojte! To smanjuje čitljivost koda i dovodi do suptilnih pogrešaka.

Riješimo neki teži praktični problem. Pretpostavimo da imamo funkciju f (x). Nađimo maksimum njegove izvedenice na segmentu. Kako numerički pronaći izvod funkcije? Očito po definiciji). Izvod funkcije u točki je tangenta nagiba tangente.

F x ′ = d x d y

Uzmite točku na krivulji s koordinatama (x; f (x)), pomaknite se korak h naprijed, dobijte točku (x + h, f (x + h)), tada će izvod biti

D x d y = f (x + h) - f x (x + h - x) = tan α

Odnosno, omjer malog prirasta funkcije i malog priraštaja argumenta. Pažljivi čitatelj može se pitati zašto se krećemo naprijed u funkciji, a ne unatrag. Pa, vratimo se

D x d y = f x - f (x - h) h = tan β

Uzimajući prosjek ove dvije vrijednosti, dobivamo

F (x + h) - f (x - h) 2 sata

Općenito, sada zadatak postaje trivijalan: idemo od točke a do točke b i pronaći minimalnu vrijednost izvedenice, kao i točku u kojoj izvod uzima ovu vrijednost. Da bismo je riješili, trebamo, kao u problemu s integralom, varijable za granice područja pretraživanja a i b, sadašnja vrijednost x i korak h... Uz to je potrebna maksimalna vrijednost maxVal i koordinirati maxX ovu maksimalnu vrijednost. Za posao uzmite funkciju x sin x

#include #include #include int main () (double a = 0; double b = 3.0; double h = 0.001; double h2 = h * 2.0; double maxVal = a * sin (a); double maxX = a; double curVal; double x; // Prelazimo cijelu regiju od a do b // i tražimo maksimum prve izvedenice // Koristimo funkciju x * sin (x) za (x = a; x< b; x += h) { curVal = ((x+h)*sin(x+h)-(x-h)*sin(x-h))/h2; if (curVal >maxVal) (maxVal = curVal; maxX = x;)) printf ("maksimalna vrijednost =% .3f na% .3f", maxVal, maxX); getch (); )

Na izlazu program daje maksimalnu vrijednost = 1,391 na 1,077

Numeričko rješenje daje iste (do pogreške) rezultate kao i naš program.

Ugniježđene petlje

Razmotrimo primjer gdje su petlje ugniježđene jedna u drugu. Prikažimo tablicu množenja.

#include #include #include int main () (int i, j; // Za svaki i za (i = 1; i< 11; i++) { // Выводим строку из произведения i на j for (j = 1; j < 11; j++) { printf("%4d", i*j); } // После чего переходим на новую строку printf("\n"); } getch(); }

U ovom primjeru, u prvoj petlji preko varijable i ugniježđena druga petlja na varijabli j... Slijed radnji je sljedeći: prvo u petlju ulazimo i, zatim za trenutni i Brojevi se iznose 10 puta zaredom. Nakon toga trebate prijeći na novu liniju. Ajmo sada prikazati samo stavke ispod glavne dijagonale.

Za (i = 1; i< 11; i++) { for (j = 1; j < 11; j++) { if (j >i) (break;) printf ("% 4d", i * j); ) printf ("\ n"); )

Kao što vidite, operater pauza omogućuje vam izlazak samo iz trenutnog ciklusa. Ovaj se primjer može prepisati kako slijedi

Za (i = 1; i< 11; i++) { for (j = 1; j <= i; j++) { printf("%4d", i*j); } printf("\n"); }

U ovom slučaju koristimo brojač prvog ciklusa u ugniježđenoj petlji.

Ru-Cyrl 18- tutorial Sypachev S.S. 1989-04-14 [e-pošta zaštićena] Stepan Sypachev studenti

Još uvijek nije jasno? - pisati pitanja u poštanski sandučić