Csempe Programozás érettségi mintafeladat 2004.03.19.

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

83. (1 pont) A felsorolt végeredmények, hatások közül karikázza be a mondatszerű leírással (szöveggel) megadott algoritmus eredményét jelölő betűt, ha.
Programozási tételek, és „négyzetes” rendezések
 Megfigyelhető, hogy amikor több elem közötti összehasonlítás történik, akkor szükség van egyszerre több értékre is, főleg akkor, ha ezek az értékek jóval.
C++ programozási nyelv Gyakorlat hét
Matematika feladatlap a 8. évfolyamosok számára
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Adatszerkezetek Az adatokat két fő csoportra oszthatjuk: egyszerű és összetett adatok.  Az egyszerű adatot egy érték jellemez, tovább nem bontható. (szám,
Matematika II. 3. előadás Geodézia szakmérnöki szak 2010/2011. tanév Műszaki térinformatika ágazat tavaszi félév.
Cells(sor száma, oszlop száma)
INFOÉRA Dinamikus programozás (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai képzések.
Tóth István Algoritmusok és adatszerkezetek 2.
Készítette: Lakos Péter
Programozási alapismeretek 7. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 7. előadás2/  Sorozatszámítás.
Programozási alapismeretek 10. előadás
Turbo Pascal Változók.
Dinamikus tömbök.
Sztringek.
Sztringek  Az fscanf() és a fprintf() függvényeknél a %s-es formátumtagot kell használni.  A %s formátumtag az első white space karakterig folytatja,
Bevezetés a Java programozásba
C A C nyelv utasításai.
Készítette: Pető László
Dolgozat futás közbeni értékadásra Készítette: Rummel Szabolcs Elérhetőség:
Programozás I. Horváth Ernő 1. Elérhetőségek Bauer Péter Horváth Ernő Tanszéki honlap
OPERÁCIÓKUTATÁS Kalmár János, 2012 Tartalom A nulla-egy LP megoldása Hátizsák feladat.
Operációs rendszerek gyakorlat
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Operációs rendszerek gyakorlat sed, awk parancsok.
Programozás I. Ciklusok
Webszerkesztés Stíluslapok (CSS).
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Összetett adattípusok a Pascal nyelvben
Programozási nyelvek Páll Boglárka.
A Pascal programozási nyelv alapjai
Karakterláncok Páll Éva Boglárka. Ismétlés Deklaráció var s:string; Length(karlánc) Concat(karlánc1,...,karláncn) Copy(miből,honnan,hányat) Delete(miből,honnan,hányat)
A Pascal programozási nyelv alapjai
Kombinatorika összefoglalás
Tömbök és programozási tételek
Programozási nyelvek, Pascal
Rendezések és szövegkezelő függvények
Ciklusok (iterációk).
Szintaktikai, szemantikai szabályok
Matematika II. 1. előadás Geodézia szakmérnöki szak 2010/2011. tanév Kataszteri ágazat tavaszi félév.
Algoritmus gyakorlati feladatok
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Programozás4 Készítette: Rummel Szabolcs
Visual Basic 2008 Express Edition
Java programozási nyelv Adatbekérés konzolról
Webprogramozó tanfolyam
Az algoritmuskészítés alapjai
CUDA C/C++ programozás Szál struktúra A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Algoritmizálás, adatmodellezés tanítása 8. előadás.
V 1.0 ÓE-NIK-AII, Programozás I. Karaktersorozatok Feladatok.
Webprogramozó tanfolyam
A Visual Basic nyelvi elemei
Dodekaéder Hamilton köre
Algoritmizálás és programozás tanítása Balogh Zoltán PTE-TTK IÁTT Az algoritmuskészítés.
A nyomás 1 Newton/m2 = 1 Pascal.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
Free pascal feladatok
A 2. géptermi beszámoló VBA anyagának összefoglalása
Grafikus programozás Készítette: Csernok László
Excel programozás (makró)
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Informatikai gyakorlatok 11. évfolyam
TÖMBÖK – péntek Jordán Sándor.
Programozás C# -ban Elágazások.
Informatikai gyakorlatok 11. évfolyam
Előadás másolata:

Csempe Programozás érettségi mintafeladat

Csempe2 A Csempe feladat szövege - adottak Egy burkolatokkal kereskedő áruházban minden falicsempe kétféle méretben található: 15*15cm- es és 22*15cm-es. (Az első szám a csempe magassága a második a csempe szélessége. A minták miatt a csempéket nem lehet elfordítani.) A nagyobb csempe ára 1,35-szöröse a kisebb méretűnek. Az áruház nyilvántartásában a csempéket 5 karakterből álló kóddal jelölik. (A karakterek az angol abc betűi és számok lehetnek.) Az első négy karakter a csempe tulajdonságaira az utolsó a méretre utal. Az utolsó karakterhelyen az A jelöli a 15*15-ös a B a 22*15-ös méretet. A nyilvántartásban tárolják, hogy a csempéből hány db van raktáron (egész típus) és a darabárat.

Csempe3 Mi a feladat? A vevő vásárláskor megmondja, hogy mekkora falfelületet akar burkolni (a magasságot és a szélességet m-ben), és a minta alapján kiválasztott csempe kódjának első 4 karakterét. Készítsen programot, amely megállapítja, hogy melyikből olcsóbb a szükséges mennyiség. Továbbá kiírja hogy, melyik méretűból van elég raktáron. A program ellenőrzéséhez készítsen megfelelő tesztadatokat minden olyan esetre, amely előfordulhat és írja bele a beadandó programba!

Csempe4 Megjegyzések a megoldandó problémához Az 1,35-szöröst számoltatni, majd kerekíttetni akarjuk, vagy számolja ki fejben és írja be? Az utolsó helyen álló betűt ugye mi akarjuk az adathoz illeszteni?! A megfelelő tesztadatokat fájlban kérjük tárolni vagy csak kézzel a kódba írni. Jár-e plusz pont a fájlos megoldásért? Nem olyan könnyű olyan adatokat találni, ahol a 15*15- ös az olcsóbb. Sok időt vihet el amíg kitalálja a versenyző. Ha ezt nem teszteli, akkor mennyi pontot veszít? Az adatok elkészítéséről nem derül ki, hogy azt is pontozza

Csempe5 Változók  1 Rekord  a csempe adataira kód: string[5] menny: Integer ar: Real Fájl  a fenti rekordból

Csempe6 Tesztadatok 1.Nincs ilyen kódú csempe a fájlban 2.Az első rekordban van 3.Az utolsó rekordban van 4.Elég a fájlba 4*2 rekordot írni 5.Köztük egy olyat, ahol nagyon kevés az „A”típus és egy olyat, ahol nagyon kevés a „B”típus

Csempe7 Változók  2. f : tfile; ra, rb: trek; {célszerű egyszerre látni kétféle méret rekordját} n : Integer; {a csemperekordok száma} vtip: string[4]; {a vásárló által megadott kód} akod, bkod: string[5]; {a két lehetséges csempeméret kódja} mag, szel: egész; {a burkolandó felület magassága, szélessége} adb, bdb: egész; {a típusokhoz tartozó darabszámok} aar, bar: Integer; {a típusokhoz tartozó összárak} oszl, sor: Integer; {a burkolandó felületre szükséges csempeoszlopok ill. sorok száma} l: Boolean; {logikai változó a lineáris kereséshez }

Csempe8 Adatbevitel Beolvasandó adatok  vtip, szel, mag A vtip beolvasásakor csak ez első 4 karakter, amit a programban kiegészítünk egy „A” és egy „B” végződésűre –elején (ha ezt választjuk- felesleges tárolás) –menet közben mindig, ha kell mind az 5 karaktert beolvassuk, ekkor ellenőrizni kellene a programmal  hogyan pontozzuk?? Beolvasási stratégiák az elején beolvas mindent, vagy mielőtt bármit csinál ellenőrzi, hogy létezik-e a kód! Futtatási stratégiák hátul tesztelősen folytatja a futást kívánságra másik kóddal, vagy újra kell indítani??

Csempe9 Algoritmus a keresésig {***A méretek kiszámítása***} {A fájlfeltöltésről nem készült algoritmus} olvas(vtip) akod:=vtip+'a'; bkod:=vtip+'b'; {***Átváltás***} szel:=szel*100; mag:=mag*100; oszl:=szel div 15; If (oszl*15)<szel then oszl:=oszl+1; sor:=mag div 15; If (sor*15)<mag then sor:=sor+1; adb:=sor*oszl; sor:=mag div 22; If (sor*22)<mag then sor:=sor+1; bdb:=sor*oszl;

Csempe10 A keresés Hozzárendel(f,fizikai fájlnév) reset(f); l:=false; While not(l) and not(eof(f)) do begin read(f,ra); l:=ra.kod=akod; end;

Csempe11 A keresés eredményének értékelése Ha nem l akkor kiír('Nincs ilyen csempe a raktárban.')** különben Ha van elegendő mindkettőből akkor melyik olcsóbb különben melyik elegendő kiírás(melyiket vegyük) **Ha ismételni akarjuk másik típussal, akkor itt be kell kérni

Csempe12 melyik olcsóbb Ha aar<bar akkor kiír ('A 15*15-ös az olcsóbb.') különben Ha bar<aar akkor kiír('A 22*15-ös az olcsóbb') különben kiír('Azonos az áruk.') A többirányú elágazás lenne ideális  programnyelvfüggő

Csempe13 melyik elegendő Ha (adb>ra.menny) és (bdb<=rb.menny) akkor kiír('Csak a 22*15-ösből van elég.') különben Ha (adb rb.menny) akkor kiír('Csak a 15*15-ösből van elég.') különben Ha (adb>ra.menny) és (bdb>rb.menny) akkor kiír('Egyik fajtából sincs elég raktáron.')

Csempe14 Kódolás-deklaráció 1Program csempe;* 2Uses crt;* 3Type trek=record 4 kod: string[5]; 5 menny: Integer; 6 ar: Real; 7 end;2pont 8 tfile=file of trek;1pont (a tömbre is) 9Var f : tfile; 10ra, rb: trek; 11 n: Byte; 12vtip: string[4]; 13vkod: string[5]; 14mag, szel: Integer; 15adb, bdb: Integer; 16oszl, sor: Integer; 17i: Byte; 18l: Boolean;5pont (arányosan elosztva) 19Begin

Csempe15 Kódolás–adatfájl feltöltése 19Begin 20Clrscr; 21Write('Hány adatrekord lesz? '); Readln(n); 22Assign(f,'csempe.dat'); 23rewrite(f); 24For i:=1 to n do 25Begin with ra do 26 begin write('Kérem az ',i,'. rekordot!'); 27 write('kód: '); readln(kod); 28 write('mennyiség: '); readln(menny); 29 write(' r/db: '); 30 end; 31 write(f,ra); 32end; 33close(f);3pont 34clrscr; 35Write('Milyen típusú csempét választott? '); readln(vtip);

Csempe16 Kódolás–adatbevitel+csempeszám 35Write('Milyen típusú csempét választott? '); readln(vtip); 36akod:=vtip+'a'; 37bkod:=vtip+'b';1pont 38Write('Milyen széles a burkolandó felület m-ben? '); 39readln(szel); szel:=szel*100; 40Write('Milyen magas a burkolandó felület m-ben? '); 41readln(mag); mag:=mag*100;1pont 42oszl:=szel div 15; 43If (oszl*15)<szel then oszl:=oszl+1; 44sor:=mag div 15; 45If (sor*15)<mag then sor:=sor+1; 46adb:=sor*oszl;2pont 47sor:=mag div 22; 48If (sor*22)<mag then sor:=sor+1; 49bdb:=sor*oszl;2pont 50reset(f);

Csempe17 Keresés–melyik olcsóbb 50reset(f); 51l:=false; 52While not(l) and not(eof(f)) do 53 begin read(f,ra); 54 l:=ra.kod=akod; 55 end;3pont 56If not(l) 57 then write('Nincs ilyen csempe a raktárban.')1pont 58 else begin read(f,rb); 1pont 59 aar:=ra.ar*adb; 60 bar:=rb.ar*bdb;1pont 61 Writeln('A 15*15-ösből ',adb,'db szükséges. Az ára: ',aar); 62 Writeln('A 22*15-ösből ',bdb,'db szükséges. Az ára: ',bar); 63 If (adb<=ra.menny) and (bdb<=rb.menny)1pont 64 then begin If aar<bar 65 then write ('A 15*15-ös az olcsóbb.')1pont 66 else begin 67 If bar<aar then write('A 22*15-ös az olcsóbb')1pont

Csempe18 Kódolás–valamelyikből nincs elég 67. If bar<aar then write('A 22*15-ös az olcsóbb')1pont 68. else write('Azonos az áruk.')1pont 69. end 70. end 71.else begin 72. If (adb>ra.menny) and (bdb<=rb.menny) 73. then write('Csak a 22*15-ösből van elég.')2pont 74. else begin 75. If (adb rb.menny) 76. then write('Csak a 15*15-ösből van elég.')2pont 77. else begin 78. If (adb>ra.menny) and (bdb>rb.menny) 79. then write('Egyik fajtából sincs elég raktáron.') 80. end2pont 81. end 82. end 83. end; close(f); 84. Readln; 85.84End.

Csempe19 Tesztadatok fájlban vagy tömbben van mindkettő, de kevés2pont van, de csak a drágább elegendő 2pont van elegendő az olcsóbból 2pont Csempe kódja olyan, amely nem szerepel a raktáron 1pont olyan, amelyből kevés van 2pont olyan, amelyből csak a drágább van 2pont olyan, amelyik éppen megfelelő 2pont Tesztadatok felvitele (a fájlfeltöltésnél pontoztuk 3ponttal)