Személyes eszközök
Keresés

 

A InfoWiki wikiből

A lap korábbi változatát látod, amilyen WikiSysop (vita | szerkesztései) 2009. december 13., 13:22-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)


Zárthelyi dolgozat írása

A zárthelyi dolgozatokat gép előtt kell írni. Sem papíros és elektronikus alapú segítséget nem lehet használni. Egyetelen kivételt képez a Visual Studio Súgó-ja. Internetes weblapok nem látogathatók!

A feladatok megoldására 2x45 perc áll rendelkezésre. Az idő leteltével a megoldások forráskódját (.cs file-ok) kell beadni. A forráskódnak minden esetben tartalmaznia kell az alábbiakat:

  • a dolgozat írásának időpontját (nap, óra)
  • a megoldott feladat sorszámát (csoport, azon belül feladat sorszáma)
  • a megoldó nevét, és e-mail címét, neptun kódját

A megoldásokat web-es email kliensen keresztül kell egy csatolt file-ként elküldeni, ezért kérem mindenkit, hogy legyen ilyen jellegű accountja.

Mivel egyes web-es levelezők a csatolmányokat csak rövid ideig őrzik meg, ezért javasolt a forráskódokat a levél törzsébe is bemásolni (copy-paste). A Visual Studio-ból való direkt Copy-Paste a Syntax-Highlight miatt HTML-es alapon megy, melyet viszont egyes levelező felületek rosszul értelmeznek. Ezért javasolt a forráskódot copy-paste-val először a jegyzettömbbe (notepad) bemásolni, majd onnan újabb copy-paste-val tovább másolni a levél törzsébe, így garantált a plain text eredmény.

Tartalomjegyzék


Zárthelyi Dolgozat (A)

#1. feladat

Írjunk olyan programot, amely bekéri egy sorozat első négy elemét, majd meghatározza, hogy

  • ez a 4 elem számtani sorozatot alkot-e (az elemek különbsége állandó)
  • mértani sorozatot alkot-e (az elemek hányadosa állandó)
  • egyéb jellegű sorozatot alkot-e
#2. feladat

Írjunk olyan programot, amely addig kér be egész számokat billentyűzetről, amíg azok összege meg nem haladja a 100-at. A végén írjuk ki a bekért számok közül hány volt páros, és hány volt páratlan.

#3. feladat

Írjunk olyan programot, amely véletlen, kétszámjegyű értékekkel feltölt egy 30 elemű vektort, majd azt kiírja a képernyőre egymás mellé, vesszővel elválasztva az elemeket. A kiírás után addig kérjünk be két egész számot (a, b), amíg az 'a' kisebb lesz, mint 'b'. Határozzuk meg, hogy hány olyan tömbelem van, amelyik az [a,b) intervallumba esik.

#4. feladat

Írjunk olyan programot, amely egy 10 elemű vektort a következőképp tölt fel billentyűzetről:

  • bekérünk egy sorszámot
  • leellenőrízzük hogy létezik-e ilyen vektorelem egyáltalán, és az még nem került feltöltésre.
  • Ha ezen sorszámú vektorelem már kapott értéket, akkor azt még egyszer ne engedjük feltölteni
  • ha minden rendben van, akkor bekérhetjük értéket is
  • ha a sorszám -1, akkor kérjük be az értéket, és minden olyan tömbelem, amely még nem kapott értéket - annak legyen ez az értéke

Ezt ismételgessük addig, amíg minden tömbelem meg nem kapta az értékét. Ekkor lépjünk ki a ciklusból, és írjuk ki a vektor elemeit a képernyőre.

Zárthelyi Dolgozat (B)

#1. feladat

Írjunk olyan programot, amely bekéri egy sorozat első négy elemét, és egy ötödik értéket (d), majd eldönti, hogy az elemek különbsége rendre nagyobb-e a 'd' értékénél, vagy nem. Ha nem nagyobb, akkor kiírja, hogy melyik (mely) elemek különbsége nem megfelelő.

#2. feladat

Írjunk olyan programot, amely addig kér be egész számokat billentyűzetről, amíg összesen legalább 10 db negatív vagy pozitív számot nem írunk be (a 0 nem számít sem negatív, sem pozitív számnak jelen feladatban). Kilépés után adjuk meg, melyik számtípusból írtunk be többet.

