4.0 Váš první program
Spusťte si C++ (předpokládám, že máte verzi 5.0 nebo 6.0)
Z menu File vyberte New, Zobrazí se okno,
z něj vyberte záložku Projects, Console Application
do pole Name napište název projektu (bez mezer)
a dejte OK. Pokud máte 6.0, zobrazí se ještě tabulka,
kde zvolíte "an empty project" a dáte "Finish"
V okně nalevo zhruba uprostřed vyberte záložku Files,
klepněte pravým myšítkem na název projektu, vyberte
"Add Files To Project ...", napište jméno nového souboru
(main.c) a dejte OK. Program se zeptá, zda jej chcete
vytvořit a soubor je v projektu. Stečí poklepat a můžete
psát. Potom by obrazovka měla vypadat nějak takhle
(teď je tam nějakej program na rozsvícení ledek v paralelním
portu - to vás nemusí moc zajímat. Program je napsanej
v souboru ledky.c - jak je vidět v záložce files) :
Program zkompilujete tlačítkem ..
.. a spustíte tlačítkem ..
Každý takto vytvořený program musí mít funkci main() jak tato
funkce skončí, skončí i program. Deklaruje se takto :
int main()
{
// Sem dejte svůj program ...
return 1;
}
|
V souboru stdio jsou funkce pro standardní vstup, výstup
pro používání těchto funkcí vložíte na začátek programu
příkaz : #include <stdio.h> (Není středník !)
4.2 Vstup a výstup znaku
Pro vstup znaku ve stdio.h slouží funkce
int getchar();
proč int a ne char bude vysvětleno dále.
Pro výstup slouží funkce
void putchar(int znak);
void znamená, že funkce nic nevrací - je to procedura !
(c-čko totiž nezná procedury ale jen funkce, takže je tu void)
Příklad :
#include <stdio.h>
int main()
{
int c;
c = getchar(); // () musí být, i když není parametr
putchar(c);
putchar('\n');
}
|
Tenhle program přečte z klávesnice znak a potom ho hned vypíše.
4.3 Formátovaný vstup a výstup
Pro formátovaný vstup je ve stdio.h funkce
scanf()
Pro výstup je zde funkce
printf()
Základní použití :
scanf("%d", &i);
// přečte z klávesnice celé číslo (%d) a uloží ho do i
printf("I je %d \n", i);
// Vypíše např. : I je 12 a odřádkuje
|
Příklad :
Program přečte z klávesnice 2 čísla a vytiskne je
#include <stdio.h>
int main()
{
int i, j;
scanf("%d%d", &i, &j); // Načte 2 čísla, může být i odděleně
printf("%d + %d = %d", i, j, i + j);
return 1;
}
|
např.: pro vstup: 4 7 bude výstup: 4 + 7 = 11
(prostě za to %d se nahradí čísla a text mezi tím zůstane stejnej)
4.4 Řídící řetězec formátu
To je to %d, podle čeho kompilátor pozná že hodnota má být zobrazená
jako char a ne jako int, nebo tak. Řídící řetězec obsahuje :
formátové specifikace
- začínají znakem % (pokud chcete zobrazit znak %, musíte dát %%)
- určují formát vstupu/výstupu
Řetězec | Data |
%c | Znak - spíš putchar() |
%d | Signed Int |
%ld | Signed Long |
%u | Unsigned Int |
%lu | Unsigned Long |
%f | float |
%Lf | long double (musí být velké !) |
%lf | double (někdy nejde u printf()) |
%x | Hexadecimální malými pís. (1a2c) |
%X | Hexadecimální velkými pís. (1A2C) |
%o | Osmičkové číslo |
%s | Řetězec |
znakové posloupnosti
- nezačínají znakem %
- vypíší se, jak jsou napsány (v minulým příkladě to bylo "+" a "=")
- může být čeština
- pouze pro printf()
Příklady :
1) printf("soucet je %d.", i + j);
vypíše : soucet je 11.
2) printf("Pracovali na 100 %%.");
vypíše : Pracovali na 100 % (pro výpis znaku % je nutné 2 ×)
3) printf("soucet je %d\tsoucin je %d\n", i + j, i * j);
vypíše : soucet je 11 soucin je 28 (a odřádkuje)
4) printf("\007Ha ! Ivan !");
vypíše : Ha ! Ivan ! (a pískne \007 = \a)
5) printf("Toto je \"BackSlash\" : \\");
vypíše : Toto je "BackSlash" : \
6) printf("Toto je \'BackSlash\' : \\");
vypíše : Toto je 'BackSlash' : \
7) printf("Znak %c má hodnotu %d (%X)", c, c, c);
vypíše : Znak A má hodnotu 65 (41H)
8) printf("Znak %c má hodnotu %d (%X)", '*', '*', '*');
vypíše : Znak * má hodnotu 42 (2AH)
9) printf("Je přěsně %2d:%2d hodin.", hodiny, minuty);
vypíše : Je přesně 1:12 hodin.
nebo taky : Je přesně 10: 3 hodin.
2 znamená, že číslo bude ťištěno na 2 znaky
10) printf("Toto je reálné číslo : \'%6.1f\' ", 2.8356);
vypíše : Toto je reálné číslo : ' 2.8'
6.1 znamená, že reál. číslo bude ťištěno na 6 znaků,
z nich 1 bude za desetinnou tečkou + desetinná tečka se taky počítá
11) printf("Toto je \' %s \' ", "STRING");
vypíše : Toto je ' STRING '
Všechny příklady si můžete vyskoušet tak, že si připravíte projekt
a už jen doplníte kód ...
Časté chyby :
printf("%d", i, j); mnoho argumentů
printf("%d %d", i); málo argumentů
scanf("%d", i); chybí &, tedy ... , &i);
Cvičení :
1) Napište program, který vytiskne :
James Bond "Agent 007" \ # 150 % záruka # /
spol. s.r.o.
2) Napište program, který přečte znak a vytiskne znak s hodnotou o 1 vyšší :
vstup : A
výstup : B (ASCII 66)
3) Napište program, který přečte celé číslo a vytiskne jako hexadecimální :
vstup : 127
výstup : 7FH
4) Napište program, který připočítává 25% daň :
vstup : Zadej cenu bez daně : 100
výstup : Cena s daní : 125
5) Napište program, který vypočítá obsah obdélníka :
vstup : Zadej delku a sirku : 5 4
výstup : Obsah obdelnika o delce 5 a sirce 4 je 20
6) Napište program, který načte reál. číslo a vypíše jeho celou část :
vstup : Zadej reál. číslo : 3.1415928
výstup : Celá část : 3
7) Napište program, který přečte 3 malá písmena a tiskne je jako 3 velká :
vstup : Zadej 3 mala pismena : a b c
výstup : ABC
8) Napište program, který přečte 3 velká písmena a tiskne 3 malá obráceně :
vstup : Zadej 3 velka pismena : ABC
výstup : cba
9) Napište program, který vyzkouší následující výrazy, jsou-li definice
int a = 2, b = 2, c = 1, d = 0, e = 4; (vypíše hodnotu) Tím si ozkoušíte
jek funguje ++ operátor :
výrazy :
a) a++ / ++c * --e
b) --b * c++ - a
c) -b - --c
d) ++a - --e
e) e / --a * b++ / c++
f) a %= b = d = 1 + e / 2
výstup :
Pro výraz XXX a=x b=x c=x d=x e=x, po výrazu a=x b=x c=x d=x e=x
10) Napište program, který pískne
Mnno, snad to není tak složitý a pokud to nechápete, pište, pište ...