Opakování programování

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

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

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

Programovací jazyk C++ Hodina 1

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

Zápis programu v jazyce C#

Data, výrazy, příkazy

Ukazka knihy z internetoveho knihkupectvi

Výrazy, operace, příkazy

Úvod do programovacích jazyků (Java)

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

ADT/ADS = abstraktní datové typy / struktury

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

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

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

Algoritmizace a programování

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

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

Jazyk C# a platforma.net

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

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

Stručný obsah První týden Druhý týden 211 Třetí týden 451 Rejstřík 787

Úvod do programování. Lekce 1

Výrazy, operace, příkazy

Paměť počítače. alg2 1

NPRG031 Programování II --- 2/2 Z, Zk

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

Algoritmizace a programování

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

Princip funkce počítače

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Strojový kód. Instrukce počítače

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

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

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

Algoritmizace a programování

Úvod do programování - Java. Cvičení č.4

Pohled do nitra mikroprocesoru Josef Horálek

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

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

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í

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

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

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).

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

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 -

Struktura programu v době běhu

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

C2115 Praktický úvod do superpočítání

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

8. Laboratoř: Aritmetika a řídicí struktury programu

Algoritmizace a programování

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

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

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

Datové typy strana 29

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Objektově orientované programování

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

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

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

Odvozené a strukturované typy dat

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

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

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

Základy programování (IZP)

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

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

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

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

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

AUTHOR : Robert Follner DATE. Abstrakt ABSTRACT: Několik poznatků autora (Robert Follner) z programování

Profilová část maturitní zkoušky 2017/2018

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

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

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

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

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury Příklad PROG_

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

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

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

přetížení operátorů (o)

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

Jazyky C a C++ kompletní průvodce 2., aktualizované vydání. Miroslav Virius

Algoritmizace a programování

Programovací jazyk Pascal

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

Adresní mody procesoru

Číselné soustavy. Binární číselná soustava

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

Sada 1 - Základy programování

Java reprezentace dat, výrazy. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

URČITÝM ZPŮSOBEM PODOBNÉ

Základy algoritmizace a programování

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

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

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

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

Transkript:

Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování Tvorba programu - návrh - kriteria hodnocení Programové prostředky (editor, překladače, ladící prostředky, sestavení programu) Jazyk - klíčová slova - datové typy - základní mechanizmy jazyka

Procesor - má určitý počet instrukcí (příkazy) - instrukce říká, co a s čím se má udělat - instrukce trvá určitý počet cyklů (času, přístupu k paměti ) - obsahuje registry (vnitřní paměti) - akumulátor výpočetní jednotka (ALU) - je schopen pracovat s určitými datovými typy - čítač instrukcí říká, kde leží další instrukce (ovlivňují ho instrukce skoků (podmíněné/nepodmíněné)), cykly - podprogram (call/return) zásobník - interrupt (přerušení) - volatile proměnné - registr příznaků výsledky operací (nulovost, kladnost, přetečení )

Paměť - v paměti jsou uloženy instrukce a data programu - program obsahuje instrukce, které se vykonávají - datová oblast příslušná programu základní data pro proměnné programu - zásobník lokální data, adresy při podprogramech - statické a globální proměnné v datové části programu (inicializace) - volná datová oblast je možné o paměť z ní požádat systém - mapování periferií do paměti data se mění "nezávisle" volatile proměnné - cache paměť na čipu podstatně rychlejší přístup k datům

Datové typy (vázané na procesor, nebo emulované v SW) - celočíselné znaménkové x bezznaménkové (zápis binárně, oktalově, dekadicky, hexadecimálně) - s desetinnou čárkou - podle typu procesoru a registru (spojení registrů) je dána přesnost (velikost typu v bytech) - adresa x ukazatel - pro adresování (segment:offset, indexovaný přístup ) - pro vyjádření znaku se využívá celočíselná proměnná teprve její interpretací (například na tiskárně) vznikne znak. - Základní znaková sada (ASCII, EBCDIC) je osmibitová - Rozšířená znaková sada UNICODE

Matematické operace - Sčítání, odčítání základ (celočíselné) - Násobení, dělení - Mocniny, sinus, cos, exp jsou většinou řešeny podprogramy, nebo pomocí tabulek (a interpolací). Jsou součástí knihoven ne jazyka.

Boolovské operace - použití pro vyhodnocování logických výrazů - Tabulka základních logických funkcí pro kombinace dvou proměnných

