Vytváření a realizace algoritmů Algoritmy a datové struktury

20
Vytváření a realizace Vytváření a realizace algoritmů algoritmů Algoritmy a datové Algoritmy a datové struktury struktury Ivan Kolomazn Ivan Kolomazn ík ík kat. M-Dg kat. M-Dg místnost A851 místnost A851

description

Vytváření a realizace algoritmů Algoritmy a datové struktury. Ivan Kolomazn ík kat. M-Dg místnost A851. Programování. Programování je činnost, která zahrnuje tvorbu algoritmu a programu . Algoritmem rozumíme obecný postup řešení dané úlohy. - PowerPoint PPT Presentation

Transcript of Vytváření a realizace algoritmů Algoritmy a datové struktury

Page 1: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Vytváření a realizace algoritmů Vytváření a realizace algoritmů

Algoritmy a datové struktury Algoritmy a datové struktury

Ivan KolomaznIvan Kolomazníkík kat. M-Dgkat. M-Dg místnost A851místnost A851

Page 2: Vytváření a realizace algoritmů  Algoritmy a datové struktury

ProgramováníProgramování

Programování je činnost, která zahrnuje tvorbu algoritmu a programu.

Algoritmem rozumíme obecný postup řešení dané úlohy.

Program je zápis algoritmu ve zvoleném programovacím jazyce.

Programem (algoritmem) nemusí být nutně počítačový program — programy jsou např. i návody k použití, recepty v kuchařkách apod.

Page 3: Vytváření a realizace algoritmů  Algoritmy a datové struktury

OtázkyOtázky

Proč se učit programovat?Proč se učit programovat? V jakém programovacím jazyce?V jakém programovacím jazyce?

Page 4: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Proč se učit programovatProč se učit programovat

v minulosti byly počítače vybaveny jen v minulosti byly počítače vybaveny jen operačním systémem operačním systémem

dnes řada uživatelských programů dnes řada uživatelských programů umožňuje programovat – CAD systémy umožňuje programovat – CAD systémy (Autocad, Microstation), Matlab, (Autocad, Microstation), Matlab, Office,Corel, …Office,Corel, …

pochopení fungování počítače a pochopení fungování počítače a programů, navazující studium – numerické programů, navazující studium – numerické metodymetody

Page 5: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Proč se učit programovatProč se učit programovat

komunikace s programátorem, zadávání komunikace s programátorem, zadávání úkolůúkolů

rozvoj logického myšlenírozvoj logického myšlení

Page 6: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Typy programovacích jazyků Typy programovacích jazyků

Dle míry abstrakce: Dle míry abstrakce: nižší programovací jazyky nižší programovací jazyky - strojov- strojové instrukceé instrukce - jazyk symbolických adres - jazyk symbolických adres - assembler (překladač)- assembler (překladač)

vyšší programovací jazyky (většina jazyků)vyšší programovací jazyky (většina jazyků) - jednomu příkazu odpovídá více instrukcí- jednomu příkazu odpovídá více instrukcí

Page 7: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Typy programovacích jazykůTypy programovacích jazyků

Dle způsobu překladu a spuštění:Dle způsobu překladu a spuštění: kompilované programovací jazykykompilované programovací jazyky (např. (např.

Fortran, Pascal, C) Fortran, Pascal, C)

- před spuštěním jsou nejprve kompletně - před spuštěním jsou nejprve kompletně přeloženy kompilátorem, výsledkem je přeloženy kompilátorem, výsledkem je větší rychlostvětší rychlost

interpretované programovací jazykyinterpretované programovací jazyky (např. (např. BASIC, Perl, Python) – překlad při každém BASIC, Perl, Python) – překlad při každém spuštěníspuštění

Page 8: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Přehled nejrozšířenějších Přehled nejrozšířenějších programovacích jazykůprogramovacích jazyků

