Zobrazují se příspěvky se štítkemif. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemif. Zobrazit všechny příspěvky

pondělí 14. prosince 2009

Vysvědčení: procedury, podmínka...

tento program testuje, zda 4 dosažené známky odpovídají vyznamenání nebo znamenají, že student prospěl
rozšiřte tento program tak, aby testoval, zda student nepropadl
všimněte si vcelku elegantního využití pomocné proměnné zde označené jako NE:

na vyznamenání musíte současně splnit tyto podmínky: průměr do 1,5 včetně a zároveň žádná trojka či horší
do proměnné NE se ukládá každé porušení předchozích podmínek, pro udělení vyznamenání musí být NE rovno nule, tak jak bylo nastaveno na začátku


úterý 20. října 2009

Nejjednodušší základní program

program nasobilka;
uses crt;
var a, b, i: integer;

begin
     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
         writeln (i,  ' x  ',a , ' =',i * a);


     writeln ('stiskni cokoli a program skonci');




     repeat until keypressed;
     {motej se dokola, po zmacknuti cehokoli skonci}
 end.

pondělí 19. října 2009

Program NejvetsiSpolDelitel radostněji

program NejvDelitel;
uses crt; {nutné proto, aby fungoval příkaz "repeat until keypressed"}
var A, B, C, D : Integer;
begin
   Writeln ( 'Nejvetsi spolecny delitel ' );
   Writeln ( 'Zadejte dve cisla ' );
   Readln ( A, B );
   clrscr;
   C:=A;
   D:=B;
   while A <> B do
      if A > B then A := A - B
   else B := B - A;
   Writeln ( 'Nejvetsi spolecny delitel cisel ', C, ' a ', D, ' je ', A );
   Writeln ( '***stiskni cokoli a program skonci***');
   repeat until keypressed;
end.

úterý 13. října 2009

Proměnné a jejich deklarace

proměnná = místo na uložení dat

deklarace proměnných: klíčové slovo var :

příklad:
var Radek, Sloupec : Integer;

Prumer : Real;

Integer jsou celá čísla, Real jsou reálná čísla

poznámka:
velká a malá písmenka jsou Pascalovi lhostejná, zde je uvádím pro přehlednost, piš si to jak chceš!
Čerstvě delkarovaná hodnota má počítačem náhodně vygenerovanou hodnotu, nejdřív do ní musíme vložit počáteční hodnotu!!!! Udělá to:
3.1 Přiřazovací příkaz
:=

příklad:
Radek := 4;

Sloupec := Radek + 1;

Radek := Radek + 1; -------> ve výrazu se může vyskytnout cílová proměnná!!!!


program NejvDelitel;
var A, B : Integer;
begin
Write ( 'Největší společný dělitel ' );
Write ( 'Zadejte dvě čísla ' );
Read ( A, B );
while A <> B do
if A > B then A := A - B
else B := B - A;
Write ( 'Největší společný dělitel je ', A );
end.

co by se mohlo hodit?
Borland editor pod DOSem:
CTRL + INSERT - kopíruj blok (copy)
SHIFT + INSERT - vlož blok (paste)
CTRL + KH - zruš označení bloku
ALT 60 je < ALT 62 je >
cvičení:
Jak to dopadne, zadáš-li zápornou hodnotu proměnných A a B? Napiš sledovací tabulku pro použité proměnné!
Vytvoř test, zda-li je opravdu zadáváno kladné číslo a program takto uprav!


řešení:
Největší dělitel - verze obrněná proti idiotským vstupům
pro úspěšné řešení neumíš jedinou věc - ABS(A) je absolutní hodnota čísla A!

program NejvDelitel;
var A, B : Integer;
begin
Write ( 'Největší společný dělitel ' );
Write ( 'Zadejte dvě čísla ' );
Read ( A, B );
if A * B = 0 then
Writeln ( 'Nula nemá dělitele' )
else
begin
A := Abs(A);
B := Abs(B);
while A <> B do
if A > B then A := A - B
else B := B - A;
Write ( 'Největší společný dělitel je ', A );
end;
end.

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á!"

První program

všimni si:
na konci (skoro) každého řádku je středník
na konci posledního řádku je tečka
begin je levá závorka
end je pravá závorka


program VetsiCislo ( Input, Output );
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 );
end.

Neštěstí tohoto programu je, že proběhne a bez varování bleskově skončí.
Lze pořešit vložením příkazu
Read (A);
před závěrečný příkaz
end.
To však není příliš elegantní...