#3. feladat

Írjunk olyan programot, amely véletlen, három számjegyű értékekkel feltölt egy 40 elemű vektort, majd azt kiírja a képernyőre egymás mellé, vesszővel elválasztva az elemeket. A kiírás után addig kérjünk be egy egész számot (a), amíg az is három számjegyű nem lesz. Határozzuk meg, hogy hány olyan tömbelem van, amelyik az [a-50,a+50) intervallumba esik.

#4. feladat

Írjunk olyan programot, amely egy 15 elemű vektort a következőképp tölt fel billentyűzetről:

  • bekérünk egy sorszámot, és egy darabszámot, valamint egy értéket
  • ezen sorszámtól ennyi darab még fel nem töltött tömbelemnek legyen az értéke a bekért szám
  • amely tömbelem már kapott értéket, azok értéke ne változzon meg
  • mindig írjuk ki, hogy hány darab vektorelem (és esetleg melyek) kaptak értéket ebben a körben
  • figyeljünk rá, hogy nehogy alul-, vagy túlindexeljük a vektort

Ezt ismételgessük addig, amíg minden tömbelem meg nem kapta az értékét. Ekkor lépjünk ki a ciklusból, és írjuk ki a vektor elemeit a képernyőre. ( pl az alábbi esetben: [sorszám=2, darab=4, érték=10] 4 db tömbelem kapja meg a 10 értéket).

Zárthelyi Dolgozat (C)

#1. feladat

Írjunk olyan programot, amely bekéri egy sorozat elemeit, majd meghatározza, hogy

  • ezen elemek számtani sorozatot alkotnak-e (az elemek különbsége állandó)
  • nem számtani a sorozat jellege

A program tetszőleges elemszámú sorozatra könnyedén átalakítható legyen. Tesztelési céllal működjön 5 elemre, de akár 100 elemű sorozatra is alkalmazható legyen a program jelentős mértékű átalakítása nélkül.

#2. feladat

Írjunk olyan programot, amely addig kér be egész számokat billentyűzetről, amíg a beírt páros számok összege nagyobb nem lesz mint a beírt páratlan számok összege. A végén írjuk ki melyik számtípusból mennyi darabot írtunk be, és mennyi azoknak az összege.

#3. feladat

Írjunk olyan programot, amely egy 10 elemű vektort a következőképp tölt fel billentyűzetről:

  • bekérünk egy sorszámot
  • ellenőrizzük le, hogy létezik-e ilyen vektorelem egyáltalán, és ő még nem került feltöltésre. Ha ezen sorszámú vektorelem már kapott értéket, akkor azt még egyszer ne engedjük feltölteni
  • ha minden rendben van, akkor bekérhetjük értéket is
  • ha a sorszám -1, akkor kérjük be az értéket, és minden olyan tömbelem, amely még nem kapott értéket - annak legyen ez az értéke
  • ezt ismételgeti amíg, a teljes tömb feltöltésre nem kerül

( a tömbelemeknek garantáltan nem kívánjuk értékül adni a feltöltések során a -1 értéket )

Zárthelyi Dolgozat (D)

#1. feladat

Kérjünk be egy egész számot (’a’) billentyűzetről. Ezen értéknek csakis pozitív számot fogadhatunk el (ha nem – ismételjük be a bekérést amíg megfelelő értéket nem kapunk). Majd kérjünk be egy ’b’ számot is billentyűzetről. Ezen ’b’ érték legalább 10-el nagyobb kell legyen mint az ’a’ értéke (ha nem- ismétlés amíg megfelelő nem lesz). Írassuk ki az [a..b] intervallumbeli páros számokat a képernyőre.

#2. feladat

Kérjünk be billentyűzetről egy számot szövegesen (pl ’egy’, ’kettő’). A beírt szöveges formájú szám kétszeresét írjuk ki a képernyőre numerikus alakban. A program működjön 1..10 közötti egész számokra. Egyéb beírások esetén jelezzünk hibát. Ezek után újabb számot kérjünk be, és írjuk ki a háromszorosát. Újabb bekérés után már a négyszeresét. A szorzót csak akkor növelhetjük, ha a beírt érték feldolgozható szám. Ezt addig folytassuk, amíg a ’kilépés’ szöveget nem írja be a program kezelője.

