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

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

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

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

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

Vícerozměrná pole. Úvod do programování 2 Tomáš Kühr

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

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

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

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

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

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

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

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

Algoritmizace a programování

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

Lekce 6 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í) %

Úvod do programování. Lekce 1

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

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

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

Seminář z IVT Proměnné a operátory. Slovanské gymnázium Olomouc 11. září 2014 Tomáš Kühr

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

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

Zjednodušené základy jazyku C. Josef Podstata

Základy algoritmizace a programování

Standardní vstup a výstup

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

Programovací jazyk C++ Hodina 1

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

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

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

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í

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

7. Datové typy v Javě

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

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

Základy algoritmizace a programování

Základy programování (IZP)

Objektově orientované programování

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

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

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

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

Zápis programu v jazyce C#

VISUAL BASIC. Práce se soubory

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

Programovací jazyk Pascal

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

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

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

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

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

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

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

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

Datové typy pro reálná čísla

Vstup a výstup datové proudy v C

Algoritmizace a programování

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

Informatika Datové formáty

Základy programování (IZP)

2 Datové typy v jazyce C

Počítačové modelování

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

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

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

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

6. lekce Úvod do jazyka C knihovny datové typy, definice proměnných základní struktura programu a jeho editace Miroslav Jílek

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

Výrazy, operace, příkazy

Programování v jazyce JavaScript

Stanislav Vítek. Katedra radioelektroniky Fakulta elektrotechnická

PROGRAMOVÁNÍ V C++ CVIČENÍ

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

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

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

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

Sada 1 - Základy programování

Opakování programování

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

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

Úvod do programování - Java

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Základy C++ doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Seminář Java II p.1/43

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

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

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

Struktury a dynamické proměnné

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

Programování C++ Lukáš Tomášek. verze

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

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

Data, výrazy, příkazy

Proměnné a datové typy

Základy programování (IZP)

Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Transkript:

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

Organizační záležitosti Konzultace Pracovna 5.076 Středa 10:30 12:00 Emailem martin.kauer@upol.cz Web předmětu http://tux.inf.upol.cz/~kauer/index.php?content=var&class=zp1 http://www.inf.upol.cz/vyuka/zaklady-programovani Sbírka úloh http://jazykc.inf.upol.cz/

Literatura Pavel Herout: Učebnice Jazyka C. Kopp, 2007. Brian W. Kernighan, Dennis M. Ritchie: Programovací jazyk C, Computer Press, 2006. Reek Kenneth: Pointers on C. Addison Wesley, 1997. Robert Sedgewick: Algorithms in C. Addison-Wesley Professional, 2001. Jeri R. Hanly, Elliot B. Koffman: Problem Solving and Program Design in C. Addison Wesley, 2006. Eric S. Roberts: Programming Abstractions in C. Addison Wesley, 1997. Eric S. Roberts: The Art and Science of C. Addison Wesley, 1994. a další

Zápočet zisk minimálně 25 bodů 2 body za dokončení úkolu na semináři 1 bod za vzorné vypracování úkolu do týdne až 10 bodů za písemku v půlce a na konci semestru celkem tedy až 40 bodů možnost individuálního získání zápočtu

Odevzdávání úkolů Žádné plagiáty. Žádné komprimované soubory. Jen zdrojové kódy s příponou.c nebo.cpp. Rozumně formátovaný kód - žádné dva metry dlouhé ify, pět příkazů na řádku apod. Zdrojové kódy se musejí dát bez úpravy zkompilovat. Programy musí splňovat všechny povinné části zadání. Pokud odevzdané řešení obsahuje nesrovnalosti na které budu reagovat emailem, máte jeden pokus na opravu. Deadline na odevzdání lze posunout pouze na základě opodstatněného důvodu a pouze po předchozí domluvě. Po deadlinu nemusíte nic posílat, nebude na to brán zřetel.

Jazyk C vytvořen 1972 autor Dennis Ritchie poslední verze C11 (prosinec 2011) my si ale vystačíme s ANSI C (1990), příp. C99 (1999) inspirace pro mnoho soudobých jazyků vlastnosti: nízkoúrovňový překládaný (kompilovaný) platformově nezávislý staticky typovaný procedurální (imperativní) paradigma

Ukázka zdrojového souboru #include <stdlib.h> #include <stdio.h> /* * Tento program nedělá nic jiného, * než že pozdraví celý svět. */ int main() { // hlavní funkce programu /* sem budeme zatím psát všechny příkazy */ printf("ahoj, světe!\n"); // napíše text do konzole } return 0; // úspěšný konce programu

Vývojová prostředí MS Visual Studio / MS Visual C++ (MS Windows) Code::Blocks (multiplatformní) GNU Emacs (GNU/Linux) Xcode (OS X) Libovolný textový editor

Několik poznámek k syntaxi C rozlišuje velká a malá písmena (case sensitivity) system System SYSTEM C ignoruje většinu bílých znaků (mezer, tabulátorů, odřádkování) (2*pi*r*(r+v)) = ( 2 * pi * r * (r+v) ) ale naopak "Ahoj světe!" "Ahoj int cislo; intcislo; světe!" Příkazy jsou ukončeny středníkem povrch = ( 2 * pi * r * (r+v) ); printf("ahoj světe!");

