SlideShare a Scribd company logo
1 of 44
Treti metai IT VBE su C++

Jonas Blonskis, Vytautas
Bukšnaitis, Renata Burbaitė

Šiauliai 2013

1
Programavimo samprata

"Duomenų struktūros +
algoritmai = programos"

Niklaus Wirth
1934-02-15, Šveicarija

Šiauliai 2013

2
Programavimo kalbų istorija

http://www.levenez.com/lang/

Šiauliai 2013

3
Programavimo kalbų istorija (1)

FORTRAN
(1954)
SimulaI (1964)

ALGOL60 (1960)

C (1971)

C++ (1983)

Pascal (1970)
Object Pascal
(1985)
Delphi (1995)
Delphi2006 (2005)

Šiauliai 2013

4
Programavimo kalbų istorija (2)
C

Cmm
(1992)

C++
Delphi5
(1999)

JavaScript
2.0
(1999)

Oak (1991)
Java1
(1995)
Java2 (v1.2) (1998)

C# (ISO) 2003.04.28
Java2 (v1.5.0)
2004.02.05

Šiauliai 2013

Java 6 Update7
Java2 (v1.4.2_18)
Java2 (v5.0 update 16)
2008.07.11
5
Programavimo kalbų istorija
(3)
Pascal(1970)

C (1971)

Modula (1975)
Modula3(1988)

ISOC (C90)
(1990)

B (1981)

Python (1991)
Python3.0a2 (2007)

Šiauliai 2013

6
Programavimo kalbų istorija (4)
SmallTalk80(1980
SmallTalk(1971)
)
Pascal(1970)

Algol60(1960)
SimulaI(1964)

Ada83(1983)

Python
(1991)

Eiffel2(1988)

