cool web a perfektni rs- Doporucuji

Tuesday, October 02, 2007

Symbolické konstanty

Predtim, nez opustime nas program pro konverzi teplot, ucin- me jeste zaverecnou poznamku. Je spatne "pohrbivat magicka cis- la" jako jsou cisla 300 a 20 v programu, protoze neposkytuji tem, kteri budou program cist nebo upravovat, systematickou in- formaci. Nastesti existuje v jazyku C zpusob, jak se temto "magickym cislum" v programu vyhnout. Na zacatku programu je totiz mozne popisem # d e f i n e definovat retezce znaku jako symbolicka jmena nebo symbolicke konstanty. Potom prekladac nahradi tato jmena odpovidajicimi retezci znaku vsude tam, kde se objevi. Nahradou muze byt skutecne libovol- ny text, nejen cisla.
#define LOWER 0 /*dolni mez tabulky*/
#define UPPER 300 /*horni mez*/
#define STEP 20 /*hodnota kroku*/
main () /*tabulka prevodu Fahrenheit - Celsius/
{
int fahr
for (fahr=LOWER; fahr <= UPPER; fahr=fahr + STEP)
printf("%4d %6.1f\n", fahr, (5.0/9.0) * (fahr-32));
}

Polozky LOWER,UPPER,STEP jsou konstanty a proto se neobjevuji
v deklaracich. Symbolicka jmena je vhodne psat velkymi pisme- ny, aby je bylo mozno jednoduse odlisit od nazvu promennych, ktera jsou psana pismeny malymi. Uvedomme si, ze na konci popisu #define neni strednik, protoze vse, co se objevi za symbolickym jmenem je za nej v programu dosazovano.
1.5 Výběr užitečných programů

Uvazujeme nyni o skupine programu, ktere budou vykonavat jednoduche operace se znaky. Zjistime potom, ze mnohe z pro- gramu jsou jen rozsirenim techto zakladnich programu.
Vstup a vystup znaku
Standardni knihovna obsahuje funkce pro cteni a vypsani znaku. Funkce g e t c h a r nacita vzdy dalsi znak pokazde, kdyz je vyvolana a jako hodnotu vraci tento znak. Takze po prikazu
c = getchar()
obsahuje promenna c dalsi znak ze vstupu. Znaky jsou obvykle zadavany z klavesnice, ale to nas az do 7. kapitoly nemusi zajimat.Ő.po 12