Minta programterv a 1. házi feladathoz



Hasonló dokumentumok
Programozás Minta programterv a 1. házi feladathoz 1.

Programozás I gyakorlat

BOLYAI MATEMATIKA CSAPATVERSENY FŐVÁROSI DÖNTŐ SZÓBELI (2005. NOVEMBER 26.) 5. osztály

A Hozzárendelési feladat megoldása Magyar-módszerrel

1. forduló. MEGOLDÁSOK Pontszerző Matematikaverseny 2015/2016-os tanév

Párhuzamos programozás

Útmutató a vízumkérő lap kitöltéséhez

A döntő feladatai. valós számok!

INFORMATIKAI ALAPISMERETEK

Dr. Schuster György február 21. Real-time operációs rendszerek RTOS

KOVÁCS BÉLA, MATEMATIKA I.

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Azonosító jel: Matematika emelt szint

Műszaki ábrázolás II. 3. Házi feladat. Hegesztett szerkezet

Felvételi 2013 Felvételi tájékoztató 2013

Érettségi feladatok Algoritmusok egydimenziós tömbökkel (vektorokkal) 1/6. Alapműveletek

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉPSZINT Függvények

Programozás. A programkészítés lépései. Program = egy feladat megoldására szolgáló, a számítógép számára értelmezhető utasítássorozat.

Programozás Minta programterv a 2. házi feladathoz 1.

Analízis elo adások. Vajda István október 3. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

MATEMATIKA ÍRÁSBELI VIZSGA május 3.

Lineáris algebra gyakorlat

FELVÉTELI TÁJÉKOZTATÓ

Beállítások CLASSBOOK-óratervező. Első belépés

MINTA. Fizetendô összeg: ,00 HUF. Telefonon: / ben: Interneten:

MATLAB. 4. gyakorlat. Lineáris egyenletrendszerek, leképezések

Fordítóprogramok Készítette: Nagy Krisztián

Adatok ábrázolása, adattípusok. Összefoglalás

EPER E-KATA integráció

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Trigonometria

Vodafone ReadyPay. Használati útmutató

Diszkrét matematika I. gyakorlat

1. Metrótörténet. A feladat folytatása a következő oldalon található. Informatika emelt szint. m2_blaha.jpg, m3_nagyvaradter.jpg és m4_furopajzs.jpg.

Kérdések és feladatok

SÜTIK TÖRLÉSE. Készült: Módosítva:

JEGYZİKÖNYV RENDKÍVÜLI NYÍLT KISZOMBOR december 12.

Kombinatorika. 9. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Kombinatorika p. 1/

Rendezési algoritmusok belső rendezés külső rendezés

Mágneses szuszceptibilitás vizsgálata

Kétegyházi Márki Sándor Általános Iskola Különös közzétételi lista

ÍRÁSBELI FELADAT MEGOLDÁSA

HENYIR felhasználói dokumentáció

A C programozási nyelv VI. Parancssori argumentumok File kezelés

Értékelés Összesen: 100 pont 100% = 100 pont A VIZSGAFELADAT MEGOLDÁSÁRA JAVASOLT %-OS EREDMÉNY: EBBEN A VIZSGARÉSZBEN A VIZSGAFELADAT ARÁNYA 30%.

MATEMATIKA HETI 3 ÓRA

Kérdőívek. Szigetszentmiklós, június

AWP TELEPÍTÉSE- WINDOWS7 64 OPERÁCIÓS RENDSZEREN

Csoportosított adatok megjelenítése sorhalmaz függvények használatával

Boldva és Vidéke Taka r ékszövetkezet

ÁFA felhasználói dokumentum Lezárva:

Boldva és Vidéke Taka r ékszövetkezet

Shared IMAP beállítása magyar nyelvű webmailes felületen

Conjoint-analízis példa (egyszerűsített)