FortranFortran - v 50. letech 20. století navrhla firma - v 50. letech 20. století navrhla firma IBM pro vědecké výpočty a numerické IBM pro vědecké výpočty a numerické aplikace.aplikace.

C C - programovací jazyk, který vyvinuli Ken - programovací jazyk, který vyvinuli Ken Thompson a Dennis Ritchie pro potřeby Thompson a Dennis Ritchie pro potřeby operačního systému Unix. Nejčastější pro operačního systému Unix. Nejčastější pro psaní systémového softwaru.psaní systémového softwaru.

C++C++ - objektově orientovaný programovací - objektově orientovaný programovací jazyk, vznikl rozšířením jazyka Cjazyk, vznikl rozšířením jazyka C

Page 9: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Přehled nejrozšířenějších Přehled nejrozšířenějších programovacích jazykůprogramovacích jazyků

JavaJava - objektově orientovaný programovací jazyk, - objektově orientovaný programovací jazyk, který vyvinula firma Sun Microsystems (1995).který vyvinula firma Sun Microsystems (1995).

C#C# (C Sharp) objektově orientovaný programovací (C Sharp) objektově orientovaný programovací jazyk vyvinutý firmou Microsoft zároveň s platformou jazyk vyvinutý firmou Microsoft zároveň s platformou .NET Framework, vychází z C++ a Javy.NET Framework, vychází z C++ a Javy

BASICBASIC je rodina programovacích jazyků vysoké je rodina programovacích jazyků vysoké úrovně, která byla zavedena jako jednoduchý nástroj úrovně, která byla zavedena jako jednoduchý nástroj pro výuku programovánípro výuku programování

Page 10: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Přehled nejrozšířenějších Přehled nejrozšířenějších programovacích jazykůprogramovacích jazyků

PascalPascal - původně určen k výuce - původně určen k výuce programování, používá se i k programování programování, používá se i k programování reálných aplikací. Nejrozšířenější kompilátory reálných aplikací. Nejrozšířenější kompilátory od firmy Borland, dnes vývojové prostředí pro od firmy Borland, dnes vývojové prostředí pro windows programy postavené na objektovém windows programy postavené na objektovém rozšíření pascalu – Delphi.rozšíření pascalu – Delphi.

Page 11: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Proč se učit programovat právě v Proč se učit programovat právě v Pascalu ?Pascalu ?

Jazyk vhodný pro výuku programování a Jazyk vhodný pro výuku programování a algoritmizace algoritmizace

Jednoduchý a přehledný zápis algoritmů Jednoduchý a přehledný zápis algoritmů Velké množství informací a příkladů Velké množství informací a příkladů Řada kvalitních programovacích nástrojů Řada kvalitních programovacích nástrojů Snadný přechod k vizuálnímu programování v Snadný přechod k vizuálnímu programování v

Delphi Delphi Rozsáhé knihovny komponent do programů Rozsáhé knihovny komponent do programů

Page 12: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Metodika řešení úloh na počítačiMetodika řešení úloh na počítači 1. formulace úlohy 1. formulace úlohy 2. analýza úlohy 2. analýza úlohy 3. algoritmizace úlohy 3. algoritmizace úlohy

AlgoritmusAlgoritmus je postup definující výpočtový proces vedoucí od (měnitelných) je postup definující výpočtový proces vedoucí od (měnitelných) vstupních údajů k požadovaným výsledkům. Skládá se z konečného vstupních údajů k požadovaným výsledkům. Skládá se z konečného počtu kroků. počtu kroků.

Vlastnosti algoritmuVlastnosti algoritmu: :

hromadnost hromadnost

determinovanostdeterminovanost

rezultativnost rezultativnost 4. sestavení programu 4. sestavení programu 5. ladění programu 5. ladění programu

a) odstranění chyb syntaktických a) odstranění chyb syntaktických

b) odstranění chyb logických b) odstranění chyb logických 6. pořízení dokumentace6. pořízení dokumentace

Page 13: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Niklaus E. WirthNiklaus E. Wirth

