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í

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

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

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

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

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

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

Výrazy, operace, příkazy

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

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

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

Programovací jazyk C++ Hodina 1

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

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

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

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

7: #include <stdio.h> //standardni knihovna

Úvod do programovacích jazyků (Java)

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

Výrazy, operace, příkazy

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

8 Třídy, objekty, metody, předávání argumentů metod

Algoritmizace a programování

Opakování programování

Zápis programu v jazyce C#

Data, výrazy, příkazy

Algoritmizace a programování

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

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Algoritmizace a programování

Programování v C++ 1, 1. cvičení

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

Reprezentace dat v informačních systémech. Jaroslav Šmarda

2 Datové typy v jazyce C

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

Pole stručný úvod do začátku, podrobně později - zatím statická pole (ne dynamicky) - číslují se od 0

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;

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

Algoritmizace a programování

Datové typy pro reálná čísla

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje

7. Datové typy v Javě

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

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

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

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

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

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

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

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

Základy programování (IZP)

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

Základy programování (IZP)

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

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.

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

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

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

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

Jazyk C++, některá rozšíření oproti C

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

Algoritmy a datové struktury

ADT/ADS = abstraktní datové typy / struktury

Datové typy pro reálná čísla

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

Základy algoritmizace a programování

DTP Základy programování Úvod do předmětu

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Programování v Javě I. Únor 2009

Základy C++ I. Jan Hnilica Počítačové modelování 18

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

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.

Algoritmizace a programování

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

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

3 KTE / ZPE Informační technologie

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

V dalších letech se pak začaly objevovat první normy pro jazyk C++ (ISO/IEC 14882:1998; ISO/IEC 9899:1999; ISO/IEC 14882:2003; ISO/IEC 14882:2011).

Základy programování (IZP)

Programování v Javě I. Leden 2008

Prezentace a vysvětlení programového prostředí NXC