Dr. Kulcsár Gyula. Virtuális vállalat félév. Projektütemezés. Virtuális vállalat félév 5. gyakorlat Dr.

Beiskolázás Középiskola Neve: Erkel Ferenc Gimnázium és Informatikai Szakképző Iskola, Kollégium OM azonosító száma:

B+ B- A+ A- G Y 1 C1 2 3 C2 4

Variációk egy témára - táblázatkezelő feladatok megoldása többféleképpen

Az első lépések. A Start menüből válasszuk ki a Minden program parancsot. A megjelenő listában kattintsunk rá az indítandó program nevére.

Korszerű geodéziai adatfeldolgozás Kulcsár Attila

DLookup függvény 1. (5)

Gépi forgácsoló Gépi forgácsoló

Beszámoló: a kompetenciamérés eredményének javítását célzó intézkedési tervben foglaltak megvalósításáról. Őcsény, november 20.

2016. JANUÁR 1-TŐL ÉRVÉNYES MÓDOSÍTÁSOK A DR. NONA INTERNATIONAL TÁRSASÁG MARKETING TERVÉBEN

Elektromos csatlakozások Multipol dugó Multipol csatlakozó kábellel. Katalógus füzetek

Arany Dániel Matematikai Tanulóverseny 2011/2012-es tanév első (iskolai) forduló haladók I. kategória

MBLK12: Relációk és műveletek (levelező) (előadásvázlat) Maróti Miklós, Kátai-Urbán Kamilla

Testnevelés tantárgyból felvehető modulok Érvényes: szeptembertől. I-IV. félév 1.Tanórai sport (hetente egy óra, vagy 2 hetente 1 dupla óra)

Tanácsok egyszerű programok készítéséhez

TOVÁBBI INFORMÁCIÓT TARTALMAZÓ HIRDETMÉNY, BEFEJEZETLEN ELJÁRÁSSAL KAPCSOLATOS INFORMÁCIÓ VAGY KORRIGENDUM

Az Európai Szabadalmi Egyezmény végrehajtási szabályainak április 1-étől hatályba lépő lényeges változásai

Egyre nagyobb profitot generálnak a mobiltelefonnal végzett vásárlások, és egyre többet hezitálunk vásárlás előtt

Útszelepek Elektromos működtetés Sorozat SV09. Katalógus füzetek

Belépési útmutató a MIAG weboldalra

Az informatika oktatás téveszméi

A 2014/2015-ÖS TANÉV RENDJE

Digitális technika (VIMIAA01) Laboratórium 1

Közhasznúsági Beszámoló. Egry József Általános Iskola. Tolnai Alapítvány

Táppénzes jelentés OEP hibakódok, és az ezek esetén javasolt megoldások

V. Kétszemélyes játékok

MILYEN A KIEGYENSÚLYOZOTT ÉTREND?

IV.5. GARÁZS 1. A feladatsor jellemzői

Erste MobilBank Felhasználói kézikönyv

Felhasználói Kézikönyv Kisbanki NetBOSS - IVR

MAGYAR NYELV a 4. évfolyamosok számára. MNy2 JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

1. Írja fel prímszámok szorzataként a 420-at! 2. Bontsa fel a et két részre úgy, hogy a részek aránya 5 : 4 legyen!

I. 4.) Az ajánlatkéra más ajánlatkérak nevében folytatja-e le a közbeszerzési eljárást? nem X

Halmazok és függvények

Segítünk online ügyféllé válni Kisokos

CAD-CAM

