31
Úvod do programování aneb Do nitra stroje Karel Minařík PŘEDNÁŠKA 3

Úvod do programování 3 (to be continued)

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Úvod do programování 3 (to be continued)

Úvod do programování aneb Do nitra stroje

Karel MinaříkPŘEDNÁŠKA 3

Page 2: Úvod do programování 3 (to be continued)

Úvod do programování

Opakování1

Page 3: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

? Najít pánev? Najít olej1. Nalít olej do pánve2. Zapálit plyn? Čím zapálit plyn3. Vzít vejce4. Rozklepnout vejce o okraj pánve

OK

Fatal Error

Do!ly vejce

Cancel

Page 4: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

JEDNODUCHÝ ALGORITMUS

Nalezení největšího čísla z neuspořádaného seznamu čísel

1. Předpokládejme, že první číslo v seznamu je největší.

2. Podívejme se na postupně na každé zbývající číslo v seznamu. Pokud je větší než dosud největší číslo, zapišme si je.

3. Jakmile jsme prošli všechna čísla, je poslední zapsané číslo největším číslem v  seznamu.

Page 5: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

Počítač nedělá to, co chceme, aby dělal.

Počítač dělá přesně to, co mu řekneme, aby dělal.

Page 6: Úvod do programování 3 (to be continued)

1986 1990 1990 1991 1991 1993 1994 1995 1996 1996 1997 1997 2000 2001 2001 2003 2003 2004

History of Programming Languages

©2004 O’Reilly Media, Inc. O’Reilly logo is a registered trademark of O’Reilly Media, Inc. All other trademarks are property of their respective owners. part#30417

19601954 1965 1970 1975 1980 1985 1990 1995 2000 20022001 2003 2004

For more than half of the fifty years computer programmers have beenwriting code, O’Reilly has provided developers with comprehensive,in-depth technical information. We’ve kept pace with rapidly changingtechnologies as new languages have emerged, developed, andmatured. Whether you want to learn something new or needanswers to tough technical questions, you’ll find what you need in O’Reilly books and on the O’Reilly Network.

This timeline includes fifty of the more than 2500 documented programming languages. It is based on an original diagram createdby Éric Lévénez (www.levenez.com), augmented with suggestionsfrom O’Reilly authors, friends, and conference attendees.

For information and discussion on this poster, go to www.oreilly.com/go/languageposter.

www.oreilly.com

Page 7: Úvod do programování 3 (to be continued)
Page 8: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

ProgramovatelnostProgrammability

Page 9: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

„GENERACE“ PROGRAMOVACÍCH JAZYKU

První generaceStrojový kód: 0 a 1. První počítače: přepínače, nikoliv text. Absolutní výkon. Závislý na hardware. Příklad: 10110000 01100001

Druhá generaceAssembler (assembly language). Závislý na hardware. Příklad: mov al, 61h

Třetí generaceČitelný a snadno zapsatelný lidmi. Většina moderních jazyků. Příklad: let b = c + 2 * d

Čtvrtá generaceReportovací nástroje, SQL (structured query language), domain-specific languages. Navržené pro konkrétní účel.Příklad: SELECT * FROM employees WHERE ORDER BY surname

Pátá generaceSynonymum pro vizuální programování nebo označení vývoje pomocí definic omezení, stroj sám má zkonstruovat algoritmus. Akademické použití.

˚

Page 10: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

PŘÍSTUPY K PROGRAMOVÁNÍ (PARADIGMATA)

Procedurální programováníBud synonymum pro imperativní programování — prostá posloupnost kroků („recept“). Nebo označení pro programování stylem volání procedur (rutina, sub-rutina, funkce). Modularita.Zejména: PHP, Perl

Objektově orientované programováníObjekty, jejich vlastnosti a vztahy (Malý pes štěká na chlapce). Dědičnost, modularita, polymorfismus, zapouzdření.Zejména: Java, Ruby

Funkční programováníNepopisuje kroky algoritmu, ale matematické vztahy. Zejména: Lisp, Erlang

Vizuální programováníVytváření instrukcí a posloupností vizuálně, pomocí grafických reprezentací, nikoliv textem. Zejména: Max/MSP, Apple Automator

´

Page 11: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

Perl, 1987Skriptovací jazyk, práce s textem, knihovny (CPAN), duct-tape of the internet

Java, 1995Objektový, nezávislý na platformě (Write once, run anywhere). Java <applet> běží v internetových prohlížečích.

PHP, 1995Dynamické webové stránky —  snadná integrace, zprovoznění. Masivní rozšíření — tzv. LAMP.

Page 12: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

Page 13: Úvod do programování 3 (to be continued)

— Yukihiro Matsumoto (Matz)

Page 14: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

Přednáška Ruby Design Principleshttp://itc.conversationsnetwork.org/shows/detail1638.html

Page 15: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

„Věřím, že – alespoň do jisté míry – je smyslem života být šťastný.

Na základě tohoto přesvědčení je Ruby navrženo tak, že je

nejenom snadné, ale i zábavné v něm programovat. Ruby vám

umožňuje soustředit se na kreativní stránku programování,

a nepřidělává vám další starosti.“ Yukihiro Matsumoto, předmluva k prvnímu vydání knihy Programming Ruby~

Page 16: Úvod do programování 3 (to be continued)

Úvod do programování

Ruby — Instalace2

Page 17: Úvod do programování 3 (to be continued)
Page 18: Úvod do programování 3 (to be continued)
Page 19: Úvod do programování 3 (to be continued)
Page 20: Úvod do programování 3 (to be continued)
Page 21: Úvod do programování 3 (to be continued)
Page 22: Úvod do programování 3 (to be continued)
Page 23: Úvod do programování 3 (to be continued)
Page 24: Úvod do programování 3 (to be continued)

www.ruby-doc.org/docs/ProgrammingRuby

Page 25: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

VYBAVENÍ

1. Ruby :)

2. Konzole pro přímé zadání kódu

3. Editor

4. Dokumentace (!)

Page 26: Úvod do programování 3 (to be continued)

Úvod do programování

Základní typy a operace3

Page 27: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

ZÁKLADNÍ TYPY A OPERACE

1. Čísla

2. Texty (řetězce)

3. Pole

4. Aritmetické operace

5. Komentáře

6. Smyčky

7. Podmínky

8. Proměnné

Page 28: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

puts 1 + 1

→ 2

puts "1" + "1"

→ "11"

číslovka × písmeno

puts (1 + 1).classputs ("1" + "1").class

Datové typy

Page 29: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

puts 1 + 1

puts "1" + "1"

puts 2 + 2 * 5

puts (2 + 2) * 5

puts "Ahoj" + "Sáro"

puts "Ahoj" + " " + "Sáro"

puts "Ahoj" + 2 (číslo není řetězec)

# puts "Ahoj" + 2 (Tento příkaz nebude Ruby provádět)

puts "Nebudu ve škole zlobit\n" * 10

Aritmetické operace

Page 30: Úvod do programování 3 (to be continued)

Úvod do programování Přednáška 3

200.times do puts "Nebudu ve škole zlobit. "end

1.upto 200 do |i| print "#{i}. Nebudu ve škole zlobit. "endprint "\n-----\n"

… aneb co dělají počítače nejraději

Page 31: Úvod do programování 3 (to be continued)

… to be continued!