Objektově orientované programování



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

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

NPRG031 Programování II 1 / :47:55

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

URČITÝM ZPŮSOBEM PODOBNÉ

Zápis programu v jazyce C#

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

NMIN201 Objektově orientované programování 2016/17 1 / :03:29

6. Příkazy a řídící struktury v Javě

Úvod do programovacích jazyků (Java)

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

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

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

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

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

Výčtový typ strana 67

Úvod do programovacích jazyků (Java)

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

Jazyk C# a platforma.net

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

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

Seminář Java II p.1/43

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

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

KTE / ZPE Informační technologie

Programování v Javě I. Leden 2008

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

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

Úvod do programování. Lekce 1

Algoritmizace a programování

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

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

Algoritmizace a programování

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

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

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

C# konzole Podíl dvou čísel, podmínka IF

PREPROCESOR POKRAČOVÁNÍ

Programovací jazyk C++ Hodina 1

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

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

První kapitola úvod do problematiky

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

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

PŘETĚŽOVÁNÍ OPERÁTORŮ

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

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

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

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

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

Jazyk C++ 1. Blok 3 Objektové typy jazyka C++ Třída. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

Řídicí struktury. alg3 1

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

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

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

Programovací jazyk Pascal

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

1. Téma 03 - Rozhodování

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

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

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

KTE / ZPE Informační technologie

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

7. Datové typy v Javě

Výrazy, operace, příkazy

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

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

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

1. Programování proti rozhraní

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

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

3 KTE / ZPE Informační technologie

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

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

Algoritmizace. Cíle předmětu

Příkazy a řídicí struktury v Javě. Tomáš Pitner, upravil Marek Šabo

IAJCE Přednáška č. 6. logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku

Algoritmizace a programování

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

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

6 Příkazy řízení toku

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

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

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

Úvod do programování v jazyce Java

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

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

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

2 Datové typy v jazyce C

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

Algoritmizace a programování

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice

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

Struktura programu v době běhu

Pokročilé programování v jazyce C pro chemiky (C3220) Úvod do jazyka C++

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

Jazyk C++ I. Polymorfismus

Transkript:

10. října 2011

Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh a bude zřejmě výrazně přihlíženo ke způsobu plnění zápočtových povinností. Okamžikem udělení hodnocení u zkoušky jsou zápočtové povinnosti zmraženy!

Cíle předmětu Programování v C#, objektové programování, moderní vývojové prostředky.

Souvislosti Prvácké Programování II s kódem NPRG je výrazně odlišné od NPRM, proto matematici nejsou schopni navštěvovat prakticky žádné navazující přednášky o programování. Budeme masívně stavět na Pascalu.

Prostředky Budeme používat CodEx, využívat budeme buďto Microsoft Visual Studio(v dostupné verzi), nebo prostředí MONO(obojí je k dispozici legálně zdarma aspoň v omezené verzi). Tvořit budeme převážně konzolové aplikace(o psaní formulářových si taktéž něco řekneme).

Literatura M. Virius: C# pro zelenáče, Neocortex Praha, 2002, E. Gunnerson: Začínáme programovat v C#, Computer Press Praha, 2001, J. Kent: Visual C# 2005 bez předchozích znalostí, Computer Press Brno, 2007, J. Liberty, D. Xie: Programming C# 3.0, Fifth Edition, O Reilly Media Inc., 2007.

Objektové programování anebpročnebylc#vprváku? Základy objektového programování byly i v Pascalu, všude je to ale podobné. Všejeobjekt,všemámetodyaatributysevšemidůsledky, které z toho plynou. Iprogramjeobjekt(smetodami).Vždyjedefinováno,jakse s objektem programu zachází. Program neběží odnikud nikam, ale spustí se mu metoda Main.

Krok stranou Rodina jazyka C B.KernighanaD.RitchienapřednavrhlijazykA... týmbylspokojenažsjazykemc. Ač byl tento jazyk navrhován údajně jako recese, velmi se ujal. Za jeho potomky lze prohlásit C++, Java, C#, Javascript, PHP, Python a další.

Společné vlastnosti Jsou case-sensitive, mají podobnou syntax, u neobjektových jazyků se zpravidla spustí funkce main(až na velikost písmen).

Krok stranou Jazyk C hello.c #include <stdio.h> int main() { printf("hallo, world!\n"); }