Játékok (domináns stratégia, alkalmazása

KOVÁCS BÉLA, MATEMATIKA I.

Vegyes tételek könyvelése felhasználói dokumentum Lezárva:

xdsl Optika Kábelnet Mért érték (2012. II. félév): SL24: 79,12% SL72: 98,78%

Egységes Mezőgazdasági Ügyfél-nyilvántartási Rendszer. Kérjük, a kérelmet olvashatóan, nyomtatott nagy betűkkel töltse ki! I. rész: Azonosító adatok

Keretszerződés költöztetési, szállítási feladatok ellátására a Pécsi Tudományegyetemen-2- AF módosítás

Jogszabályváltozások. Érettségi 2015/2016 tanév tavasz. Dr. Kun Ágnes osztályvezető

ingyenes tanulmány GOOGLE INSIGHTS FOR SEARCH

Tudnivalók az otthon kidolgozandó feladatokról

MÁTRIXOK SAJÁTÉRTÉKEINEK ÉS SAJÁTVEKTORAINAK KISZÁMÍTÁSA. 1. Definíció alkalmazásával megoldható feladatok

Átírás:

Programozás Minta programterv a 1. házi feladathoz Gregorics Tibor EHACODE.ELTE gt@inf.elte.hu 0.csoport 1. beadandó/0.feladat 1. 2011. december 28. Feladat Egy osztályba n diák jár, akik m darab tantárgyat tanulnak. Ismerjük a félév végi osztályzataikat. Igaz-e, hogy minden diáknak van legalább két ötöse? Megoldási terv A = (napló: ℕn m, l: 𝕃) Ef =( napló = napló ) n Uf =( Ef (l = i [1..n] : ötösdb(i) 2 ) ) = ( Ef ( l search (ötösdb(i) 2) ) ) i 1 m ahol ötösdb(i) : [1..n] ℕ és ötösdb(i) = 1 j=1 napló[i,j]=5 m..n (i) opt. lin ker ~ 1..n ~ ötösdb(i) 2 l,i:=true,1 l i n l:= ötösdb(i) 2 i:= i+1 m..n (i) c i számlálás ~ 1..m ~ napló[i,j]=5 ~ db ~ j db:= ötösdb(i) db:=0 j= 1..m napló[i,j]=5 db:=db+1 SKIP Implementáció Adattípusok megvalósítása A tervben szereplő mátrixot vector<vector<int>>-ként deklaráljuk. Mivel a vektor 0-tól indexelődik, azért a tervbeli ciklusok indextartományai a 0..n 1 és a 0..m 1 intervallumra módosulnak, ahol a n-re t.size() alakban, m-re pedig t[i].size() alakban hivatkozhatunk. A megvalósításban a diákok és a tantárgyak neveit is tároljuk egy-egy külön tömbben.

Programozás Minta programterv a 1. házi feladathoz 2. Bemenő adatok formája Az adatokat be lehet olvasni egy szöveges állományból vagy meg lehet adni billentyűzetről. Ha a programot parancssorból indítjuk úgy, hogy paraméterként megadjuk a bemenő adatokat tartalmazó szöveges állomány nevét, akkor innen olvassa be a program az adatokat. Ha nem adunk meg a parancssorban állomány nevet vagy nem parancssorból indul a program, akkor az először megkérdezi az adatbevitel módját, majd a szöveges állományból való olvasást választva bekéri az állomány nevét. A billentyűzetről vezérelt adatbevitelt a program párbeszéd-üzemmódban irányítja, és azt megfelelő adat-ellenőrzésekkel vizsgálja. A szöveges állomány formája kötött, arról feltesszük, hogy helyesen van kitöltve, ezért ezt külön nem ellenőrizzük. Az első sor a tanulók és a tantárgyak számát tartalmazza, szóközökkel vagy tabulátor jelekkel elválasztva. Ezt követően olvashatók a tanulók nevei soronként, majd a tantárgyak nevei ugyancsak soronként. Végül az osztályzatok következnek a tanulók sorrendjében úgy, hogy minden tanuló jegyei egy sorban szóközökkel vagy tabulátor jelekkel legyenek elválasztva a tantárgyak megadott sorrendjében. Minden sor végén (az utolsó sor végén is) sorvége jel legyen. Példa: 2 3 Kerek Berci Nagy János Matek Föci Orosz 4 3 2 5 4 4 Program váz A program több állományból áll. A read csomagban (read.h, read.cpp) a ReadInt(), ReadNat(), és az all() függvényeket találjuk (ezek az egész számok billentyűzetről való beolvasását támogatják), az összes többi függvény a naplo.cpp állományban van. A ReadInt() segítségével azt a felhasználói döntést olvassuk be, hogy fájlból vagy billentyűzetről történjen-e az adatok bevitele. A ReadNat() a billentyűzetről való beolvasás esetén a napló méreteinek megadására szolgál. Mindkettő bemenete két sztring (címke, hibaüzenet) és egy ellenőrző függvény. A Neveket_olvas() kétszer kerül felhasználásra: mind a tanulók, mind a tantárgyak neveinek beolvasásánál. Bemenete az n illetve az m. A Jegyeket_olvas() az osztályzási naplót tölti fel. Bemenete az üres osztályzási napló, valamint a tanulók és tantárgyak névsora, kimenete a feltöltött osztályzási napló. Egy jegy beolvasásához a ReadInt()-et használja. A Fajlbol_olvas() egy szöveges állományból olvassa be mind a tanulók és tantárgyak számát, nevét, mind a jegyeket.

Programozás Minta programterv a 1. házi feladathoz 3. main() s ReadInt() egykettoharom() n, m tanuló, tárgy napló ReadNat() all() Neveket_olvas() Jegyeket_olvas() ReadInt() napló[,i,j] Jegy() Fájlból_olvas() napló Mindenkinek_ket_otos() napló[i] OtosDb() l db Tesztelési terv Tesztesetek a feladat specifikációja alapján (fekete doboz tesztelés) Érvényes tesztesetek: A. Külső programozási tétel (lineáris keresés): intervallum hossza: 1. Üres napló esetei: (t10.txt: nincs tanuló, sem tantárgy válasz: igaz) (t11.txt: nincs tanuló válasz: igaz) 2. Egy tanuló, egy tantárgy esete. (t2.txt: 5 válasz: hamis) 3. Több tanuló, több tantárgy: csak az első tanulónak nincs két ötöse. (t4.txt: 3 2 [ 5, 3, 5, 5, 5, 5] válasz: hamis) intervallum eleje: 1. Több tanuló, több tantárgy: csak az első tanulónak nincs két ötöse. (t4.txt: 3 2 [ 5, 3, 5, 5, 5, 5] válasz: hamis) intervallum vége: 1. Több tanuló, több tantárgy: csak az utolsó tanulónak nincs két ötöse. (t5.txt: 3 2 [ 5, 5, 5, 5, 1, 5] válasz: hamis) tételre jellemző esetek: 1. Több tanuló, több tantárgy: mindenkinek van legalább két ötöse. (t3.txt: 2 3 [ 5, 3, 5, 5, 5, 5] válasz: igaz) 2. Több tanuló, több tantárgy: egy tanulónak nincs két ötöse. (t4.txt: 3 2 [ 5, 3, 5, 5, 5, 5] válasz: hamis) 3. Több tanuló, több tantárgy: senkinek nincs két ötöse. (t6.txt: 3 2 [ 5, 3, 5, 3, 1, 5] válasz: hamis)

Programozás Minta programterv a 1. házi feladathoz 4. B. Belső programozási tétel (számlálás): intervallum hossza: 1. Üres napló esetei: (t10.txt: nincs tanuló, sem tantárgy válasz: igaz) (t12.txt: nincs tantárgy válasz: hamis) 2. Egy tanuló, egy tantárgy esete. (t2.txt: 5 válasz: hamis) 3. Egy tanulónak több jegye van intervallum eleje és vége: 4. Egy tanulónak az első és utolsó jegye ötös (t13.txt: 1 4 [ 5, 3, 4, 5] válasz: igaz) 5. Egy tanulónak sem az első, sem az utolsó jegye nem ötös van 6. Egy tanulónak első jegye ötös, de az utolsó nem (t15.txt: 1 4 [ 5, 3, 4, 3] válasz: igaz) 7. Egy tanulónak sem az első, sem az utolsó jegye nem ötös van tételre jellemző esetek: 8. Egy tanulónak nincs ötöse (t8.txt: 1 4 [ 1, 3, 4, 3] válasz: hamis) 9. Egy tanulónak egyetlen ötöse van 10. Egy tanulónak két ötöse van (t13.txt: 1 4 [ 5, 3, 4, 5] válasz: igaz) 11. Egy tanulónak sok ötöse van (t14.txt: 1 4 [ 5, 5, 5, 3] válasz: igaz) Érvénytelen tesztesetek: 1. Nem megengedett értékek: Nem 1 és 5- közé eső osztályzatok (nem okoz problémát) Nem számok az osztályzatok (ilyen eseteket eleve kizártunk, nem ellenőrizzük) Tesztesetek a megoldó kód alapján (fehér doboz tesztelés) A beolvasást végző függvények tesztelése: 1. Menü választás tesztelése (1, 2, 3, más) 2. Beolvasás mindhárom módozatának tesztelése. 3. Parancssorból indítás fájlnévvel és anélkül. 4. Nem létező fájlnév megadása. 5. Hibás adatok a billentyűzetről (negatív tanuló vagy tantárgy szám, hibás osztályzat). A Mindekinek_ket_otos() függvény tesztelése: 1. igen válasz esete több tanulónál (ciklus feltétel tesztje): (t7.txt: 3 2 [5, 5, 5, 5, 5, 5] válasz: igaz) (t11.txt: 0 3 [] válasz: igaz) 2. nemleges válasz, amely az első tanulónál jelentkezik (kilépés az első):

Programozás Minta programterv a 1. házi feladathoz 5. (t6.txt: 3 2 [ 5, 3, 5, 3, 1, 5] válasz: hamis) 3. nemleges válasz, amely az utolsó tanulónál jelentkezik (kilépés több menet): (t5.txt: 3 2 [ 5, 5, 5, 5, 1, 5] válasz: hamis) 4. elágazás feltétel tesztelése (kisebb, épp egyenlő, nagyobb, mint 2 esetei): (t5.txt: 3 2 [ 5, 5, 5, 5, 1, 5] válasz: hamis) A OtosDb() függvény tesztelése: 1. olyan adatsorra, amikor egyszer sem lép a ciklusba a vezérlés; (t12.txt: 2 0 [] válasz: 0) 2. olyan adatsorra, amikor egyszer sem növeljük a darabszámot; (t8.txt: 1 4 [ 1, 3, 4, 3] válasz: 0) 3. olyan adatsorra, amikor egyszer növeljük a darabszámot; (t9.txt: 1 4 [ 1, 5, 4, 3] válasz: 1) 4. olyan adatsorra, amikor többször növeljük a darabszámot; (t13.txt: 1 4 [ 5, 3, 4, 5] válasz: 2)

Programozás Minta programterv a 1. házi feladathoz Alternatív megoldási terv (rekurzív függvény kibontásával) n Uf =( Ef (l = i [1..n] : jótanuló(i)) ) = ( Ef ( l search ( jótanuló (i)) ) ) i 1 ahol jótanuló(i) = j [1..m] : ötösdb_i(j) = 2 ahol ötösdb_i : [0..m] ℕ ötösdb_i(0) = 0 1 ha napló[i, j ] 5 ötösdb_i(j) = ötösdb_i(j-1) + (j 1) 0 ha napló[i, j ] 5 l,i:=true,1 l i n l:= jótanuló(i) i:= i+1 l:= jótanuló(i) l,j,s:= false,1,0 l j m napló[i,j]=5 s:=s+1 SKIP l:= s=2 j:= j+1 6.