Informatika2-2012/Eloadas02

A MathWikiből
(Változatok közti eltérés)
a (A programozás alapjai)
(Források)
70. sor: 70. sor:
 
* Vitéz András, Dr. Zsóka Zoltán: A Programozás alapjai 1. c. tárgy jegyzete, BME VIK,  http://www.hit.bme.hu/~vitez/Progalap1/2011osz/Ea/ea02.pdf
 
* Vitéz András, Dr. Zsóka Zoltán: A Programozás alapjai 1. c. tárgy jegyzete, BME VIK,  http://www.hit.bme.hu/~vitez/Progalap1/2011osz/Ea/ea02.pdf
 
* Pohl László: A programozás alapjai http://www.scribd.com/doc/55046873/h-jegyzet
 
* Pohl László: A programozás alapjai http://www.scribd.com/doc/55046873/h-jegyzet
 +
* Calmarius blogja: A C++ alapjai 11. http://calmarius.net/2011/12/25/basics-of-c-11-source-files-declarations-and-definitions/?lang=hu

A lap 2012. február 13., 23:07-kori változata

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

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.

  • Programozás: előírni a számítógépnek, hogy mit csináljon.
  • 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
    • valamely objektum típusát, méretét (alapvető jellemzőit) határozza meg
    • hatására a deklarált azonosító használható hibajelzés nélkül
  • Definíció: Definíciókor egy adott dologról pontosan megmondjuk, hogy micsoda. Emiatt szigorúan csak egyetlen egy lehet belőle egy forrásfájlban.
    • meghatározza valamely objektum típusát, méretét
    • hatására helyfoglalás történik
    • Példa: két változó definiálása
 int alma;
 float barack;


A definíció egyben deklaráció 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