#3. feladat

Egy 20 elemű vektort töltsünk fel véletlen értékekkel (10-40 közötti számokkal). Határozzuk meg, hogy a páros és a páratlan sorszámú elemek összege hány százalékban tér el egymástól. Az eltérés értékét írjuk ki a képernyőre. Írassuk ki, melyik szám hányszor fordul elő a tömbben.

Zárthelyi Dolgozat (E)

#1. feladat

Kérjünk be két egész számot billentyűzetről (a és b), és írassuk ki a képernyőre az [a-b,a+b] intervallumba eső, hárommal osztható, de nem páros számokat.

#2. feladat
Kérjünk be egy egész számot billentyűzetről majd soroljuk fel milyen számokkal osztható, és ha osztható egy számmal, akkor az hányszor van meg benne (átfogalmazva, hányféleképpen és hogyan írható fel két egész szám szorzataként).
#3. feladat

Kérjünk be két egész számot billentyűzetről a 10..90 intervallumból. Amennyiben a beírt számok ezen kívül eső egész számok lennének, úgy addig ismételjük a bekéréseket, amíg megfelelő értékeket nem kapunk. A két számot fogjuk fel mint életkorok, egy apa és a fia életkorait. Adjuk meg, hány éves volt az apa, amikor a fia megszületett.(nem tudni melyik életkort adják meg előbb, a fiút vagy az apáét). Amennyiben az apa fiatalabb volt ekkor mint 18, vagy idősebb mint 50, akkor a program írja ki, hogy ’bár ez nehezen hihető’.

#4. feladat

Egy 20 elemű vektort töltsünk fel véletlen értékekkel (10-40 közötti számokkal). Határozzuk meg a tömbelemek átlagát, és hogy hány olyan szám van, amelyik ezen átlagérték 90%-tól kisebb, vagy nagyobb mint az átlagérték 110%-a. Soroljuk fel ezen számokat (minden számot csak egyszer írhatunk ki).

Zárthelyi Dolgozat (F)

#1. feladat

Kérjünk be két egész számot billentyűzetről (a és b), majd egy műveleti jelet és írassuk ki a két szám közötti művelet eredményét.

#2. feladat

Kérjünk be két egész számot billentyűzetről majd adjuk meg, melyek azok a számok, amelyek mindkét számnak osztói, és mindkét számban megvan legalább háromszor.

#3. feladat

Kérjünk be induláskor egy egész számot (’n’), majd ennyi darab (’n’) pozitív, páros számot. Amennyiben a kezelő nem ilyen számot ír be, azt hagyjuk figyelmen kívül. A végén adjuk meg a pozitív, páros számok közül a legnagyobbnak az értékét, és ezen számok összegét.

#4. feladat

Töltsünk fel egy 10 elemű vektort egész számokkal billentyűzetről oly módon, hogy az első szám legalább 20 kell legyen, a további számok mindig nagyobbak kell legyenek mint az őt megelőző tömbelemek. Amennyiben a kezelő nem a szabályoknak megfelelő számot írna be, úgy addig ismételjük az adott érték bekérést, amíg megfelelő nem lesz a beírt érték. A végén adjuk meg mennyi a legkisebb és legnagyobb tömbérték számtani közepe. Adjuk meg hány olyan szám van, amely ezen értéknél kisebb.

Zárthelyi Dolgozat (G)

#1. feladat

Kérjünk be 3 db valós számot, majd állapítsuk meg, a számegyenesen ábrázolva a létezik-e olyan, maximum 20 hosszú szakasz, amely mindhárom számot tartalmazza. Ha igen, írjuk ki ezen szakasz kezdetét és végét. Ha nincs ilyen szakasz, akkor egy olyan megfelelő üzenetet írjunk ki. Megj: A három szám nem feltétlenül nagyságrendi sorrendben követi egymást.

#2. feladat

