Title: Programoz
1Programozás alapjai GEIAL312B(ANSI C)BSc
(Bachelor of Science) / Alap képzés2005/2006.
oszi félévMiskolci Egyetem Általános
Informatikai Tanszék
2Stáblista
- Eloadó Dr. Pance Miklós, egyetemi docensInfo.
106/a, pance_at_iit.uni-miskolc.hu - GyakorlatvezetokKolcza Gábor, tudományos
segédmunkatársInfo. 111., kolcza_at_iit.uni-miskolc.
huSmid László, egyetemi tanársegédInfo. 111.,
altsmid_at_gold.uni-miskolc.hu - A Tisztelt Hallgatóság
3Követelmények
- 2 óra eloadás, 2 óra gyakorlat
- Aláírás, kollokvium
- Aláírás feltételei 5 kiszárthelyi dolgozat, 1
önálló programozási feladat - Vizsga elméleti kérdések (50) apró
gyakorlati feladatok (50)
4 Javasolt irodalom 1.
- Brian W. Kernighan Dennis M. Ritchie A C
programozási nyelv, Az ANSI szerint
szabványosított változat. Muszaki Könyvkiadó,
Budapest, 1996. - Clovis L. Tondo Scott E. Gimpel C programozási
feladatok megoldásai. Muszaki Könyvkiadó,
Budapest, 1996.
5Javasolt irodalom 2.
- Ficsór Lajos honlapján található, a tárgyhoz
kapcsolódó anyagokhttp//www.iit.uni-miskolc.hu/
ficsor/ Oktatási segédlet, kódolási szabvány - Pance Miklós honlapján található
eloadásvázlathttp//www.iit.uni-miskolc.hu/panc
e/
6A számítógép programozás
- Szórakozás (fun)
- Kemény munka
- Szellemi (intellektuális) kaland
- Hivatás (karrier)
- Olvasás, írás
7Ber'senyi (Berzsenyi) Dániel
- "A tudományok mécsek az éjben, a gyakorlat nélkül
csak koporsói mécsek." - Levél Gróf Széchenyi Istvánnak és báró Wesselényi
Miklósnak - Mikla (Nikla), Febr. 25. 1830.
8Számítógép alapismeretek
- Számítógép fajták
- Muködési elv szerintanalóg, digitális, hibrid.
- Digitális számítógépelektronikus, digitális,
automatikus, tárolt programú, programvezérlésu. - Fizikai megvalósítás szerint1. generációs
(elektroncsöves),2. generációs
(tranzisztoros),3. generációs (integrált
áramkörös, IC),4. generációs (nagyfokú integrált
áramkör, VLSI).
9Számítógép alapismeretek
- Felhasználás szerintuniverzális,cél.
- Teljesítmény szerinthome, personal, mini, nagy,
szuper ... - Fo alkotó részeitároló egység (memória) az
adatok és programok tárolására,input, output
eszközök,aritmetikai-logikai egység
(ALU),vezérlo egység (CPU).
10Számítógép alapismeretek
- Memória egységekbit (binary digit) 0-1byte 8
bitszó CPU-tól függoen néhány
byte szószervezésu számítógép - Hardware
- Software rendszerprogramok, felhasználói
programok. - Programozási szintekgépi kód, assembler,
magasszintu, objektum orientált.
11Adatstruktúrák, algoritmusok
- Viszonylag állandó tudomány terület, mert nem
kötodik szorosan egyetlen konkrét fizikai
rendszerhez vagy konfigurációhoz sem. - A számítógép belso állapotát leíró rész az
adatkomponens. - A muveleteket leíró rész a kód komponens.
- Az adatkomponensre vonatkozó utasítások a
deklarációk milyen adatelemek vannak és azok
milyen típusúak. - Niklaus Wirth Adatstruktúrák algoritmusok
programok - Algoritmus Mohamed Al-Khwarizmi (IX.sz.)
12Adatstruktúrák, algoritmusok
- Algoritmus Egy egyértelmu kiindulási és vég
feltétellel megadott feladat megoldási
részlépéseinek leírása. - Jellemzoi absztrakciós szint (igazodjon a
felhasználóhoz),helyesség (sokszor nehezen
bizonyítható minden kiinduló állapotra),végesség
(az algoritmus maga és a végrehajtás
is),hatékonyság (kevesebb lépéssel, kevesebb
eroforrással oldja meg a feladatot),egyértelmuség
(mindig eldöntheto a következo lépés.
13Adatstruktúrák, algoritmusok
- Egy klasszikus példa LNKO meghatározása adott
két pozitív egész szám m, n - 1. r min(m,n)
- 2. Ha r maradék nélkül osztja m-et és n-et, akkor
r a LNKO, vége - 3. r r-1, vissza 2.
- Pl. m1215, n787 esetén a lépések száma 787
- lehet és kell finomítani (RSA titkosítás)
14Adatstruktúrák, algoritmusok
- Egy hatékonyabb megoldás, Euclides (ie. 400-300)
- 1. r m mod n
- 2. ha r 0, akkor n a LNKO, vége
- 3. m n, n r, ugrás 1.
- Az elozo példa megoldásához mindössze 8 lépés
szükséges.
15Adatstruktúrák, algoritmusok
- Leírási formalizmusok
- 1. Beszélt nyelv(elozo példa)
- 2. Folyamatábraszimbólumokmuvelet döntés
adat I/O start/stop nyíl
Ezen elemekbol 3 alapveto struktúra építheto
felszekvencia, elágazás, ciklus Gyakorlaton...
16Adatstruktúrák, algoritmusok
ElágazásIF (feltétel) igaz ágELSE hamis
ágEND Szekvencia muvelet1 muvelet2
Értékadás változókifejezés Ciklus WHILE
(feltétel) ciklusmag END
17Adatstruktúrák, algoritmusok
- Függvény deklaráció
- FUNCTION függvénynév(formális paraméter lista)
- utasítások
- RETURN visszatéro érték
- END
- Függvény hívás
- függvénynév(aktuális paraméterlista)
- Operátorok - / lt gt stb.
18Adatstruktúrák, algoritmusok
- A LNKO algoritmus metanyelven
- FUNCTION euclid()INPUT (m, n)rmn
- WHILE (rgt0) mn nr rmnEND
- OUTPUT (n)
- END
19Adatstruktúrák, algoritmusok
- További példák
- max(a,b)
- IF (agtb)
- maxa
- ELSE
- maxb
- END
max(a,b,c) IF (agtb) IF (agtc) maxa ELSE max
c END ELSE IF (bgtc) maxb ELSE maxc END E
ND
20Adatstruktúrák, algoritmusok
- Egy alternatív, perspektívikus megoldás
- maxa
- IF (bgtmax)
- maxb
- END
maxa IF (bgtmax) maxb END IF (cgtmax) maxc END
21Adatstruktúrák, algoritmusok
- N elem maximuma
- Sorozat-tár tömb (az elemek a memóriában egymás
utáni rekeszekben helyezkednek el) - van neve, típusa, elemeinek indexe a1, a2,
... , aN - maxa1 i2
- WHILE (iltN)
- IF (aigtmax)
- maxai
- END
- ii1
- END
22Adatstruktúrák, algoritmusok
- N elem átlaga
- s0 i1
- WHILE (iltN)
- ssai
- ii1
- END
- atlags/N
vagy s0 i1 WHILE (iltN) ssai/N ii1 E
ND atlags
További feladatok N elem közül a pozitívak
mértani átlaga, N! Binomiális együttható Polinom
helyettesítési értéke Függvény értéktáblázata