Petlje s parametrom. Programiranje

izraz1 i u izraz2- početna i konačna vrijednost parametra ciklusa.

Akcija operatora petlje poput (direktno brojanje):

2. Provjerava se uvjet: da li je vrijednost varijable veća od vrijednosti izraza2?

3. ako da, onda se ciklus završava; ako ne, onda se naredba izvršava, vrijednost varijable se povećava za jedan i zatim se radnja ponavlja, počevši od tačke 2.

Akcija operatora petlje downto tipa:

1. varijabli je dodijeljena vrijednost izraza1;

2. Provjerava se uvjet: da li je vrijednost varijable manja od vrijednosti izraza2?

3. ako da, onda se ciklus završava; ako ne, onda se naredba izvršava, vrijednost varijable se smanjuje za jedan, a zatim se radnja ponavlja, počevši od koraka 2.

pravila:

1. Parametar ciklusa može postojati samo cjelobrojna varijabla.

2. Parametar petlje ne može se eksplicitno promijeniti u tijelu petlje.

Na primjer:

za i:=1 do 10 do

i:=i+1; (pogrešno)

3. Korak ciklusa može biti samo +1 (ciklus sa do) ili –1 (ciklus sa dolje).

4. U skladu sa opštim oblikom, telo petlje treba da se sastoji od jednog operatora, ako postoji više operatora, koristimo složeni operator i operatorske zagrade begin..end;.

5. Petlja se ne može izvršiti čak ni jednom.

Vježbajte: Napišite blok dijagram i program za izračunavanje prosjeka od n brojeva unesenih s tastature.

var i,n: cijeli broj; x,s: realno;

write('Unesite broj brojeva');

za i:=1 do n do

write('Unesite broj',i);

writeln('Prosjek =',s/n);

Naredba petlje s preduvjetom (while)

Operater while petlja je operator petlje sa prethodno nepoznatim brojem ponavljanja.

Opšti oblik:

dok logički izraz do izjava;

logički izraz- ovo je uslov za nastavak ciklusa.

operater

Radnja operatera:

1. izračunava se logički izraz;

2. ako je tačno, onda se izvršava naredba, nakon čega se sve radnje ponavljaju, počevši od tačke 1;

3. Ako je logički izraz lažan, onda se petlja zaustavlja.

pravila:

1. Tijelo petlje treba da se sastoji od samo jednog operatora, ako ih ima više koristimo složeni operator.

2. Pošto je uslov provjeren na početku petlje, petlja se možda neće izvršiti čak ni jednom.

3. Da petlja ne bi postala beskonačna, vrijednosti uključene u logički izraz moraju se promijeniti u tijelu petlje.

Na primjer:

dok a<100 do

Vježbajte. Napišite blok dijagram i program koji izračunava i ispisuje tablicu vrijednosti funkcija.

var x,xn,xk,y,h: real;

writeln("Unesite početnu vrijednost, krajnju vrijednost x i promijenite korak x");

writeln("| x | y |");

dok je x<=xk do

writeln("|",x:7:2,"|",y:7:2,"|");

Operator petlje sa postuslovom (petlja ponavlja..do).

repeat..until operator petlje je operator petlje sa prethodno nepoznatim brojem ponavljanja.

Opšti oblik:

operateri;

do logičkog izraza;


Efekat operatora petlje repeat..until je:

Naredbe u tijelu petlje se izvršavaju sve dok vrijednost logičkog izraza nije FALSE; Čim se logički izraz procijeni na TRUE, izvršenje naredbe petlje se zaustavlja.

pravila:

1. Telo petlje se uvek izvršava najmanje jednom, pošto je uslov na kraju petlje.

2. Nema potrebe za složenom naredbom u ovoj naredbi petlje, svi izrazi u tijelu petlje su ograničeni ključnim riječima repeat..until.

Vježbajte. Napišite blok dijagram i program za proračun .

program rep_unt;

var n,k,s: cijeli broj;

write("Unesite k");

write("Zbroj jednak ",s);

Skupovi podataka

Niz je skup uređenih podataka koji imaju isti naziv i tip, a međusobno se razlikuju po broju (indeksu). Nizovi mogu biti jednodimenzionalni ili višedimenzionalni. Primjeri nizova:

2 5 –15 10 20 – niz cjelobrojnog tipa sa 6 elemenata;

2,3 9 2,45 4,78 5,32 – niz realnog tipa sa 5 elemenata;

