Základy jazyka C. Základy programování 1 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 Martin Kauer (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

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:

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

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

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

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

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

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

Algoritmizace a programování

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

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

Úvod do programování. Lekce 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í) %

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

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

Základy algoritmizace a programování

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

Programovací jazyk C++ Hodina 1

Standardní vstup a výstup

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

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

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

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í

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

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

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

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

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

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

Základy programování (IZP)

Základy algoritmizace a programování

7. Datové typy v Javě

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

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

Zápis programu v jazyce C#

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

Objektově orientované programování

Programovací jazyk Pascal

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

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

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

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

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

VISUAL BASIC. Práce se soubory

Vstup a výstup datové proudy v C

Výrazy, operace, příkazy

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

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

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

Datové typy pro reálná čísla

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

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

Algoritmizace a programování

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

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

2 Datové typy v jazyce C

Základy programování (IZP)

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 C++ doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

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

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

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

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

Data, výrazy, příkazy

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

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

Seminář Java II p.1/43

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

Opakování programování

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

Datové typy a jejich reprezentace v počítači.

Algoritmizace. Cíle předmětu

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

Informatika Datové formáty

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

Úvod do programování - Java

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.

Úvod do programovacích jazyků (Java)

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Programování v jazyce JavaScript

Sada 1 - Základy programování

Struktury a dynamické proměnné

Čísla a číselné soustavy.

Základy programování (IZP)

Základy programování (IZP)

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

Algoritmy a datové struktury

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

Proměnné a datové typy

Výrazy, operace, příkazy

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

Transkript:

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

Organizační záležitosti Konzultace Osobně v pracovně 5.043 Pondělí 15.00 16.00 Úterý 14.00 16.00 Čtvrtek 13.00 15.00 Pátek 9.30 11.30 Něco jde vyřešit i emailem tomas.kuhr@upol.cz Web předmětu 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 vzorné dokončení úkolu v semináři 1 bod za vzorné dokončení úkolu do příštího semináře až 10 bodů za samostatnou práci v půlce a na konci semestru celkem tedy až 40 bodů účast na seminářích je povinná (minimálně 75 %, tj. 9 seminářů) vypracované úlohy odevzdávejte osobně ve zcela výjimečných případech (úraz, nemoc, závažné rodinné důvody,...) lze vypracované úlohy odevzdat emailem Pokud už v C programujete, lze získat zápočet tento pátek od 8.00 na učebně 5.003

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í Vytvořte v jazyku C několik proměnných různých datových typů (celé číslo, neznaménkové celé číslo, desetinné číslo, znak a příp. řetězec) a zkuste si tyto vypsat do konzole všemi smysluplnými způsoby uvedenými v této prezentaci. Poté si zkuste načíst do proměnných (pomocí funkce scanf) nové hodnoty a znova si tyto vypište na obrazovku. Dbejte na vhodně zvolené identifikátory proměnných a přiměřené množství dostatečně názorných komentářů.