profesor informatiky na Curyšském ETHprofesor informatiky na Curyšském ETH vedoucí návrhář programovacích jazyků Algol W, vedoucí návrhář programovacích jazyků Algol W,

Pascal, Modula, Modula-2 a OberonPascal, Modula, Modula-2 a Oberon Algorithms + Data Structures = Programs, Prentice-Hall, Algorithms + Data Structures = Programs, Prentice-Hall,

New Jersey, 1975, ISBN 0-13-022418-9 New Jersey, 1975, ISBN 0-13-022418-9

Page 14: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Dějiny počítačů Dějiny počítačů Nultá generace - elektromechanické počítače využívající Nultá generace - elektromechanické počítače využívající

většinou relé většinou relé - Konrad Zuse – Z1,2,3 (1934-1941)- Konrad Zuse – Z1,2,3 (1934-1941)

První generace (1945 až 1951) - charakteristická První generace (1945 až 1951) - charakteristická použitím elektronekpoužitím elektronek

- ENIAC - obsahoval 17 468 elektronek, 7200 krystalových - ENIAC - obsahoval 17 468 elektronek, 7200 krystalových diod, 1500 relé, 70 000 odporů, 10 000 kondenzátorů, diod, 1500 relé, 70 000 odporů, 10 000 kondenzátorů, okolo 5 miliónů ručně pájených spojů, vážil 27 tun, okolo 5 miliónů ručně pájených spojů, vážil 27 tun, zabíral 63 m² (2,6 m × 0,9 m × 26 m), spotřebovával 150 zabíral 63 m² (2,6 m × 0,9 m × 26 m), spotřebovával 150 kW elektrické energie a jeho vývoj stál 500 000 dolarů.kW elektrické energie a jeho vývoj stál 500 000 dolarů.

Page 15: Vytváření a realizace algoritmů  Algoritmy a datové struktury
Page 16: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Dějiny počítačůDějiny počítačů Druhá generace (1951 až 1965) - použití tranzistorůDruhá generace (1951 až 1965) - použití tranzistorů- UNIVAC byl v roce 1951 prvním sériově vyráběným UNIVAC byl v roce 1951 prvním sériově vyráběným

komerčním počítačem a byl zkonstruován tvůrci počítače komerčním počítačem a byl zkonstruován tvůrci počítače ENIACENIAC

Třetí generace (1965 až 1980)Třetí generace (1965 až 1980) - je charakteristická - je charakteristická použitím integrovaných obvodů, sálové počítačepoužitím integrovaných obvodů, sálové počítače

- Cray-1 (1976) - známý a úspěšný superpočítač- Cray-1 (1976) - známý a úspěšný superpočítač - IBM System 360 - nejznámější počítač třetí generace - IBM System 360 - nejznámější počítač třetí generace

Page 17: Vytváření a realizace algoritmů  Algoritmy a datové struktury

UNIVAC 1 (1951) UNIVAC 1 (1951)

Page 18: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Cray - 1Cray - 1

Page 19: Vytváření a realizace algoritmů  Algoritmy a datové struktury

Dějiny počítačůDějiny počítačů

Čtvrtá generace (od roku 1981) je charakteristická Čtvrtá generace (od roku 1981) je charakteristická mikroprocesory a osobními počítači. mikroprocesory a osobními počítači. Nastává ústup Nastává ústup střediskových počítačů (mainframe) ve prospěch střediskových počítačů (mainframe) ve prospěch pracovních stanicpracovních stanic

- IBM PC 1981, DOS, grafické uživatelské rozhraní – - IBM PC 1981, DOS, grafické uživatelské rozhraní – WindowsWindows

- rozvoj počítačových sítí, internet, distribuované - rozvoj počítačových sítí, internet, distribuované systémy, clustery, multiprocesory.systémy, clustery, multiprocesory.

Page 20: Vytváření a realizace algoritmů  Algoritmy a datové struktury