Ivanov Ivan Ivanovič – niz znakova od 20 elemenata;

Opšti oblik opisa jednodimenzionalnih nizova:

var ime niza: niz[početna vrijednost indeksa.. konačna vrijednost indeksa] tipa;

Gdje početna vrijednost indeksa I konačna vrijednost indeksa- cjelobrojne vrijednosti koje određuju raspon promjena u indeksu niza.

Na primjer:

var vektor: niz realnih;

Opšti pogled na opis višedimenzionalnih nizova:

var ime niza: niz [početna vrijednost indeksa.. završna vrijednost indeksa, ... , ...] od<тип>;

Na primjer:

varmatrix: niz cijelih brojeva; - opis 3´5 matrice.

Pristup elementima niza.

Elementima niza možete pristupiti tako što ćete navesti njegovo ime i navesti njegove indeksne vrijednosti u uglastim zagradama (u višedimenzionalnim nizovima odvojenim zarezima).

Kao takvi indeksi mogu se koristiti samo konstantne cjelobrojne vrijednosti.

Na primjer:

a[i], b, v1, a

BAZA PODATAKA

Koncept baze podataka

Računari su prvobitno stvoreni za rješavanje računarski zadaci, međutim, vremenom su se sve više počeli koristiti za gradnju sistemi za obradu dokumenata, odnosno informacije sadržane u njima. Takvi sistemi se nazivaju informativni. Primjer je sistem obračunavanje obima obavljenog posla u preduzeću, platni spisak, knjigovodstvo proizvoda u skladištu, knjigovodstvo knjiga u biblioteci itd.

Takve vrste Informacioni sistem zahteva kreiranje u memoriji računara dinamički ažuriran model u pitanju predmetna oblast koristeći jedno spremište - Baza podataka (BD). Predmetna oblast - dio stvarnog svijeta koji je predmet proučavanja s ciljem organizovanja upravljanja i, na kraju, automatizacije. Svaki predmetna oblast uključuje ukupnost bilo kojeg objekata. Grupe ovih objekata, ujedinjeni bilo kojim karakteristika grupisanja, obično se zove entiteta . Na primjer, ako govorimo o računovodstvu proizvoda u skladištu, onda možemo odabrati entitete " proizvod", "kupac", "faktura". Objekti će biti njihovi specifični predstavnici, npr. šećer, AD "Hefest", faktura br.252.

Baza podataka - je zbirka informacija o stvarnim objekata, procesi ili fenomeni vezano za konkretnu predmetna oblast, organizirana na način da omogući pogodnu prezentaciju (pristup, prikaz) ove kolekcije, kako u cjelini, tako iu bilo kojem njenom dijelu.

Repozitoriji informacija u baza podataka su stolovi , od kojih svaki sadrži informacije o istom tipu objekata(ujedinjeno karakteristika grupisanja), formiranje esencija. Svaki linija stolovi uključuje podatke o jednom objekt, primjer esencija(Na primjer, proizvod, kupac, iznad glave), A kolone stolovi sadrže različite karakteristike ovih objekata – atributi (Na primjer, nazivi robe, imena kupaca I brojevi faktura).

U smislu baze podataka linije tabele su pozvane evidencije , i ona kolonepolja . Sve evidencije imaju istu strukturu - sastoje se od istog polja , koji pohranjuju različite vrijednosti atributi objekt. Svaki terenske evidencije sadrži jednu karakteristiku objekt i ima striktno definisan tip podataka(na primjer, tekstualni niz, broj, datum). Svi zapisi jedne tabele imaju isti polja, samo što sadrže različita značenja atributi.

Prije unosa podataka u stolovi, morate odrediti struktura ove stolovi. Ovo znači opis stavke I vrste polja, kao i niz drugih karakteristika (npr. veličina polja, kriterijumi za provjeru ulaznih podataka). Primjer definiranja strukture tabele kupaca prikazan je na slici 8.1.

Struktura tabele "Kupac".

Pored opisa strukture tablice u prilično složenom baza podataka treba utvrditi komunikacije između stolova. Veza je udruženje uspostavljeno između dvoje stolovi. Na primjer, informacije o kupcu u prethodnoj tabeli mogu se dopuniti drugom tablicom "Izdavanje robe"

Takve Baza podataka su pozvani relacijski(od odnos– veza, odnos). Relaciona baza podataka je skup međusobno povezanih stolovi, od kojih svaki sadrži informacije o objekata određeni tip.

