Úvod do jazyka C. Zdroje: Herout: Učebnice jazyka C, Kopp, České Budějovice, 2001 Schildt H: Nauč se sám C, Softpress, Praha, 2001

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

Úvod. Programovací paradigmata

MPASM a IDE pro vývoj aplikací MCU (Microchip)

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

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

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

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

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

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

Program a životní cyklus programu

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

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

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

Počítačové modelování

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

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

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

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

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

Matematika v programovacích

ČÁST 1. Základy 32bitového programování ve Windows

IB111 Programování a algoritmizace. Programovací jazyky

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

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

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

11. Přehled prog. jazyků

ALGORITMIZACE A PROGRAMOVÁNÍ

Úvod do programování. Lekce 1

Vstupní požadavky, doporučení a metodické pokyny

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

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

Struktura programu v době běhu

ŠVP Gymnázium Ostrava-Zábřeh Úvod do programování

Sada 1 - Základy programování

Základy algoritmizace

Sada 1 - Základy programování

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

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

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

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

Algoritmizace. Cíle předmětu

Programovací jazyk Pascal

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

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

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

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

IB111 Úvod do programování skrze Python Přednáška 13

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í

Architektury počítačů a procesorů

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Preprocesor a koncepce (větších) programů. Úvod do programování 2 Tomáš Kühr

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

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

1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Základy algoritmizace a programování

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

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

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

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

Základy algoritmizace a programování

Vizuální programování

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

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

Programovací jazyk C++ Hodina 1

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

Algoritmizace a programování

Programování a algoritmizace

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

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

TÉMATICKÝ OKRUH Softwarové inženýrství

Úvod do programování

První kroky s METEL IEC IDE

1 Strukturované programování

Maturitní témata Školní rok: 2015/2016

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Algoritmizace. 1. Úvod. Algoritmus

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Algoritmizace prostorových úloh

Vývoj programů. ÚVOD DO OPERAČNÍCH SYSTÉMŮ

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

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

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

Algoritmizace. Obrázek 1: Přeložení programu překladačem

Správa barev. PS a PDF. Správa barev. Vytvořila: Jana Zavadilová Vytvořila dne: 13. února DUM číslo: 18 Název: PS a PDF

VISUAL BASIC. Přehled témat

Programové vybavení počítačů

Operační systémy Linux, Mac OS X a jejich srovnání

Programovací jazyky Přehled a vývoj

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

Algoritmy I. Cvičení č.1 ALGI 2015/16

KTE / PPEL Počítačová podpora v elektrotechnice

Algoritmizace- úvod. Ing. Tomáš Otáhal

Objektově orientovaný přístup

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

Transkript:

Úvod do jazyka C Zdroje: Herout: Učebnice jazyka C, Kopp, České Budějovice, 2001 Schildt H: Nauč se sám C, Softpress, Praha, 2001

Pojem programovací jazyk Pod pojmem programovací jazyk rozumíme prostředek pro zápis programů, jež mohou být provedeny na počítači. V tomto smyslu je programovací jazyk komunikačním nástrojem mezi: uživatelem počítače, který jeho jazykovými prostředky specifikuje algoritmus řešení daného problému, a počítačem, jenž svými technickými prostředky algoritmus interpretuje a realizuje tak transformaci vstupních údajů na výstupní. 2002 2

Program Podle slovníku spisovné češtiny program je: 1. Předem stanovený obsah a postup, sled nějakého kulturního podniku, jednání, apod. 2. Tištěné oznámení programu (koupit si divadelní program) 3. Rozvrh vytčených úkolů a cílů, plán 4. Soustava příkazů vložená do počítače Přesnější definice: Program je smysluplná posloupnost příkazů vložených do počítače, která má předem stanovený význam, sleduje nějaký plán a jejímž výsledkem je provedení nějakého úkolu nebo výpočtu. Algoritmus postup skládající se z konečného počtu úkonů k řešení úkolu. 2002 3

Podprogram Dílčí program, který vykonává dílčí činnost. Programy se obvykle skládají z podprogramů, které vykonávají nějaké dílčí úkoly Program pouze zavolá podprogramy ve vhodném pořadí Strukturované programování Hlavní program si volá různé pomocné podprogramy, které vykonávají svou (dílčí) činnost a předají řízení příkazu bezprostředně následujícímu za příkazem, který podprogram vyvolal 2002 4

Historie programovacích jazyků

