Skočiť na obsah


Programovanie v jazyku C a C#

Návody pre začiatočníkov a pokročilých



Fórum: Škôlka jazyka C
- - - - -
Fotografia

3. lekcia C (Formátovaný vstup) škôlka


Fomátovaný vstup

Dobre vieš, že počítač je hlavne na komunikáciu s užívateľom, čiže pýta rôzne vstupy a na ich základe niečo vykonáva.

Na vstup z klávesnice sa používa príkaz scanf().
scanf("%d", &i);
Kde '%d' označuje že argument je formátová špecifikácia a '&i' je miesto v pamäti, kde sa deklarovaná premenná uloží aj so zadanou hodnotou.


Obrázok

Pozor!!! Vo funkcii scanf sa do úvodného reťazca okrem riadiacich znakov (ako
napr. %f, %c, %d) nič nepíše. Ak by si tam niečo napísal, počítač to zmätie, takže do
premenných sa nemusí nič nenačítať.
Teda neskúšaj tam dať nejakú escape sekvenciu.
scanf("%d\n", i); NEBUDE PRACOVAŤ SPRÁVNE!

Obrázok

Veľký pozor si dávaj na častú chybu.
scanf("%d", i);
CHÝBA ZNAK & !!!!!!!!
Pritom kompilácia nehlási chybu!!!


Obrázok

Keď vynecháš & pri viacerých argumentoch, kompilácia nehlási chyby, ale vynadá ti systém windows!

Obrázok

Tak isto ako pri príkaze printf() so znakom % môže byť uvedený celý rad formátových špecifikácií:
c - znak (pozn. Jeden znak je lepšie čítať zn = getchar(); ako scanf(„%c“, &zn) ;)
d - desiatkové číslo typu signed int
ld - desiatkové číslo typu signed long
u - desiatkové číslo typu unsigned int
lu - desiatkové číslo typu unsigned long
f - float (pre printf() tiež double)
Lf - long double (Pozor, L musí byť veľké)
lf - double (Pozor, niekedy sa nedá použiť pre printf())
x - hexadecimálne číslo malými písmenami napr.: 1a2c
X - hexadecimálne číslo veľkými písmenami napr.: 1A2C
o - osmičkové číslo
Pozor, reťazce tu nie su! Tie sa zadávajú iným spôsobom, ale o tom neskôr.


Podobne ako v príkaze printf() počet argumentov vstupu môže byť viac než 2, to znamená že sa dá načítať viac než jedna premenná..
Je tam ale ale zvláštnosť pri zadávaní.
Ak zadávaš viac čísiel za sebou, treba ich oddeliť medzerou alebo <Enter> -om!

Obrázok

Keď sa zadávajú znaky, nesmie sa medzi nemi dávať medzera alebo <Enter>, pretože medzera aj <Enter> je znak!!!

Obrázok

Kombinácia cisiel a znakov, treba dodržiavať hore uvedené pravidlá:

Obrázok

Ešte sa vrátim na začiatok.
Na vstup z klávesnice sa používa príkaz scanf().
scanf("%d", &i);
Kde '%d' označuje že argument je formátová špecifikácie, '&i' miesto v pamäti, kam sa hodnota deklarovanej premennej po zadaní uloží.
A miesto v pamäti, kde je premenná uložená si môžeme vypísať:

Obrázok

Na výpis adresy sa používa argument %x alebo %X hexadecimálne buď malým alebo veľkým písmom.
Je dobrým zvykom pridávať za adresu písmeno h alebo H (oznamuje, že je to hexadecimálne číslo), podľa toho, či je použité %x alebo %X.

Aby bol výstup taký, ako vstup, ktorý sa používa pri programovaní, treba použiť:
%#x alebo %#X.

Úlohy.

Úloha č.1: Napíšte program, ktorý načíta dve strany obdĺžnika a vypíše jeho obsah.
Spoiler

2. Napíš program, ktorý načíta znak a vypíše jeho ASCII kód.
Spoiler

Úloha č.3: Napíšte program, ktorý načíta číslo, vypíše číslo o jedna väčšie a komentár
Haha, vyhral som !!!
Spoiler

Úloha č.4: Napíšte program, v ktorom deklarujete tri premenné typu int a vypíšete adresy
v pamäti, na ktorých sa tie premenné nachádzajú. Koľko bajtov zaberá jedna premenná
typu int? (pomôcka - veľkosť bytov premennej sa zisťuje príkazom: sizeof(premenná)
Spoiler

5. Napíš program, ktorý prečíta celé dekadické číslo (rozsah 0 – 255) a vypíše jeho hexadecimálnu hodnotu.
Spoiler

6. Napíš program, ktorý prečíta reálne číslo a vypíše jeho celú časť. Skús využiť viac spôsobov získania celej časti.
Spoiler

7. Napíš program, ktorý prečíta 3 veľké písmená a vypíše ako 3 malé písmená.
Použi iba jeden príkaz scanf().
Spoiler

8. Napíš program, ktorý prečíta 3 malé písmená a vypíše ich ako 3 veľké písmená v opačnom poradí.
Použi iba jeden príkaz scanf().
Spoiler

9. Napíš program, ktorý prečíta 3 reálne čísla a vypíše ich aritmetický priemer na 2 desatinné miesta.
Použi iba jeden príkaz scanf().
Spoiler
  • 0

Popis: Formátovaný vstup

- formátové špecifikácie
- výpis miesta uloženia premennej v pamäti PC
- úlohy k lekcii
Poznámky: Ak chceš, aby ti niekto úlohy skontroloval, zabal ich do zip-u a zašli na e-mail:
libcosenior zavináč gmail botka com

Poprípade tam môžeš konzultovať, čo ti nie je jasné.
Odkazy:


0 Komentárov


Najlepšie lekcie


Najnovšie pridané lekcie


Najnovšie komentáre


Najviac komentované lekcie


Najviac zobrazené lekcie


Náhodné lekcie


Na tejto stránke bolo užívateľ(ov) za posledných 30 minút

členov, návštevníkov