Veze u relacione baze podataka određen odgovarajućim vrijednostima polja u različitim tabelama. Pozivaju se polja pomoću kojih se uspostavlja odnos između tabela komunikacijska polja . U datom primjeru ovo je polje"Ime kupca."

Ovisno o vrsti informacija sadržanih u stolovi baze podataka, mogu postojati tri glavne vrste veza između njih: jedan prema više, jedan na jedan, mnogo-prema-mnogima.

Stav jedan prema više se instalira između tabela u slučaju kada je jedan zapis u roditeljski podružnica sto. U datom primjeru, odnos ovog tipa uspostavlja se između tabela „Kupac” i „Izdavanje robe”.

Stav jedan na jedan nastaje kada jedan ulazak u roditeljski tabela odgovara ne više od jednog zapisa u podružnica sto.

U slučaju veze mnogo-prema-mnogima jedan unos po roditeljski tabela može odgovarati bilo kojem broju zapisa u podružnica sto i obrnuto.

Povezan odnosom stolovi interakciju po principu Dom(majstor) – podređeni(detalj). U našem primjeru, tabela "Kupac" je Dom, i tabela “Oslobodjena roba” – podređeni. Dom stol se također često naziva roditeljski, A podređenipodružnica. Isto sto Možda main u odnosu na jednu sto baze podataka i podružnica u odnosu na drugu.

Sistemi za upravljanje bazama podataka (DBMS). Klasifikacija

Oni se koriste za rad sa podacima sistemi za upravljanje bazama podataka (DBMS). DBMS – ovo su softverski alati dizajnirani da definišu podatke (opisuju strukturu baza podataka – tabele, relacije), obrađuju i upravljaju podacima. Primjeri DBMS-a - FoxPro, Oracle, SQL-Server, Delphi, dBase, Clipper, MS Access, itd.

Postoje tri glavne vrste DBMS-a: industrijske univerzalne namjene, industrijske posebne namjene I razvijen za određenog kupca (po narudžbi).

SpecializedDBMS kreiraju se za upravljanje bazama podataka za određenu namjenu - računovodstvo, skladište, bankarstvo itd.

UniversalDBMS nemaju jasno definiran opseg primjene, dizajnirani su "za sve prilike" i, kao rezultat toga, prilično su složeni i zahtijevaju posebno znanje od korisnika.

Za razliku od industrijski DBMS custom maksimalno uzimaju u obzir specifičnosti posla korisnika (posebnog preduzeća), njihov interfejs je obično intuitivan za korisnike i ne zahteva posebno znanje od njih. Na drugoj strani, specijalizovana I univerzalni industrijski DBMS relativno su jeftini, prilično pouzdani (debugovani) i spremni za trenutni rad, dok prilagođeni DBMS zahtijevaju značajne troškove, a njihova priprema za rad i otklanjanje grešaka traje značajan vremenski period (od nekoliko mjeseci do nekoliko godina).

Ovisno o lokaciji DBMS-a, postoje lokalni I distribuirano(klijent-server) DBMS. Svi dijelovi lokalni DBMS nalaze se na računaru korisnika baze podataka. Ako više korisnika istovremeno pristupa jednoj bazi podataka preko računarske mreže, svaki korisnički računar mora imati svoju kopiju lokalnog DBMS-a. Nasuprot tome, značajan dio softvera i hardvera distribuirani DBMS centralizovan i smešten na jednom prilično moćnom računaru (server), dok računari korisnika nose relativno mali dio DBMS-a, koji je tzv klijent. Lokalno DBMS-ovi mogu ili ne moraju raditi na mreži, dok distribuirano DBMS mora raditi računarsku mrežu.

Imajte na umu da sama lokacija Baza podataka ni na koji način ne utiče na specifičnosti DBMS-a: in lokalni Sam DBMS baza podataka može se nalaziti i na računaru korisnika i na udaljenom mrežnom računaru (file server).

Bezuslovno dostojanstvo klijent-server sistemi je mogućnost centralizovanog kontrole pristupa To baza podataka. U takvim sistemima baza podataka u velikoj mjeri zaštićeno od slučajnih i namjernih izobličenja, lakše ih je implementirati integritet I konzistentnost podataka.

DBMS je najvažnija komponenta informacioni sistem. Za kreiranje i upravljanje informacioni sistem DBMS je neophodan u istoj meri u kojoj je neophodan prevodilac za razvoj programe on algoritamski jezik.