Vývoj programovacích jazyků Vývoj programovacích jazyků určovaly a určují mnohé faktory; k nejzávažnějším z nich pravděpodobně patří: vývoj technických prostředků vývoj metod strojového překladu jazyků vývoj metod programování stále širší oblasti využívání počítačů 2002 6

Strojový jazyk V prvním období existence počítačů zastával roli programovacího jazyka výhradně strojový kód, nazývaný proto také strojový jazyk. Vyjadřovacími prostředky strojového jazyka jsou instrukce. Jejich sémantika je definována technickými prvky počítače. Nedostatky: závislost na konkrétním typu počítače velmi nízká úroveň popisovaných akcí pro člověka nepohodlný číselný zápis instrukcí. V současné době je používání strojového jazyka jako nástroje programování zcela ojedinělé. 2002 7

Jazyky symbolických instrukcí Prvním krokem ve vývoji programovacích jazyků byla náhrada numericky kódované informace instrukcí strojového jazyka informací symbolickou. Vzniká tak důležitá třída programovacích jazyků - jazyky symbolických instrukcí. Překlad (kompilace) - počítačem realizovaná transformace určitého textu na text reprezentující program ve strojovém jazyce. Assembler - překladač jazyka symbolických instrukcí. Nevýhody: závislost na konkrétním typu počítače Výhody: rychlost překladu a zpracování přeloženého programu možnost programování na elementárních úrovních, která je v některých případech nepostradatelná a ve vyšším programovacím jazyce nedostupná (hodně se používá při vytváření programů operačního systému) 2002 8

Vyšší programovací jazyky Další vývoj směrem k vyšším programovacím jazykům sledoval dva cíle: odstranit strojovou závislost jazyků, vyžadující od programátora detailní znalosti strojového jazyka a znemožňující použití programů vypracovaných pro jeden typ počítače na počítači jiného typu poskytnout programátorům takové prostředky pro popis algoritmů, které odrážejí povahu řešených problémů, a nikoliv technickou realizaci výpočetních procesů na počítači 2002 9

Fortran Zahájil éru skutečných vyšších programovacích jazyků Ve své první podobě byl Fortran opravdu snadno naučitelným jazykem vedoucím k maximálně efektivnímu programu Programování přestalo být výsostnou doménu skupiny úzce specializovaných odborníků Fortran byl však původně jazykem určeným pro vědeckotechnické výpočty, proto nemohl vyřešit úplně všechno Pro vědeckotechnické výpočty se používá dodnes (Digital Fortran Compaq) 2002 10

Algol První programovací jazyk, který poskytoval ucelenou a jednotnou množinu jazykových prostředků pro popis algoritmů Byl to první programovací jazyk, který obsahoval explicitní řídící příkazy pro reprezentaci posloupnosti příkazů, iteraci a výběr alternativ Počátky strukturovaného programování Značná složitost a obtíže spojené s jeho zvládnutím i implementací Malé rozšíření Řada myšlenek, které se zde objevily poprvé, se uplatnila při koncipování jazyků široce používaných v praxi 2002 11

COBOL Jazyk Cobol byl vyvinut společným úsilím výrobců a uživatelů počítačů ve spolupráci s ministerstvem obrany USA. Ve dnech 28. - 29. 5. 1959 se konala konference, jejímž cílem bylo uvážit různé aspekty zavedení společného jazyka pro programování elektronických počítačů. Konference rozhodla o zahájení tohoto projektu s tím, že jazyk byl měl umožňovat sestavení programů v minimálním čase s minimálním programovacím úsilím zápis programů v jazyce blízkém angličtině snadný převod programů na nové typy počítačů úplnou dokumentaci programu 2002 12

Lisp V roce 1960, kdy vznikl COBOL-60, také vznikl na MIT Lisp, první jazyk zcela nového typu. Je to tzv. funkcionální jazyk, který používá jako jediné řídící struktury funkce a jejich skládání. Přinesl i nové pojmy v oblasti rekurzivních datových struktur a stal se základem programů pro symbolické manipulace. AutoLisp programování v AutoCADu 2002 13

BASIC V původní podobě neobsahoval podprogramy v dnešním slova smyslu Nerozlišoval typy číselných proměnných K jeho popularitě přispěla jednoduchost možnost interaktivní práce snadná implementace na mikropočítačích 2002 14

