Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.

Podobné prezentace


Prezentace na téma: "Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY."— Transkript prezentace:

1 Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY

2 Obsah Číselné konstanty Znakové konstanty Řetězcové konstanty Symbolické konstanty Čtení po jednom znaku getchar() Formátovaný výstup pomocí printf Vývojové diagramy Cyklus while Cyklus for Cyklus do-while

3 Číselné konstanty Můžeme specifikovat číselnou soustavu. Standard C nepodporuje konstanty v binární soustavě. Můžeme specifikovat i sufix l nebo L, u nebo U a ll nebo LL pro klasifikátory long, unsigned, long long. U čísla s desetinnou čárkou můžeme specifikovat i exponent double d = 1.2e3; int d = 42; int o = 052; int x = 0x2a; int X = 0X2A; unsigned long long ll = 12345678901234567890ull; Desítková soustava Osmičková (oktalová) Šestnáctková (hexadecimální) Celočíslná konstanta bez znamenáka typu long long

4 Znakové konstanty Znaková konstanta je celé číslo zapsané jako jeden znak uzavřený mezi apostrofy. Hodnota znakové konstanty je číselnou hodnotou znaku ve znakové sadě počítače. Například hodnota char znak = 'a'; bude mít ve znakové sadě ASCII hodnotu 48. Řídící posloupnosti: '\a'// upozornění (alarm) '\\'// zpětné lomítko '\b'// krok zpět (backspace) '\?'// otazník '\f'// přechod na novou stránku '\''// apostrof '\n'// přechod na nový řádek '\"'// uvozovky '\r'// návrat vozíku (návrat a začátek řádku) '\t'// horizontální tabulátor '\t'// vertiální tabulátor '\0oo'// číslo v osmičkové soustavě '\xhh' // číslo v šestnáctkové soustavě

5 Řetězcové konstanty Řetězcová konstanta je posloupnost znaků uzavřených do uvozovek, může být i prázdná. Pole znaků na jehož konci je uložený znak '\0' Detaily, včetně kódování probereme v souvislosti s polem a ukazateli. #include int main() { printf("ahoj \"text v uvozovkach\" \t \x30"); printf(""); return 0; }

6 Symbolické konstanty Pomocí příkazu #define preprocesoru, který zpracovává zdrojový kód ještě před překladem, můžeme nadefinovat identifikátor, například PI jehož výskyt v kódu bude nahrazen daným řetězcem, například 3.14. #include #define PI 3.14 int main() { double r = 4.0; double obsah = 2 * PI * r * r; return 0; }

7 Funkce getchar() Funkce getchar()) načítá z konzole znak po znaku. Následující příklad zopakuje to co píšeme na konzoli. Operátor přiřazení z = getchar()) vrací hodnotu přiřazení a proto můžeme tento výraz použít v dalším výrazu. #include int main() { int z = 0; while ((z = getchar()) != EOF) { putchar(z); } return 0; } Co se stane pokud odstraním tyto závorky? Bude kód stálé funkční?

8 Ukázka funkce getchar() Live coding

9 Funkce printf Funkce printf převádí hodnoty na řetězec. K tomu využívá formátovací značky začínajícími % a končícím znakem konverze. Více například na adrese http://en.cppreference.com/w/c/io/fprintf http://en.cppreference.com/w/c/io/fprintf Za znakem % a znakem konverze může být například: ◦Znaménko '-' pro zarovnání vlevo ◦Číslo určující minimální šířku výstupu (zbytek bude vyplněný znakem mezery), u čísla s desetinnou tečkou včetně desetinné tečky a číslic za desetinnou tečkou. ◦Tečka oddělující šířku od přesnosti a přesnost určující maximální počet znaků které mají být vypsány po desetinné čárce Některé znaky konverze: ◦ d – celé číslo ( int ) ◦ f - číslo s desetinnou čárkou ( double ale i float ) Pozor, znaky konverze můžou být jiné (například lf pro double ) než u funkce scanf.

10 Funkce printf #include int main() { int x = 5; double y = 18.5236; printf("x = %d y = %f\n", x, y); printf("x = %-10d y = %10.2f\n", x, y); return 0; } Celé číslo zarovnané doleva široké nejméně 10 znaků Číslo s desetinnou čárkou zarovnané doprava široké nejméně 10 znaků a zobrazí se pouze dvě desetinná místa.

11 Ukázka funkce printf Live coding

12 Vývojové diagramy Je znak EOF? ne ano Načti znak Vypiš znak začátek konec Vstup nebo výstup (kosoúhelník nebo i obdelník) Rozhodovací blok, výstupem musí být pravda nebo nepravda Čáry se šipkami určují tok (flow) programu

13 Vývojové diagramy Blok zpracování ano ne Je i < 10? Vypiš i začátek konec Přiřaď i hodnotu 0 Zvyš i o 1 ne

14 Cyklus while Cyklus while umožní zopakovat provedení příkazu (nebo složeného příkazu) vícekrát, konkrétně dokud je výraz v kulatých závorkách pravdivý. Podmínka se konroluje hned při prvním cyklu a příkaz se nemusí provést ani jedno. #include int main() { int i = 0; while (i < 10) { printf("%d ", i); ++i; } return 0; } Podmínka, pokud je pravda, tak se příkaz zopakuje Nepíše se středník

15 Cyklus for Cyklus for je nejběžněji používaný cyklus, především když víme, kolikrát chceme příkaz zopakovat. #include int main() { for (int i = 0; i < 10; i++) { printf("%d ", i); } return 0; } Inicializace Podmínka se vyhodnotí před každým opakováním těla cyklu Výraz, v tomto případě inkrementace se provede vždy po provedení těla cyklu

16 Cyklus do-while Cyklus do-while používáme, pokud chceme aby se příkaz provedl alespoň jednou. #include int main() { int i = 0; do { printf("%d ", i); ++i; } while (i < 10); return 0; } Podmínka se vyhodnotí vždy až po provedení těla cyklu

17 Ukončení nebo přeskočení cyklu Cyklus jde ukončit pomocí příkazu break a nebo přeskočit pomocí continue. Samostatně otestujte, co se stane, pokud místo break napíšete continue. #include int main() { int i = 0; while (i < 10) { int znak = getchar(); if (znak == 'q') { break; } if (znak != '\n') { ++i; printf("%d\n", i); } return 0; }

18 Ukázka cyklů Live coding

19 Děkuji za pozornost Otázky?


Stáhnout ppt "Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY."

Podobné prezentace


Reklamy Google