Glavne funkcije koje obavlja DBMS:

Upravljanje podacima u eksternu memoriju(na diskovima);

Upravljanje podacima u ram memorija;

- sječa promjene i oporavak baze podataka nakon kvarova;

Jezička podrška baze podataka(jezik za definiciju podataka - SDL jezik, jezik za obradu podataka - DML jezik, ili jedan integrisani jezik koji sadrži sve potrebne alate za rad sa bazom podataka - strukturirani jezik upita SQL).

Zdravo, dragi čitaoci! Ovdje dolazimo do proučavanja ciklusa. Ciklusi u Pascalu. Šta je to? Kako ga koristiti? Za šta su oni potrebni? Ovo su pitanja na koja ću danas odgovoriti.
Ako ste čitali, onda znate da postoje tri vrste algoritama: linearni, granajući i ciklični. Vi i ja već znamo kako implementirati algoritme u Pascal-u. Počnimo proučavati posljednju vrstu algoritama.
U Pascalu, kao iu većini programskih jezika, postoje tri tipa konstrukcija petlje.

Svaka petlja se sastoji od tijela i zaglavlja. Tijelo petlje je skup naredbi koje se ponavljaju, a uvjet je logički izraz, ovisno o rezultatu kojeg se petlja ponavlja.

Uzmimo jedan problem koji ćemo riješiti korištenjem različitih tipova petlji.

Zadatak 1. Odštampajte sve brojeve od 1 do broja unesenog sa tastature.

Dok, ili petlja s preduvjetom

Kao što ste verovatno već shvatili iz naslova, dok je ciklus u kojem stanje dolazi prije tijela. Štaviše, tijelo petlje se izvršava ako i samo ako je uvjet istinito; čim stanje postane false

Dok ima format:

dok < условие> uradi<оператор 1>; (Zbogom...do....)

Ovaj ciklus je pogodan samo za jednu naredbu, ako želite koristiti više izraza u svom kodu, trebali biste ih priložiti u zagradama iskaza − početi I kraj;.

Rješenje problema.

Program example_while; var i, N: cijeli broj; (deklarisati varijable) begin i:= 1; ( Postavite i na 1 ) readln(N); (Pročitajte zadnji broj) dok i<= N do {Как только i станет больше N, цикл прекратится (можно было бы написать просто <, но пришлось бы добавлять 1 к N) } begin {Открываем операторные скобки} write(i, " "); {Выводим i} Inc(i); {увеличиваем i на один.} end; { закрываем скобки } end.

Ponavljanje ili petlja sa postuslovom

Ponovi- potpuna suprotnost dok. Ponovi je petlja u kojoj stanje dolazi nakon tijela. Štaviše, ispunjen je ako i samo ako je rezultat uvjeta false;čim logički izraz postane istinito, izvršenje petlje se zaustavlja.

Ponavljanje ima format:

ponovi(ponoviti…)
<оператор 1>;
< оператор 2>;

do(prije…) <условие>

Počni I kraj nije potrebno.

Rješenje problema.

Program example_repeat; var i, N: integer;( deklarisati varijable ) begin i:= 1; ( Postavite i na 1 ) readln(N); ( Pročitaj zadnji broj ) repeat (početak i kraj nisu potrebni nakon ponavljanja ) write(i, " "); (Izlaz i) Inc(i); (povećati i za jedan.) sve dok i = N + 1; (Na primjer, i = 11 i N = 10. Petlja će se zaustaviti, tako da uvjet postaje istinit.) end.

For, ili petlja s parametrom

Za je petlja u kojoj se tijelo izvršava određeni broj puta.

Postoje dva oblika snimanja ovog ciklusa:

Prvi oblik

za<счетчик1> := <значение1>to<конечное_значение>uradi<оператор1>;

<счетчик1>će se povećati za 1.

<значение1>je početna vrijednost brojača. To može biti varijabla ili broj.
<конечное_значение>: čim vrijednost<счетчик1>biće ih još<конечное_значение>

Ako trebate napisati nekoliko izraza u tijelo petlje, koristite početi I kraj.

I<счетчик1>, And<конечное_значение>, And<значение1>- varijable cjelina tip.

Najčešće se varijabla i koristi kao brojač.

Drugi oblik

za<счетчик2> := <значение2>do<конечное_значение>uradi<оператор1>;