IUJCE Přednáška č. 1. programování v C na vyšší úrovni základy objektově orientovaného programovaní v (C++, C#)

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

Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr

Proměnné a datové typy

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

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Algoritmizace. Cíle předmětu

Struktura programu, proměnné, konstanty, výrazy v jazycích C a C#

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

Funkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

Algoritmizace a programování

Algoritmizace a programování

Základy algoritmizace a programování

5 Přehled operátorů, příkazy, přetypování

Základy programování (IZP)

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

Transkript:

02 Jazyk C - je imperativní říkáme, co se má udělat, voláme příkazy - další imperativní jazyky: Pascal, Java, C/C++ apod. - na rozdíl od jazyků deklarativních např. Prolog, Haskell, Scheme, Lisp (funkcionální jazyk, zvláštní případ deklarativních jazyků) - jazyky často oba přístupy míchají, tj. i imperativní jazyky, mají některé vlastnosti deklarativních a naopak Různé programovací jazyky: http://www.linuxexpres.cz/praxe/programovaci-jazyky 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í Znaky char (uložen na 8 bitech = 1 byte (bajt)) Celá čísla short int (není určeno, ale musí být <= int) int (musí být <= long int a zároveň >= short int) long int (musí být >= int) - místo short int lze psát jen short

- místo long int lze psát jen long - signed znaménková celá čísla - unsigned neznaménková = pouze kladná celá čísla - výchozí stav je proměnná znaménková pokud neuvedu nic Např.: int k; // jde o znaménkový int signed int j; // jde též o znaménkový int unsigned int k; // jde o NEznaménkový int

Reálná čísla float na 32 bitech (IEEE 754 formát) double na 64 bitech (IEEE 754 formát) long double na 80 bitech, pozor: funguje chybně výstup na - následek chybné impl. ve Windows Jak za běhu zjistit kolik proměnná zabírá v paměti? Pomocí funkce: kolikbytu = sizeof(proměnná) nebo kolikbytu = sizeof(název_datového_typu) Např: vel = sizeof(k); // do vel se uloží počet bytů prom. k vel = sizeof(long int); // velikost typu long int v bytech Př.: /* Velikosti zakladnich typu pomoci sizeof */ #include <stdio.h> #include <stdlib.h> int main(void) printf("\n\rvelikosti zakladnich typu v Bytech \n\r"); printf("================================== \n"); printf("char %2d \n", sizeof(char)); printf("short %2d \n", sizeof(short)); printf("int %2d \n", sizeof(int)); printf("long %2d \n", sizeof(long)); printf("float %2d \n", sizeof(float)); printf("double %2d \n", sizeof(double)); printf("long double %2d \n", sizeof(long double)); printf("file %2d \n", sizeof(file));

while (!(kbhit())) ; return 0; Výsledek (překladač MinGW pod 32 bit WinXP): Výsledek na serveru eryx (32 bit *NIX systém) Výsledek na serveru edison (Linux Ubuntu 64bit, 2x procesor Xeon(4ř jádro)

Pozn. typ FILE je definován v hlavičkovém souboru stdio.h takto: typedef struct _iobuf char* _ptr; int _cnt; char* _base; int _flag; int _file; int _charbuf; int _bufsiz; char* _tmpfname; FILE; Jak souvisí datové typy se zobrazením čísel v paměti počítače viz další strana...

Zobrazení v paměti počítače - ve dvojkové soustavě Např.: negace v C dva druhy! negace logické hodnoty (kladná čísla = true, pravda)!3 výsledkem bude 0 (tj. nepravda)!1 výsledkem bude 0 (tj. nepravda) if!(a < 5) - jestliže a není menší než 5 ~ negace bit po bitu pracuje s čísly na binární úrovni (dvojkový doplněk) ~3 D = 252 D (předpokládáme unsigned char) ~00000011 B = 11111100 B ~1 D = 254 D (předpokládáme unsigned char) ~00000001 B = 11111110 B

Jazyk C - pokračování - slabá typová kontrola C je poměrně benevolentní při konverzích různých datových typů - zvyk štábní kultura pro přehlednost - názvy funkcí a proměnných malá písmena na začátku (prom_jmeno, promjmeno) - konstanty velkými písmeny (M_PI, MAX, MOJE_KONST) - vlastní datové typy velkými písmeny (VECTOR, POLE10, CLOVEK) - povinné: - název proměnné nesmí začínat číslicí, obsahovat mezeru atp. - délka názvu proměnné maximální počet znaků se může lišit dle překladače (6 je stoprocentně bezpečné, ale většinou lze více) - blok začíná a končí Blok - např. tělo funkce - tělo cyklu, podmínky - samostatný blok ("jen tak") - na začátku bloku, lze deklarovat proměnné Např.: for (int i = 0; i < 10; i++) // deklaruji i příkazy; // a hned použiji příkazy; - tady už i neexistuje - proměnná i bude existovat jen uvnitř bloku = těla cyklu int i; příkazy;

- proměnné lze při deklaraci hned inicializovat nastavit hodnotu - pozor: C se nijak nestará o hodnoty proměnných, které programátor vytvořil, ale nenastavil jim hodnotu!!! Je v nich hodnota, která byla zrovna v paměti na místě na kterém se proměnná vytvořila. Jak inicializovat: int i = 80; v podstatě je to totéž jako: int i; i = 80; int i = 0; Program: Největší společný dělitel dvou čísel #include <stdio.h> int nsd(int a, int b) if((a <= 0) (b <= 0)) return 0; while (a > 0) if(a > b) a = a - b; else b = b - a; if (b == 0) return a; return 0; int main () int vysledek; vysledek = nsd(12345,9985); printf("nejvetsi spolecny delitel cisel %d a %d je %d", 12345,9985, vysledek);

/* Nasleduje cekaci smycka ceka na stisk klavesy, tj. doku není stisknuta nejaka kl. Smycka zajistuje, aby se okno s programem automaticky nezavrelo. */ while (!kbhit()) ;