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.

Slides:



Advertisements
Hasonló előadás
Szerver oldali programozás
Advertisements

Programozási feladatok
Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
Algoritmusok.
A számítógép felépítése
Memória.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
3. előadás (2005. március 1.) Utasítások, tömbök
Benczúr Zsolt VBA gyorstalpaló Benczúr Zsolt
Programozás alapjai.
Bevezetés a Java programozásba
Algoritmusok Az algoritmus fogalma:
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.
5. előadás (2005. március 22.) Függvények definíciója, deklarációja, hívása Enumerációs adattípus 1.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Programozás II. 3. Gyakorlat C++ alapok.
Központi feldolgozó egység (CPU)
Java programozási nyelv 2. rész – Vezérlő szerkezetek
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
1 Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat 1. Bevezetés Miskolc, 2004.
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév.
Számítógépes képelemzés 2007/08 I. félév Előadó:Dr. Gácsi Zoltán Gyakorlatvezető:Póliska Csaba Koncz-Horváth Dániel.
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.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
2 tárolós egyszerű logikai gép vázlata („feltételes elágazás”)
Vizuális és web programozás II.
ISZAM III.évf. részére Bunkóczi László
TÉTELEK Info_tech_2012. Simon Béláné. 1. TÉTEL 1.a. A digitális számítógép és a logikai áramkör kapcsolata (6.4.1.) 1.b. Az ÉS logikai áramkörnek adja.
Egy egyszerű gép vázlata
Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék
Kivételkezelés a C++ nyelvben Bevezetés
Bevezetés a C++ programozási nyelvbe
1 Bevezetés a funkcionális programozásba 2009.
Miben hasonlítanak egymásra a mai és az ötvenes évek számítógépei? Takács Béla Melyek a közös tulajdonságaik ?
Miben hasonlítanak egymásra a mai és az ötvenes évek számítógépei? Takács Béla Melyek a közös tulajdonságaik ?
Anyagadatbank c. tárgy gyakorlat Féléves tematika Adatbázis alapfogalmak, rendszerek Adatmodellek, adatbázis tervezés Adatbázis műveletek.
Kifejezések. Algoritmus számol; Adott összeg; összeg:=0; Minden i:=1-től 5-ig végezd el Ha 2 | i akkor összeg:=összeg+2*i Ha vége Minden vége Algoritmus.
Algoritmusok.
ALGORITMUSOK.
PHP nyelv. PHP Interpreteres nyelv → parancsértelmező szükséges hozzá Rasmus Lerdorf 1995 → személyes felhasználás (internetes önéletrajzának megtekintésének.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Algoritmus szerkezetek
Algoritmusok.
Egy második generációs gép (az IBM 7094) felépítése
Egy első generációs gép (az IAS) felépítése
Objektum orientált programozás
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke Mikroelektronika Laboratórium Tájékoztató
Alapismeretek Számítógépes adatábrázolás
Programozás, programtervezés
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
Algoritmizálás és programozás tanítása Balogh Zoltán PTE-TTK IÁTT Az algoritmuskészítés.
Összeállította: Sashalmi Tibor
Algoritmizálás, adatmodellezés
IT ALAPFOGALMAK HARDVER.
Excel programozás (makró)
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Programozási alapok.
Excel programozás (makró)
Bevezetés a programozásba Algoritmikus gondolkodás
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Számítógépes algoritmusok
Informatikai gyakorlatok 11. évfolyam
Informatikai gyakorlatok 11. évfolyam
Algoritmus készítés.
1. Bevezetés A programozásba
Előadás másolata:

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  

Stáblista Előadó: Dr. Pance Miklós, egyetemi docens Info. 106/a, pance@iit.uni-miskolc.hu Gyakorlatvezetők: Kolcza Gábor, tudományos segédmunkatárs Info. 111., kolcza@iit.uni-miskolc.hu Smid László, egyetemi tanársegéd Info. 111., altsmid@gold.uni-miskolc.hu A Tisztelt Hallgatóság

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%)

 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, 1996. Clovis L. Tondo – Scott E. Gimpel: C programozási feladatok megoldásai. Műszaki Könyvkiadó, Budapest, 1996.

Javasolt irodalom 2. Ficsór Lajos honlapján található, a tárgyhoz kapcsolódó anyagok: http://www.iit.uni-miskolc.hu/~ficsor/ Oktatási segédlet, kódolási szabvány Pance Miklós honlapján található előadásvázlat: http://www.iit.uni-miskolc.hu/~pance/

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

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. 25. 1830.

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

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

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.

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

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.

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)

Adatstruktú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 előző példa megoldásához mindössze 8 lépés szükséges.

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

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

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.

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

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 IF (b>c) max=b

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

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

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