0 0 1 1 vstup A - nabývá hodnoty 0 1 0 1 vstup B - nabývá hodnoty 0 0 0 0 nulování 0 0 0 1 AND 0 0 1 0 přímá inhibice (negace implikace) - Nastane-li A, nesmí nastat B. 0 0 1 1 A 0 1 0 0 zpětná inhibice 0 1 0 1 B 0 1 1 0 XOR nonekvivalence (jsou-li proměnné různé je výsledkem 1, jsou-li stejné, pak 0) 0 1 1 1 OR 1 0 0 0 negace OR 1 0 0 1 negace XOR ( výsledek je 1, pokud jsou proměnné stejné, pokud jsou různé pak je výsledek 0) 1 0 1 0 negace B 1 0 1 1 zpětná implikace 1 1 0 0 negace A 1 1 0 1 přímá implikace (nastane-li stav A, je výsledek řízen stavem B. Z nepravdy A nemůžeme usoudit na stav B mohou být platné oba stavy (nebude-li pršet, nezmoknem). Pokud platí A je možné z výsledku usuzovat na B (B je stejné jako výsledek) pokud A neplatí nelze o vztahu výsledku a B nic říci. 1 1 1 0 negace AND 1 1 1 1 nastavení do jedničky

Způsoby adresování - Součást instrukce - INC A (přičti jedničku k registru A) registr, se kterým se pracuje je přímo součástí instrukce - Přímý operand JMP 1234 skoč na danou adresu je uvedena v paměti za instrukcí. Může mít i relativní formu k současné pozici - Adresa je uvedena jinde (v jiné proměnné) PUSH B registr B se uloží na zásobník, LD A, BC do registru A se načte hodnota z adresy ve dvojici registrů BC - Indexové adresování MOVI A,[BC+IX] do registru A se načte hodnota z paměti, která je posunuta o IX (index) od adresy v registru BC (báze).

Programování - Rozbor úlohy které funkce patří k sobě (knihovny), rozhraní funkcí (předávané a návratové hodnoty), datové typy pro proměnné - Algoritmy řešení daného úkolu ve funkci - Zapsání kódu - překlad jazyková správnost - Ladění kódu debuging funkční správnost - Testovací databáze Postup programování - požadované vlastnosti - návrh činnosti - návrh datových struktur - návrh funkčních volání

Hodnocení programu - Výkon a efektivita čas, využití zdrojů - Spolehlivost HW, SW (na podněty musí správně reagovat) - Robustnost odolnost proti rušení (HW, SW, uživatel) - Použitelnost jak je příjemný pro uživatele, jak snadno se zapracovává do programu - Přenositelnost jak velké úpravy je nutné dělat při překladu na jiné platformě (jiným překladačem) jazyk, použité funkce, návaznost na OS, velikost datových typů, endiany - Udržovatelnost dokumentace, komentáře, přehlednost - Kultura programování programátorský styl, komentáře (popisují proč je to tak), dokumentace

Programovací prostředí - Editor vytvoření zdrojových a hlavičkových souborů (co to je, jaká je mezi nimi vazba) - Překladač + preprocesor direktivy preprocesoru #xxx, překlad do mezikódu, kontrola syntaktických chyb - Linker spojení částí programu (.o,.obj,.lib,.dll,...) do jednoho celku (.exe,.lib,.dll,...) - knihovny (.c,.cpp,.o,.obj,.lib,.dll) předpřipravené části kódu, které zjednodušují psaní programu. Jejich rozhraní je oznámeno v hlavičkovém souboru. - Debugger je možné hledat chyby v programu. Trasování procházení programu po krocích nebo částech s možností zobrazení hodnot proměnných nebo paměťových míst - Projekt sada souborů, jejichž zpracováním vznikne výsledek (exe, dll,...) - Řešení (solution) - sada společných projektů - Překlad kompilace (zpracování zdrojových souborů); linkování (sestavení programu), build (kompilace změněných souborů a linkování); build all, rebuild (kompilace všech souborů a linkování); reset, clean, clear (smazání všech souborů (meziproduktů) překladu)

Opakování jazyka C Imperativní programování popisujeme kroky, které má program vykonat Strukturovanost programu grafická v rámci funkcí, programátorský styl, (firemní) kultura programování, program realizován pomocí funkcí (předávání parametrů), Klíčová slova - cca 35 klíčových slov void char, short (int), int, long (int) signed, unsigned float, double, (long double) union, struct, enum auto, register, volatile, const, static extern, typedef sizeof if, else, switch, case, default, break (podmíněné větvení) goto return for, while, do, continue, break - cykly a skoky operátory (matematické a logické, přiřazení (možnost zřetězení), ternární operátor)

Datové typy - datové typy udávají přesnost, typ, znaménko, modifikátory - velikost vázána na platformu (sizeof) - celočíselné neznaménkové pro logické operace (bitové, posuny ) - složené datové typy (struktury, union) - ukazatel adresa spojená s typem, který na ní leží, ukazatelová aritmetika - pole návaznost na ukazatel, řetězce C (typ string) - alokace paměti automatické proměnné, dynamické proměnné (kde leží), globální proměnné, definice a deklarace (inicializace) - výčtový typ enum - psaní konstant (znaková a ; celočíselná -12, 034, 0xFA8ul; neceločíselné 23.5, 56e-3; pole ahoj pole - escape sekvence \n \r \t \a \0 \0x0D - konverze datových typů implicitní a explicitní - typedef

Boolovská logika - použití logické (proměnná je brána jako celek nula/nenula) x matematické (po bitech) - využití pro maskování - spojeno s neznaménkovými celočíselnými typy - hodnoty používané k vyjádření logické proměnné - operace bit po bitu (nad bitovými řezy, bitwise) a s celým číslem (konverzí na bool)

Funkce - návratová hodnota jak se předává - parametry funkce lokální parametry, předávání hodnotou (využití ukazatele), předávání polí (v závislosti na definici) - lokální parametry funkcí - funkce main musí mít návratovou hodnotu int, může mít parametry - funkce pro (formátovaný) vstup a výstup standardní vstupy a výstupy stdin, stdout, stderr;