PASCAL Navazoval na ALGOL Navržen profesorem Niklausem Wirthem (Eidgenoessische Technische Hochschule Zurich) v roce 1971 pro potřeby výuky programování. Dnes má Pascal ve světě nejen dominantní postavení při výuce programování, ale velmi se používá i pro běžné programování. Konečný tvar normy jazyka byl vydán v 80. letech pod označením ISO 7105. 2002 15

"Nebuď Béčko, uč se Céčko" Jazyk C

Jazyk C Vyvíjel se společně s OS UNIX C-jazyk se v prapůvodní podobě nazýval B-jazyk (Thomson, Ritchie na PDP-7, 1970) C-jazyk je unikátní, neboť je jakési střední úrovně. Není to jazyk vysoké úrovně jako BASIC nebo PASCAL, Není to však ani jazyk nízké úrovně jako assembler. Jazyk C může pracovat na úrovni systému a umožňuje programátorovi napsat téměř všechno, co ho napadne (funkce assembleru). Navíc je C-jazyk dostatečně univerzální i pro aplikační programování (funkce jazyka vyšší úrovně). Největší předností jazyka C je jeho schopnost rozšiřovat sama sebe. Knihovny C-jazyka se snadno rozšiřují co do velikosti a je snadné napsat novou funkci, jakmile ji potřebuji. 2002 17

Úvod Jazyk C je obvykle považován za světově nejdůležitější profesionální programovací jazyk. Je bránou ke dvěma dalším celosvětovým profesionálním programovacím jazykům: C++ : vystavěn na C Java : vystavěna na C++ Jazyk C je tak základem veškerého moderního programování a znalost C je základem pro úspěšné vytváření vysoce výkonného a kvalitního softwaru. Původně byl jazyk C používán převážně pro vytváření systémového softwaru (OS, překladače, editory). Dnes je jazyk C používán programátory pro téměř libovolné programovací úlohy. 2002 18

C versus C++ C++ je rozšířenou verzí C, která byla vytvořena pro podporu objektově orientovaného programování (OOP). C++ obsahuje a podporuje úplný jazyk C, a navíc má sadu objektově orientovaných rozšíření (C++ je nadstavbou C). Jelikož je C++ vystavěn na základech C, není možné se učit C++ bez znalosti C. 2002 19

ANSI C (1) Dnešní oficiální standard je tzv. ANSI C z roku 1990 Jeho součástí je i přesná specifikace množiny knihovních funkcí a hlavičkových souborů (.H), které musí každá implementace ANSI C kompilátoru obsahovat Této normě by měla vyhovovat naprostá většina dnešních překladačů a další text popisuje právě ANSI C. Výhoda ANSI C: Program napsaný podle tohoto standardu a pouze s využitím knihovních funkcí (v ANSI C specifikovaných) je téměř 100% přenositelný na libovolný počítač pod libovolný operační systém. 2002 20

ANSI C (2) V roce 2001 byly vydány zatím poslední opravy normy pro jazyk C ISO/IEC 9899:1999/Cor. 1:200 (E) Nejdůležitější změny: Součástí jazyka se staly nástroje a knihovny pro práci s vícebajtovými znaky a znaky v kódování UNICODE Odstraněno pravidlo implicitní int Přibyly nové celočíselné typy Součástí jazyka se staly nástroje pro práci s komplexními čísly Jednořádkový komentář, který začíná dvojicí znaků // a končí na řádku atd. Překladače zřejmě nějakou dobu nebudou plně respektovat tyto změny (budou hlásit třeba varování místo chyby) CHIP 9/02 září 2002 2002 21

Způsob zpracování programu (1) Základní zpracování programu v C probíhá několika fázemi schématicky vyjádřenými následujícím obrázkem:.h.lib ladění Editor Preprocessor Compiler Linker Debugger.C.OBJ.EXE.LIS spuštění 2002 22

Způsob zpracování programu (2) Editor Pomocí něj se vytváří a opravuje zdrojový (.c) soubor (source file) Preprocessor Je to součást překladače, která předzpracovává (upravuje) zdrojový soubor tak, aby měl překladač snadnější práci. Např. vynechává komentáře, zajišťuje správné vložení hlavičkových (.h) souborů, rozvoj maker, atd. Výsledky své činnosti předává "svému nadřízenému" kompilátoru. 2002 23

