1 / 27

Pascal – řízení programu

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;

elga
Download Presentation

Pascal – řízení programu

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pascal – řízení programu cykly

  2. 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)

  3. 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.

  4. 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;

  5. 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

  6. 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

  7. Pascal – příkazy a cykly • obsah proměnné zvětšují od DelejOd do DelejDo a pokaždé provedou Příkaz Příklad: ProgramAbeceda; Var c:char; Begin for c:='a' to 'z' doWriteln(c); Readln; End.

  8. Pascal – příkazy a cykly Vytvořte program, který zaplní celou obrazovku nápisem Ahoj (NIKDE nesmí zůstat mezera).

  9. Pascal – příkazy a cykly Program AhojVsude; Var I:Integer; Begin Writeln('Kecy'); For I:=1 to 980 do Write('Ahoj'); Readln; End.

  10. 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)

  11. 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

  12. 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.

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

  14. Ř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. ?

  15. 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.

  16. 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.

  17. Příkaz A Příkaz B Podm. Ne Ano Pascal – příkazy a cykly Opakuj Akci 1 a Akci 2, dokudneplatí Podmínka Opakuj tak dlouho, až nastane splnění podmínky (až začne platit podmínka)

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

  19. 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.

  20. Ř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.

  21. Ř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.

  22. 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;

  23. Podm. Ne Ano Příkaz X Příkaz Y Pascal – příkazy a cykly Dokud platí podmínka, dělej Příkazy X a Y Pokud platí Podmínka, Prováděj Akci

  24. 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)

  25. 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

  26. 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.

  27. Ř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.

More Related