Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.

Hasonló előadás


Az előadások a következő témára: "1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék."— Előadás másolata:

1 1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék

2 2 Stáblista Előadó: Dr. Pance Miklós, egyetemi docens Info. 106/a, Gyakorlatvezetők: Kolcza Gábor, tudományos segédmunkatárs Info. 111., Smid László, egyetemi tanársegéd Info. 111., A Tisztelt Hallgatóság

3 3 Követelmények 2 óra előadá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 4 Javasolt irodalom 1. Brian W. Kernighan – Dennis M. Ritchie: A C programozási nyelv, Az ANSI szerint szabványosított változat. Műszaki Könyvkiadó, Budapest, Clovis L. Tondo – Scott E. Gimpel: C programozási feladatok megoldásai. Műszaki Könyvkiadó, Budapest, 1996.

5 5 Javasolt irodalom 2. Ficsór Lajos honlapján található, a tárgyhoz kapcsolódó anyagok: Oktatási segédlet, kódolási szabvány Pance Miklós honlapján található előadásvázlat:

6 6 A 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

7 7 Ber'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

8 8 Számítógép alapismeretek Számítógép fajták Működési elv szerint: analóg, digitális, hibrid. Digitális számítógép: elektronikus, digitális, automatikus, tárolt programú, programvezérlésű. Fizikai megvalósítás szerint: 1. 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).

9 9 Számítógép alapismeretek Felhasználás szerint: univerzális, cél. Teljesítmény szerint: home, personal, mini, nagy, szuper... Fő alkotó részei: tároló egység (memória) az adatok és programok tárolására, input, output eszközök, aritmetikai-logikai egység (ALU), vezérlő egység (CPU).

10 10 Számítógép alapismeretek Memória egységek: bit (binary digit): 0-1 byte: 8 bit szó: CPU-tól függően néhány byte szószervezésű számítógép Hardware Software: rendszerprogramok, felhasználói programok. Programozási szintek gépi kód, assembler, magasszintű, objektum orientált.

11 11 Adatstruktúrák, algoritmusok Viszonylag állandó tudomány terület, mert nem kötődik szorosan egyetlen konkrét fizikai rendszerhez vagy konfigurációhoz sem. A számítógép belső állapotát leíró rész: az adatkomponens. A műveleteket 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.)

12 12 Adatstruktúrák, algoritmusok Algoritmus: Egy egyértelmű kiindulási és vég feltétellel megadott feladat megoldási részlépéseinek leírása. Jellemzői: 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 erőforrással oldja meg a feladatot), egyértelműség (mindig eldönthető a következő lépés.

13 13 Adatstruktú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. m=1215, n=787 esetén a lépések száma: 787 lehet és kell finomítani (RSA titkosítás)

14 14 Adatstruktúrák, algoritmusok Egy hatékonyabb megoldás, Euclides (ie ) 1. r = m mod n 2. ha r = 0, akkor n a LNKO, vége 3. m = n, n = r, ugrás 1. Az előző példa megoldásához mindössze 8 lépés szükséges.

15 15 Adatstruktúrák, algoritmusok Leírási formalizmusok 1. Beszélt nyelv (előző példa) 2. Folyamatábra szimbólumok: művelet döntés adat I/O start/stop nyíl Ezen elemekből 3 alapvető struktúra építhető fel: szekvencia, elágazás, ciklus Gyakorlaton...

16 16 Adatstruktúrák, algoritmusok 3. Metanyelv, elemei Elágazás: IF (feltétel) igaz ág ELSE hamis ág END Szekvencia: művelet1 művelet2 Értékadás: változó=kifejezés Ciklus: WHILE (feltétel) ciklusmag END

17 17 Adatstruktúrák, algoritmusok Függvény deklaráció: FUNCTION függvénynév(formális paraméter lista) utasítások RETURN visszatérő érték END Függvény hívás: függvénynév(aktuális paraméterlista) Operátorok: + - * / = stb.

18 18 Adatstruktúrák, algoritmusok A LNKO algoritmus metanyelven: FUNCTION euclid() INPUT (m, n) r=m%n WHILE (r>0) m=n n=r r=m%n END OUTPUT (n) END

19 19 Adatstruktúrák, algoritmusok További példák: max(a,b) IF (a>b) max=a ELSE max=b END max(a,b,c) IF (a>b) IF (a>c) max=a ELSE max=c END ELSE IF (b>c) max=b ELSE max=c END

20 20 Adatstruktúrák, algoritmusok Egy alternatív, perspektívikus megoldás: max=a IF (b>max) max=b END max=a IF (b>max) max=b END IF (c>max) max=c END

21 21 Adatstruktú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: a[1], a[2],..., a[N] max=a[1]; i=2; WHILE (i<=N) IF (a[i]>max) max=a[i] END i=i+1 END

22 22 Adatstruktúrák, algoritmusok N elem átlaga: s=0; i=1; WHILE (i<=N) s=s+a[i] i=i+1 END atlag=s/N vagy s=0; i=1; WHILE (i<=N) s=s+a[i]/N i=i+1 END atlag=s 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


Letölteni ppt "1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék."

Hasonló előadás


Google Hirdetések