Kérjünk be folyamatosan egész számokat. Minden harmadik szám egy megerősítő (kontroll) összeg, amely az őt megelőző lévő két szám összege kell legyen. Addig folytassuk a bekérést, amíg a kontroll összeg hibás nem lesz, vagy a két számhoz és a kontroll összeghez is 0-t nem ír a kezelő (mely esetben a kontroll összeg egyébként helyes lenne). Ha a bevitel a 3 db 0-val zártuk, akkor adjuk meg a beírt számok (a kontroll számok nélküli) összegét és átlagát. Ha nem a 3 db 0 miatt fejeztük be az adatbevitelt, akkor zárjuk a programot a hibás adatbevitel szöveg kiírásával.

#3. feladat

Egy időben minden nap kimentünk a piacra, libákat adni/venni. Minden nap végén tudjuk, hogy aznap több libát adtunk-e el, mint vettünk (vagy sem). A nap végi +3 érték jelentse, hogy bár ezen a napon sok libát adtunk-vettünk, de 3 libával többünk van, mint a nap elején volt. A -5 érték jelentse, hogy 5-el kevesebb libával zártuk a napot. Tároljuk el 30 napnyi üzletelésünk eredményéit egy vektorban (pozitív és negatív számok). A vektorbeli értékeket véletlen számokkal töltsük fel -20,+10 intervallumból. Kérjük be billentyűzetről, hány libával kezdtük az üzletelést az elején, majd határozzuk meg volt-e olyan nap, amikor mínuszban zártuk a liba-üzletet (az induló liba mennyiség és a napi zárások figyelembevételével már nincs egy darab libánk se, sőt, bizományba előre eladtuk már nem létező libákat is), és a rákövetkező napot is minusszal zártuk. A program a Volt ilyen eset igen/nem stílusban működjön.

#4. feladat

Egy 100 elemű vektort töltsünk fel véletlen számokkal, 70..100 közötti értékekkel. A számokat írjuk ki a képernyőre egymás mellé vesszővel elválasztva. Határozzuk meg, hogy van-e a vektorban egymás mellett lévő 4 szám, ahol mindegyike nagyobb, mint 90. Volt ilyen eset Igen/Nem.

Zárthelyi Dolgozat (H)

#1. feladat

Kérjünk be egy egész számot (A). Kérjünk be egy B számot is. Ha A páros volt, akkor B páratlan kell legyen (és fordítva). Ha a B szám megfelelő, akkor kérjük be egy C számot is. Állapítsuk meg, hogy a C szám az A és B szám különbsége-e. Ha a B szám paritása nem megfelelő az A-hoz képest, vagy C nem egyenlő a két szám különbségével, akkor jelezzünk feldolgozási hibát.


#2. feladat

Kérjünk be folyamatosan egész számokat. Elvileg a program kezelőjének felváltva kellene páros és páratlan számokat beírnia. A számok bekérést fejezzük be, ha ezt elvéti. Ha úgy véti el, hogy két páros számot ír be egymás után, akkor írjuk ki a menet közben már beírt páratlan számok összegét. Ha két páratlan számmal véti el, akkor jelezzünk ki feldolgozási hibát.


#3. feladat

Két rabbi ordítva veszekszik egymással. A hangerejüket egy 1..100 skálán tudjuk mérni (100 a maximális hangerő). Másodpercenként veszünk mintát mindkét rabbi hangerejéről. Kettő darab 300 elemű tömbben rögzítjük az 5 perces veszekedésük során produkált hangerőt (az első tömbben Jákob, a második tömbben Zakariás rabbi hangerői szerepelnek). Adott másodpercben az a rabbi győz, akinek abban a másodpercben nagyobb volt a hangereje. A teljes 5 perces vitát az nyeri, aki menet közben többször nyert. A 300-as tömböket töltsük fel véletlen számokkal 80..100 értékekkel, majd határozzuk meg a veszekedés győztesét. Ügyeljünk arra, hogy döntetlen is lehet az eredmény!


#4. feladat

Egy adott gépen folyamatosan rögzítjük adott időpillanatban a processzor terhelési szintjét százalékban (100% jelöli a teljes terhelést). Ismert, hogy egy játékprogram indítása során legalább 10 másodpercen keresztül a processzor terhelése 90% feletti. Adott egy 800 elemű tömbben (véletlen 70..100 közötti értékekkel feltöltve) másodpercenkénti mintavételezéssel vannak a terhelési értékek tárolva. Írjuk programot, amely meghatározza utólagos elemzéssel, hányszor indított el a gép kezelője játékprogramot.


