Bevezet´ es a programoz´ asba I. K¨ ovetelm´ enyrendszer
Bevezet´es a programoz´asba I. 1. gyakorlat
Sur´anyi M´arton PPKE-ITK
2010.09.07.
Bevezet´ es a programoz´ asba I. K¨ ovetelm´ enyrendszer
K¨ovetelm´enyrendszer
A gyakorlatokon a r´eszv´etel k¨ otelez˝ o! K´et nagyz´arthelyi R¨opz´arthelyik a gyakorlatok elej´en K¨otelez˝o h´azifeladatok
Bevezet´ es a programoz´ asba I. K¨ ovetelm´ enyrendszer Jelenl´ et
Jelenl´et
A gyakorlatokon maxmimum h´arom hi´anyz´as megengedett. A negyedikn´el az illet˝o nem kap al´a´ır´ast, vagyis a t´argyat nem teljes´ıtette.
Bevezet´ es a programoz´ asba I. K¨ ovetelm´ enyrendszer Nagyz´ arthelyik
Nagyz´arthelyik
Az els˝o nagyz´arthelyit az ¨ ot¨ odik-hatodik gyakorlat t´aj´an ´ırjuk, pap´ırra, PlanG-b´ol. Erre mindenki kap egy jegyet (1-5). Ezen a ZH-n semmilyen seg´edeszk¨ ozt nem lehet haszn´alni. A m´asodikat a f´el´ev v´eg´en, g´epteremben, C++-b´ol. P´ar ´ora alatt kell egy m˝ uk¨ od˝ o programot ´ırni. Kiz´ar´ olag bolti k¨onyv (teh´at nem saj´at kez˝ uleg nyomtatott/´ırt pap´ır) haszn´alhat´o seg´edeszk¨ozk´ent. Legal´abb kettest el kell ´erni. Lehet jav´ıtani, de csak az egyikb˝ ol!
Bevezet´ es a programoz´ asba I. K¨ ovetelm´ enyrendszer R¨ opz´ arthelyik
R¨opz´arthelyik
Minden gyakorlat elej´en r¨ opz´arthelyit ´ırunk az addigi el˝oad´asok ´es gyakorlatok anyag´ab´ ol J´o v´alasz eset´en +1 Nem j´o, de elfogadhat´ o v´alasz eset´en 0 Rossz v´alasz eset´en -1 Illetve, ha valaki nincs jelen a gyakorlaton, akkor szint´en -1 A f´el´ev v´eg´ere a r¨ opz´arthelyikre kapott pontok ¨osszeg´enek legal´abb null´anak kell lennie, ha nem, akkor az illet˝o nem kap al´a´ır´ast. A f´el´ev v´eg´en lesz jav´ıt´asi lehet˝ os´eg.
Bevezet´ es a programoz´ asba I. K¨ ovetelm´ enyrendszer H´ azi feladatok
H´azi feladatok
Minden gyakorlaton kiadunk k¨ otelez˝ o h´azi feladatokat, illetve szorgalmi feladatokat A h´azi feladatok megold´as´ara egy h´et lesz, pontosabban a k¨ovetkez˝o gyakorlat napj´an, reggel 6:00-ig (teh´at ˝oszi sz¨ unet el˝ott kiadott h´azira k´et h´et lesz) Ha a h´azit id˝oben megkapjuk, ´es j´ ol m˝ uk¨ odik, akkor 0. Ha nem m˝ uk¨odik, vagy nem id˝ oben ´erkezik, akkor -1. A szorgalmikat pedig pluszpontokkal honor´aljuk. A kapott pontokat ¨ osszeadjuk; elosztjuk t´ızzel, ´es hozz´aadjuk a gyakorlati jegyhez. ´Igy teh´at lehet jav´ıtani/rontani is.
Bevezet´ es a programoz´ asba I. K¨ ovetelm´ enyrendszer Gyakorlati jegy
Gyakorlati jegy sz´am´ıt´asa
1:2 ar´anyban az els˝ o ´es m´asodik ZH eredm´enye, plusz a h´azifeladatokb´ol szerzett/vesztett pontok.
Bevezet´ es a programoz´ asba I. K¨ ovetelm´ enyrendszer Al´ a´ır´ asmegtagad´ as
FONTOS
Nem kaphat jegyet: akinek a r¨opz´arthelyik ¨ osszege kisebb mint nulla ´ akinek b´armelyik h´azifeladat´ar´ ol kider¨ ul, hogy MASOLTA el´egtelen g´eptermi ZH
Bevezet´ es a programoz´ asba I. Programoz´ as alapok Alapok
Alapfogalmak G´ epi k´ od: a sz´am´ıt´ og´ep sz´am´ara k¨ ozvetlen¨ ul ´ertelmezhet˝o utas´ıt´asok sorozata (pl. futtathat´ o ´allom´anyok; exe-k). Pl. 100008000800BC16BC1EBC12BC190E28BC15472023. Ebben nem k¨onny˝ u programot ´ırni. Programoz´ asi nyelv: Egy magasabb szint˝ u eszk¨oz, amivel k¨onnyebben tudunk programokat ´ırni (pl. Pascal, Basic, C++, PlanG, stb.). Forr´ as k´ od (source code): az adott programoz´asi nyelven ´ aban ember ´altal ´ırt. meg´ırt program. Altal´ Ford´ıt´ as: az a folyamat, amikor a forr´asprogramb´ol g´epi k´odot ´all´ıtunk el˝o, a ford´ıt´ oprogram feladata. A ford´ıt´oprogram ellen˝ orzi a forr´ask´ od szintaktik´aj´at, k¨ozben ford´ıt´asi hib´akat kaphatunk.
Bevezet´ es a programoz´ asba I. Programoz´ as alapok V´ altoz´ ok
V´altoz´ok
A v´ altoz´ o mem´ori´aban t´arolt adat, amelynek a fut´as sor´an megv´altoztathat´o az ´ert´eke. A legt¨obb programoz´asi nyelvben a v´altoz´ onak van t´ıpusa. A t´ıpus meghat´arozza, hogy mit t´arolhatunk benne, illetve, hogy milyen m˝ uveleteket v´egezhet¨ unk rajta. A v´altoz´ok el´er´es´ere neveket haszn´alunk (pl. a:=5). A v´altoz´ok neveit mi adhatjuk meg, ´erdemes besz´edes neveket haszn´alni, amelyek utalnak a v´altoz´ o feladat´ara.
Bevezet´ es a programoz´ asba I. Programoz´ as alapok V´ egrehajt´ as
V´egrehajt´as
A program (miut´an lefordult) soronk´ent, l´ep´esr˝ol l´ep´esre hajt´odik v´egre (p´elda k´es˝ obb). Az ek¨ ozben keletkez˝o hib´akat fut´asi hib´anak nevezz¨ uk. (pl. Elfogyott a mem´oria, a program ´erv´enytelen mem´oriater¨ uletet akar el´erni, stb.) Specifik´ aci´ o: megadjuk, hogy mi a be- illetve kimeneti felt´etel. (pl. k´es˝obb)
Bevezet´ es a programoz´ asba I. PlanG A PlanG fejleszt˝ oi k¨ ornyezet
PlanG
A PlanG egy fejleszt˝ oi k¨ ornyezet, c´elja a programoz´as oktat´asa. Az els˝o ¨ ot-hat h´etben ezzel fogunk foglalkozni. PROGRAM program_neve V´ALTOZ´OK: ** deklar´aci´os r´ esz ** programt¨orzs PROGRAM_V´EGE V´altoz´okat a deklar´aci´ os r´eszben defini´alhatunk. Maga a program utas´ıt´asai a programt¨ orzsbe ker¨ ulnek.
Bevezet´ es a programoz´ asba I. PlanG Hello World!
Hello World!
Els˝o programunk ki´ırja, hogy ”Hello World!”. Specifik´ aci´ o: BE: (nincs bemenet) KI: ”Hello World!” PROGRAM hello_world KI: "Hello World!" PROGRAM_V´EGE L´athatjuk, hogy most nincs deklar´aci´ os r´esz, mert nem haszn´alunk v´altoz´okat.
Bevezet´ es a programoz´ asba I. PlanG T´ıpsuok PlanG-ban
T´ıpusok PlanG-ban V´altoz´okat a deklar´aci´ os r´eszben defini´alhatunk. M´ar tudjuk, hogy a v´altoz´oknak van t´ıpusa. Alapt´ıpusok (a teljess´eg ig´enye n´elk¨ ul): ´ EGESZ: felvehet˝ o ´ert´ekek: pozit´ıv ´es negat´ıv eg´esz sz´amok ´es a nulla (... , -2, -1, 0, 1, 2, ...) ´ ´ert´ekek: pozit´ıv ´es negat´ıv val´ VALOS: os sz´amok ´es a nulla (pl. 7.786, 0.0012, 768.05) LOGIKAI: felvehet˝ o ´ert´ekek: IGAZ, HAMIS KARAKTER: felvehet˝ o ´ert´ekek: bet˝ uk, sz´amok, ´ır´asjelek, sz´ok¨oz, sorv´ege jel (’A’, ’2’, ’ ’, ’ ?’, ’@’, SV) ¨ SZOVEG: felvehet˝ o ´ert´ekek: karakterek sorozata (lehet u ¨res is) ("alma", "", "k¨ orte ban´ an") A t´ıpusokr´ol b˝ovebben a honlapon, PlanG le´ır´asn´al olvashattok.
Bevezet´ es a programoz´ asba I. PlanG Kifejez´ esek
Kifejez´esek
A kifejez´es sz´amok, v´altoz´ ok, m˝ uveleti jelek (´es f¨ uggv´enyek) (5+9) sorozata. (pl. 1+1 vagy 4*(5+9)/2 vagy 4 · 2 ). Amikor a program fut´asa egy kifejez´eshez ´er, akkor kiert´ekeli azt. Az ´ıgy kapott eredm´eny a kifejez´es ´ert´eke. ´ Ugy, mint a v´altoz´ oknak, a kifejez´esek ´ert´ek´enek is van t´ıpusa. Pl: ´ 1 + 1 - K´et eg´esz sz´amot adunk ¨ ossze, EGESZ t´ıpus´ u ´ert´ek lesz az eredm´eny(2). 2<5 - K´et eg´esz sz´amot hasonl´ıtunk ¨ ossze. Az eredm´eny LOGIKAI t´ıpus´ u (IGAZ).
Bevezet´ es a programoz´ asba I. PlanG Kifejez´ esek
Kifejez´es - p´elda Specifik´ aci´ o: BE: (nincs bemenet), KI: 28 PROGRAM kifejezes1 KI: 2 * (5 + 9) PROGRAM_V´EGE
A bal als´o sarokban l´athat´ o a kifejez´esfa.
Bevezet´ es a programoz´ asba I. PlanG Beolvas´ as, v´ altoz´ ok haszn´ alata
V´altoz´ok, beolvas´as Olvassunk be egy sz´amot, majd ´ırjuk ki a k´etszeres´et! Specifik´ aci´ o: BE: eg´esz sz´am(a) KI: a sz´am k´etszerese(a*2) (eg´esz sz´am) PROGRAM valtozo1 V´ALTOZ´OK: a: EG´ESZ BE: a KI: a * 2 PROGRAM_V´EGE
Bevezet´ es a programoz´ asba I. PlanG Beolvas´ as, v´ altoz´ ok haszn´ alata
Feladat Feladatgy˝ ujtem´ eny I. 1.) D¨ ontsd el egy eg´esz sz´amr´ol, hogy p´aros-e. Specifik´ aci´ o: BE: eg´esz sz´am(a) KI: logikai (p´aros-e) PROGRAM feladatgy_I_1 V´ALTOZ´OK: a: EG´ESZ BE: a KI: (a MOD 2) = 0 PROGRAM_V´EGE
Bevezet´ es a programoz´ asba I. PlanG Logikai m˝ uveletek
Logikai m˝uveletek, o¨sszehasonl´ıt´asok
NEM: logikai tagad´as (pl. a NEM IGAZ kifejez´es ´ert´eke HAMIS) ´ (pl. az ”a ´ ´ logikai ES ES: ES b” kifejez´es ´ert´eke pontosan akkor IGAZ, ha a ´es b is k¨ ul¨ on-k¨ ul¨ on igaz. ) VAGY: logikai VAGY (pl. az ”a VAGY b” kifejez´es ´ert´eke pontosan akkor IGAZ, ha legal´abb az egyik igaz.) ´ ´ KARAKTER vagy SZOVEG ¨ a = b k´et EGESZ, VALOS, k¨ozt v´egez egyenl˝ os´egvizsg´alatot (ha megegyeznek, akkor IGAZ, k¨ ul¨onben HAMIS) (a nem egyenl˝ o m˝ uvelet: /=) ´ ´ k¨ a
,<=,>=)
Bevezet´ es a programoz´ asba I. PlanG Feladatok 1.
Feladatok
I. 2.) D¨ontsd el egy tetsz˝ oleges sz´amr´ ol, hogy egy adott intervallumba esik-e. I. 3.a) D¨ontsd el egy koordin´at´akkal adott pontr´ ol, hogy az orig´o-e. I. 3.b) D¨ontsd el, hogy az egyik koordin´atatengelyre esik-e. ´Irj programot, ami megmondja: H´any ´ora van egy ´evben? H´any perc van egy ´evtizedben?
Bevezet´ es a programoz´ asba I. PlanG Sz¨ ovegkezel´ es
Sz¨ovegkezel´es A Plang-ban van lehet˝ os´eg sz¨ ovegek kezel´es´ere. Karakterrel v´egezhet˝o f˝obb m˝ uveletek(a ´es b karakter t´ıpusok): NAGY a: az a v´altoz´ oban l´ev˝ o karaktert nagybet˝ uv´e alak´ıtja. (FIGYELEM! Ekkor az a v´altoz´ o ´ert´eke nem v´altozik meg!) A kifejez´es ´ert´ek´enek t´ıpusa KARAKTER KIS a: ugyanaz, mint f¨ ont, csak kisbet˝ uv´e alak´ıt a,<=,>=) A kifejez´es ´ert´ek´enek t´ıpusa LOGIKAI. ˝ a: ellen˝orzi, hogy a karakterben t´arolt ´ert´ek bet˝ BETU u-e (teh´at nem sz´am, ´ır´asjel, stb.). Ha az, akkor a kifejez´es ´ert´eke ´ a azt ellen˝ IGAZ. (hasonl´ok´eppen a SZAM orzi, hogy sz´am-e a t´arolt ´ert´ek)
Bevezet´ es a programoz´ asba I. PlanG Sz¨ ovegkezel´ es
Sz¨ovegkezel´es
¨ Sz¨oveggel v´egezhet˝o f˝ obb m˝ uveletek(sz,szov1,szov2 SZOVEG t´ıpus´ uak; kar1,kar2 pedig KARAKTER): ¨ Osszef˝ uz´ es (konkaten´aci´ o): egy sz¨ oveget ¨ osszef˝ uzhet¨ unk egy m´asik sz¨oveggel, vagy karakterrel. Pl. szov1 + szov2, szov1 + kar1, kar1 + szov1 Hossz lek´ erdez´ ese: |sz| (eg´esz ´ert´ek˝ u kifejez´es) Adott helyen ´ all´ o karakter lek´ erdez´ ese: sz[4] az ¨ot¨odik helyen ´all´o karaktert adja vissza. (Teh´at az els˝o helyen ´all´o karaktert az sz[0] kifejez´essel ´erhetj¨ uk el)
Bevezet´ es a programoz´ asba I. PlanG Sz¨ ovegkezel´ es
Sz¨ovegkezel´es (folytat´as)
A sz¨ovegekre ugyan´ ugy m˝ uk¨ odik az ¨ osszehasonl´ıt´as, mint karakterekre, vagyis ´ab´ec´esorrendben hasonl´ıtja ¨ossze ˝oket. szov1@kar1 karakter els˝ o el˝ ofordul´as´anak helye (a karakter indexe; ha nem fordulel˝ o, akkor |szov 1| az eredm´eny) szov1@szov2 r´essz¨ oveg els˝ o el˝ ofordul´as´anak helye (a r´essz¨oveg els˝o karakter´enek az indexe; ha nem fordul el˝o, akkor |szov 1| az eredm´eny) Figyelem! Nem soroltuk f¨ ol az ¨ osszes m˝ uveletet! A h´azi feladatok megold´as´ahoz lehet, hogy sz¨ uks´eg van tov´abbi m˝ uveletek ismeret´ere. Ezeket a honlapon tal´alj´atok meg.
Bevezet´ es a programoz´ asba I. PlanG Feladatok 2.
Feladatok
I. I. I. I.
14. D¨ontsd el egy sz¨ ovegr˝ ol, hogy sz´ ok¨ ozzel kezd˝odik-e. 15. D¨ontsd el egy sz¨ ovegr˝ ol, hogy nagybet˝ uvel kezd˝odik e. 16. D¨ontsd el egy sz¨ ovegr˝ ol, hogy sz´amjegyre v´egz˝odik-e. 19.a) Add meg egy tetsz˝ oleges sz¨ oveg els˝ o szav´at.
Bevezet´ es a programoz´ asba I. PlanG H´ azi feladatok
H´azi feladatok K¨ otelez˝ o (I. fejezetb˝ol): 4.) Sz´am´ıtsd ki egy adott sugar´ u g¨ omb t´erfogat´at. (teh´at a bemenet a sug´ar) 5.a) D¨ontsd el k´et eg´esz sz´amr´ ol, hogy az els˝o oszt´oja-e a m´asodiknak. (bemenet a k´et sz´am) 7.) D¨ontsd el k´et sz´amr´ ol, hogy megegyezik-e az el˝ojel¨ uk. 8.a) Add meg egy sz´amtani sorozat els˝ o k´et elem´enek ismeret´eben a harmadik elem´et. 17.a) D¨ontsd el egy sz¨ ovegr˝ ol, hogy ugyanazzal a karekterrel kezd˝odik-e, mint amivel v´egz˝ odik. 20.) Egy tetsz˝oleges sz´ ot alak´ıts ´at u ´gy, hogy nagybet˝ uvel kezd˝odj¨on.
Bevezet´ es a programoz´ asba I. PlanG H´ azi feladatok
H´azi feladatok
Szorgalmi (plusz pont´ert): 5.b) D¨ontsd el k´et sz´amr´ ol, hogy b´armelyik oszt´oja-e a m´asiknak! 8.b) Add meg egy sz´amtani sorozat els˝ o k´et elem´enek ismeret´eben az N-edik elem´et! 8.c) M´ertani sorozatra is add meg az N-edik elemet! 19.b) Egy tetsz˝oleges sz¨ ovegnek t¨ or¨ old le az els˝o szav´at! 21.a) K´et tetsz˝oleges sz¨ ovegr˝ ol d¨ ontsd el, hogy az els˝o megtal´alhat´o-e a m´asodikban!