Způsob zpracování programu (3) Compiler Nazývaný též překladač nebo počeštěně kompilátor. Provádí překlad zdrojového souboru do relativního (objektového) kódu počítače vzniká.obj soubor (object file). Relativní kód (oficiálně jazyk relativních adres) je téměř hotový program. Slovo relativní znamená, že adresy proměnnách nebo funkcí ještě nejsou vůbec známy a jsou tedy v.obj souboru zapsány relativně. Vedlejší produkt překladače je protokol o překladu (.LIS), ve kterém je uložena informace o chybách nalezených překladačem (většinou se vytváří pouze na speciální přání uživatele). 2002 24

Způsob zpracování programu (4) Linker Neboli sestavovací program přidělí relativnímu kódu (resp. jeho relativním adresám) absolutní adresy a provede všechny odkazy (najde adresy) na dosud neznámé identifikátory (např. na volané knihovní funkce uložené v souborech.lib). Výsledkem práce linkeru je přímo spustitelný program (.EXE) (executable file). Debugger Jeho český překlad je "odvšivovač", ale spíše se používá pojem ladicí program. Slouží pro ladění, neboli nalézání chyb, které nastávají při běhu progrmau. Po nalezení chyby se celý cyklus (editor, compiler, linker, debugger) opakuje tak dlouho, až si myslíme, že náš program žádnou chybu neobsahuje. 2002 25

Překladače jazyka C Unix (Linux) integrovaný překladač jazyka C (gcc) Windows Samotné překladače - obsahují pouze preprocesor, překladač se obvykle volá z příkazové řádky V textovém editoru (externím) vytvoříme zdrojový kód. Překladač zkontroluje správnost, provede překlad a v případě úspěchu vyprodukuje relativní kód a následně spustitelný.exe Integrovaná prostředí (IDE) editor, překladač, linker, debugger, komfortní ovládání Zdrojový kód se vytváří přímo v IDE, překlad se provádí volbou z hlavní nabídky, linkování je provedeno automaticky, prostředí podporuje projekty (programy složené z většího množství zdrojových kódů), apod. 2002 26

Volně dostupné překladače a IDE - UNIX Projekt GNU (Gnu s Not Unix) kompletní softwarový systém kompatibilní s UNIXem, zdarma (např. LaTeX) GNU Compiler Collection (gcc) standardní součást UNIXu gcc program.c provede se překlad a vytvoří se spustitelný soubor a.out (příp. a.exe) Bližší informace o překladači http://gcc.gnu.org 2002 27

Volně dostupné překladače a IDE - Windows MinGW http://www.mingw.org ovládání z příkazové řádky DJGPP + RHIDE http://www.delorie.com/djgpp - překladač lze doplnit o integrované prostředí RHIDE (obdoba Borlandu), umí zvýrazňovat syntaxi, projekty, debugger Borland C++ - uznávaná klasika. Borland C++ 5.5 je k dispozici zdarma (řádkový překladač, bez IDE) http://www.borland.cz lcc-win32 integrované prostředí včetně editoru, snadná instalace http://www.cs.virginia.edu/~lcc-win32 Dev-C++ - asi jeden z nejlepších bezplatných produktů, komplexní IDE, podpůrné nástroje http://www.bloodshed.net/devcpp.html 2002 28

Komerční systémy Borland C++ Builder Komplexní produkt pro vývoj okenních aplikací, kzerý je založen na programovacím jazyku C++. Obsahuje výkonný, osvědčený překladač, kvalitní debugger a řadu dalších podpůrných nástrojů. C++ Builder se řadí do kategorie tzv. nástrojů RAD (Rapid Application Development), jejichž princip spočívá v tom, že značná část návrhu aplikace se vytváří pomocí vizuálních nástrojů (není nutné psát tolik zdrojového kódu) http://www.borland.cz zkušební verze na 2 měsíce Microsoft Visual C++ Další velmi kvalitní a rozsáhlé vývojové prostředí http://msdn.microsoft.com/vstudio 2002 29

C++ Builder Postaven na objektově orientované architektuře Vizuální programování (základní pojmy): formulář komponenty objekty hlavní okno "Form1" základní parametry komponent: prvky, které můžeme umístit na formulář (tlačítka, nápisy, dialogy, atd.), jsou to základní stavební prvky aplikace» vlastnosti (velikost, barva, font, styl, okraj, viditelnost, atd.)» události (co se v systému stane při jejich použití) reprezentují komponenty Object Inspector nástroj pro manipulaci s komponentami Vlastní programování v podstatě se programuje jen vlastní činnost komponent výkonný kód se píše v první řadě do funkcí které ošetřují jednotlivé události (event handlers) - událostmi řízené programování Běh programu = úvodní inicializace a následné čekání na událost 2002 30

