námět na zkoušení:
Upravte tento program tak, aby se nejdříve zeptal, kolik znaků a pak jaké znaky a pak tyto znaky v počtu, který byl zadán namaloval vedle sebe!
program cykly3;
uses crt;
var a,i, klavesa: integer;
begin
repeat
writeln ('for -----------------------------------------');
for i:=1 to 5 do
write ('for');
writeln (' ');
writeln ('repeat -----------------------------------------');
a:=0;
repeat
write ('rep');
a:=a+1;
until a>5;
writeln (' ');
writeln ('while -----------------------------------------');
a:=0;
while a<=5 do
begin
write ('whi');
a:=a+1;
end;
writeln (' ');
writeln ('stiskni 1, kdyz pokracovat, jinak nulu a program skonci');
readln (klavesa);
until klavesa<>1;
{zde konci cyklus repeat}
end.
Zobrazují se příspěvky se štítkemrepeat. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemrepeat. Zobrazit všechny příspěvky
úterý 10. listopadu 2009
pondělí 9. listopadu 2009
Tři typy cyklů
V tomto programu jsou použity všechny 3 typy cyklů. Každý z nic dělá totéž.
Zkoušení bude spočívat v tom, že dostanete podobný program, kde však bude jediný typ cyklu a vy budete muset dopsat zbylé dva.
program nasobilka;
uses crt;
var a, b, c, i,j,pom, klavesa: integer;
begin
repeat {to je zacatek cyklu, ktery konci tim until dole:
program se bude motat dokola, dokud nekdo nezmackne klavesu 1}
clrscr; {to je vymazani obrazovky}
writeln ('zadej cislo, kterym se zacne nasobit');
readln (A);
clrscr; {to je vymazani obrazovky}
writeln ('zadej cislo, kterym se skonci nasobit');
{writeLN napise text a ukonci radek (na rozdil od write)}
readln (B);
writeln ('zadej cislo, ktere se bude nasobit');
{writeLN napise text a ukonci radek (na rozdil od write)}
readln (C);
pom:=a;
writeln ('for -----------------------------------------');
writeln ('repeat -----------------------------------------');
repeat
a:=pom;
while a<=b do
readln (klavesa);
until klavesa<>1;
{zde konci cyklus repeat}
end.
Zkoušení bude spočívat v tom, že dostanete podobný program, kde však bude jediný typ cyklu a vy budete muset dopsat zbylé dva.
Všimněte si prosím záludného použití proměnné POM !
(ideální by bylo udělat simulační tabulku tohoto programu...)program nasobilka;
uses crt;
var a, b, c, i,j,pom, klavesa: integer;
begin
repeat {to je zacatek cyklu, ktery konci tim until dole:
program se bude motat dokola, dokud nekdo nezmackne klavesu 1}
clrscr; {to je vymazani obrazovky}
writeln ('zadej cislo, kterym se zacne nasobit');
readln (A);
clrscr; {to je vymazani obrazovky}
writeln ('zadej cislo, kterym se skonci nasobit');
{writeLN napise text a ukonci radek (na rozdil od write)}
readln (B);
writeln ('zadej cislo, ktere se bude nasobit');
{writeLN napise text a ukonci radek (na rozdil od write)}
readln (C);
pom:=a;
writeln ('for -----------------------------------------');
for i:=A to B do
writeln (i, ' x ',c , ' =',i * c);
{napise obsah promenne i, pak znacku nasobeni...}writeln ('repeat -----------------------------------------');
repeat
writeln (a, ' x ',c , ' =',a * c);
a:=a+1;
until a>b;
writeln ('while -----------------------------------------');a:=pom;
while a<=b do
begin
writeln (a, ' x ',c , ' =',a * c);
a:=a+1;
end;
writeln ('stiskni 1, kdyz pokracovat, jinak nulu a program skonci');readln (klavesa);
until klavesa<>1;
{zde konci cyklus repeat}
end.
úterý 3. listopadu 2009
Program porovnávající cykly
úkol:
Sestavte program, který vypíše násobilku z klávesnice zadaného čísla.
Program vypíše pouze násobky z intervalu, který budete požadovat (zadáte z klávesnice jeho začátek a konec).
Konkrétně:
Zadáte z klávesnice, že požadujete násobky od 3 do 5 pro číslo 6. Program vypíše:
3 x 6 = 18
4 x 6 = 24
5 x 6 = 30
V programu uveďte řešení pomocí 3 různých metod cyklů (for, repeat, while).
Tato řešení oddělte ve výpisu vodorovnou čarou.
-------------------------------------------------------------
...a řešení:
program nasobilka;
uses crt; var a, b, c, i,j, klavesa: integer;
begin
repeat {to je zacatek cyklu, ktery konci tim until dole:
program se bude motat dokola, dokud nekdo nezmackne klavesu 1}
clrscr; {to je vymazani obrazovky}
writeln ('zadej cislo, kterym se zacne nasobit');
readln (A);
clrscr; {to je vymazani obrazovky}
writeln ('zadej cislo, kterym se skonci nasobit');
{writeLN napise text a ukonci radek (na rozdil od write)}
readln (B);
writeln ('zadej cislo, ktere se bude nasobit');
{writeLN napise text a ukonci radek (na rozdil od write)}
readln (C);
for i:=A to B do
writeln (i, ' x ',c , ' =',i * c);
{napise obsah promenne i, pak znacku nasobeni...}
writeln ('-----------------------------------------');
repeat
writeln (a, ' x ',c , ' =',a * c);
a:=a+1;
until a>=b;
writeln ('stiskni 1, kdyz pokracovat, jinak nulu a program skonci');
readln (klavesa);
until klavesa<>1;
{zde konci cyklus repeat}
end.
Sestavte program, který vypíše násobilku z klávesnice zadaného čísla.
Program vypíše pouze násobky z intervalu, který budete požadovat (zadáte z klávesnice jeho začátek a konec).
Konkrétně:
Zadáte z klávesnice, že požadujete násobky od 3 do 5 pro číslo 6. Program vypíše:
3 x 6 = 18
4 x 6 = 24
5 x 6 = 30
V programu uveďte řešení pomocí 3 různých metod cyklů (for, repeat, while).
Tato řešení oddělte ve výpisu vodorovnou čarou.
-------------------------------------------------------------
...a řešení:
program nasobilka;
uses crt; var a, b, c, i,j, klavesa: integer;
begin
repeat {to je zacatek cyklu, ktery konci tim until dole:
program se bude motat dokola, dokud nekdo nezmackne klavesu 1}
clrscr; {to je vymazani obrazovky}
writeln ('zadej cislo, kterym se zacne nasobit');
readln (A);
clrscr; {to je vymazani obrazovky}
writeln ('zadej cislo, kterym se skonci nasobit');
{writeLN napise text a ukonci radek (na rozdil od write)}
readln (B);
writeln ('zadej cislo, ktere se bude nasobit');
{writeLN napise text a ukonci radek (na rozdil od write)}
readln (C);
for i:=A to B do
writeln (i, ' x ',c , ' =',i * c);
{napise obsah promenne i, pak znacku nasobeni...}
writeln ('-----------------------------------------');
repeat
writeln (a, ' x ',c , ' =',a * c);
a:=a+1;
until a>=b;
writeln ('stiskni 1, kdyz pokracovat, jinak nulu a program skonci');
readln (klavesa);
until klavesa<>1;
{zde konci cyklus repeat}
end.
úterý 27. října 2009
Zajímavá násobilka potřetí: opečovaný vstup
Co dělat, když nějaký šmoula hodlá zadat začátek násobení od vyššího čísla než konec násobení?
Nutno opečovat vstup:
program nasobilka;
uses crt;
var a, b, c, i, klavesa: integer;
begin
repeat {to je zacatek cyklu, ktery konci tim until dole:
program se bude motat dokola, dokud nekdo nezmackne klavesu 1}
repeat
clrscr; {to je vymazani obrazovky}
writeln ('zadej cislo, ktere budes nasobit');
readln (A);
writeln ('zadej cislo, od ktereho chces nasobit');
readln (B);
writeln ('zadej cislo, do ktereho chces nasobit');
readln (C);
until c>b;
clrscr; {to je vymazani obrazovky}
for i:=b to c do
{cyklus pro i od a do b dělej... -> cyklus probehne (b - a) krat}
writeln (i, ' x ',a , ' =',i * a);
{napise obsah promenne i, pak znacku nasobeni...}
writeln ('stiskni 1, kdyz pokracovat, jinak nulu a program skonci');
readln (klavesa);
until klavesa<>1;
{zde konci cyklus repeat}
end.
Nutno opečovat vstup:
program nasobilka;
uses crt;
var a, b, c, i, klavesa: integer;
begin
repeat {to je zacatek cyklu, ktery konci tim until dole:
program se bude motat dokola, dokud nekdo nezmackne klavesu 1}
repeat
clrscr; {to je vymazani obrazovky}
writeln ('zadej cislo, ktere budes nasobit');
readln (A);
writeln ('zadej cislo, od ktereho chces nasobit');
readln (B);
writeln ('zadej cislo, do ktereho chces nasobit');
readln (C);
until c>b;
clrscr; {to je vymazani obrazovky}
for i:=b to c do
{cyklus pro i od a do b dělej... -> cyklus probehne (b - a) krat}
writeln (i, ' x ',a , ' =',i * a);
{napise obsah promenne i, pak znacku nasobeni...}
writeln ('stiskni 1, kdyz pokracovat, jinak nulu a program skonci');
readln (klavesa);
until klavesa<>1;
{zde konci cyklus repeat}
end.
pondělí 26. října 2009
Nejjednodušší základní program vylepšený o nekonečné opakování
Solidní program se nakonec zeptá, zda-li má pokračovat nebo skončit.
Tudy na to:
program nasobilka;
uses crt;
var a, b, i, klavesa: integer;
begin
repeat {to je zacatek cyklu, ktery konci tim until dole:
program se bude motat dokola, dokud nekdo nezmackne klavesu 1}
writeln ('zadej cislo');
readln (A);
clrscr; {to je vymazani obrazovky}
writeln ('zadej dalsi cislo');
{writeLN napise text a ukonci radek (na rozdil od write)}
readln (B);
writeln ('soucet cisel ',a, ' a ',b , ' je ',a+b);
if a = b then
{kdyz - tak, to znas:)}
writeln ('cisla ',a, ' a ',b , ' jsou stejna')
else
{jinak...}
writeln ('cisla ',a, ' a ',b , ' nejsou stejna');
for i:=1 to 10 do
{cyklus pro i od 1 do 10 dělej... -> cyklus probehne 10x}
writeln (i, ' x ',a , ' =',i * a);
{napise obsah promenne i, pak znacku nasobeni...}
writeln ('stiskni 1, kdyz pokracovat, jinak nulu a program skonci');
readln (klavesa);
until klavesa<>1;
{zde konci cyklus repeat}
end.
Tudy na to:
program nasobilka;
uses crt;
var a, b, i, klavesa: integer;
begin
repeat {to je zacatek cyklu, ktery konci tim until dole:
program se bude motat dokola, dokud nekdo nezmackne klavesu 1}
writeln ('zadej cislo');
readln (A);
clrscr; {to je vymazani obrazovky}
writeln ('zadej dalsi cislo');
{writeLN napise text a ukonci radek (na rozdil od write)}
readln (B);
writeln ('soucet cisel ',a, ' a ',b , ' je ',a+b);
if a = b then
{kdyz - tak, to znas:)}
writeln ('cisla ',a, ' a ',b , ' jsou stejna')
else
{jinak...}
writeln ('cisla ',a, ' a ',b , ' nejsou stejna');
for i:=1 to 10 do
{cyklus pro i od 1 do 10 dělej... -> cyklus probehne 10x}
writeln (i, ' x ',a , ' =',i * a);
{napise obsah promenne i, pak znacku nasobeni...}
writeln ('stiskni 1, kdyz pokracovat, jinak nulu a program skonci');
readln (klavesa);
until klavesa<>1;
{zde konci cyklus repeat}
end.
pondělí 19. října 2009
repeat cyklus
repeat
;
;
...............
until
příklad:
repeat
write ('Zadej kladné číslo: ');
read (cislo);
if cislo <= 0 then write ('Cislo ', cislo, 'neni kladne!'); until cislo >0;
cvičení:
Napiš tuto část programu za pomocí cyklu while!
... a řešení:
Porovnání cyklu while oproti cyklu repeat until:
Poznámka:
Repeat cyklus se provede alespoň jednou.
While se nemusí provést ani jednou!
While cyklus běží tak dlouho, dokud platí jeho podmínka.
Repeat se chová opačně - jakmile podmínka platí, skončí!
...............
until
příklad:
repeat
write ('Zadej kladné číslo: ');
read (cislo);
if cislo <= 0 then write ('Cislo ', cislo, 'neni kladne!'); until cislo >0;
cvičení:
Napiš tuto část programu za pomocí cyklu while!
... a řešení:
Porovnání cyklu while oproti cyklu repeat until:
program while_versus_repeat_until;
uses wincrt; {nutné proto, aby fungoval príkaz "repeat until keypressed"}
var cislo : Real;
begin
clrscr; {smaze na zacátku obrazovku - aby nezustával text z predchozích aplikací}
writeln ('*********************************************************');
(* ----------cyklus repeat - until ---------*)
writeln ('Testovani cyklu repeat: ');
repeat
writeln ('Zadej kladné císlo a cyklus repeat skonci: ');
readln (cislo);
if cislo <= 0 then writeln ('Cislo ', cislo, 'neni kladne! Cyklus repeat pokracuje...'); until cislo >0;
(* -------- cyklus repeat - until konec --------*)
writeln ('stiskni cokoli a program pokracuje k testovani cyklu while');
repeat until keypressed;
{PC ceká na stisk libovolné klávesy - aby zustal videt výsledek na obrazovce}
(* --------cyklus while--------------- *)
cislo :=-100 (* quli nasledujici podmince musim nadefinovat promennou cislo jako zapornou*);
while cislo < 0 do begin writeln ('Zadej kladné císlo a cyklus while skonci: '); readln (cislo); end; (*-------- cyklus while konec -----------*) writeln ('bylo zadano kladne cislo, stiskni cokoli a program skonci'); writeln ('*********************************************************'); repeat until keypressed; {PC ceká na stisk libovolné klávesy - aby zustal videt výsledek na obrazovce} clrscr; {smaze na konci obrazovku} end.
Poznámka:
Repeat cyklus se provede alespoň jednou.
While se nemusí provést ani jednou!
While cyklus běží tak dlouho, dokud platí jeho podmínka.
Repeat se chová opačně - jakmile podmínka platí, skončí!
pondělí 12. října 2009
První program lépe a radostněji
Když první program spustíme, tak v pohodě zadáme dvě čísla, program porovná, které je větší, větší číslo vypíše, ale ve finále skončí a my z toho nic nemáme.
Je třeba, aby program po vypsání výsledku čekla na stisk klávesy a skončil až potom. To vyřešíme řádkem obsahující trik repeat until keypressed;
program VetsiCislo ( Input, Output );
uses crt; {nutné proto, aby fungoval příkaz "repeat until keypressed"}
var A, B : Integer;
begin
Write ( 'Urceni vetsiho cisla ' );
Write ( 'Zadejte dve cisla ' );
Read ( A, B );
if A > B then
Write ( 'vetsi je ', A )
else
Write ( 'vetsi je ', B );
repeat until keypressed;
end.
Upravte tento program tak, aby řešil situaci, kdy se zadají stejná čísla!
Pokud někdo zadá z klávesnice stejná čísla, program vypíše: "čísla jsou stejná!"
Je třeba, aby program po vypsání výsledku čekla na stisk klávesy a skončil až potom. To vyřešíme řádkem obsahující trik repeat until keypressed;
program VetsiCislo ( Input, Output );
uses crt; {nutné proto, aby fungoval příkaz "repeat until keypressed"}
var A, B : Integer;
begin
Write ( 'Urceni vetsiho cisla ' );
Write ( 'Zadejte dve cisla ' );
Read ( A, B );
if A > B then
Write ( 'vetsi je ', A )
else
Write ( 'vetsi je ', B );
repeat until keypressed;
end.
Upravte tento program tak, aby řešil situaci, kdy se zadají stejná čísla!
Pokud někdo zadá z klávesnice stejná čísla, program vypíše: "čísla jsou stejná!"
Přihlásit se k odběru:
Příspěvky (Atom)