GYMNÁZIUM, VLAŠIM, TYLOVA
Autor | Ing. Marta Bechyňová |
Číslo materiálu | 4_1_INF_06 |
K dispozici na | http://www.ivt.mzf.cz/algoritmizace-a-programovani/uvod-do-algoritmu/6-promenna-prirazovaci-prikaz-prikazy-vstupu-a-vystupu/ |
Datum vytvoření |
|
Druh učebního materiálu | webová stránka |
Ročník | 1. |
Anotace | webová stránka pro osvojení pojmu proměnná, přiřazovací příkaz, příkazy vstupu a výstupu a procvičení na příkladech. |
Klíčová slova | proměnná, přiřazovací příkaz, příkazy vstupu a výstupu |
Vzdělávací oblast | Informační a komunikační technologie |
Očekávaný výstup | Studenti si osvojí pojem proměnná, přiřazovací příkaz, příkazy vstupu a výstupu a procvičí je na příkladech. |
Zdroje a citace | MANNOVÁ, B, 1986: Algoritmy a programování. SPN, Praha, 96 s. AA 4,15 – VA 4,66 [online]. [cit. 2012-09-05]. Dostupné z: http://www.cmsps.cz/~marlib/diagramy/diagramy.html |
Základní pojmy
Syntaxe příkazu vždy popisuje, jak tento příkaz správně bez chyby vytvořit.
Sémantika popisuje význam tohoto příkazu.
Proměnná
(variable) je objekt, který má pevně stanovené označení a nese určitou hodnotu. Tato hodnota se může v průběhu programu měnit. Pro označení proměnných se používají jména složená z písmen a číslic, první však musí být písmeno.
Konstanta (constant) je také pojmenovaný objekt určité hodnoty, na rozdíl od proměnné se hodnota konstanty nemůže měnit. Konstanta pi například může obsahovat hodnotu 3.14.
Proměnná může získávat hodnotu dvěma způsoby: načtením vstupní hodnoty pomocí příkazu vstupu nebo přiřazovacím příkazem
Proměnná, která dosud nezískala žádnou hodnotu, má nedefinovaný obsah.
Přiřazovací příkaz
- Je základem všech algoritmů zapsaných jak pomocí diagramů, tak i v libovolném programovacím jazyce.
- Syntaxe přiřazovacího příkazu je proměnná:=výraz.
- Čte se: „Do proměnné přiřaď výraz.“
- Symbol přiřazení se nachází uprostřed, často se bude jednat o znak :=.
- Výrazy mohou obsahovat konstanty i proměnné, aritmetické operátory, kulaté závorky.
- Základní aritmetické operátory jsou +, -, *, /.
Pozor! Pokud se ve výrazu na pravé straně přiřazovacího příkazu vyskytuje proměnná, musí mít již nějakou hodnotu!!!
Sémantika přiřazovacího příkazu je následující:
Nejprve se vyhodnotí hodnota výrazu na pravé straně přiřazovacího příkazu. Tato hodnota je pak přiřazena proměnné uvedené na levé straně příkazu. Předchozí hodnota této proměnné je nenávratně ztracena.
Příklad několika přiřazení:
a:=0 b:=a+5 c:=2*(b+4) a:=a+1 vysvětlení: do proměnné a je vložena hodnota nula, do b se přiřadí hodnota o 5 větší, tedy 5, v c bude 2*(5+4)=18 a nakonec do a bude přiřazena hodnota o jedničku větší, než má teď, tedy 1
Příkazy vstupu a výstupu
rozdělíme na dva druhy . Vstup z klávesnice a výstup na monitor (těmi se nyní budeme zabývat ) a vstup a výstup z disku (tyto rozebereme později).
Příkaz vstupu z klávesnice
Tento příkaz slouží k zadání vstupních dat do programu z klávesnice a má tvary:
čti proměnná a v Pascalu: read ( proměnná);
read (proměnná1, …, proměnnáN);
Průběh operace závisí na typu parametru proměnná :
typ proměnné :
char přečte se jeden znak a přiřadí se proměnné
integer přečte se posloupnost znaků tvořící dekadický zápis celého čísla ukončená mezerou, čárkou nebo znakem konce řádku
real podobně jako u INTEGER
readln; přeskočí zbytek aktuálního řádku a dalším příkazem read se začíná od začátku nového řádku
readln (proměnná); má stejný význam jako realizace příkazů
read(proměnná);
readln;
Příkaz výstupu na monitor
Tento příkaz slouží k výstupu hodnot (výstupních dat) z programu na obrazovku a má tvary:
piš proměnná a v Pascalu: write (proměnná);
write (proměnná1, …, proměnnáN);
writeln; další výstup bude od začátku dalšího řádku
Vystupující hodnota se udává výrazem, jehož typ může být CHAR, INTEGER, REAL nebo BOOLEAN, přičemž hodnoty TRUE i FALSE vystupují jako řetězce.
Řetězce v uvozovkách
( ' ... ' )
vystupují beze změny.
write ( parametr );
Parametr může mít jeden z následujících tvarů:
a) výraz reprezentující výstupní hodnotu
b) výraz : počet , kde počet reprezentuje počet znaků výstupu
c) výraz : počet : desmísta , kde desmísta udává počet desetinných míst výstupu
Například: writeln(kolik,znak) vypíše 5k
writeln('Výsledek je' , kolik ) vypíše Výsledek je 5
Příklady:
Příklad1:
Vytvořte program pro výpočet obsahu a obvodu obdélníka se zadanými stranami delka,sirka (celá nezáporná čísla).
program Obdelnik; | |
var delka,sirka, obvod,obsah :integer; | {Deklarace proměnných} |
begin | |
writeln('Zadejte délku obdélníka'); | {Napíše výzvu k zadání délky} |
read(delka); | {Načte délku} |
writeln('Zadejte šířku obdélníka'); | {Napíše výzvu k zadání šířky} |
read(sirka); | {Načte šířku} |
obvod:=2*(delka+sirka); | {Vypočítá obvod} |
obsah:=delka*sirka; | {Vypočítá obsah} |
writeln('Obvod je ',obvod); | {Vytiskne obvod} |
writeln('Obsah je ',obsah); | {Vytiskne obsah} |
end. |
Příklad2:
Vytvořte program, který ze zadaného času v hodinách, minutách a sekundách vyjádří čas
a) v minutách a sekundách
b) v sekundách
program Cas; | |
var hod,min,sek: integer; minuty,sekundy,jensekundy:integer; | {Deklarace proměnných} |
begin | |
writeln('Zadejte čas: hod min sek'); | {Napíše výzvu k zadání času} |
read(hod,min,sek); | {Načte hodiny,minuty,sekundy} |
minuty:=hod*60+min; | {Zjistí čas v minutách} |
sekundy:=sek; | {Zjistí čas v sekundách} |
jensekundy:=3600*hod+60*min+sek; | {Převede čas na sekundy} |
writeln('Minuty a sekundy ', minuty,':',sekundy); | {Vytiskne v min a sekundách} |
writeln('V sekundách ', jensekundy); | {Vytiskne jen v sekundách} |
end. |
Příklad3:
Sestavte program, který po zadání obnosu v celých korunách zjistí, kolik budeme potřebovat na jeho vyplacení desetikorun, pětikorun a korun.
Nejprve si ukážeme výpočet na konkrétním příkladě. Zadaný obnos je 28 Kč.
Nové operátory:
div – celočíselné dělení
mod – zbytek po celočíselném dělení
desetikoruny 28:10 = 2 tedy 28 div 2=2 zbylý obnos 28 - 20 = 8 tedy 28 mod 10 = 8 pětikoruny 8 : 5 = 1 tedy 8 div 5 = 1 zbylý obnos 8 - 5 = 3 tedy 8 mod 5 = 3 koruny 3 tedy zbylý obnos
A nyní program:
program Drobne; | |
var obnos,deset,pet,jedna: integer; | {Deklarace proměnných} |
begin | |
writeln('Zadejte obnos'); | {Napíše výzvu k zadání obnosu} |
readln(obnos); | {Načte obnos} |
deset:=obnos div 10; | {Zjistí počet desetikorun} |
obnos:=obnos mod 10; | {Zbytek po vyplacení desetikorun} |
pet:=obnos div 5; | {Počet pětikorun} |
obnos:=obnos mod 5; | {Zbytek po vyplacení pětikorun} |
jedna:=obnos; | {Počet korun} |
writeln('Desetikorun je ', deset , ' , petikorun je ', pet , ' a korun je ', jedna ); | |
end. |
Podmínka (condition)
je logický výraz, jehož hodnotou je pravda nebo nepravda. Říkáme, že podmínka platí nebo neplatí.
Základní relační operátory jsou <,>,=,<=,>=,<>.
Ve výrazu lze použít proměnné, konstanty i kulaté závorky. Obecně v podmínce může být výraz vlevo i vpravo, navíc se dají sestavovat složené podmínky pomocí logických spojek. Toho si ale užijete až v konkrétním programovacím jazyce.
Sémantika je následující:
Nejprve se vyhodnotí podmínka. Pokud platí, provede se příkaz (nebo více příkazů) uvedený ve větvi označené symbolem +. Pokud podmínka neplatí, provede se příkaz (nebo více příkazů) uvedený ve větvi označené symbolem -. Příkazem uvnitř může být přiřazovací příkaz, vstup nebo výstup dat i další podmíněný příkaz. V posledním případě mluvíme o složeném podmíněném příkazu nebo prostě o podmínce v podmínce. Jedna z větví v rozhodovacím bloku může být prázdná, neobsahuje žádný příkaz. Obvykle se jedná o větev označenou -. Takový podmíněný příkaz nazýváme neúplný. Úplný podmíněný příkaz má v každé větvi alespoň jeden příkaz.
Příklad několika podmínek:
a=0
b>=0
i=10
n<100
s>2*(i+j)
j<>0
Opakování:
- Co je to proměnná?
- Co je to konstanta?
- Vysvětli rozdíl mezi sémantikou a syntaxí.
- Jakým způsobem může proměnná získat hodnotu?
- Co je to přiřazovací příkaz?
- Napiš posloupnost přiřazovacích příkazů pro záměnu hodnot dvou proměnných.
- Napiš posloupnost přiřazovacích příkazů pro záměnu hodnot tří proměnných.
- Napiš posloupnost přiřazovacích příkazů pro záměnu hodnot několika proměnných.
- Co je to příkaz vstupu? Jak se zapisuje v Pascalu?
- Co je to příkaz výstupu? Jak se zapisuje v Pascalu?
- Co je to podmínka? Uveď příklady.
Přidejte odpověď