Zárthelyi Dolgozat (I)

#1. feladat

Kérjünk be egy egész számot (A), majd egy B számot is. Az A és B számok egy intervallumot kell hogy meghatározzanak, vagyis A-nak kisebbnek kell lennie B-nél. Ha ez teljesül, akkor kérjünk be egy C számot is, amelynek elvileg az [A..B] intervallumba kell(ene) esnie. Vizsgáljuk meg, hogy ez teljesül-e. Ha igen, akkor gratuláljunk az ügyes teljesítményért, ha nem, akkor jelezzünk ki hibát.


#2. feladat

A számítógép 10..100 közötti véletlen számokat sorsol ki (X). A kisorsolt számokat nem írja ki a képernyőre, de mindegyikhez bekér egy A számot. Meg kell számolni, hogy hányszor fordult az elő, hogy a bekért (A) értéke nagyobb mint a frissen generált véletlen szám (X). Ha igen, akkor a program kezelője szerez egy győzelmet. A játék véget ér, ha a program kezelője által beírt számok összege eléri a 600-t. Ekkor végeredményt hirdetünk: a program kezelője teljes győzelmet aratott, ha legalább 10 db győzelmet szerzett menet közben. (Megj: ha a kezelő mindíg nagy számot tippel, mondjuk mindíg 100-t, akkor hamar eléri a 600 összesent, és nem tud 10 győzelmet szerezni közben. Ha kis számot tippel, akkor pedig a vesztést kockáztatja).

#3. feladat

Legyen X=1 induló értékünk. Egy ciklusban kérjünk be egy számot (A), valamint egy műveleti jelet. Végezzük el X és A között a műveleti jelben megadott műveletet (+,-,*,/,négyzetre emelés), az eredményt tegyük vissza az X-be. Kérjünk újabb számot és műveleti jelet, és folytassuk ugyanígy. Akkor fejezhetjük be, ha a művelet elvégzése után az eredmény nagyobb lesz mint 10000, vagy műveleti jelnek az egyenlőségjelet adtuk meg. Ekkor írjuk ki a végeredményt.

#4. feladat

Az amcsi C kategóriás filmben két szereplő lövi egymást az utca két oldaláról. Egy tömb elemei azt tárolják, hogy a zsarut alakító színész elmúlt 1 másodpercben hány lövést adott le. A zsaru csak akkor cserél tárat, ha a tárban már kevesebb mint 10 töltény van. A tárcsere 3 másodpercig tart (addig nem lő). Egy tárban 20 golyó van. Maximum 5 tár van nála (és a fegyver induláskor fel van töltve). Töltsünk fel egy 1000 elemű tömböt véletlen értékekkel az alábbi módon:

  • sorsoljunk egy véletlen számot 1..100 között (X)
  • ha X kisebb, mint 80 akkor nem lőttek ebben a másodpercben
  • ha X nagyobb, mint 80, akkor ebben a másodpercben lőttek valamennyit, sorsoljuk ki 1..3 között, hogy mennyit lőttek

Határozzuk meg, hogy a 1000-es tömb valós lövöldözés hangsorozatát tartalmazza-e (vagyis nem fordult-e elő, hogy a tárban már nem volt töltény, mikor lőtt vele a színész, vagy több tárat cserélt, mint amennyi volt nála). Eközben írjuk ki a képernyőre, mely másodpercekben cserélhetett tárat a színész, és hány teli tár van még nála. Ügyeljünk arra, hogy egy 10 másodperces szünet nem 3 tárcsere!

(Megj: az is egy feladat, hogy állítsunk elő olyan tömböt, amely garantáltan valós lövöldözés hangsorát tárolja, de most az a feladat, hogy a tömböt állítsuk elő és nélkül, majd ellenőrízzük le hogy jó-e.)


Hernyák Zoltán
A lap eredeti címe: „http://wiki.ektf.hu/wiki/Mp2/fel007
Nézetek
nincs sb_3.234.221.162 cikk