Kdo chce C používat, překladač si najde 2002 31

Prvky programu v jazyku C (1) Všechny programy v C se skládají z jedné nebo více funkcí Každá funkce obsahuje jeden nebo více příkazů Funkce: pojmenované podprogramy, které lze volat z jiných částí programu základní stavební kameny jazyka C Příkazy: určují činnost, kterou má program provést provádějí operace všechny příkazy končí středníkem 2002 32

Prvky programu v jazyku C (2) Obecný formát funkce v jazyku C: návratový-typ jméno-funkce (seznam-parametrů) { posloupnost příkazů } návratový-typ: určuje typ dat vracených funkcí jméno-funkce: název funkce velká a malá písmena anglické abecedy, číslice 0-9, podtržítko nesmí začínat číslicí C rozlišuje malá a velká písmena (prom Prom PROM) seznam-parametrů: parametry předávají informace funkci posloupnost-příkazů: jeden nebo více příkazů 2002 33

Prvky programu v jazyku C (3) Program může mít několik funkcí jediná, kterou musí mít je main(). Funkce main() je místem, kde začíná provádění programu Další obvyklou součástí většiny programů v C je hlavičkový soubor. Obsahuje informace o standardních knihovních funkcích (např. knihovní funkce printf()) Hlavičkové soubory mají příponu.h Nejčastěji používaný hlavičkový soubor je stdio.h #include <stdio.h> #include je direktiva preprocesoru, není to příkaz, tedy nekončí středníkem 2002 34

Příklad nejjednoduššího programu #include <stdio.h> int main(void) { printf("toto je kratky program v C"); return 0; } Jiný příklad: #include <stdio.h> int main(void) { printf("toto je "); printf("jiny"); printf(" program v C"); return 0; } 2002 35

Vytvoření a překlad programu Postup vytváření a překladu programu závisí na překladači a operačním systému Na PC jsou nejznámější integrovaná vývojová prostředí: Microsoft Visual C++ Borland C++ Builder Základní postup 1. Vytvořit program pomocí editoru 2. Přeložit program 3. Spustit program Téměř všechny moderní překladače jazyka C jsou zároveň také překladače jazyka C++. Náš program musí být přeložen jako program v jazyku C (přípona.c), ne jako program v C++ (přípona.cpp). 2002 36

Identifikátory Jazyk C je case sensitive jazyk (rozlišuje malá a velká písmena). prom Prom PROM jsou tři různé identifikátory! Klíčová slova C (např. if, while, register, ) musí být psána malými písmeny. Jsou-li zapsána velkými nebo kombinací malých a velkých písmen, berou se jako identifikátory. C dovoluje u identifikátorů používat znak podtržítko "_": _prom nepoužívat, znamená to systémový identifikátor prom_ prom_ používat často, zpřehledňuje text nepoužívat, na konci se často přehlédne Délka identifikátoru není omezena, ale ANSI C rozeznává obecně pouze prvních 31 znaků (32. další jsou bezvýznamné) 2002 37

Komentáře Přestože jsou velmi často opomíjeny, jsou důležitou součástí programu: zpřehledňují, někdy na první pohled dost nepochopitelný, program slouží k tomu, aby se ve vašem programu vyznal někdo cizí nebo i vy sami, když se k němu vrátíte třeba za několik let doporučuje se komentovat své programy během vytváření, a ne až po odladění ( Až na to někdy zbude čas. ) /* toto je komentar */ /* viceradkovy komentar */ x=3*a+b; /* popis prikazu */ 2002 38

Extrémní příklad programu v jazyku C #include <stdio.h> main(t,_,a) char *a; {return!0<t?t<3?main(-79,- 13,a+main(-87,1-_, main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a )&&t == 2?_<13?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<- 72?main(_, t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+, /#{l,+,/n{n+\,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+k w'k:'+}e#';dq#'l q#'+d'k#!/\ +k#;q#'r}ekk#}w'r}ekk{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d }rw' i;# ){n\ l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'k {rw' ik{;[{nl]'/w#q#\ n'wk nw' iwk{kk{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \ ;;{nl'- {}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\ #'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/") :t<-50?_==*a?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\ +1 ):0<t?main ( 2, 2, "%s"):*a=='/' main(0,main(- 61,*a, "!ek;dc \ i@bk'(q)-[w]*%n+r3#l,{}:\nuwloca-o;m.vpbks,fxntdceghiry"),a+1);} 2002 39