- jak udělat konstantu long int: L long velka = 78L;

Podobné dokumenty
Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Formátové specifikace formátovací řetězce

Standardní vstup a výstup

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Lekce 9 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

10 Práce s řetězci - pokračování

Proměnná a její uložení v paměti

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

11b Další příklady operací vstupu a výstupu (úvod viz 10)

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

Vstup a výstup datové proudy v C

Řešení sady 1. Úvod do programování 1 Tomáš Kühr

Algoritmizace a programování

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky

Základy jazyka C. Základy programování 1 Tomáš Kühr

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do programování. Lekce 1

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

vstup a výstupv jazyce C

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

vstup a výstupy jazyce C

BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky

Znaky. IAJCE Přednáška č. 10. každému znaku je nutné přiřadit nějaké číslo (nezáporné přímé mapování znak <->

Funkce, intuitivní chápání složitosti

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

Základy programování (IZP)

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

BI-PA1 Programování a Algoritmizace 1. Miroslav Baĺık, Ladislav Vagner a Josef Vogel. 10., 12. a 13. října 2017

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí

Operační systémy. Cvičení 4: Programování v C pod Unixem

Programování v jazyce C pro chemiky (C2160) 5. Čtení dat ze souboru

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

VISUAL BASIC. Práce se soubory

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16

Např.: // v hlavičkovém souboru nebo na začátku // programu (pod include): typedef struct { char jmeno[20]; char prijmeni[20]; int rok_nar; } CLOVEK;

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: Ukončí program. Nula znamená, že vše proběhlo bez chyby.

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT;

3 KTE / ZPE Informační technologie

PROGRAMOVÁNÍ V SHELLU

Jazyk C# a platforma.net

Programování v jazyce C pro chemiky (C2160) 9. Práce s PDB soubory

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Př. další použití pointerů

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

Racionální čísla, operátory, výrazy, knihovní funkce

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

KTE / ZPE Informační technologie

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

Racionální čísla, operátory, výrazy, knihovní funkce

Zápis programu v jazyce C#

Práce se soubory. Základy programování 2 Tomáš Kühr

IUJCE 07/08 Přednáška č. 1

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Základy programování (IZP)

Řídící struktury, if, while, switch

KTE / ZPE Informační technologie

Programování v jazyce C

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Operační systémy. Cvičení 3: Programování v C pod Unixem

Textové soubory. alg9 1

Lekce 6 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Základy jazyka C. Úvod do programování 1 Tomáš Kühr

- tzv. standardní vstupní a výstupní proud (input / output stream)

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:

Programovací jazyk C++ Hodina 1

Programovanie v jazyku C - ti to zratam...

Základy algoritmizace a programování

První začátky s C. Struktura programu a základní prvky. Základní termíny (1) Základní termíny (2)

Struktura programu a základní prvky

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

NPRG030 Programování I, 2010/11

Algoritmizace a programování

Rozklad problému na podproblémy, rekurze

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Algoritmizace a programování

Algoritmizace a programování. Terminálový vstup a výstup

NPRG030 Programování I, 2016/17 1 / :58:13

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Úvod do programování. Lekce 5

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro:

ZÁPOČTOVÝ TEST. Zpracoval Vilém Závodný, #include "stdafx.h" #include "stdio.h"

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Základy programování (IZP)

Transkript:

Konstanty (konstatní hodnoty) Např.: - desítkové: 25, 45, 567, 45.678 - osmičkové: 045, 023, 03 vždy začínají 0 - šestnáctkové: 0x12, 0xF2, 0Xcd, 0xff, 0xFF - jak udělat konstantu long int: 245566553L long velka = 78L;

Funkce pro vstup z klávesnice a výstup na obrazovku Práce s jedním znakem int getchar(void); - přečte ze standardního vstupu jeden znak (potvrzený stiskem Enter), který vrátí jako svou návratovou hodnotu - v případě chyby vrátí hodnotu EOF. Použití: int c; c = getchar(); if (c == EOF) { printf( Nastala chyba pri cteni ); return; int putchar(int c); - znak, který je jejím argumentem zapíše na standardní výstup - zapsaná hodnota je současně návratovou hodnotou, nastane-li chyba pak vrací EOF. Použití: int c; c = 'A'; putchar(c); - pozor: typ hodnoty, kterou čteme/zapisujeme je int, nikoliv char

Příklad: Čtení znaků ze standardního vstupu a jejich zápis na standardní výstup (program přečte z klávesnice znak a potom ho hned vypíše) #include <stdio.h> void main() { int c; c = getchar(); putchar(c); #include <stdio.h> void main() { int c; c = getchar(); putchar(c); /* zahodíme všechny další znaky z klávesnice zadané */ while (getchar()!= '\n') ; getchar(); /* 11. Cisteni bufferu klavesnice */ #include <stdio.h> main() {

int c, i = 1; int X = 2, Y = 34; for ( ; ; ) { /* nekonecny cyklus */ printf("%d\n", i++); if (i % 10 == 0) { printf("mam pokracovat? [A / N] : "); c = getchar(); while (getchar()!= '\n') ; if (c == 'n' c == 'N') break; X *= (Y += 1) * 3; // nejaky vypocet Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h> int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte desitkove cislo: "); scanf("%d", &dcislo); printf("\n"); mezivysledek = dcislo; do { vysledek[kolikbcislic] = mezivysledek % 2;

mezivysledek = mezivysledek / 2; kolikbcislic++; while (mezivysledek > 0); kolikbcislic--; printf("cislo %d je v binarni podobe: \n", dcislo); for (i = kolikbcislic; i >= 0; i--) { printf("%1d", vysledek[i]); printf("\n\nhotovo."); while(!kbhit()) ; return 0;

Formátovaný vstup a výstup Pro formátovaný vstup je v stdio.h funkce scanf(); Pro výstup: printf(); Základní použití : int jaktodopadlo; jaktodopadlo = scanf("%d", &i); - tato funkce takto zavolaná přečte z klávesnice celé číslo (%d) a uloží ho do proměnné i. - v jaktodopadlo je počet úspěšně přečtených celých čísel (zde tedy 0 nebo 1) int i = 12; printf("i je %d\n", i); Vypíše na výstup řetězec: I je 12 (a odřádkuje.) Např.: - úryvek z programu přečte z klávesnice 2 čísla a vytiskne je. int i, j; scanf("%d %d", &i, &j); // Načte 2 čísla, může být zapsáno i odděleně printf("%d + %d = %d", i, j, i + j); - pokud zadáme například čísla 4 a 7 bude mít volání funkce printf výstup: 4 + 7 = 11 - tj. posloupnost %d nahradí příslušným číslem a ostatní text mezi zůstane stejný.

Formátové specifikace formátovací řetězce - je to posloupnost podle které překladač pozná jaký formát má výstup mít - posloupnosti začínají znakem % určující formát vstupu/výstupu - pokud chcete zobrazit znak %, musíte použít zdvojení %% Řetězec Data %c Znak (raději použít putchar()) %d nebo %i signed int desítková soustava %ld signed long int %u unsigned int %lu unsigned long int %f float(pro printf double) %Lf long double(l musí být velké!) %lf double (obv. nejde u printf()) %x hexadecimální malými písmeny např. 1a2c %X hexadecimální velkými písmeny např. 1A2C %o celé číslo v osmičkové soustavě %s řetězec (string) Příklady : int i, j; i = 7; j = 4; printf("soucet je %d.", i + j); vypíše : soucet je 11. printf("pracovali na 100 %%."); vypíše : Pracovali na 100 %. (pro výpis znaku % je nutné napsat %%) printf("soucet je %d soucin je %d\n", i + j, i * j); vypíše : soucet je 11 soucin je 28 a odřádkuje printf("\007ha! Ivan!");

vypíše : Ha! Ivan! (a pískne \007 = \a pozor jen na některých systémech) printf("toto je \"BackSlash\" : \\"); vypíše : Toto je "BackSlash" : \ Přípomínka (z MATLABu) cesta k souboru: "C:\\windows\\supervirus\\od_vildy_bránaře\\baf.exe" Pozor při tisknu jedné proměnné vícekrát, musím samozřejmě v printfu tuto proměnnou zapsat tolikrát, kolikrát ji tisknu: int c = 'A'; printf("znak %c má hodnotu %d (%Xh)", c, c, c); vypíše : Znak A má hodnotu 65 (41h) printf("znak %c má hodnotu %d (%Xh)", '*', '*', '*'); vypíše : Znak * má hodnotu 42 (2Ah) Formátovní počtu míst ve výpisu a počtu desetinných míst printf("je přesně %2d:%02d hodin.", hodiny, minuty); vypíše : Je přesně 1:05 hodin. - 2 v řídící posloupnosti znamená, že číslo bude tištěno minimálně na 2 znaky, zleva se doplňují mezery), pokud uvedu %02 budou se zleva doplňovat nuly. printf("toto je reálné číslo : %4.2f ", 2.8356); vypíše : Toto je reálné číslo : 2.83 %4.2f znamená, že reálné číslo bude tištěno na alespoň 4 znaky, z nich 2 budou za desetinnou tečkou (desetinná místa) a + jedna desetinná tečka (taky se počítá) Pro řetězec (string): printf("toto je %s", "Nějaký textový řetězec"); vypíše : Toto je Nějaký textový řetězec - hlavně pro případy, kdy je textový řetězec v proměnné: Musím mít #include <string.h> na začátku, kvůli strcpy(a,b)...

char jmeno[20]; strcpy(jmeno, "Petr Kropik"); // naplním řetězec jmeno... nějaký program... printf("jmenuji se %s", jmeno); Vypíše: Jmenuji se Petr Kropik Pozor výjimka u scanf: char jmeno[20]; scanf("%s", jmeno); // naplním řetězec jmeno,zde není znak &... nějaký program... printf("jmenuji se %s", jmeno); Časté chyby : int i, j; printf("%d", i, j); // mnoho argumentů printf("%d %d", i); // málo argumentů scanf("%d", i); // chybí operátor &, tedy má být &i; (pokračování na další straně)

Konstanty - dokončení Např.: int x, y, z; x = 25; y = 023; z = 0xF2; long int velka; velka = 2455665537L; printf("\nvelka: %ld\n", velka); Vytiskne: Velka: -1839301759 Reálné konstanty Např.: 0.345 0.25.25 3.146767 5e6 znamená 5. 10 6 8.566E23 znamená 8,566. 10 23 Pozor!!!!! 0.0 tohle nula typu double 0 tohle je nula typu int - stejně tak 3.0, 4.0, 8.0 jsou double - stejně tak 3, 4, 8 jsou int - implicitně jsou reálné konstanty typu double, tj. napíšu-li 2.345, chápe to C jako double Pokud potřebuji konst. typu float: 1.3e3f nebo 1.3e3F

Pokud potřebuji konst. typu long double (pozor nechodí pod Windows): 13.56e35L Znakové konstanty - uzavřeny do apostrofů 'a' '*' 'M' - hodnota odvozena z tabulky ASCII (ordinální čísla) - POZOR znakové konstanty v C jsou typu int - pro zápis "neviditelných", netisknutelných znaků (nový řádek, backspace, tabelátor atp.) použijeme kód zapsaný do uvozovek tímto způbem: '\kod' kde kod je oktalová nebo šestnáctková číslice Např.: '\012' '\007' '\x0a' '\XD' '\x1f' (pozn. kódům uvozeným znakem \ se někdy říká escape sekvence) '\n' nový řádek ('\x0a') '\r' návrat na začátek téhož řádku ('\x0d') '\f' odstránkovat chová se dle OS ('\x0c') '\t' tabelátor ('\x09') '\b' backspace ('\x08') '\a' pípnutí chová se dle OS ('\x07') '\\' znak \ ('\x5c') důležité v řetězcích, hlavně tam, kde je v řetězci uložena cesta na disku (např. "C:\\Windows\\system32\\supervir.exe")

'\'' znak ' ('\x2c') '\0' nulový znak ('\x00') používá se jako znak na konci řetězce tj. ukončuje řetězce (tzv. nulový byte) '"' uvozovky jako jeden znak v řetězci, ale musím napsat \" Řetězcové konstanty - uvedeny mezi uvozovkami, např. "Jak se máte?"