Informatika2-2012/Eloadas02

A MathWikiből
A lap korábbi változatát látod, amilyen Ador (vitalap | szerkesztései) 2012. február 14., 00:16-kor történt szerkesztése után volt.

Tartalomjegyzék

A programozás alapjai

A számítógép felépítése

A számítógép fő részegységei: Kép

  • processzor (beolvassa a memóriából az utasításokat és az adatokat, az utasítások alapján műveleteket végez, az eredményt visszaírja a memóriába; valamint vezérli a perifériákat - adatokat olvas belőlük, ill. ír ki)
  • memória (általános tároló, mely utasításokat és adatokat tartalmaz)
  • perifériák (pl. háttértároló (ahol az elmentett fájlok találhatók); beviteli eszközök: billentyűzet, egér; megjelenítő eszközök: monitor)


Eljárás, algoritmus, programozás

  • Programozás: előírni a számítógépnek, hogy mit csináljon. (Ebben a félévben csak imperatív programozás: lépésről lépésre előírjuk, hogy mit kell tenni, kb. mint egy recept leírása.)
  • Eljárás (módszer): Gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz.
  • Algoritmus: Gépiesen (gondolkodás nélkül) végrehajtható lépések véges sorozata, amely elvezet a megoldáshoz.


Mielőtt az algoritmust kódolni kezdjük, meg kell győződni róla, hogy mindhárom feltétel teljesül:

  • helyes : Valóban azt a feladatot oldja meg, amire szánjuk.
  • teljes : Minden lehetséges esetben megoldja.
  • véges : Véges sok lépésben befejeződik.


Egy programozási feladat megoldási folyamata: Kép

Változók, adatok, adattípusok

  • Változó: Az olyan adatot, amelyet meg lehet változtatni, változónak nevezzük. (pl: int x;)
  • Konstans: Az olyan adatot, amelynek értéke nem változtatható meg, konstansnak nevezzük. (pl: 12)

A C erősen típusos nyelv, ráadásul statikusan típusos, azaz a változókról meg kell mondani, hogy milyenfajta adatok tárolására alkalmasak. Például int jelöli azt, hogy egész számokat tárolhat, float pedig azt hogy lebegőpontos tört számot.

(A Python dinamikusan típusos, ott az értéknek van típusa, nem a változónak. Ezért nem kellett definiálni a változókat, azokban bármilyen adat lehetett. Ez egyszerűsíti a programírást, viszont növeli a hibalehetőséget.)

Változók definiálása és deklarálása

  • Deklaráció: A deklarációkor egy adott dologról jelezzük a fordítónak, hogy létezik, de ott még nem fejtjük ki azt.
    • a változó típusát, méretét (alapvető jellemzőit) határozza meg
    • utána a deklarált azonosító használható a kódban
    • Példa: két változó (egy egész és egy lebegőpontos típusú) deklarálása:
 int alma;
 float barack;
  • Definíció: Definíciókor egy adott dologról pontosan megmondjuk, hogy micsoda. Ez változók esetén azt jelenti, hogy már értéket is kap.
    • meghatározza valamely objektum típusát, méretét
    • hatására helyfoglalás is történik a memóriában
    • Példa: két változó (egy egész és egy lebegőpontos típusú) definiálása:
 int alma = 3;
 float barack = 2.6;

Megjegyzések:

  • A definíció egyben deklaráció is.
  • Később lesz szó egyéb dolgok (pl. függvények) deklarációjáról és definíciójáról is.

Röviden a láthatóságról

Ha létrehozol

?Figyelnünk kell az algoritmus futásidejére, és tár(memória)igényére, pontosabban arra, hogy ezek hogyan függenek össze a bemenet méretével. kezelhetetlen problémák : exponenciális, vagy rosszabb futásidő/tárigény?

Ellenőrző kérdések

(Ilyesmi, vagy akár konkrétan ezek várhatóak a gyakorlat eleji mini Zh-n !)

  • Rajzold le a számítógép egyszerűsített felépítését (3 doboz)!
  • Mi az a három dolog amit ellenőriznünk kell, mielőtt egy algoritmust kódolni kezdünk?
  • Mi az "eljárás" definíciója? Miben különbözik ettől az algoritmus definíciója?

Források

Személyes eszközök