Proměnná Pojmenované místo v paměti Lze v ní uchovávat 1 hodnotu předem daného datového typu Vytvoření proměnné: typ identifikátor; typ identifikátor = hodnota; Příklady: int cislo; double desetinne_cislo = 3.14; char pismeno = 'A'; int logickahodnota = 0;

Identifikátor proměnné Jedinečný v rámci daného bloku / programu Může obsahovat písmena, číslice a podtržítko Musí začínat písmenem (nebo podtržítkem) Identifikátor by měl být smysluplný Program častěji čteme než píšeme! obsah = pi * polomer * polomer; vs. xyz = ahoj * abc * abc; Nedoporučuji používat háčky a čárky Doporučuje se underscore_case, případně camelcase double polomer_kruznice; double pi = 3.14; int idhlavnihouzivatelevaplikaci;

Základní datové typy char - obvykle pro znaky (1 byte, rozsah typicky 0 až 255) int - celé číslo (velikost přirozená pro danou platformu) float / double - desetinná čísla (s pohyblivou řadovou čárkou) (double má dvojnásobnou přesnost) Na typ int lze aplikovat kvalifikátory long a short: short int prumerna_mzda = 25000; int poslanecky_plat = 56000; long int majetek_billa_gatese = 1180000000000; short prumerna_mzda = 25000; long majetek_billa_gatese = 1180000000000; Kvalifikátor long lze aplikovat na double: long double velke_desetinne_cislo = 0.1234567890234567893;

Znaménkové a neznaménkové typy Na celočíselné typy (int, char, ale i short, long) lze aplikovat modifikátory signed a unsigned unsigned - reprezentace pouze nezáporných čísel signed - čísla mohou být kladná i záporná Stejná velikost paměti Rozsah signed char je od -128 do 127. Rozsah unsigned char je od 0 do 255.

Logické hodnoty v C Logické hodnoty pravda a nepravda reprezentujeme v C čísly Není zde speciální datový typ Nula = nepravda Nenulové číslo (typicky 1) = pravda

Číselné konstanty Celočíselné konstanty zapisujeme číslicemi Záporní čísla odlišujeme znaménkem mínus Implicitně mají typ int (velké hodnoty long int) Desítkové: 14, 16U, -12, 5145L, 58UL Osmičkové: 07, 0245, 0123 Šestnáctkové: 0xABC, 0x0, 0x12B U desetinných čísel používáme tečku (ne čárku) Implicitně jsou tyto konstanty typu double Desetinné: 12.34, 15.47F, 57.478L, 1e+6, 3.14e-3

Konstantní znaky a řetězce Znakové konstanty zapisujeme do apostrofů Znakové: 'a', '9', '\'', '\n' Řetězcové konstanty zapisujeme do úvozovek Řetězce: "Ahoj", "124", "\"Ahoj\"", "Prvni\nDruhy\nTreti\n" Textové řetězce jsou posloupnosti znaků ukončené '\0'

Výstup na obrazovku Pomocí funkce printf z knihovny stdio Obecně: printf(řídící_řetězec, hodnota1, hodnota2,...); Příklady: int x = 5, y = 3; int sum = 8; int cislo = 23; printf("součet je 8"); printf("součet je %d", 8); printf("součet je %d", sum); printf("součet je %d", x + y); printf("součet je %d\t Součin je %d\n", x + y, x * y); printf("plán jsme splnili na 100 %%."); printf("dekadicky %d je oktalově %o a hexadecimálně %x.\n", cislo, cislo, cislo);

Vstup z klávesnice Pomocí funkce scanf z knihovny stdio Obecně: scanf(řídící_řetězec, &promenna1, &promenna2,...); Příklady: int cislo, cislo2; unsigned int hexa_cislo; unsigned int den, mesic, rok; scanf("%d", &cislo); scanf("%x", &hexa_cislo); scanf("%d %d", &cislo, &cislo2); scanf("%d.%d.%d", &den, &mesic, &rok);

Možnosti formátovacího řetězce %c výpis nebo načtení znaku %d (%i) celé číslo desítkově znaménkově %u celé číslo desítkově neznaménkově %o celé číslo osmičkově %x (%X) celé číslo šestnáctkově (malá / velká písmena) %f desetinné číslo (float a double při výpisu) %lf načtení desetinného čísla typu double %e (%E) desetinné číslo semilogaritmicky %g (%G) jako %f nebo %e (%E) podle hodnoty čísla %s textový řetězec

Cvičení Úlohy k probraným tématům naleznete na webu jazykc.inf.upol.cz v části Základy jazyka C. Časté problémy Pokud okno aplikace po kompilaci a spuštění okamžitě zmizí Ve Visual Studiu pro spuštění použijte CTRL+F5 a ne jen F5 Nebo např. před návrat z vstupní funkce main vložit: system("pause"); Pokud se kompilace nezdaří s chybou C4996 Buď místo scanf použít scanf_s Nebo na první řádek zdrojového souboru vložit: #define _CRT_SECURE_NO_WARNINGS