Krok stranou Jazyk C knicemu.c #include <stdio.h> void f() { printf("hallo, world!\n"); } int main() { f(); }

Syntax jazyka C definice proměnných Datový typ se píše napřed! int faktorial(int a) { int b=1; while(a>1)b*=a--; return b; }

Nejdůležitější typy void prázdný datový typ zahození hodnoty, char obvykle jeden byte měřák velikosti, short celočíselný typ, int nejobvyklejší celočíselný typ, long celočíselný typ, float neceločíselný typ, double neceločís. typ s dvojnásobnou(doublovou) přesností, C#string řetězec C nec#pointery.

Příklad int a,b,c=10,d=100; double x=1.15; char a= a,b= x ; string text="nic"; void nanic(inta, int b, int c); parametry funkce při definici se oddělují čárkou. konstanty modifikátorem const: const double pi=3.1415926;

Základní operátory +(binární) sčítání, -odečítání,podobně*a/ = přiřazení, == porovnání na rovnost,!=, >, <, >=, <=(nerovnosti), logické&&(and), (or),!(not),&(and), (or),ˆ(xor), první dvě vyhodnocují líně(je-li výsledek jasný, přestanou), 4. a5.vyhodnocujíúplně(taktovc#,vctobylotrochujinak). unární++,--(prefixovéapostfixové,tedya++vs++a). Pozor na priority! Řešení jako v Pascalu, tedy závorkovat. Pozor na porovnání a přiřazení! Přiřazovací příkazy: +=, -=, *=, /=, &= apod.

Komentáře, bloky Jednořádkové// do konce řádku Víceřádkové/* komentář hodně dlouhý dokud ho neukončíme explicitně*/ Složené závorky označují blok(jako v Pascalu begin a end), tedy { blok; příkazů;}

Základní řídicí struktury if (podm) příkaz; if (podm) příkaz; else příkaz; if (podm) { blok } [else {blok}] while(podm) příkaz nebo blok for(init;podm;inkr) tělo init je inicializační kód, podm je podmínka, inkr je inkrementační výraz, tedy příklad: for(a=1;a<10;a++)b+=a; Co je tohle? if(a=5) ajepet(); do příkazy(); while(podm); Poznámka: a=b=c=1;

Konstrukce switch ekvivalent case... of switch(i) { case 1: ijejedna();break; } case 2: case 3: ije2nebo3(); break; default: vsechno je jinak(); break; Break ukončuje jednotlivé větve, v C se vykonával kód, dokud se nenarazí na break, C# toto neumožňuje(jednu větev je třeba ukončit před začátkem druhé).

Definice funkcí typ jmeno(parametry) { telo } Chceme-li vrátit návratovou hodnotu, použijeme klíčové slovo returnazaněumístímevracenývýraz:return 0;

Definice funkcí podrobnosti procedura je funkce, která vrací void, void vracíme pomocí return;, kulaté závorky jsou operátor zavolání(nebo operátor definice funkce), nelze je tudíž oproti Pascalu vynechat, Parametry jsou implicitně předávány hodnotou. Jazyk C předání referencí neměl(místo toho byly pointery). C# umí předávat parametry též referencí a výsledkem: void divna(ref int a, out int vysledek); proměnná a je předána referencí, proměnná vysledek výsledkem, což je téměř totéž(tedy je řešena též odkazem, ale hodnota proměnné předávané výsledkem není funkci vůbec předána).

Objektové programování Objekty jsou instance třídy(jako v Pascalu). Statické metody(resp. atributy) příslušejí třídě(ne jednotlivým objektům). Modifikátory public, private, protected řídí přístup k jednotlivým položkám(může každý/ může jen metoda dané třídy/ smí současná třída a potomek). Třídu(v C++, Javě, C# a dalších) vytváříme pomocí klíčového slova class.

ProgramvC# using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(strings[] args) { Console.WriteLine("Sem se bude psát ten program!"); } } } Operátor tečky má podobný význam jako v Pascalu.

Eukleidův algoritmus static void Main(string[] args) { Console.WriteLine("Dvě čísla sem:); int a=int.parse(console.readline()); int b=int.parse(console.readline()); while(a!=b) if(a>b) a-=b; else b-=a; Console.Write("NSDje: "); Console.WriteLine(a); }