Základné pojmy
Stiahnuť PDF · 72 kBPreber si túto poznámku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto poznámky.
Náhľad poznámky
Programovanie - prednáška
č.1
1
Programovanie
Zdeněk Havlice
Zdenek.Havlice@tuke.sk
Marek Paralič
Marek.Paralic@tuke.sk
Martin Tomášek
Martin.Tomasek@tuke.sk
Peter Václavík
Peter.Vaclavik@tuke.sk
Katedra počítačov a informatiky
FEI TU v Košiciach
Programovanie - prednáška
č.1
2
Z osnovy predmetu
CIELE PREDMETU
Získanie základných programátorských zru
čností pre štruktúrované a modulárne programovanie:
1.
Úvod do algoritmizácie. Vz
ťah problému, algoritmu a programu. Charakteristiky a
vlastnosti algoritmov, formy ich reprezentácie. Druhy programovacích jazykov a metódy
programovania.
2.
Princíp itera
čných a rekurzívnych algoritmov. Vybrané algoritmy vyhľadávania a triedenia,
numerické algoritmy.
3.
Syntax a sémantika programovacích jazykov.
4.
Definícia typov, jednoduché a štruktúrované údajové typy, definícia konštánt, deklarácia
premenných. Výrazy a príkazy priradenia.
5.
Tok riadenia postupnos
ť príkazov, vetvenie, cyklus.
6.
Definícia a volanie podprogramov (procedúry, funkcie, makrá), spôsoby komunikácie
medzi podprogramami, globálne a lokálne premenné. argumenty a návratové hodnoty.
7.
Dynamická alokácia pamäti, implementácia dynamických údajových štruktúr (zoznamy,
stromy), reprezentácia vybraných algoritmov v programovacom jazyku.
8.
Modulárne programovanie, defini
čné a implementačné moduly. Príprava a údržba
modulárnych programov
Ciele cvi
čení:
zostavovanie a ladenie C-programov v prostredí OS Unix (cc, gdb, make, vi ) resp. Windows
(DevC++, Visual C)
Programovanie - prednáška
č.1
3
Z osnovy predmetu
Podmienky na úspešné absolvovanie predmetu:
1.
získanie zápo
čtu
2.
sú
čet bodov získaných za cvičenia a didaktický
test na skúške (maximálne 70) je aspo
ň 51
Bude hromadný termín skúšky – dátum špecifikuje fakulta.
Podmienky na zápo
čet:
1.
Ani jedna neospravedlnená neú
časť.
2.
Maximálne 3 ospravedlnené neú
časti - spôsob náhrady určí cvičiaci.
3.
Získanie spolu aspo
ň 16 z 30 možných bodov z hodnotenia zadania
(10), priebežných kontrol (10 + 10).
Programovanie - prednáška
č.1
4
Programovanie
Odporúčaná literatúra
1.
Havlice, Z., Gen
či, J.: Počítače a programovanie v jazyku C. elfa, s.r.o.
Košice, február 2000.
2.
Kerninghan, B.,W., Ritchie, D.,M.: Programovací jazyk C. Alfa, Bratislava,
1989
3.
Key, J., Kummerfeld, B.: C programming in a UNIX enviroment. Addison-
Wesley, Sydney, 1988.
4.
Brodský, J., Sko
čovský, L.: Operačný systém Unix a jazyk. C. SNTL, Praha,
1989.
5.
Kernighan, B.,W., Ritchie, D.,M.: The C Programming Language, Prentice-
Hall, Englewood Cliffs, New Jersey, 1988.
6.
Kay, J., Kummerfeld, B.: C Programming in a Unix Environment, Addison -
Wesley Pb. Co, 1989
Informácie k predmetu:
http://hornad.fei.tuke.sk/predmety/prog/
Programovanie - prednáška
č.1
5
Prednáška č.1
OBSAH
1.
Základné pojmy
•
číslicový počítač, výpočtový proces,
inštrukcia, údaje
•
technické a programové prostriedky,
po
čítačový systém
•
algoritmus
•
etapy riešenia úloh
•
životný cyklus programu
•
spracovanie programu na po
čítači
•
premenná
2.
Popis programovacích jazykov
•
Syntax
•
Sémantika
•
Gramatika (BNF, syntaktické diagramy)
Programovanie - prednáška
č.1
6
Základné pojmy
Číslicový počítač je stroj na spracovanie informácií, ktorý
vykonáva samočinne postupnosť rôznych aritmetických a
logických operácií.
Výpočtový proces je transformácia vstupných údajov na
výstupné. Je to postupnosť operácií, ktoré vedú od počiatočných
vstupných údajov ku konečným.
Inštrukcia (strojová inštrukcia) je príkaz na vykonanie
elementárnej operácie číslicového počítača. Inštrukcie
reprezentujú informácie, ktoré definujú spôsob spracovania
údajov (dát).
Údaje (dáta) sú operandami (vstupmi) a výsledkami (výstupmi) v
operáciách, ktoré sa vykonávajú vo výpočtovom procese. Údaje
reprezentujú informácie, ktoré sú predmetom alebo výsledkom
spracovania (vykonávania nejakej operácie alebo operácií).
Binárne kódovanie je spôsob kódovania informácií diskrétnym
spôsobom pomocou dvojkovej sústavy. Údaje aj inštrukcie sú v
číslicovom počítači binárne kódované.
Programovanie - prednáška
č.1
7
Základné pojmy (2)
Technické prostriedky (hardvér, angl. hardware) sú technické
zariadenia číslicového počítača, ktoré umožňujú uchovávanie,
spracovanie a prenos binárne kódovaných informácií. Tieto
prostriedky sú navzájom poprepájané do určitej architektúry,
ktorá charakterizuje spôsob spracovania informácií.
Programové prostriedky (softvér, angl. software) - programy
tvorí postupnosť inštrukcií a údajov. Program môže existovať
v rôznych formách. Tá forma, ktorá je binárne kódovaná a je
priamo vykonateľná na danom číslicovom počítači, sa nazýva
vykonateľná forma. Program môže existovať aj v textovom tvare
ako tzv. zdrojový text zapísaný v nejakom programovacom
jazyku. Programové prostriedky daného číslicového počítača sú
programy, ktoré môže daný počítač vykonávať - sú vykonateľné
na danej architektúre.
Počítačový systém (výpočtový systém) je systém zahrňujúci
číslicový počítač (technické prostriedky), prídavné technické
vybavenie a programové vybavenie (programové prostriedky).
Programovanie - prednáška
č.1
8
Základné pojmy (3)
Výpočtový proces - vykonávanie výpočtu budeme nazývať
výpočtovým procesom alebo procedúrou.
Aby sme mohli vykonávať výpočtový proces, pre každú operáciu
tohoto procesu musia byť známe tieto informácie:
– operandy, s ktorými má byť operácia vykonaná (pričom operandom
nemusí byť len číslo, ale môže to byť ľubovoľný objekt)
– sémantika vykonávanej operácie (jej zmysel)
– kam zaznamenať výsledok (napr. do ktorého stĺpca vo formulári, v
akej premennej bude výsledok uložený. Je to potrebné, aby sme ho
neskôr mohli použiť ako operand)
– ktorú operáciu vykonať ako nasledujúcu (ak šlo o operáciu
rozhodovania, musíme vedieť, ako postupovať pri rôznych
výsledkoch)
Na základe operácií je počítač schopný zrealizovať celý výpočtový proces
bez zásahu človeka. Výpočtový proces realizovaný počítačom
nazveme program.
Programovanie - prednáška
č.1
9
• Program = údaje + inštrukcie
• Premenná je údajový objekt, ktorý počas svojej
existencie môže meniť svoju hodnotu
• Pozor: v matematike, napr. v rovnici x + y = 5 tiež
vystupujú premenné (x,y), tie však reprezentujú
všetky hodnoty spĺňajúce rovnicu. V informatike je
premenná „kontajnerom“ pre jednu hodnotu v danom
čase
• premenná má nielen meno, ale aj dátový typ, ktorý
určuje množinu hodnôt, ktoré môžu byť v premennej
uložené (napr. celé číslo v danom rozsahu, znaky,...)
• premenné sú najčastejšie používané údajové objekty
Premenné
Programovanie - prednáška
č.1
10
Definícia:
Algoritmus je presný popis definujúci výpočtový proces, ktorý
vedie od meniteľných vstupných údajov až k požadovaným
výsledkom.
Vlastnosti:
•
Determinovanosť – presnosť a zrozumiteľnosť
Po každom kroku je presne určené, aký bude krok nasledujúci.
•
Rezultatívnosť – zameranie na získanie hľadaných
výsledkov
Proces, ktorý vedie vždy k výsledkom.
•
Konečnosť – poskytnutie výsledkov za konečný počet
krokov
Konečnosť v čase – rezultatívnosť, konečnosť v priestore –
reprezentovateĺnosť konečným počtom príkazov.
•
Hromadnosť – meniteľné vstupné údaje
Algoritmus
Programovanie - prednáška
č.1
11
Etapy vývoja programového systému:
• Špecifikácia problému – na základe požiadaviek vzniká
zadanie na vypracovanie systému.
• Analýza problematiky – analyzuje sa súčasný stav,
doterajšie postupy práce, hľadajú sa spôsoby riešenia
aktuálnych problémov.
• Návrh riešenia – na základe výsledkov analýzy sa
špecifikujú postupy určené na riešenie problémov z
predchádzajúcej etapy. Výstupom sú špecifikácie vo forme
algoritmov.
• Implementácie systému – na základe špecifikácií
algoritmov sa systém implementuje v konkrétnom programovom
prostredí. Súčasťou implementácie je ladenie a testovanie.
• Nasadenie a použitie – systém sa zavádza do prevádzky
a rutinne používa.
Etapy riešenia úloh
Programovanie - prednáška
č.1
12
Životný cyklus programu má podobné etapy ako celý
programový systém:
• formulácia úlohy - špecifikácia toho, čo má program robiť
• analýza úlohy - pochopenie problematiky
• syntéza programu
• návrh údajových štruktúr - spôsob reprezentácie
objektov reálneho sveta
• návrh algoritmu - spôsob práce s navrhnutými údajovými
štruktúrami
• kódovanie programu
• ladenie a testovanie
• zavedenie systému do prevádzky - nasadenie systému
• prevádzka a údržba systému
• vyradenie z prevádzky
Životný cyklus programu
Programovanie - prednáška
č.1
13
•
vytvorenie zdrojového textu programu vo zvolenom
programovacom jazyku (pomocou textového editora)
•
preklad programu (alebo jeho častí) uloženého v súbore (resp.
súboroch), s použitím knižnice makier, do relatívneho tvaru.
Prekladá sa len zdrojový text programu
•
spájanie relatívnych tvarov modulov, s použitím knižnice
podprogramov, do spustiteľného (vykonateľného) tvaru. V tomto
kroku sa pospájajú relatívne tvary preložených zdrojových
textov s relatívnymi tvarmi programov, ktoré sú uložené v
knižniciach. Výsledkom je program, ktorý môže byť zavedený do
operačnej pamäte a ktorému môže byť následne odovzdané
riadenie
•
odštartovanie programu. Možnosť zavedenia do operačnej
pamäte a odovzdania riadenia, uvedená v predchádzajúcom
kroku, sa stáva skutočnosťou
Spracovanie programu na
počítači
Programovanie - prednáška
č.1
14
Spracovanie programu na
počítači
Editor
Zdrojový
text
programu
Preklada
č
Knižnica
makier
Relatívny
tvar
Spájací
program
Knižnica
Podpro-
gramov
Spusti-
te
ľný tvar
Programovanie - prednáška
č.1
15
• Syntax – množina pravidiel alebo formúl, ktorá
definuje množinu (formálne korektných) viet jazyka
• napr. <veta> ::= <podmet> <prísudok>
<podmet> ::= učitelia | študenti
<prísudok> ::= učia | študujú
• Sémantika – určovanie významu vety daného
jazyka, syntax určuje aj štruktúru vety, ktorá je
nápomocná pri určovaní významu vety
• Gramatika – množina syntaktických pravidiel, ktoré
popisujú všetky jazykové konštrukty
→ používané
formalizmy:
• BNF (Backus-Naurová forma)
• syntaktické diagramy
Popis programovacích
jazykov
Programovanie - prednáška
č.1
16
Príklad – šestnástková konštanta:
<hex_const>
::= +<unsign_hex_const> | -<unsign_hex_const> |
<unsign_hex_const>
<unsign_hex_const> ::= 0x<hex_number> | 0X<hex_number>
<hex_number> ::= <hex_digit> | <hex_digit><hex_number>
<hex_digit>
::= 0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f|A|B|C|D|E|F
• neterminálové symboly, metasymboly, terminálové symboly
• význam niektorých metasymbolov v BNF:
::= odddeľuje strany pravidla
|
oddeľuje alternatívy
[ ]
je 1 alebo žiaden výskyt symbolu zo zoznamu uvedeného
v zátvorkách
[ ]+ je 1 alebo viac opakovaní znaku uvedeného v zátvorkách
[ ]*
je 0 alebo viac opakovaní znaku uvedeného v zátvorkách
BNF
Programovanie - prednáška
č.1
17
Syntaktické diagramy
0
1
2
3
4
5
6
7
8
9
0
X
x
číslica
A
B
a
b
c
d
e
C
D
E
F
f
šestnástková konštanta
číslica
Programovanie - prednáška
č.1
18
Hlavné dôvody štúdia jazyka C
– Dostupnosť jazyka a vývojových nástrojov ako základných
vývojových prostriedkov na takmer každej hw a sw platforme.
– Efektívnosť aplikácií v C je zrovnateľná s efektívnosťou aplikácií
v strojovom jazyku – produktivita v C je podstatne vyššia.
– Existuje veľké množstvo aplikácií vyvinutých v C a používaných
alebo modifikovaných aj v súčasnosti.
– Podobnosť moderných jazykov s jazykom C.
Problémy – negatívny vplyv na bezpečnosť majú:
– Smerníky
– Implicitné konverzie typov
– Implicitná inicializácia
– Bočné efekty vyhodnocovania výrazov
– Globálny prístup k údajovým štruktúram
– Príkazy nepodmieneného skoku
...
Automaticky vygenerovaný textový náhľad. Pre plné formátovanie si stiahnite súbor.
nechodím na prednášky