+ All Categories
Home > Documents > Pascal – řízení programu

Pascal – řízení programu

Date post: 01-Feb-2016
Category:
Upload: elga
View: 33 times
Download: 0 times
Share this document with a friend
Description:
Pascal – řízení programu. cykly. Opakování – if-then. Seřaďte dva řetězce podle abecedy (stačí je porovnat) Všechna velká písmena jsou v ASCII tabulce před malými!!! (každý znak má v této tabulce svůj kód – číselnou hodnotu). Opakování – if-then. Program Retezce; Var R1,R2 : string; - PowerPoint PPT Presentation
27
Pascal – řízení programu cykly
Transcript
Page 1: Pascal – řízení programu

Pascal – řízení programu

cykly

Page 2: Pascal – řízení programu

Opakování – if-then

Seřaďte dva řetězce podle abecedy (stačí je porovnat)

Všechna velká písmena jsou v ASCII tabulce před malými!!!

(každý znak má v této tabulce svůj kód – číselnou hodnotu)

Page 3: Pascal – řízení programu

Opakování – if-then

Program Retezce; Var R1,R2 : string; Begin

Writeln('Zadej dva retezce (malymi pismeny): '); Readln(R1); Readln(R2); Writeln;

If R1 < R2 then Writeln(R1, ' stoji v abecede pred ', R2); If R1 = R2 then Writeln('Oba retezce jsou identicke'); If R1 > R2 then Writeln(R2, ' stoji v abeceda pred ',R1);

Readln; End.

Page 4: Pascal – řízení programu

Pascal – příkazy a cykly

další možností řízení programu jsou tzv. cykly

a) s pevným počtem opakování 

for Proměnná:=DelejOd to DelejDo do

Příkaz;

Page 5: Pascal – řízení programu

počet opakování cyklu určíme řídící proměnnou, dolní a horní mezí (řídící proměnná bude postupně nabývat hodnoty mezi dolní a horní mezí včetně)

před započetím provádění cyklu je znám počet opakování

používá se, chceme-li několikrát po sobě zopakovat stejnou činnost

Page 6: Pascal – řízení programu

Pascal – příkazy a cykly

i – řídící proměnná

d – dolní mez

h – horní mez

for i:= dolní mez to

horní mez do příkaz

Page 7: Pascal – řízení programu

Pascal – příkazy a cykly

obsah proměnné zvětšují od DelejOd do DelejDo a pokaždé provedou Příkaz

Příklad:

Program Abeceda;

Var c:char;

Begin for c:='a' to 'z' do Writeln(c);

Readln;

End.

Page 8: Pascal – řízení programu

Pascal – příkazy a cykly

Vytvořte program, který zaplní celou

obrazovku nápisem Ahoj (NIKDE nesmí

zůstat mezera).

Page 9: Pascal – řízení programu

Pascal – příkazy a cykly

Program AhojVsude;

Var I:Integer;

Begin

Writeln('Kecy');

For I:=1 to 980 do Write('Ahoj');

Readln;

End.

Page 10: Pascal – řízení programu

Pascal – příkazy a cykly

Řešený příklad “Součet”: na vstupu jsou dvě přirozená čísla a, b

(a < b). vytiskněte, kolik je součet všech přirozených

čísel v intervalu <a, b>

(budou-li např. na vstupu čísla 4 a 7, chceme vytisknout číslo 22, protože 4+5+6+7=22)

Page 11: Pascal – řízení programu

Pascal – příkazy a cykly

Řídící proměnnou cyklu necháme nabývat

hodnot 4, 5, 6 a 7 (v našem konkrétním

případě) a vždy ji přičteme do proměnné

SOUCET, kde bude hledaný součet

Page 12: Pascal – řízení programu

Pascal – příkazy a cykly

Program SCITANI;var ODKUD, KAM, SOUCET, I: integer;begin

write (´Od ktereho cisla mam zacit scitat ?´);readln (ODKUD);write (´Do ktereho cisla mam scitat ?´);readln (KAM);SOUCET := 0;for I:= ODKUD to KAM do SOUCET := SOUCET + I;write (´Hledany soucet cisel je:´, SOUCET);readln;

end.

Page 13: Pascal – řízení programu

Najděte všechna řešení rovnice a2+b2=c2 v oboru přirozených čísel menších jak 100

