PDF

Základné pojmy

Formát
PDF
Veľkosť
72 kB
Pridané
Stiahnutí
3 472
Hodnotenie
4,0/5
Stiahnuť PDF · 72 kB

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

Otvoriť AI: ChatGPT · Claude · Gemini

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.

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