Nakon svake iteracije vrijednost<счетчик2>smanjit će se za 1.

<значение2>je početna vrijednost brojača.
<конечное_значение>: čim vrijednost<счетчик2>će postati manji<конечное_значение>, izvršenje petlje će se zaustaviti.

Dvije važne napomene:

  1. Ciklus se ponavlja sve dok se vrijednost brojača nalazi u intervalu [value; konačna_vrijednost].
  2. Promijenite vrijednost brojača unutar tijela zabranjeno je! Ovo je ono što prevodilac izlazi:

Rješenje problema:

Program example_for; var i, N: cijeli broj; započeti čitanje(N); (pod pretpostavkom da smo uneli 10) za i:= 1 do N do write(i, " "); (broj iteracija - 10 - 1 + 1 = 10) kraj.

Slažem se, ovaj kod je jednostavniji i sažetiji od svih prethodnih. I ciklus za nije sasvim obična petlja; Zato se petlja s parametrom u programiranju naziva sintaktičkim šećerom. Sintaktički šećer je dodatak sintaksi programskog jezika koji ne dodaje nove karakteristike, ali čini upotrebu jezika pogodnijom za ljude.

Hajde da rešimo par problema.

For1. Zadani cijeli brojevi K i N (N > 0). Odštampajte broj K N puta.

Organizujemo jednostavan ciklus od 1 do traženog broja.

Program za1; var K, N, i: cijeli broj; početi čitati (K, N); za i:= 1 do N do write(K, " "); (Pišemo K odvojeno razmakom) kraj.

For2. < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (включая сами числа A и B), а также количество N этих чисел.

Od A< B, то цикл должен будет выводить все числа от А до B. Чтобы сосчитать количество чисел, используем формулу: <конечное_значение> — <начальное_значение> + 1.

Program za2; var A, B, i, broj: cijeli broj; započeti čitanje(A, B); za i:= A do B do write(i, " "); (zapisujemo brojeve od najmanjeg do najvećeg) count:= B - A + 1; (izbroji broj brojeva) writeln; write("Broj brojeva - ", count); kraj.

Za9. Zadana su dva cijela broja A i B (A< B). Найти сумму квадратов всех целых чисел от A до B включительно.

Organizujemo isti ciklus kao u prethodnom zadatku, ali u isto vrijeme zbrajamo kvadrate svih brojeva. Za izračunavanje kvadrata koristite funkciju.

Program for9; var A, B, i, S: cijeli broj; započeti čitanje(A, B); S:= 0; (PascalABC to radi automatski, ali ako imate drugi kompajler, preporučujemo da ručno resetujete varijable) za i:= A do B do S:= S + Sqr(i); (dodati sve kvadrate) writeln; write("Zbroj kvadrata - ", S); kraj.

Za13°. Dat je cijeli broj N (> 0). Pronađite vrijednost izraza 1,1 – 1,2 + 1,3 – … (N pojmova, znakovi se naizmjenično). Nemojte koristiti uslovni operator.

Da bismo promijenili predznak, svaku iteraciju petlje mijenjamo vrijednost posebne varijable u suprotnu.

Program za 13; var N, A, i: cijeli broj; S: pravi; begin Write("N = "); readln(N); S:= 1,1; A:= 1; (Prvo pozitivno) za i:= 2 do N do (već smo završili prvu iteraciju petlje, tako da počinjemo da brojimo od 2) begin A:= -A; (Sada negativan) S:= S + A * (1 + i / 10); (Dodaj) end; Pisanje (S:5:1); (Dajmo jedno mjesto za razlomak) kraj.

Dok1°. Dati su pozitivni brojevi A i B (A > B). Segment dužine A sadrži najveći mogući broj segmenata dužine B (bez preklapanja). Bez upotrebe operacija množenja i dijeljenja, pronađite dužinu nezauzetog dijela segmenta A.

Svaki put oduzimamo B od A sve dok je A - B >= 0.

Program while1; var A, B: cijeli broj; započeti readln(A, B); dok (A - B) >= 0 do A:= A - B; (Sve dok je razlika pozitivna, oduzimamo. Potrebno je dati opciju sa višekratnikom A i B, dakle >=) write(A); kraj.

Dok4°.Dat je cijeli broj N (> 0). Ako je stepen 3, onda ispišite Tačno ako nije, ispišite False.

