Čo sú to premenné alebo "Krabičky na číselká a písmenká".

Možnosť ukladať si nejaké hodnoty do pamäte sa ukázala byť výhodná už pri tvorbe prvých kalkulačiek. Kalkulačky, ktoré sa dali programovať, sa často hrdili tým, že "majú až desať pamätí". Ak človek programuje niečo pre počítač, má k dispozícií jeho operačnú pamäť a môže do nej ukladať čo len chce a potrebuje. (Pre porovnanie - do základnej pamäte počítača, ktorá má veľkosť 640 KB sa vmestí 81920 šestnásťciferných čísel. Oproti tým desiatim je to celkom pokrok.)

"Pamäte", do ktorých sa čísla (alebo iné objekty) pri programovaní ukladajú, sa nazývajú premenné. S premennými ste sa už stretli pri programovaní v Comenius Logu.0.2

Na začiatku každej procedúry v jazyku C je treba povedať, aké premenné v nej budete používať a akého sú typu. (Programátori tomu hovoria, že musíte premenné deklarovať.) Premenné totiž môžu byť rôznych typov. Do premennej typu int sa dá uložiť celé číslo (napr. 3, -97 alebo 0). Do premennej typu float sa dá uložiť desatinné číslo (napr. 3.141593 alebo 1.5e15 $ = 1.5\times 10^{15}=1500000000000000$). Do premennej typu char sa dá uložiť jedno písmeno (napr. e alebo U).0.3 Takže ak uvidíte, že nejaký program v C-čku začína

main()
{
    int i,j;
    float f;
    char znak;
...
tak viete, že programátor bude v procedúre main() používať dve premenné, do ktorých bude ukladať celé čísla (premenné i a j), jednu premennú, do ktorej bude ukladať desatinné čísla (premennú f) a jednu premennú, do ktorej bude ukladať znaky (premennú znak).

Konkrétne hodnoty sa do premenných priradzujú s pomocou =. Funguje to tak, že počítač sa pozrie, čo sa mu nachádza vpravo od =, vyráta hodnotu, akú to má a výsledok vloží do premennej, ktorá je vľavo od =. Takže v programe

main()
{
    int i;

    i = 5;
    i = i + 3;
    i = i - 1;
}
sa najprv do premennej i vloží číslo 5, potom sa do nej vloží číslo 8 a nakoniec sa do nej vloží číslo 7. (Viete prečo?)

Zápis uvedeného programu sa dá skrátiť. Keď potrebujeme obsah premennej zvýšiť o 3, môžeme miesto i = i + 3; písať i += 3; Podobne zápis i -= 7; zmenší hodnotu premennej i o 7. V prípade, že celopčíselnú premennú i potrebujeme zväčšiť o 1, môžeme použiť superkrátky zápis i++; Rovnako i--; premennú zmenší o 1. Pokročilejší programátor by teda uvedený program napísal takto:0.4

main()
{
    int i;

    i = 5;
    i += 3;
    i--;
}

Ak chceme vypísať obsah premennej na obrazovku, slúži na to stará známa z minulej lekcie -- funkcia printf. Treba na to ale ísť šikovne. Funkcia printf je totiž stavaná tak, aby vypisovala reťazec a ten ako parameter nutne musí dostať. Do toho reťazca sa jej ale dajú vsunúť špeciálne znaky, ktoré jej povedia, že na určité miesto chcem vypísať hodnotu, ktorá nie je súčasťou toho reťazca. Ak chcem niekde vypísať hodnotu typu int, použijem %d. Ak chcem vypisovať float, použijem %f a ak chcem vypisovať nejaký char, použijem %c. Funguje to nasledovne:

Ak mám premennú i typu int a je v nej uložené číslo 7 a do programu napíšem príkaz

printf("%d trpaslikov a %d snehulienka\n", i, i-6);
program prejde text, ktory ma printf na začiatku. Keď narazí na prvé %d, pozrie dozadu a miesto %d tam vloží hodnotu nasledujúceho parametra (teda 7). Potom vypisuje textík ďalej až kým nenatrafí na druhé %d. Tam sa pozrie, aká je hodnota ďalšieho parametra a vloží ju tam. Program teda vypíše
7 trpaslikov a 1 snehulienka.

Takže úlohy pre vás:



Úloha č.1 Napíšte do súboru ludolf.c, skompilujte a spustite nasledovný program:

#include <stdio.h>

main()
{
    float pi;
    
    pi = 3.1415926535;
    printf("Pi = %f",pi);
}

Úloha č.2 Napíšte program pism.c, v ktorom budete mať premennú pismk typu char. Najprv do nej vložíte písmeno A (príkazom pismk = 'A'; -- tie apostrofy okolo toho A sú dôležité) potom jej obsah zväčšíte o 1 a vypíšete. Čo dostanete? Čo dostanete, ak o 1 zväčšíte premennú v ktorej je uložené písmenko 'Z'? Čo napíšu na obrazovku príkazy

 printf("%c %d\n",65,65);
 printf("%c %d\n",'C','C');

Úloha č.3 Napíšte program, v ktorom budete mať dve premenné typu int (mená im vymyslite vy), naplníte ich nejakými hodnotami a potom vypíšete ich súčet a súčin. (Na násobenie sa používa *.) Je nutné aby program vypisoval súčet a súčin správne pre ľubovoľné hodnoty tých dvoch premenných.

Úloha č.4 Napíšte program, ktorý vypíše nasledovnú tabuľku:

1 x 9 = 9
2 x 9 = 18
3 x 9 = 27
4 x 9 = 36
5 x 9 = 45
6 x 9 = 54
7 x 9 = 63
8 x 9 = 72
9 x 9 = 81
10 x 9 = 90
pričom sa v jeho zdrojovom kóde nachádza znak 9 iba raz a to v riadku, ktorý vyzerá takto:
i = 9;
Anino Belan 2003-10-26