Követelményrendszer Bevezetés a programozásba I. 1. gyakorlat Surányi Márton PPKE-ITK 2010.09.07.
Követelményrendszer Követelményrendszer A gyakorlatokon a részvétel kötelező! Két nagyzárthelyi Röpzárthelyik a gyakorlatok elején Kötelező házifeladatok
Követelményrendszer Jelenlét Jelenlét A gyakorlatokon maxmimum három hiányzás megengedett. A negyediknél az illető nem kap aláírást, vagyis a tárgyat nem teljesítette.
Követelményrendszer Nagyzárthelyik Nagyzárthelyik Az első nagyzárthelyit az ötödik-hatodik gyakorlat táján írjuk, papírra, -ból. Erre mindenki kap egy jegyet (1-5). Ezen a ZH-n semmilyen segédeszközt nem lehet használni. A másodikat a félév végén, gépteremben, C++-ból. Pár óra alatt kell egy működő programot írni. Kizárólag bolti könyv (tehát nem saját kezűleg nyomtatott/írt papír) használható segédeszközként. Legalább kettest el kell érni. Lehet javítani, de csak az egyikből!
Követelményrendszer Röpzárthelyik Röpzárthelyik Minden gyakorlat elején röpzárthelyit írunk az addigi előadások és gyakorlatok anyagából Jó válasz esetén +1 Nem jó, de elfogadható válasz esetén 0 Rossz válasz esetén -1 Illetve, ha valaki nincs jelen a gyakorlaton, akkor szintén -1 A félév végére a röpzárthelyikre kapott pontok összegének legalább nullának kell lennie, ha nem, akkor az illető nem kap aláírást. A félév végén lesz javítási lehetőség.
Követelményrendszer Házi feladatok Házi feladatok Minden gyakorlaton kiadunk kötelező házi feladatokat, illetve szorgalmi feladatokat A házi feladatok megoldására egy hét lesz, pontosabban a következő gyakorlat napján, reggel 6:00-ig (tehát őszi szünet előtt kiadott házira két hét lesz) Ha a házit időben megkapjuk, és jól működik, akkor 0. Ha nem működik, vagy nem időben érkezik, akkor -1. A szorgalmikat pedig pluszpontokkal honoráljuk. A kapott pontokat összeadjuk; elosztjuk tízzel, és hozzáadjuk a gyakorlati jegyhez. Így tehát lehet javítani/rontani is.
Követelményrendszer Gyakorlati jegy Gyakorlati jegy számítása 1:2 arányban az első és második ZH eredménye, plusz a házifeladatokból szerzett/vesztett pontok.
Követelményrendszer Aláírásmegtagadás FONTOS Nem kaphat jegyet: akinek a röpzárthelyik összege kisebb mint nulla akinek bármelyik házifeladatáról kiderül, hogy MÁSOLTA elégtelen géptermi ZH
Programozás alapok Alapok Alapfogalmak Gépi kód: a számítógép számára közvetlenül értelmezhető utasítások sorozata (pl. futtatható állományok; exe-k). Pl. 100008000800BC16BC1EBC12BC190E28BC15472023. Ebben nem könnyű programot írni. Programozási nyelv: Egy magasabb szintű eszköz, amivel könnyebben tudunk programokat írni (pl. Pascal, Basic, C++,, stb.). Forrás kód (source code): az adott programozási nyelven megírt program. Általában ember által írt. Fordítás: az a folyamat, amikor a forrásprogramból gépi kódot álĺıtunk elő, a fordítóprogram feladata. A fordítóprogram ellenőrzi a forráskód szintaktikáját, közben fordítási hibákat kaphatunk.
Programozás alapok Változók Változók A változó memóriában tárolt adat, amelynek a futás során megváltoztatható az értéke. A legtöbb programozási nyelvben a változónak van típusa. A típus meghatározza, hogy mit tárolhatunk benne, illetve, hogy milyen műveleteket végezhetünk rajta. A változók elérésére neveket használunk (pl. a:=5). A változók neveit mi adhatjuk meg, érdemes beszédes neveket használni, amelyek utalnak a változó feladatára.
Programozás alapok Végrehajtás Végrehajtás A program (miután lefordult) soronként, lépésről lépésre hajtódik végre (példa később). Az eközben keletkező hibákat futási hibának nevezzük. (pl. Elfogyott a memória, a program érvénytelen memóriaterületet akar elérni, stb.) Specifikáció: megadjuk, hogy mi a be- illetve kimeneti feltétel. (pl. később)
A fejlesztői környezet A egy fejlesztői környezet, célja a programozás oktatása. Az első öt-hat hétben ezzel fogunk foglalkozni. PROGRAM program_neve VÁLTOZÓK: ** deklarációs rész ** programtörzs PROGRAM_VÉGE Változókat a deklarációs részben definiálhatunk. Maga a program utasításai a programtörzsbe kerülnek.
Hello World! Hello World! Első programunk kíırja, hogy Hello World!. Specifikáció: BE: (nincs bemenet) KI: Hello World! PROGRAM hello_world KI: "Hello World!" PROGRAM_VÉGE Láthatjuk, hogy most nincs deklarációs rész, mert nem használunk változókat.
Típsuok -ban Típusok -ban Változókat a deklarációs részben definiálhatunk. Már tudjuk, hogy a változóknak van típusa. Alaptípusok (a teljesség igénye nélkül): EGÉSZ: felvehető értékek: pozitív és negatív egész számok és a nulla (..., -2, -1, 0, 1, 2,...) VALÓS: értékek: pozitív és negatív valós számok és a nulla (pl. 7.786, 0.0012, 768.05) LOGIKAI: felvehető értékek: IGAZ, HAMIS KARAKTER: felvehető értékek: betűk, számok, írásjelek, szóköz, sorvége jel ( A, 2,,?, @, SV) SZÖVEG: felvehető értékek: karakterek sorozata (lehet üres is) ("alma", "", "körte banán") A típusokról bővebben a honlapon, leírásnál olvashattok.
Kifejezések Kifejezések A kifejezés számok, változók, műveleti jelek (és függvények) sorozata. (pl. 1+1 vagy 4*(5+9)/2 vagy 4 (5+9) 2 ). Amikor a program futása egy kifejezéshez ér, akkor kiertékeli azt. Az így kapott eredmény a kifejezés értéke. Úgy, mint a változóknak, a kifejezések értékének is van típusa. Pl: 1 + 1 - Két egész számot adunk össze, EGÉSZ típusú érték lesz az eredmény(2). 2<5 - Két egész számot hasonĺıtunk össze. Az eredmény LOGIKAI típusú (IGAZ).
Kifejezések Kifejezés - példa Specifikáció: BE: (nincs bemenet), KI: 28 PROGRAM kifejezes1 KI: 2 * (5 + 9) PROGRAM_VÉGE A bal alsó sarokban látható a kifejezésfa.
Beolvasás, változók használata Változók, beolvasás Olvassunk be egy számot, majd írjuk ki a kétszeresét! Specifikáció: BE: egész szám(a) KI: a szám kétszerese(a*2) (egész szám) PROGRAM valtozo1 VÁLTOZÓK: a: EGÉSZ BE: a KI: a * 2 PROGRAM_VÉGE
Beolvasás, változók használata Feladat Feladatgyűjtemény I. 1.) Döntsd el egy egész számról, hogy páros-e. Specifikáció: BE: egész szám(a) KI: logikai (páros-e) PROGRAM feladatgy_i_1 VÁLTOZÓK: a: EGÉSZ BE: a KI: (a MOD 2) = 0 PROGRAM_VÉGE
Logikai műveletek Logikai műveletek, összehasonĺıtások NEM: logikai tagadás (pl. a NEM IGAZ kifejezés értéke HAMIS) ÉS: logikai ÉS (pl. az a ÉS b kifejezés értéke pontosan akkor IGAZ, ha a és b is külön-külön igaz. ) VAGY: logikai VAGY (pl. az a VAGY b kifejezés értéke pontosan akkor IGAZ, ha legalább az egyik igaz.) a = b két EGÉSZ, VALÓS, KARAKTER vagy SZÖVEG közt végez egyenlőségvizsgálatot (ha megegyeznek, akkor IGAZ, különben HAMIS) (a nem egyenlő művelet: /=) a<b két EGÉSZ, VALÓS közt végez összehasonĺıtást (ha a kisebb, mint b, akkor IGAZ, egyébként HAMIS) (hasonlóképpen működik: >,<=,>=)
Feladatok 1. Feladatok I. 2.) Döntsd el egy tetszőleges számról, hogy egy adott intervallumba esik-e. I. 3.a) Döntsd el egy koordinátákkal adott pontról, hogy az origó-e. I. 3.b) Döntsd el, hogy az egyik koordinátatengelyre esik-e. Írj programot, ami megmondja: Hány óra van egy évben? Hány perc van egy évtizedben?
Szövegkezelés Szövegkezelés A Plang-ban van lehetőség szövegek kezelésére. Karakterrel végezhető főbb műveletek(a és b karakter típusok): NAGY a: az a változóban lévő karaktert nagybetűvé alakítja. (FIGYELEM! Ekkor az a változó értéke nem változik meg!) A kifejezés értékének típusa KARAKTER KIS a: ugyanaz, mint fönt, csak kisbetűvé alakít a<b: ábécésorrend szerint összehasonĺıt (ha a előrébb van az ábécében, mint b, akkor igaz) (hasonlóképpen létezik >,<=,>=) A kifejezés értékének típusa LOGIKAI. BETŰ a: ellenőrzi, hogy a karakterben tárolt érték betű-e (tehát nem szám, írásjel, stb.). Ha az, akkor a kifejezés értéke IGAZ. (hasonlóképpen a SZÁM a azt ellenőrzi, hogy szám-e a tárolt érték)
Szövegkezelés Szövegkezelés Szöveggel végezhető főbb műveletek(sz,szov1,szov2 SZÖVEG típusúak; kar1,kar2 pedig KARAKTER): Összefűzés (konkatenáció): egy szöveget összefűzhetünk egy másik szöveggel, vagy karakterrel. Pl. szov1 + szov2, szov1 + kar1, kar1 + szov1 Hossz lekérdezése: sz (egész értékű kifejezés) Adott helyen álló karakter lekérdezése: sz[4] az ötödik helyen álló karaktert adja vissza. (Tehát az első helyen álló karaktert az sz[0] kifejezéssel érhetjük el)
Szövegkezelés Szövegkezelés (folytatás) A szövegekre ugyanúgy működik az összehasonĺıtás, mint karakterekre, vagyis ábécésorrendben hasonĺıtja össze őket. szov1@kar1 karakter első előfordulásának helye (a karakter indexe; ha nem fordulelő, akkor szov 1 az eredmény) szov1@szov2 résszöveg első előfordulásának helye (a résszöveg első karakterének az indexe; ha nem fordul elő, akkor szov 1 az eredmény) Figyelem! Nem soroltuk föl az összes műveletet! A házi feladatok megoldásához lehet, hogy szükség van további műveletek ismeretére. Ezeket a honlapon találjátok meg.
Feladatok 2. Feladatok I. 14. Döntsd el egy szövegről, hogy szóközzel kezdődik-e. I. 15. Döntsd el egy szövegről, hogy nagybetűvel kezdődik e. I. 16. Döntsd el egy szövegről, hogy számjegyre végződik-e. I. 19.a) Add meg egy tetszőleges szöveg első szavát.
Házi feladatok Házi feladatok Kötelező (I. fejezetből): 4.) Számítsd ki egy adott sugarú gömb térfogatát. (tehát a bemenet a sugár) 5.a) Döntsd el két egész számról, hogy az első osztója-e a másodiknak. (bemenet a két szám) 7.) Döntsd el két számról, hogy megegyezik-e az előjelük. 8.a) Add meg egy számtani sorozat első két elemének ismeretében a harmadik elemét. 17.a) Döntsd el egy szövegről, hogy ugyanazzal a karekterrel kezdődik-e, mint amivel végződik. 20.) Egy tetszőleges szót alakíts át úgy, hogy nagybetűvel kezdődjön.
Házi feladatok Házi feladatok Szorgalmi (plusz pontért): 5.b) Döntsd el két számról, hogy bármelyik osztója-e a másiknak! 8.b) Add meg egy számtani sorozat első két elemének ismeretében az N-edik elemét! 8.c) Mértani sorozatra is add meg az N-edik elemet! 19.b) Egy tetszőleges szövegnek töröld le az első szavát! 21.a) Két tetszőleges szövegről döntsd el, hogy az első megtalálható-e a másodikban!