Perl4.000 (1991)
C (1991)
 sed (1978)
 awk (1978
 sh (1969)


Lisp (1958)
CLU (1974)

CommonLisp(1984)

Ruby (1993)
Šiauliai 2013

Ruby 1.8.7 (2008)
7
Pirmoji programa
Ada
Lovelace
laikoma
pirmąja
kompiuterių
programuotoja. Ji dirbo kartu su matematiku Charles
Babbage, kai jis kūrė analitinę mašiną. Ada rašė
užrašus, skirtus šiai analitinei mašinai, kuri niekada
nebuvo pagaminta. Šie užrašai pripažįstami kaip pirmoji
programa.
Ada Lovelace buvo poeto Lord Byron dukra. Su Charles
Babbage ji susipažino 1833 m. Babbage buvo pirmasis,
kuris turėjo programuojamo kompiuterio idėją. Šią
idėją suprato Ada Lovelace (pavardė pagal vyrą).
Gruodžio 10 d. – Ados gimimo diena, laikoma
programuotojų diena. Švęskime ją!!!
Šiauliai 2013

8
Asembleris
Asembleriai egzistuoja nuo pat kompiuterių
atsiradimo pradžios. Jie suteikia simbolinius vardus
mašininio kodo eilutėms.
Pavyzdžiui:
add bx, 4
cmp [adr], 3
jmp address
Asembleris naudojamas labai retai, netgi greitų
funkcijų sukūrimui.

Šiauliai 2013

9
Fortran
1954-1958 - FORmula TRANslator.
John Backus ir kiti IBM darbuotojai.
Kalba skirta matematiniams skaičiavimams.
Fortran II (1958) turėjo paprogrames, funkcijas,
ciklus, primityvų for sakinį.
Vardų ilgis buvo ribojamas 6 simboliais.

Šiauliai 2013

10
Lisp
1958-1960 - LISt Processing .
Mac Carthy.
Funkcinė kalba sąrašų apdorojimui.
Pilnai rekursinė kalba.
Nėra skirtumo tarp kodo ir duomenų.

Šiauliai 2013

11
Algol 68

Algol - 1960 / Algol 68 - ALGOrithmic
Language
Apibrėžė tarptautinis kompiuterių mokslo
specialistų simpoziumas.
Tai pirmoji universali nuo kompiuterio
nepriklausoma kalba.
Panaudojo bloko sakinius ir lokalius
kintamuosius bloko viduje. Įgyvendinta ribota
rekursija, nes buvo manoma, kad ji
nenaudinga. Naudojo dinaminius masyvus,
vadinasi vėlesnes kalbos (Pascal, C), kurios
naudojo statinius masyvus dėl efektyvumo,
regresavo.
Turėjo IF THEN ELSE, := priskyrimas, SWITCH
su GO TO operatoriumi, BEGIN, END, WHILE
ciklas.
Algol 60 vis dar buvo orientuotas
matematiniams skaičiavimams. Nauja versija
buvo pradėta 1964 ir užbaigus, pavadinta Algol
Šiauliai 2013
12
68. Ji turėjo =+ priskyrimo ir sudėties
Cobol
Cobol - 1960 - COmmon Business Oriented Language.
Apibrėžė komitetas CODASYL (COnference on DAta
SYsystems Languages). Komitetą globojo JAV
gynybos departamentas.
Cobol – procedūrinė kalba, skirta įmonės valdymui.
Jos programa dalinama į 4 skyrius:
 apibrėžimas,
 aplinka,
 duomenys,
 procedūra.
Ji įvedė RECORD duomenų struktūrą.
Programas dokumentavo jų sintaksė, nes ilgi raktiniai
žodžiai.
Europoje nepaplito, tačiau JAV išgyveno iki šių dienų.
Šiauliai 2013

13
Basic
Basic - 1964 - Beginner’s All-purpose Symbolic
Instruction Code
John Kemeny, Thomas Kurtz.
Pirmoji versija buvo kompiliuojama, vėliau tapo
interaktyvi ir interpretuojama. Kiekviena eilutė turėjo
numerį, kad būtų galima naudoti GOTO.
Pirmieji IBM PC (1981) naudojo Microsoft MS-DOS ir
jos interpretuojamą Basic. 1982 Microsoft sukūrė
kompiliuojamą Basic. Toje pačioje dekadoje Pascal ir C
pakeitė Basic.
Microsoft iki šiol naudoja Basic. Visual Basic –
programoms, ASP – internetui, programose naudojama
papildoma kalba (macro komandos) – kuri taip pat yra
Basic.
Šiauliai 2013
14
Simula 67
Simula 67 - 1962-67
Ole-Johan Dahl, Kristan Nygaard
Simula projektas buvo pradėtas 1962. Tikslas – sukurti
priemonę diskretinių įvykių sistemos valdymui.
Pradžioje tai buvo Algol išplėtimas. Naudojama oro
uostų, transporto ir kitų socialinių sistemų valdymui.
Tai buvo specializuota priemonė.
1966 buvo nuspręsta sukurti universalią kalbą. Ši kalba
įvedė klases, paveldimumą, objektus. Klasės leido
sujungti funkcijas (metodus) su objektais.

Šiauliai 2013

15
PL/1
PL/1 - 1965 - Programming Language number One –
Pradinis pavadinimas NPL (New Programming Language)
IBM
Tai buvo bendros paskirties ir modulinė kalba.
Baziniai žodžiai buvo rezervuoti tik tam kontekstui, kur
buvo naudojami kaip baziniai žodžiai.
Labiau nepriklausoma nuo aparatūros, nei ankstesnės
kalbos. Tokie buvo tipai: fixed, real, complex, character, bit,
bin, pointer, picture, file, etc.... Duomenys turėjo
numatytuosius atributus, kurie priklausė nuo konteksto.
Buvo sudėtiniai duomenų tipai: masyvas, struktūra, unija ir
jų kombinacijos.
IF THEN ir SELECT .. WHEN .. OTHERWISE – sąlyginės
struktūros. DO variacijos leido įvairius ciklus.
Kintamųjų gyvavimo klasės: automatinė, statinė, (visoje
programoje), valdoma, bazinė. Įvestas išimčių valdymas.
Šiauliai 2013

16
Pascal
Pascal - 1970 – pavadinta prancūzų matematiko Blaise
Pascal vardu.
Niklaus Wirth.
Kalba, skirta kompiliatorių projektavimo palengvinimui ir
mokymui, skiriant dėmesį struktūriniam programavimui.
UCSD Pascal buvo parašytas mikro kompiuteriams. Jis
kompiliuodavo programas į P kodą, kuris buvo
pernešamas ir interpretuojamas (kaip vėliau Java). Jis
turėjo pilną derinimo aplinką, vėliau panaudotą Turbo
Pascal.
Kai 1983 pasirodė Turbo Pascal (Anders Hejlsberg),
greitas ir su pilna aplinka, kalba turėjo didelį pasisekimą ir
naudojama iki šiol.
Šiauliai 2013

17
Smalltalk
Smalltalk - 1972
Alan Kay and the Software Concept Group

Tai pilnai objektinė kalba, kuri visuomet vykdoma
grafinėje aplinkoje su langais, su pele ir t.t.

Šiauliai 2013

18
C
C - 1973 - C yra B (čia neminėta) įpėdinis , o B yra BCPL
(čia neminėta) įpėdinis.
Dennis Ritchie (kalbą vystė iki 1980 metų).
Ji pradžioje buvo skirta UNIX sistemos programavimui. Bet
dėl savo mobilumo ir greitumo ji greitai tapo universalia.
Aparatinės įrangos vystymas inicijavo C kalbos kūrimą.
Bcpl neturėjo tipų (kaip Php ar kitos šiuolaikinės skriptų
kalbos).
Paskelbimai int i, char b buvo sukurti C. Kiti tipai pasirodė
vėliau.
+= operatorius atėjo iš Algol 68.
Bcpl naudojo bloko sakinį su skliaustais (* ir *). C kalba
panaudojo { ir }.
++ jau buvo B kalboje.
"include" atėjo iš PL/I. Šiauliai 2013
19
Prolog
Prolog - 1970+
A. Colmerauer, D. Roussel
Buvo vystoma tuo pat metu Prancūzijoje ir Škotijoje.
Įvedė loginį programavimą.
Programą sudaro Horn sakiniai.
Prolog yra deklaratyvioji kalba.

Šiauliai 2013

20
SQL
SQL - 1970+ - Standard Query Language
IBM

Reliacinių duomenų bazių užklausų kalba.
Šiuo metu labai populiari. Tai kalba, kurioje nėra
išreikšto ciklo sakinio, nėra išreikšto sąlygos sakinio.

Šiauliai 2013

21
Ada
Ada - 1980+ - pavadinta Ada Byron de Lovelace garbei
(pirmoji pasaulio programuotoja).
Sukurta JAV gynybos departamento užsakymu, neturėjo
tokios sėkmės kaip Cobol.
Įkvėpta Pascal ir Algol, bet sudėtingesnė.
Įvedė algoritmų bendrumą (GENERICITY) ir primityvų
objektinį programavimą. Objektine tapo vėliau.
Įvedė paketus, kurie yra nepriklausomi moduliai.

Šiauliai 2013

22
C++
C++ - 1981-1986
Bjarne Stroustrup

C objektinė versija.
Įvedė operatorių užklojimą, vienos eilutės komentarus
(//), kurie jau buvo BCPL.
Buvo įgyvendintas daugybinis paveldimumas ir šablonai
(nepriklausomumas nuo tipų) tiek funkcijoms, tiek ir
klasėms.
Šiauliai 2013

23
Objektinė C
Objective C – 1984.
Brad Cox
Kita C kalbos objektinė versija.
Nėra operatorių užklojimo.
Buvo naudota NextStep operacinės sistemos parašymui
Next kompiuteryje.
Šiuo metu kalba įgavo antrą kvėpavimą – plačiai
naudojama iPhone programavimui.

Šiauliai 2013

24
Perl
Perl - 1987 - Practical Extracting and Report Language
Larry Wall
Buvo skirta, kad pakeistų UNIX komandinės eilutės
kalbą. Išlaikė tą pačią nemalonią sintaksę. Naudojama
pagrindinai sistemų administravimui ir CGI skriptų
rašymui.
Turi sąrašus ir asociatyvius masyvus, kuriuos galima
indeksuoti bet kokio tipo kintamaisiais.
FOREACH ciklas leidžia peržiūrėti sąrašus.
Šiauliai 2013

25
Python
Python - 1991 – Pagal anglišką TV kiną "Monty Python
Flying Circus"
Guido Van Rossum
Skriptų kalba su dinaminiais tipais. Skirta pakeisti Perl
kalbą.
Išplečiama C bibliotekomis ir objektinė.
Sluoksnio operatorius [a : b] leidžia ištraukti iš sąrašo
jo dalį.
Yra versija, kuri kompiliuojama į Java baitinį kodą,
gali būti pernešama į .NET platformą.
Naudojama kai kuriose pasaulio (ir Lietuvos)
mokyklose.
Šiauliai 2013

26
Java
Java - 1994
James Gosling ir kiti Sun firmos
programuotojai.
Sugalvota 1991 m. kaip interaktyvi kalba,
pavadinta Oak, bet sėkmės neturėjo.
1994 m. perrašyta internetui ir pervadinta
Java.
Nuo 1995 m. naršyklės gali vykdyti applet’us.
Java yra objektinė kalba, artima C++. Ji
kompiliuojama į baitinį kodą, kuris gali būti
interpretuotas bet kuriame kompiuteryje.
Ji paprastesnė, nei C++: vienas failas – viena
klasė, automatinis atminties valdymas, nėra
rodyklių, nėra daugybinio paveldėjimo, nėra
operatorių užklojimo, bet įgyvendintas
Šiauliai 2013
27
lygiagretus programavimas.
PHP
PHP - 1995 - Personal Home Pages Hypertext Processor
Rasmus Lerdorf
Daugiaplatformė skriptų kalba, įterpiama į HTML.
Artima C, bet be tipų. Kintamieji pradedami $ simboliu,
kaip UNIX aplinkoje ar Perl kalboje.
Interpretorius skaito HTML puslapį, turintį PHP kodą,
ir suformuoja švarų HTML puslapį.
Funkcijų biblioteka leidžia kurti dinaminius puslapius.
Microsoft Windows sistemoje naudoja alternatyvią
kalbą ASP, artimą Basic.

Šiauliai 2013

28
JavaScript
JavaScript - 1995 (iš pradžių pavadinta LiveScript)
Brendan Eich Netscape firmoje
Skriptų kalba, įterpianti procedūrinį kodą į web’o
puslapius.
Gali naudoti kiti pritaikymai, pavyzdžiui XML stiliaus
kalbos.
Sintaksė, kaip ir C kalbos, bet kintamieji be tipų.
Web’o elementai (langai, lentelės ir kita) išrenkami per
dokumento objektinį modelį.

Šiauliai 2013

29
C#
C# - 2000 - (C-sharp)
Anders Hejlsberg / Microsoft
Tai pagrindinė .NET platformos kalba, programinės
įrangos, skirtos internetui, kūrimui.
Kaip ir Java, išlaiko C kalbos sintaksę. su tais pačiais
patobulinimais: šiukšlių surinkimas, nėra rodyklių,
lygiagretumas, ..
C# kompiliuoja į tarpinę kalbą. Platformos originalumas
– leidžia įvairias kalbas kompiliuoti į tarpinę kalbą ir
apjungti rezultatus.
Yra operatorių užklojimas, yra foreach masyvų
peržiūrai.
Šiauliai 2013

30
Programavimo kalbų populiarumas
TIOBE Programming Community
Index for March 2012
http://www.tiobe.com/index.php/conten
t/paperinfo/tpci/index.html

Šiauliai 2013

31
Programavimo kalbos
Position Position
Aug
Aug
2013
2012

Programming
Language

Ratings
Aug
2013

Delta
Aug
2012

1

2

Java

15.978
%

-0.37%

2

1

C

15.974
%

-2.96%

3

4

C++

4

3

Objective-C

5

6

PHP

6

5

C#

6.117%

-0.47%

7

7

(Visual) Basic

3.873%

-1.46%

8

8

Python

3.603%

-0.27%

9

11

JavaScript

2.093% +0.73%

10

10

uby

2.067% +0.38%

Šiauliai

P175B117
2013 T01

9.371% +0.04%
8.082%

-1.46%

6.694% +1.17%

32

C
grupės
kalbos
≈55%

32
Šiauliai 2013

33
Šiauliai 2013

34
Šiauliai 2013

35
Šiauliai 2013

36
IT VBE

Šiauliai 2013

37
Šiauliai 2013

38
Šiauliai 2013

39
Šiauliai 2013

40
Programavimas

Šiauliai 2013

41
Reikalavimai
Reikalavimai
mokytojui
mokytojui

privalo gerai žinoti matematinius
uždavinių sprendimo metodus,
mokėti gerai programuoti,

Šiauliai 2013

42

42
Reikalavimai
Reikalavimai
mokiniui
mokiniui

motyvacija
matematinis mąstymas
algoritminis mąstymas
gebėjimas analizuoti

Šiauliai 2013

43

43
Programavimo kalba –
tik įrankis

Šiauliai 2013

44

44

More Related Content

More from Lietuvos kompiuterininkų sąjunga

E..Zikariene. Priziurima aplinkos duomenu klasifikacija, pagrista erdviniais ...
E..Zikariene. Priziurima aplinkos duomenu klasifikacija, pagrista erdviniais ...E..Zikariene. Priziurima aplinkos duomenu klasifikacija, pagrista erdviniais ...
E..Zikariene. Priziurima aplinkos duomenu klasifikacija, pagrista erdviniais ...Lietuvos kompiuterininkų sąjunga
 
V. Marcinkevičius. ARIS dirbtinio intelekto kurso mokymosi medžiaga, www.aris...
V. Marcinkevičius. ARIS dirbtinio intelekto kurso mokymosi medžiaga, www.aris...V. Marcinkevičius. ARIS dirbtinio intelekto kurso mokymosi medžiaga, www.aris...
V. Marcinkevičius. ARIS dirbtinio intelekto kurso mokymosi medžiaga, www.aris...Lietuvos kompiuterininkų sąjunga
 
Jolanta Navickaitė. Skaitmeninė kompetencija ir informatikos naujovės bendraj...
Jolanta Navickaitė. Skaitmeninė kompetencija ir informatikos naujovės bendraj...Jolanta Navickaitė. Skaitmeninė kompetencija ir informatikos naujovės bendraj...
Jolanta Navickaitė. Skaitmeninė kompetencija ir informatikos naujovės bendraj...Lietuvos kompiuterininkų sąjunga
 
Romas Baronas. Tarpdisciplininiai moksliniai tyrimai – galimybė atsiverti ir ...
Romas Baronas. Tarpdisciplininiai moksliniai tyrimai – galimybė atsiverti ir ...Romas Baronas. Tarpdisciplininiai moksliniai tyrimai – galimybė atsiverti ir ...
Romas Baronas. Tarpdisciplininiai moksliniai tyrimai – galimybė atsiverti ir ...Lietuvos kompiuterininkų sąjunga
 
Monika Danilovaitė. Informatikos metodų taikymas balso klosčių būklei įvertin...
Monika Danilovaitė. Informatikos metodų taikymas balso klosčių būklei įvertin...Monika Danilovaitė. Informatikos metodų taikymas balso klosčių būklei įvertin...
Monika Danilovaitė. Informatikos metodų taikymas balso klosčių būklei įvertin...Lietuvos kompiuterininkų sąjunga
 
Gražina Korvel. Lombardo šnekos ir jos akustinių ypatybių analizė
Gražina Korvel. Lombardo šnekos ir jos akustinių ypatybių analizėGražina Korvel. Lombardo šnekos ir jos akustinių ypatybių analizė
Gražina Korvel. Lombardo šnekos ir jos akustinių ypatybių analizėLietuvos kompiuterininkų sąjunga
 
Gediminas Navickas. Ar mes visi vienodai suvokiame sintetinę kalbą?
Gediminas Navickas. Ar mes visi vienodai suvokiame sintetinę kalbą?Gediminas Navickas. Ar mes visi vienodai suvokiame sintetinę kalbą?
Gediminas Navickas. Ar mes visi vienodai suvokiame sintetinę kalbą?Lietuvos kompiuterininkų sąjunga
 
Tomas Kasperavičius. Robotikos realizacija edukacinėje erdvėje
Tomas Kasperavičius. Robotikos realizacija edukacinėje erdvėjeTomas Kasperavičius. Robotikos realizacija edukacinėje erdvėje
Tomas Kasperavičius. Robotikos realizacija edukacinėje erdvėjeLietuvos kompiuterininkų sąjunga
 
Paulius Šakalys. Robotika: sąvoka, rūšys, pritaikymas edukacinėje erdvėje
Paulius Šakalys. Robotika: sąvoka, rūšys, pritaikymas edukacinėje erdvėjePaulius Šakalys. Robotika: sąvoka, rūšys, pritaikymas edukacinėje erdvėje
Paulius Šakalys. Robotika: sąvoka, rūšys, pritaikymas edukacinėje erdvėjeLietuvos kompiuterininkų sąjunga
 
Remigijus Paulavičius. Blokų grandinės – tai gerokai daugiau nei tik skaitmen...
Remigijus Paulavičius. Blokų grandinės – tai gerokai daugiau nei tik skaitmen...Remigijus Paulavičius. Blokų grandinės – tai gerokai daugiau nei tik skaitmen...
Remigijus Paulavičius. Blokų grandinės – tai gerokai daugiau nei tik skaitmen...Lietuvos kompiuterininkų sąjunga
 
Romualdas Krukauskas. Nesistemiško ir decentralizuoto valstybės informacinių ...
Romualdas Krukauskas. Nesistemiško ir decentralizuoto valstybės informacinių ...Romualdas Krukauskas. Nesistemiško ir decentralizuoto valstybės informacinių ...
Romualdas Krukauskas. Nesistemiško ir decentralizuoto valstybės informacinių ...Lietuvos kompiuterininkų sąjunga
 
Eimutis Karciauskas. Programavimo pamokų motyvacijos ir efektyvumo gerinimo m...
Eimutis Karciauskas. Programavimo pamokų motyvacijos ir efektyvumo gerinimo m...Eimutis Karciauskas. Programavimo pamokų motyvacijos ir efektyvumo gerinimo m...
Eimutis Karciauskas. Programavimo pamokų motyvacijos ir efektyvumo gerinimo m...Lietuvos kompiuterininkų sąjunga
 
Andrius Plečkaitis. IT specialistų deficitas ir Lietuvos ateitis
Andrius Plečkaitis. IT specialistų deficitas ir Lietuvos ateitisAndrius Plečkaitis. IT specialistų deficitas ir Lietuvos ateitis
Andrius Plečkaitis. IT specialistų deficitas ir Lietuvos ateitisLietuvos kompiuterininkų sąjunga
 

More from Lietuvos kompiuterininkų sąjunga (20)

G. Mezetis. Skaimenines valstybes link
G. Mezetis. Skaimenines valstybes link G. Mezetis. Skaimenines valstybes link
G. Mezetis. Skaimenines valstybes link
 
E..Zikariene. Priziurima aplinkos duomenu klasifikacija, pagrista erdviniais ...
E..Zikariene. Priziurima aplinkos duomenu klasifikacija, pagrista erdviniais ...E..Zikariene. Priziurima aplinkos duomenu klasifikacija, pagrista erdviniais ...
E..Zikariene. Priziurima aplinkos duomenu klasifikacija, pagrista erdviniais ...
 
V. Jakuška. Ką reikėtu žinoti apie .lt domeną?
V. Jakuška. Ką reikėtu žinoti apie .lt domeną?V. Jakuška. Ką reikėtu žinoti apie .lt domeną?
V. Jakuška. Ką reikėtu žinoti apie .lt domeną?
 
V. Marcinkevičius. ARIS dirbtinio intelekto kurso mokymosi medžiaga, www.aris...
V. Marcinkevičius. ARIS dirbtinio intelekto kurso mokymosi medžiaga, www.aris...V. Marcinkevičius. ARIS dirbtinio intelekto kurso mokymosi medžiaga, www.aris...
V. Marcinkevičius. ARIS dirbtinio intelekto kurso mokymosi medžiaga, www.aris...
 
Jolanta Navickaitė. Skaitmeninė kompetencija ir informatikos naujovės bendraj...
Jolanta Navickaitė. Skaitmeninė kompetencija ir informatikos naujovės bendraj...Jolanta Navickaitė. Skaitmeninė kompetencija ir informatikos naujovės bendraj...
Jolanta Navickaitė. Skaitmeninė kompetencija ir informatikos naujovės bendraj...
 
Raimundas Matylevičius. Asmens duomenų valdymas
Raimundas Matylevičius. Asmens duomenų valdymasRaimundas Matylevičius. Asmens duomenų valdymas
Raimundas Matylevičius. Asmens duomenų valdymas
 
Romas Baronas. Tarpdisciplininiai moksliniai tyrimai – galimybė atsiverti ir ...
Romas Baronas. Tarpdisciplininiai moksliniai tyrimai – galimybė atsiverti ir ...Romas Baronas. Tarpdisciplininiai moksliniai tyrimai – galimybė atsiverti ir ...
Romas Baronas. Tarpdisciplininiai moksliniai tyrimai – galimybė atsiverti ir ...
 
Monika Danilovaitė. Informatikos metodų taikymas balso klosčių būklei įvertin...
Monika Danilovaitė. Informatikos metodų taikymas balso klosčių būklei įvertin...Monika Danilovaitė. Informatikos metodų taikymas balso klosčių būklei įvertin...
Monika Danilovaitė. Informatikos metodų taikymas balso klosčių būklei įvertin...
 
Rima Šiaulienė. IT VBE 2021 teksto maketavimo užduotis
Rima Šiaulienė. IT VBE 2021 teksto maketavimo užduotisRima Šiaulienė. IT VBE 2021 teksto maketavimo užduotis
Rima Šiaulienė. IT VBE 2021 teksto maketavimo užduotis
 
Gražina Korvel. Lombardo šnekos ir jos akustinių ypatybių analizė
Gražina Korvel. Lombardo šnekos ir jos akustinių ypatybių analizėGražina Korvel. Lombardo šnekos ir jos akustinių ypatybių analizė
Gražina Korvel. Lombardo šnekos ir jos akustinių ypatybių analizė
 
Gediminas Navickas. Ar mes visi vienodai suvokiame sintetinę kalbą?
Gediminas Navickas. Ar mes visi vienodai suvokiame sintetinę kalbą?Gediminas Navickas. Ar mes visi vienodai suvokiame sintetinę kalbą?
Gediminas Navickas. Ar mes visi vienodai suvokiame sintetinę kalbą?
 
Eugenijus Valavičius. Hiperteksto kelias
Eugenijus Valavičius. Hiperteksto keliasEugenijus Valavičius. Hiperteksto kelias
Eugenijus Valavičius. Hiperteksto kelias
 
Tomas Kasperavičius. Robotikos realizacija edukacinėje erdvėje
Tomas Kasperavičius. Robotikos realizacija edukacinėje erdvėjeTomas Kasperavičius. Robotikos realizacija edukacinėje erdvėje
Tomas Kasperavičius. Robotikos realizacija edukacinėje erdvėje
 
Paulius Šakalys. Robotika: sąvoka, rūšys, pritaikymas edukacinėje erdvėje
Paulius Šakalys. Robotika: sąvoka, rūšys, pritaikymas edukacinėje erdvėjePaulius Šakalys. Robotika: sąvoka, rūšys, pritaikymas edukacinėje erdvėje
Paulius Šakalys. Robotika: sąvoka, rūšys, pritaikymas edukacinėje erdvėje
 
Olga Kurasova. Dirbtinis intelektas ir neuroniniai tinklai
Olga Kurasova. Dirbtinis intelektas ir neuroniniai tinklaiOlga Kurasova. Dirbtinis intelektas ir neuroniniai tinklai
Olga Kurasova. Dirbtinis intelektas ir neuroniniai tinklai
 
Remigijus Paulavičius. Blokų grandinės – tai gerokai daugiau nei tik skaitmen...
Remigijus Paulavičius. Blokų grandinės – tai gerokai daugiau nei tik skaitmen...Remigijus Paulavičius. Blokų grandinės – tai gerokai daugiau nei tik skaitmen...
Remigijus Paulavičius. Blokų grandinės – tai gerokai daugiau nei tik skaitmen...
 
Romualdas Krukauskas. Nesistemiško ir decentralizuoto valstybės informacinių ...
Romualdas Krukauskas. Nesistemiško ir decentralizuoto valstybės informacinių ...Romualdas Krukauskas. Nesistemiško ir decentralizuoto valstybės informacinių ...
Romualdas Krukauskas. Nesistemiško ir decentralizuoto valstybės informacinių ...
 
Eimutis Karciauskas. Programavimo pamokų motyvacijos ir efektyvumo gerinimo m...
Eimutis Karciauskas. Programavimo pamokų motyvacijos ir efektyvumo gerinimo m...Eimutis Karciauskas. Programavimo pamokų motyvacijos ir efektyvumo gerinimo m...
Eimutis Karciauskas. Programavimo pamokų motyvacijos ir efektyvumo gerinimo m...
 
Andrius Plečkaitis. IT specialistų deficitas ir Lietuvos ateitis
Andrius Plečkaitis. IT specialistų deficitas ir Lietuvos ateitisAndrius Plečkaitis. IT specialistų deficitas ir Lietuvos ateitis
Andrius Plečkaitis. IT specialistų deficitas ir Lietuvos ateitis
 
Alina Dėmenienė. Pagrindiniai skirtumai tarp C++ ir Python
Alina Dėmenienė. Pagrindiniai skirtumai tarp C++ ir PythonAlina Dėmenienė. Pagrindiniai skirtumai tarp C++ ir Python
Alina Dėmenienė. Pagrindiniai skirtumai tarp C++ ir Python
 

Blonskis, Jonas ; Bukšnaitis, Vytautas ; Burbaitė Renata „Informacinių technologijų valstybinis brandos egzaminas: treti metai su C++ programavimo kalba“ (KTU)

  • 1. Treti metai IT VBE su C++ Jonas Blonskis, Vytautas Bukšnaitis, Renata Burbaitė Šiauliai 2013 1
  • 2. Programavimo samprata "Duomenų struktūros + algoritmai = programos" Niklaus Wirth 1934-02-15, Šveicarija Šiauliai 2013 2
  • 4. Programavimo kalbų istorija (1) FORTRAN (1954) SimulaI (1964) ALGOL60 (1960) C (1971) C++ (1983) Pascal (1970) Object Pascal (1985) Delphi (1995) Delphi2006 (2005) Šiauliai 2013 4
  • 5. Programavimo kalbų istorija (2) C Cmm (1992) C++ Delphi5 (1999) JavaScript 2.0 (1999) Oak (1991) Java1 (1995) Java2 (v1.2) (1998) C# (ISO) 2003.04.28 Java2 (v1.5.0) 2004.02.05 Šiauliai 2013 Java 6 Update7 Java2 (v1.4.2_18) Java2 (v5.0 update 16) 2008.07.11 5
  • 6. Programavimo kalbų istorija (3) Pascal(1970) C (1971) Modula (1975) Modula3(1988) ISOC (C90) (1990) B (1981) Python (1991) Python3.0a2 (2007) Šiauliai 2013 6
  • 7. Programavimo kalbų istorija (4) SmallTalk80(1980 SmallTalk(1971) ) Pascal(1970) Algol60(1960) SimulaI(1964) Ada83(1983) Python (1991) Eiffel2(1988) Perl4.000 (1991) C (1991)  sed (1978)  awk (1978  sh (1969)  Lisp (1958) CLU (1974) CommonLisp(1984) Ruby (1993) Šiauliai 2013 Ruby 1.8.7 (2008) 7
  • 8. Pirmoji programa Ada Lovelace laikoma pirmąja kompiuterių programuotoja. Ji dirbo kartu su matematiku Charles Babbage, kai jis kūrė analitinę mašiną. Ada rašė užrašus, skirtus šiai analitinei mašinai, kuri niekada nebuvo pagaminta. Šie užrašai pripažįstami kaip pirmoji programa. Ada Lovelace buvo poeto Lord Byron dukra. Su Charles Babbage ji susipažino 1833 m. Babbage buvo pirmasis, kuris turėjo programuojamo kompiuterio idėją. Šią idėją suprato Ada Lovelace (pavardė pagal vyrą). Gruodžio 10 d. – Ados gimimo diena, laikoma programuotojų diena. Švęskime ją!!! Šiauliai 2013 8
  • 9. Asembleris Asembleriai egzistuoja nuo pat kompiuterių atsiradimo pradžios. Jie suteikia simbolinius vardus mašininio kodo eilutėms. Pavyzdžiui: add bx, 4 cmp [adr], 3 jmp address Asembleris naudojamas labai retai, netgi greitų funkcijų sukūrimui. Šiauliai 2013 9
  • 10. Fortran 1954-1958 - FORmula TRANslator. John Backus ir kiti IBM darbuotojai. Kalba skirta matematiniams skaičiavimams. Fortran II (1958) turėjo paprogrames, funkcijas, ciklus, primityvų for sakinį. Vardų ilgis buvo ribojamas 6 simboliais. Šiauliai 2013 10
  • 11. Lisp 1958-1960 - LISt Processing . Mac Carthy. Funkcinė kalba sąrašų apdorojimui. Pilnai rekursinė kalba. Nėra skirtumo tarp kodo ir duomenų. Šiauliai 2013 11
  • 12. Algol 68 Algol - 1960 / Algol 68 - ALGOrithmic Language Apibrėžė tarptautinis kompiuterių mokslo specialistų simpoziumas. Tai pirmoji universali nuo kompiuterio nepriklausoma kalba. Panaudojo bloko sakinius ir lokalius kintamuosius bloko viduje. Įgyvendinta ribota rekursija, nes buvo manoma, kad ji nenaudinga. Naudojo dinaminius masyvus, vadinasi vėlesnes kalbos (Pascal, C), kurios naudojo statinius masyvus dėl efektyvumo, regresavo. Turėjo IF THEN ELSE, := priskyrimas, SWITCH su GO TO operatoriumi, BEGIN, END, WHILE ciklas. Algol 60 vis dar buvo orientuotas matematiniams skaičiavimams. Nauja versija buvo pradėta 1964 ir užbaigus, pavadinta Algol Šiauliai 2013 12 68. Ji turėjo =+ priskyrimo ir sudėties
  • 13. Cobol Cobol - 1960 - COmmon Business Oriented Language. Apibrėžė komitetas CODASYL (COnference on DAta SYsystems Languages). Komitetą globojo JAV gynybos departamentas. Cobol – procedūrinė kalba, skirta įmonės valdymui. Jos programa dalinama į 4 skyrius:  apibrėžimas,  aplinka,  duomenys,  procedūra. Ji įvedė RECORD duomenų struktūrą. Programas dokumentavo jų sintaksė, nes ilgi raktiniai žodžiai. Europoje nepaplito, tačiau JAV išgyveno iki šių dienų. Šiauliai 2013 13
  • 14. Basic Basic - 1964 - Beginner’s All-purpose Symbolic Instruction Code John Kemeny, Thomas Kurtz. Pirmoji versija buvo kompiliuojama, vėliau tapo interaktyvi ir interpretuojama. Kiekviena eilutė turėjo numerį, kad būtų galima naudoti GOTO. Pirmieji IBM PC (1981) naudojo Microsoft MS-DOS ir jos interpretuojamą Basic. 1982 Microsoft sukūrė kompiliuojamą Basic. Toje pačioje dekadoje Pascal ir C pakeitė Basic. Microsoft iki šiol naudoja Basic. Visual Basic – programoms, ASP – internetui, programose naudojama papildoma kalba (macro komandos) – kuri taip pat yra Basic. Šiauliai 2013 14
  • 15. Simula 67 Simula 67 - 1962-67 Ole-Johan Dahl, Kristan Nygaard Simula projektas buvo pradėtas 1962. Tikslas – sukurti priemonę diskretinių įvykių sistemos valdymui. Pradžioje tai buvo Algol išplėtimas. Naudojama oro uostų, transporto ir kitų socialinių sistemų valdymui. Tai buvo specializuota priemonė. 1966 buvo nuspręsta sukurti universalią kalbą. Ši kalba įvedė klases, paveldimumą, objektus. Klasės leido sujungti funkcijas (metodus) su objektais. Šiauliai 2013 15
  • 16. PL/1 PL/1 - 1965 - Programming Language number One – Pradinis pavadinimas NPL (New Programming Language) IBM Tai buvo bendros paskirties ir modulinė kalba. Baziniai žodžiai buvo rezervuoti tik tam kontekstui, kur buvo naudojami kaip baziniai žodžiai. Labiau nepriklausoma nuo aparatūros, nei ankstesnės kalbos. Tokie buvo tipai: fixed, real, complex, character, bit, bin, pointer, picture, file, etc.... Duomenys turėjo numatytuosius atributus, kurie priklausė nuo konteksto. Buvo sudėtiniai duomenų tipai: masyvas, struktūra, unija ir jų kombinacijos. IF THEN ir SELECT .. WHEN .. OTHERWISE – sąlyginės struktūros. DO variacijos leido įvairius ciklus. Kintamųjų gyvavimo klasės: automatinė, statinė, (visoje programoje), valdoma, bazinė. Įvestas išimčių valdymas. Šiauliai 2013 16
  • 17. Pascal Pascal - 1970 – pavadinta prancūzų matematiko Blaise Pascal vardu. Niklaus Wirth. Kalba, skirta kompiliatorių projektavimo palengvinimui ir mokymui, skiriant dėmesį struktūriniam programavimui. UCSD Pascal buvo parašytas mikro kompiuteriams. Jis kompiliuodavo programas į P kodą, kuris buvo pernešamas ir interpretuojamas (kaip vėliau Java). Jis turėjo pilną derinimo aplinką, vėliau panaudotą Turbo Pascal. Kai 1983 pasirodė Turbo Pascal (Anders Hejlsberg), greitas ir su pilna aplinka, kalba turėjo didelį pasisekimą ir naudojama iki šiol. Šiauliai 2013 17
  • 18. Smalltalk Smalltalk - 1972 Alan Kay and the Software Concept Group Tai pilnai objektinė kalba, kuri visuomet vykdoma grafinėje aplinkoje su langais, su pele ir t.t. Šiauliai 2013 18
  • 19. C C - 1973 - C yra B (čia neminėta) įpėdinis , o B yra BCPL (čia neminėta) įpėdinis. Dennis Ritchie (kalbą vystė iki 1980 metų). Ji pradžioje buvo skirta UNIX sistemos programavimui. Bet dėl savo mobilumo ir greitumo ji greitai tapo universalia. Aparatinės įrangos vystymas inicijavo C kalbos kūrimą. Bcpl neturėjo tipų (kaip Php ar kitos šiuolaikinės skriptų kalbos). Paskelbimai int i, char b buvo sukurti C. Kiti tipai pasirodė vėliau. += operatorius atėjo iš Algol 68. Bcpl naudojo bloko sakinį su skliaustais (* ir *). C kalba panaudojo { ir }. ++ jau buvo B kalboje. "include" atėjo iš PL/I. Šiauliai 2013 19
  • 20. Prolog Prolog - 1970+ A. Colmerauer, D. Roussel Buvo vystoma tuo pat metu Prancūzijoje ir Škotijoje. Įvedė loginį programavimą. Programą sudaro Horn sakiniai. Prolog yra deklaratyvioji kalba. Šiauliai 2013 20
  • 21. SQL SQL - 1970+ - Standard Query Language IBM Reliacinių duomenų bazių užklausų kalba. Šiuo metu labai populiari. Tai kalba, kurioje nėra išreikšto ciklo sakinio, nėra išreikšto sąlygos sakinio. Šiauliai 2013 21
  • 22. Ada Ada - 1980+ - pavadinta Ada Byron de Lovelace garbei (pirmoji pasaulio programuotoja). Sukurta JAV gynybos departamento užsakymu, neturėjo tokios sėkmės kaip Cobol. Įkvėpta Pascal ir Algol, bet sudėtingesnė. Įvedė algoritmų bendrumą (GENERICITY) ir primityvų objektinį programavimą. Objektine tapo vėliau. Įvedė paketus, kurie yra nepriklausomi moduliai. Šiauliai 2013 22
  • 23. C++ C++ - 1981-1986 Bjarne Stroustrup C objektinė versija. Įvedė operatorių užklojimą, vienos eilutės komentarus (//), kurie jau buvo BCPL. Buvo įgyvendintas daugybinis paveldimumas ir šablonai (nepriklausomumas nuo tipų) tiek funkcijoms, tiek ir klasėms. Šiauliai 2013 23
  • 24. Objektinė C Objective C – 1984. Brad Cox Kita C kalbos objektinė versija. Nėra operatorių užklojimo. Buvo naudota NextStep operacinės sistemos parašymui Next kompiuteryje. Šiuo metu kalba įgavo antrą kvėpavimą – plačiai naudojama iPhone programavimui. Šiauliai 2013 24
  • 25. Perl Perl - 1987 - Practical Extracting and Report Language Larry Wall Buvo skirta, kad pakeistų UNIX komandinės eilutės kalbą. Išlaikė tą pačią nemalonią sintaksę. Naudojama pagrindinai sistemų administravimui ir CGI skriptų rašymui. Turi sąrašus ir asociatyvius masyvus, kuriuos galima indeksuoti bet kokio tipo kintamaisiais. FOREACH ciklas leidžia peržiūrėti sąrašus. Šiauliai 2013 25
  • 26. Python Python - 1991 – Pagal anglišką TV kiną "Monty Python Flying Circus" Guido Van Rossum Skriptų kalba su dinaminiais tipais. Skirta pakeisti Perl kalbą. Išplečiama C bibliotekomis ir objektinė. Sluoksnio operatorius [a : b] leidžia ištraukti iš sąrašo jo dalį. Yra versija, kuri kompiliuojama į Java baitinį kodą, gali būti pernešama į .NET platformą. Naudojama kai kuriose pasaulio (ir Lietuvos) mokyklose. Šiauliai 2013 26
  • 27. Java Java - 1994 James Gosling ir kiti Sun firmos programuotojai. Sugalvota 1991 m. kaip interaktyvi kalba, pavadinta Oak, bet sėkmės neturėjo. 1994 m. perrašyta internetui ir pervadinta Java. Nuo 1995 m. naršyklės gali vykdyti applet’us. Java yra objektinė kalba, artima C++. Ji kompiliuojama į baitinį kodą, kuris gali būti interpretuotas bet kuriame kompiuteryje. Ji paprastesnė, nei C++: vienas failas – viena klasė, automatinis atminties valdymas, nėra rodyklių, nėra daugybinio paveldėjimo, nėra operatorių užklojimo, bet įgyvendintas Šiauliai 2013 27 lygiagretus programavimas.
  • 28. PHP PHP - 1995 - Personal Home Pages Hypertext Processor Rasmus Lerdorf Daugiaplatformė skriptų kalba, įterpiama į HTML. Artima C, bet be tipų. Kintamieji pradedami $ simboliu, kaip UNIX aplinkoje ar Perl kalboje. Interpretorius skaito HTML puslapį, turintį PHP kodą, ir suformuoja švarų HTML puslapį. Funkcijų biblioteka leidžia kurti dinaminius puslapius. Microsoft Windows sistemoje naudoja alternatyvią kalbą ASP, artimą Basic. Šiauliai 2013 28
  • 29. JavaScript JavaScript - 1995 (iš pradžių pavadinta LiveScript) Brendan Eich Netscape firmoje Skriptų kalba, įterpianti procedūrinį kodą į web’o puslapius. Gali naudoti kiti pritaikymai, pavyzdžiui XML stiliaus kalbos. Sintaksė, kaip ir C kalbos, bet kintamieji be tipų. Web’o elementai (langai, lentelės ir kita) išrenkami per dokumento objektinį modelį. Šiauliai 2013 29
  • 30. C# C# - 2000 - (C-sharp) Anders Hejlsberg / Microsoft Tai pagrindinė .NET platformos kalba, programinės įrangos, skirtos internetui, kūrimui. Kaip ir Java, išlaiko C kalbos sintaksę. su tais pačiais patobulinimais: šiukšlių surinkimas, nėra rodyklių, lygiagretumas, .. C# kompiliuoja į tarpinę kalbą. Platformos originalumas – leidžia įvairias kalbas kompiliuoti į tarpinę kalbą ir apjungti rezultatus. Yra operatorių užklojimas, yra foreach masyvų peržiūrai. Šiauliai 2013 30
  • 31. Programavimo kalbų populiarumas TIOBE Programming Community Index for March 2012 http://www.tiobe.com/index.php/conten t/paperinfo/tpci/index.html Šiauliai 2013 31
  • 32. Programavimo kalbos Position Position Aug Aug 2013 2012 Programming Language Ratings Aug 2013 Delta Aug 2012 1 2 Java 15.978 % -0.37% 2 1 C 15.974 % -2.96% 3 4 C++ 4 3 Objective-C 5 6 PHP 6 5 C# 6.117% -0.47% 7 7 (Visual) Basic 3.873% -1.46% 8 8 Python 3.603% -0.27% 9 11 JavaScript 2.093% +0.73% 10 10 uby 2.067% +0.38% Šiauliai P175B117 2013 T01 9.371% +0.04% 8.082% -1.46% 6.694% +1.17% 32 C grupės kalbos ≈55% 32
  • 42. Reikalavimai Reikalavimai mokytojui mokytojui privalo gerai žinoti matematinius uždavinių sprendimo metodus, mokėti gerai programuoti, Šiauliai 2013 42 42
  • 44. Programavimo kalba – tik įrankis Šiauliai 2013 44 44

Editor's Notes

  1. <number> WWW puslapyje Computer Languages History (http://www.levenez.com/lang/) yra visų kalbų istorija.