Postupimo na sledeći način: dok je N deljivo sa tri, podelimo N sa celinom. Tada, ako je N = 1, broj je stepen tri; ako je N<>1, onda broj nije potencija tri. Da biste riješili ovaj problem, morate znati šta je to i kako funkcionira.

Program while4; var N: cijeli broj; započeti readln(N); dok je N mod 3 = 0 do N:= N div 3; (Sve dok je ostatak dijeljenja sa tri nula, podijelite N s cjelinom) writeln(N = 1); (boolean izraz) end.

To je sve za danas! Ne zaboravite često posjećivati ​​našu web stranicu i kliknuti na dugmad ispred komentara.

Petlja s parametrom ima sljedeći format:

for (inicijalizacija; izraz; modifikacije) izjava;

Inicijalizacija koristi se za deklarisanje i dodeljivanje početnih vrednosti količinama koje se koriste u petlji. U ovom dijelu možete napisati nekoliko naredbi odvojenih zarezom (operacija “sekvencijalno izvršenje”), na primjer, ovako:

za (int i = 0, j = 2; ...

za (k = 1, m = 0; ...

Opseg varijabli deklariranih u inicijalizacijskom dijelu petlje je petlja 1. Inicijalizacija se izvodi jednom na početku izvođenja petlje.

Izraz definira uvjet za izvršavanje petlje: ako je njen rezultat, prebačen na tip bool , istinit, petlja se izvršava. Petlja sa parametrom je implementirana kao petlja sa preduslovom.

Modifikacije se izvršavaju nakon svake iteracije petlje i obično se koriste za promjenu parametara petlje. U dijelu za modifikaciju možete napisati nekoliko izjava odvojenih zarezima. Jednostavna ili složena operater predstavlja tijelo petlje. Bilo koji dio for naredbe može biti izostavljen (ali tačke i zareze moraju ostati na mjestu!).

Primjer (operator koji izračunava zbir brojeva od 1 do 100):

za (Int i = 1, s = 0; 1<=100; i++) s += i;

Primjer (program ispisuje tablicu vrijednosti funkcija y=x 2 +1 u unesenom rasponu):

#Include

float Xn, Xk, Dx, X;

printf("Unesite opseg i povećanje argumenta: ");

scanf (“%f%f%f”, &Xn, &Xk, &Dx);

printf("| X | Y |\n");

za (X = Xn; X<=Xk; X+=Dx)

printf (" | %5.2f | %5.2f |\n", X*X + 1);

Primjer (program pronalazi sve djelioce pozitivnog cijelog broja):

#Include Int main())(

Int broj, polovina, div;

cout<< “\n Введите число: "; cin >>num;

za (pola = broj / 2, div = 2; div<= half; div++)

if (!(num %div))cout<< div <<"\n";

Posljednja dva primjera izvode iste radnje kao i primjeri za petlju s preduvjetom, ali su napisani kompaktnije i jasnije: sve akcije vezane za kontrolu petlje lokalizirane su u njenom zaglavlju.

Bilo koja petlja while može se pretvoriti u ekvivalentnu for petlju i obrnuto koristeći sljedeću šemu:

za (b1: b2; bZ) operator b1;

dok (b2)( operator; bZ;)

Često se javlja greške prilikom programiranja ciklusa - korištenje neinicijaliziranih varijabli u tijelu petlje i neispravan unos uvjeta izlaska iz petlje.

q provjeriti da li su svim varijablama koje se pojavljuju na desnoj strani operatora dodjeljivanja u tijelu petlje prethodno dodijeljene početne vrijednosti (kao i da li se drugi operatori mogu izvršiti);


q provjeriti da li se barem jedna varijabla uključena u uvjet izlaska iz petlje mijenja u petlji;

q obezbijediti izlaz u slučaju nužde iz petlje nakon postizanja određenog broja iteracija;

q i, naravno, ne zaboravite da ako trebate izvršiti više od jedne izjave u tijelu petlje, morate ih staviti u vitičaste zagrade.

Operatori petlje su zamjenjivi, ali neki preporuke izabrati najbolje u svakom konkretnom slučaju.

Naredba do while se obično koristi kada se petlja mora izvršiti barem jednom (na primjer, ako se podaci unose u petlju).

Operator while je pogodniji za upotrebu u slučajevima kada broj iteracija nije poznat unaprijed, nema očiglednih parametara petlje ili je zgodnije napisati modifikaciju parametara ne na kraju tijela petlje.

Operator for je poželjniji u većini drugih slučajeva (definitivno za organiziranje petlji sa brojačima).

Uopšteno govoreći, danas ćemo detaljnije naučiti o svakom od ciklusa u Pascalu i vidjeti kako su oni definirani. Mi ćemo to srediti while petlja sa preduslovom, for petlja sa parametrom I ponoviti - do petlje sa postuslovom.

1. Petlja s parametrom u Pascalu - FOR

Petlja FOR postavlja određeni uvjet pod kojim će program raditi prije nego što se izvrši. Recimo da trebamo petljati program 5 (ili n) puta, onda se to može lako uraditi pomoću ove petlje. FOR petlja ima karakterističnu osobinu - brojač, koji se obično označava slovom i ili j.

Izgled petlje s parametrom u Pascalu:

za i:= 1 do n do // dodijeli i prvo jednom, zatim dva, tri, ..., n

Nakon 1. prolaza dodjeljujemo 1 varijabli i, nakon drugog dodjeljujemo 2, i tako sve dok ne dođemo do n. do - ovo je do.. u rastućem redoslijedu, također postoji dolje do - do.. u opadajućem redoslijedu.

Blok - ciklus dijagram sa parametrom:

2. Petlja s preduvjetom u Pascalu - WHILE

Operator petlje sa preduslovom izvodi radnje nepoznat broj puta. Petlja izlazi ako se neki logički izraz ili njegov rezultat pokaže netačnim. Pošto se valjanost logičkog izraza provjerava na početku, tijelo petlje se možda neće izvršiti niti jednom.

Struktura petlje sa preduvjetom:

WHILE DO početi kraj;

Logički izraz čija se istinitost provjerava na početku izvršavanja cikličkog operatora;

Bilo koje izjave izvršnog jezika.

Redoslijed izvršenja petlje:

Dok je uslov istinit, tijelo petlje se izvršava. Čim uslov postane netačan, izvođenje petlje se zaustavlja.

Blok dijagram ciklusa sa preduslovom:


Napomena: pravokutni blokovi prikazuju svaku radnju koja se izvodi u petlji ili nakon nje (korak petlje), dok ovalni blokovi pokazuju početak ili kraj cijelog programa ili njegovog dijela. Glavnu ulogu u ovom blok dijagramu igra njegov središnji dio.

primjer:

Zadatak: izračunaj zbir niza 1+1,5+2+2,5+3+3,5+ .. + 30

primjer programa-while;

Var sum:real; n:real; BEGIN zbroj:=0; n:=1; dok n

3. Petlja sa postuvjetom - Ponovite - do.

Ovaj operator je sličan operatoru petlje sa preduvjetom, ali se razlikuje od njega po tome što se uvjet provjerava nakon što se izvrši tijelo (akcije) petlje. Ovo osigurava da se izvrši barem jednom, za razliku od prethodno analiziranih petlji.

Imajte na umu da ovaj operator petlje pretpostavlja da postoji nekoliko naredbi u tijelu petlje, odnosno da se može izvesti nekoliko akcija, tako da servisne riječi Početak i Kraj nisu potrebne.

Niz operatora uključenih u tijelo petlje se izvršava jednom, nakon čega se provjerava usklađenost sa uslovom napisanim nakon servisne riječi Until. Ako uslov nije ispunjen, petlja se završava. U suprotnom, tijelo petlje se ponovo ponavlja, nakon čega se stanje ponovo provjerava.

Blok dijagram ciklusa sa postuslovom:

Format snimanja, struktura ciklusa:
REPEAT UNTIL;

primjer:

Program test2; Var b: Real; Početak b:=100; Ponovite b:=b/2; Do b

Zaključci:

1. Petlja s parametrom koristi varijablu koja se zove parametar petlje ili brojač. Prije nego što se petlja izvrši, parametar (brojač) se postavlja na svoju početnu vrijednost. Nakon završetka koraka petlje, vrijednost parametra se povećava za jedan. Petlja se nastavlja sve dok parametar ne dostigne svoju konačnu vrijednost, koja je naznačena nakon do (downto).

2. Petlja preduvjeta se izvodi sve dok uvjet izvršenja ne postane lažan i nastavlja se ako je uvjet istinit.

3. Petlja sa postuslovom se izvršava sve dok uslov ne postane istinit, ako je uslov netačan, petlja se nastavlja.



Učitavanje...
Top