Page 14: Pascal – řízení programu

Řešený příklad – for – to -do

Zadejte číslo n a najděte všechny jeho dělitele.program delitel; var i:byte; n,m:word; begin writeln('Zadej cislo:');

readln(n); for i:=1 to n do

begin m:=n mod i; if m=0 then writeln('Cislo ',i,' je delitelem cisla ',n); end;

readln; end.

?

Page 15: Pascal – řízení programu

Pascal – příkazy a cykly

Program Pythagoras; Var A,B,C : Integer; Begin

For A:=1 to 100 do For B:=1 to 100 do

For C:=1 to 100 do if A*A +B*B = C*C then Write(a:3,' ',b:3,' ',c:4,' '); Readln;

End.

Page 16: Pascal – řízení programu

Pascal – příkazy a cykly

b) Cyklus s podmínkou na konci

příkaz REPEAT … UNTIL

REPEAT

Příkaz A;

Příkaz B;

UNTIL Podm;

Jediná výjimka, kdy není třeba Begin a End.

Page 17: Pascal – řízení programu

Pascal – příkazy a cykly

Příkaz A

Příkaz B

Podm.

Ne

Ano

Opakuj tak dlouho,

až nastane splnění podmínky

(až začne platit podmínka)

Opakuj Akci 1 a Akci 2,dokud neplatí Podmínka

Page 18: Pascal – řízení programu

Příklad: Sčítání 10 čísel

Page 19: Pascal – řízení programu

Příklad pro repeat - until

Spočítejte počet studentů na škole. Počty se zadávají po jednotlivých třídách. Na konci zadávající stiskne 0.

Page 20: Pascal – řízení programu

Řešení příkladu

program skola; var soucet,pocet:word; begin

soucet:=0; repeat writeln('Zadej pocet studentu ve tride'); readln(pocet); soucet:=soucet+pocet; until pocet=0; writeln('Pocet studentu na skole je ',soucet);

readln; end.

Page 21: Pascal – řízení programu

Řešený příklad repeat-until

Vytvořte program pro výpočet faktoriálu. program faktorial; var a,f:integer; begin f:=1;

repeat writeln('Zadej celé číslo od 1 do 12.');

readln(a); until (a>=1) and (a<=12); write('Faktorial cisla ',a,' je '); while a<>0 do begin

f:=f*a; a:=a-1; end;

writeln(f,'.'); readln;

end.

Page 22: Pascal – řízení programu

Pascal – příkazy a cykly

c) cyklus s podmínkou na začátku

příkaz WHILE …DO

WHILE Podm DO Begin

Příkaz X;

Příkaz Y;

End;

Page 23: Pascal – řízení programu

Pascal – příkazy a cykly

Podm.

Příkaz X

Příkaz Y

Ne

Ano

Dokud platí podmínka,

dělej Příkazy X a Y

Pokud platí Podmínka,Prováděj Akci

Page 24: Pascal – řízení programu

Sčítání n čísel

S:=0;

I:=1;

while I <=10 do S:=S+I

příkaz cyklu se bude provádět do nekonečna, neboť obsah proměnné I je stále stejný (obsah proměnné S se neustále zvyšuje o 1)

Page 25: Pascal – řízení programu

Sčítání n čísel

požadujeme-li však sečíst pouze1+2+…+10 a výsledek tohoto součtu uložit do proměnné S, pak algoritmus musí být ve tvaru:

S:=0;

I:=1;

while I <=10 do begin S:=S+I;

I:=I+1

end

Page 26: Pascal – řízení programu

Zadání příkladu – while-do

Spočítejte průměrnou známku studentů. Učitel do programu zadává známky a program spočítá průměr ze všech zadaných známek. Při ukončení zadávání stiskne učitel 0.

Page 27: Pascal – řízení programu

Řešení příkladu:

program prumer; var a,soucet,i:integer; begin

soucet:=0; i:=0; writeln('Zadej znamku'); readln(a);

while (a>0) and (a<6) do begin soucet:=soucet+a; i:=i+1; writeln('Zadej znamku'); readln(a); end;

if soucet=0 then writeln('Zadnou znamku jsi nezadal') else writeln('Prumerna znamka je', soucet/(i-1)); readln;

end.


Recommended