Egyszerű programozási feladatok
Készítsd el a leírások alapján a működő
programokat a tanult programnyelven.
1.
feladat (vissza a menühöz)
Egy
K körlemezt a következő adatokkal adunk meg: K(xk,yk,rk), ahol xk
és yk a körlemez középpontjának koordinátái, rk pedig a körlemez
sugara. Egy tetszőleges P(x,y) pont – ahol x és y a pont
koordinátái – rajta van a K körlemezen, ha (xk-x)2+(yk-y)2<=rk2
Készítsen
programot, amely billentyűzetről beolvassa két körlemez és egy pont
adatait, majd az adatok alapján kiírja a képernyőre az alábbiak közül a
megfelelő állítást:
„A pont egyik körlemezen
sincs rajta.”
„A pont csak az elsőként megadott körlemezen van
rajta.”
„A pont csak a másodikként megadott körlemezen van
rajta.”
„A pont a megadott körlemezek közös részén található.”
2.
feladat (vissza a menühöz)
Egy
héten keresztül minden nap délben megmértük a hőmérsékletet az
udvaron. Készítsen programot, ami a mért értékeket beolvassa és tárolja
a hom tömbben!
A hom tömbben tárolt
értékek
alapján határozza meg, és írassa ki a képernyőre a heti hőingadozás
mértékét! (A hőingadozás a mért legnagyobb és legkisebb érték
különbsége.)
3.feladat (vissza a menühöz)
Egy
autó üzemanyag-fogyasztását olyan módon adjuk meg, hogy 100 kilométer
távolságú út megtételéhez hány liter benzinre van szüksége.
Készítsen
programot, amely billentyűzetről beolvassa egy autó fogyasztását,
üzemanyagtartályának űrtartalmát, valamint a jármű által megteendő út
hosszát, és a fenti adatok alapján megállapítja, hogy kell-e tankolnia
az autónak az adott hosszúságú út során amennyiben tele tankkal indult
útnak! A program megállapításának megfelelően írja képernyőre az alábbi
mondatok közül a megfelelőt!
„Az út megtehető tankolás nélkül.”
„Az
út során tankolni kell!”
Megjegyzés: Ha a fogyasztás F és az
üzemanyagtartály térfogata V, akkor az autó egy tank benzinnel V*100/F
kilométert tesz meg.
4.feladat
(vissza a menühöz)
Egy
sebességmérő műszer regisztrálja minden mellette elhaladó jármű
sebességét km/h-ban. Az egyik irányba haladó járművek sebességét
pozitív a másik irányba (szembe) haladókét negatív értékként tárolja a
műszer. Készítsen programot amely lehetővé teszi, hogy a műszer által
regisztrált adatokat billentyűzeten keresztül számítógépre vigyük! A
sebességadatokat (max. 100 db) a seb nevű tömbben tároljuk. Az adatok
megadásának végét a 0 értékkel jelöljük. A program az adatsor végére
tárolja el ezt a „0” értéket is.
Az
adatok eltárolása után a
program határozza meg, hogy volt-e szabálysértő (szabálysértésen azt
értjük, hogy valaki 100 km/h abszolút értékű sebességnél gyorsabban
haladt), és ha igen, akkor az első szabálysértő hányadik rögzített elem
volt a rögzített méréssorozatban és mennyivel lépte túl a
sebességhatárt!
A meghatározott eredményt írja ki a képernyőre!
5.
feladat (vissza
a menühöz)
Készítsen programot
az alábbi feladat megoldására!
Adott
egy névsor egy 14 elemű vektorban. Kérje be a neveket, majd írassa ki a
képernyőre ABC sorrendben, külön-külön sorba, úgy, hogy minden 5. név
után várakozik egy gombnyomásra! Ezután tiszta képernyőn listázza a
következő sorozatot. Minden név elé írjon egy listázási sorszámot!
6.
feladat (vissza
a menühöz)
Egy vektorban
különböző cégek napi tőzsdei záró árfolyama szerepel.
Készítsen
programot az ön által ismert nyelven, mely megadja azt a céget, amelyik
az adott időszak folyamán a legnagyobb nyereséget érte el! Tekintse
legnagyobb nyereségnek azt, ahol az utolsó nap záróegyenlege és az első
nap záróegyenlegének különbsége a legnagyobb.
A feladat
megoldásához alkalmazzon programozási tételt!
Töltse fel a
vektort az alábbi adatokkal!
| CÉG | 1.nap | 2.nap
| 3.nap |
| AlfaBt. | 1500 | 1709
| 1839 |
| BetaKft. | 3000 | 3291
| 3255 |
| GammaRt. | 1000 | 1279
| 1285 |
| DeltaBt | 14000 | 14208
| 14263 |
7.
feladat (vissza
a menühöz)
Készítsen
programot, amely bekér billentyűzetről egy 3 jegyű pozitív egész számot
és eldönti róla, hogy Armstrong-szám-e! A háromjegyű Armstrong-számokra
igaz, hogy a számjegyei köbének
összege megegyezik az eredeti
számmal, pl. 371 = 33+73+13. (33=27, 73=343,
13=1)
Az eredményt a képernyőre írassa
ki!
8. feladat: (vissza a menühöz)
Adott
egy maximum 100 karaktert tartalmazó szöveg. Állapítsa meg, hány szót
tartalmaz, ha feltételezzük, hogy a szöveg elején, ill. végén található
betűsorokat leszámítva minden szóközzel határolt karaktersorozat
egy-egy szó! A kezdő szó előtt és a befejező szó mögött értelemszerűen
nem feltétlenül van szóköz.
9.
feladat: (vissza a menühöz)
Készítsen
programot, mely beolvas egy időpontot (óra, perc, másodperc) a
billentyűzetről, majd beolvas egy másik, az előzőnél későbbi időpontot!
(A két időpont egy napra esik.) A program határozza meg és írja
képernyőre a két időpont között eltelt időt óra:perc:másodperc
formátumban! (Az időpontokat 24 órás formátumban adjuk meg, tehát
12:59:59 után 13:00:00 következik.)
10.
feladat: (vissza a menühöz)
Egy
osztályba csupa különböző nevű ember jár. Az osztály létszáma 32 fő.
Készítsen programot, amely beolvassa és tárolja egy tömbben a
matematika szakkörre jelentkezők nevét. Egy másik tömbbe hasonló módon
a magyar szakkörre jelentkezők neve kerüljön! A program határozza meg
és gyűjtse ki egy harmadik tömbbe azok nevét, akik mindkét szakkörre
jelentkeztek, majd a tömbbe kigyűjtött névsort jelenítse meg a
képernyőn!
11. feladat:
(vissza a menühöz)
Készítsen
programot, amely billentyűzetről beolvassa az € (euro) aktuális
árfolyamát, vagyis hogy egy € (euro) hány forintot (huf) ér, majd
szintén billentyűzetről beolvassa az átváltandó € (euro) összeget, és
kiírja, hogy az hány forintot (huf) ér!
12.
feladat: (vissza a menühöz)
Egy
autó 100 km megtételéhez 8 liter benzint fogyaszt el. Hétfőn reggel
teli tankkal adjuk át az autót a sofőrnek. A sofőr minden este
teletankolja az autót és feljegyzi, hogy hány litert kellett az
üzemanyagtartályba töltenie, hogy megteljen. Az autót vasárnap este
tankolás után adja le a sofőr. (Feltehetjük, hogy az üzemanyag
napközben egyszer sem fogyott ki.)
Készítsen programot, amely
billentyűzetről beolvassa és egy tömbben tárolja a naponként tankolt
üzemanyag-mennyiségeket! A beolvasás után a program határozza meg a
héten elfogyasztott üzemanyag mennyiségét, majd írja képernyőre, hogy
ezzel az üzemanyagmennyiséggel hány km-t tehetett meg a jármű!
13.
feladat: (vissza a menühöz)
A
matematikában tökéletes számoknak nevezik azokat a pozitív egész
számokat, amelyek felírhatók a saját maguknál kisebb osztóik
összegeként. Például: 28 = 1+2+4+7+14.
Írjon programot, amely
kiírja az összes, 10000-nél nem nagyobb tökéletes számot!
Segítség
a teszteléshez: összesen 4 db ilyen szám van az adott intervallumban!
14.
feladat: (vissza a menühöz)
Írjon
programot, amely egy dolgozat eredményeinek az elemzését segíti!
–
A program tegye lehetővé a dolgozatjegyek egyenkénti beírását! Csak
létező érdemjegyet lehessen beírni, az adatbevitel végét a felhasználó
határozza meg, pl. érdemjegy helyett a 0 végjel beírásával!
–
A
program határozza meg, hogy melyik érdemjegyből hány darab született,
és listázza ezt ki táblázatszerűen! A táblázat első sorában az 5-ök
darabszáma jelenjen meg, utána a 4-eké, és így tovább! A táblázatnak
legyen fejléce!
– A program határozza meg, hogy mely
érdemjegy(ek) szerepelt(ek) a leggyakrabban a dolgozat eredményei
között!
15. feladat:
(vissza a
menühöz)
Készítsen
programot, mely beolvas egy 0..255 tartományba eső egész számot a
billentyűzetről, majd kiírja a beolvasott érték hexadecimális
megfelelőjét a képernyőre!
A hexadecimális számok a 0..9, A,
B, C,
D, E, F számjegyeket tartalmazhatják minden helyértéken, ahol az
’A’=10,…,’F’=15. Például: 15410=9A16, (=9*16+10).
16.
feladat: (vissza a menühöz)
Készítsen
programot, mely egy beolvasott szövegről megállapítja, hogy
palindrom-e! Az eredményt írja a képernyőre!
Palindrom
az a szöveg, mely eltekintve a szóközöktől és a kis és nagybetű
különbségektől visszafelé olvasva is megegyezik az eredeti tartalommal.
A megoldásban nem kell foglalkoznia a magyar ékezetes betűk kisbetűről
nagybetűre való konvertálásával.
Példa: Indul a görög aludni.
17.
feladat: (vissza a menühöz)
Készítsen
programot, amely billentyűzetről beolvas egy szöveget, majd szintén
billentyűzetről beolvas egy valós számot! Amennyiben a beolvasott
szöveg a „ci” karaktersorozat, abban az esetben a beolvasott számról
feltételezi, hogy az egy centiméterben megadott érték és inch-re
váltja, majd az eredményt a képernyőre írja. Amennyiben a beolvasott
szöveg az „ic” karaktersorozat, abban az esetben a beolvasott számról
feltételezi, hogy az egy inch-ben megadott érték és cm-re váltja, majd
az eredményt a képernyőre írja. Amennyiben a beolvasott szöveg a
fentiektől eltér, a program az „Értelmezhetetlen utasítás!” szöveget
írja a képernyőre és nem végez konverziót. (Megjegyzés: 1 inch = 2,54
cm)
18. feladat:
(vissza a
menühöz)
Egy
meteorológiai állomáson egy héten keresztül minden nap délben megmérik
a levegő hőmérsékletét. (A hét kezdőnapja a hétfő legyen!) Készítsen
programot, amely a billentyűzetről beolvassa és egy tömbben tárolja a
naponként mért hőmérséklet értékeket! A beolvasás után a program
határozza meg, és írja a képernyőre, hogy a héten hányszor és mely
napokon volt fagy. (Fagynak nevezzük, ha a hőmérséklet kevesebb mint 0
fok.) Az adott bemenet mellett a kiírás formátuma az alábbi legyen:
Bemenet:
Kimenet:
A
héten 2 alkalommal (kedd, péntek) volt fagy.
19.
feladat: (vissza a menühöz)
Egy
akrobatikus snowboard versenyen részt vevő versenyzők kétféle
pontszámot kapnak: az egyiket a bemutatott gyakorlat nehézségére, a
másikat pedig a kivitelezés minőségére. Mindkét
pontszám
értéke
legalább 1 és legfeljebb 10 lehet. Törtpontszám is adható, de csak
olyan, amelynek a törtrésze 0,5, pl. 3,5 vagy 8,5. A versenyen
legfeljebb 10-en vehetnek részt!
Írjon programot, amely
megvalósítja a versennyel kapcsolatosan az alábbi feladatokat!
- A
program tegye lehetővé a versenyzők pontszámainak a beolvasását a
billentyűzetről! A beolvasás során a program jelenítse meg a következő
versenyző sorszámát, és adjon lehetőséget a kétféle pontszám beírására!
- A
program ellenőrizze, hogy a beírt pontszámok a megfelelő intervallumba
esnek-e, illetve, hogy a felhasználó nem írt-e be nem megengedett
törtpontszámot (pl. 7,2)! Helytelen pontszám megadása esetén
lehetőséget kell adni az újbóli beírásra, akár többször is, de
hibaüzenetet nem kell adni! Típusellenőrzést nem kell végezni!
- Az
adatbevitel végét a felhasználó határozza meg, úgy, hogy a következő
versenyző első pontszámaként 0 végjelet ír be! Ekkor a másik pontszámot
már ne is kérje a program!
- A program listázza ki
táblázatszerűen (az alábbi mintához hasonlóan) a versenyzők sorszámát,
valamint a gyakorlat nehézségére, illetve a kivitelezésre kapott
pontszámot! A táblázatnak legyen fejléce!
Minta:
| Sorszám | Nehézség | Kivitelezés |
| 1. | 6 | 4.5 |
| 2. | 3.5 | 9 |
- A
program határozza meg az első olyan versenyző sorszámát, akinek a
gyakorlatára kapottkétféle pontszám között a különbség 2-nél nagyobb,
majd írja ki azt!
A program ne vizsgálja meg a
szükségesnél több versenyző pontszámait!
20.
feladat: (vissza a menühöz)
Írjon
programot, amely előállítja a felhasználó által megadott 16 bites,
bináris, előjel nélküli egész szám hexadecimális alakját! A
hexadecimális forma előállításához az alábbiakban
részletezett
algoritmust használja!
Bináris
érték átváltása hexadecimális formára:
- -
a bináris számjegyek sorozatát 4 bites csoportokra osztjuk
- -
meghatározzuk az egyes csoportok 10-es számrendszerbeli értékét
- -
a kapott értékeket egy-egy hexadecimális számjeggyé alakítjuk
Például:
Adott
a következő 16 bites bináris szám: 1011001111011010
- -
4 bites csoportokra bontjuk: 1011 0011 1101 1010
- -
a 4 bites csoportok 10-es számrendszerbeli értéke sorrendben: 11 3 13 10
- -
a kapott értékek hexadecimális számjegy formájában: B 3 D A
- -
A hexadecimális alak tehát: $B3DA
A
programnak semmiféle ellenőrzést nem kell végeznie, feltételezzük, hogy
a felhasználó pontosan 16 bit hosszúságú bináris számot adott meg!
21.
feladat: (vissza a menühöz)
Írjon
programot, amely előállítja két pozitív egész szám legnagyobb közös
osztóját az euklideszi algoritmus segítségével!
- −
A két pozitív egész számot a felhasználó adja meg!
- −
A számítást ismételten, több számpárral is legyen módunk elvégezni!
- −
A felhasználó a kilépési szándékát úgy jelezze, hogy az első szám
bekérésekor 0-t vagy negatív egész számot ad meg!
- −
Egyéb ellenőrzést nem kell végeznie!
Példa:
Határozzuk meg 14 850 és 2 940 legnagyobb közös osztóját euklideszi
algoritmussal!
14850
DIV 2940 = 5 (Maradék 150)
2940 DIV 150 =19 (Maradék 90)
150
DIV 90 = 1 (Maradék 60)
90 DIV 60 = 1 (Maradék 30)
60
DIV 30 = 2 (Maradék 0)
A legnagyobb közös osztó:
az utolsó nem 0 maradék, azaz 30.
(A DIV az egészosztás
műveletét jelenti.)
22. feladat: (vissza a menühöz)
Egy
őrző-védő cég 10 kiválasztott alkalmazottját vizsgálták abból a
szempontból, hogy fizikai teljesítőképességük mennyire ingadozó. A
tesztelést egy hónapon keresztül végezték. Naponta egyszer megmérték,
hogy egy speciális fizikai igénybevételt jelentő feladatot mennyi idő
alatt hajtanak végre. A mért értékek közül csak a legrosszabb és a
legjobb eredményt írták be a hivatalos jegyzőkönyvbe.
Készítsen
programot, amely a jegyzőkönyvben leírt adatok alapján eldönti, hogy
melyik alkalmazott fizikai teljesítménye a legingadozóbb!
– A program tegye lehetővé az alkalmazottak minimális és maximális időeredményének a bevitelét a billentyűzetről!
- o Az alkalmazottak nevét nem kell bevinni, de a program jelenítse meg a következő alkalmazott sorszámát!
- o Az időeredményeket másodpercben kell megadni, tizedmásodperc pontossággal!
- o
Ha az adatbevitel során egynél több tizedesjegy kerül megadása, akkor a
program kerekítse a beírt értéket egy tizedesjegy pontosságúra, és úgy
tárolja el!
- o Az adatbevitel során ellenőrizni kell, hogy a maximális időeredmény legalább akkora-e, mint a minimális időeredmény!
- o
Ha ez nem teljesül, akkor lehetőséget kell adni a felhasználónak
legalább az egyik időeredmény újbóli beírására, akár többször is! Hiba
esetén egyszerű hibaüzenetet kell adni!
- o Semmilyen egyéb ellenőrzést nem kell végezni!
–
A program listázza ki táblázatszerűen (oszlopokba rendezetten) az
alkalmazottak sorszámát, valamint a minimális és maximális
időeredményt, illetve a két érték közötti különbséget!
A táblázatnak legyen fejléce!
Minta:
Sorszám Minimális idő (s) Maximális idő (s) Különbség (s)
1.
3,4
5,6
2,2
2.
4,2
6,7
2,5
– A program határozza meg,
hogy melyik alkalmazott esetében a legnagyobb a különbség a maximális
és minimális időeredmény között!
Beadandó a feladatot megoldó program forráskódja!
A
feladat megoldásaként teljes, fordítható és futtatható kódot kérünk,
mely az adatokat billentyűzetről (standard input) olvassa, és a
képernyőre (standard output) írja ki. Vizuális fejlesztőeszköz
használata esetén a megoldást konzol (szöveges ablakban futó)
alkalmazásként kérjük elkészíteni!
23. feladat: (vissza a menühöz)
Írjon
programot, amely egy számkitalálós játékot valósít meg, melynek során a
program kitalálja a felhasználó által gondolt számot!
− A játék
elején a felhasználó adja meg azt az egész intervallumot, amelyből majd
a program által kitalálandó számot kiválasztja!
o Az intervallum határai egész számok legyenek, az alsó határ legyen kisebb, mint a felső!
o A program ellenőrizze az alsó és felső határ helyes megadását, szükség esetén adjon lehetőséget a helyesbítésre!
o Hibaüzenetet nem kell megjeleníteni, típusellenőrzést nem kell végezni!
− Ezután következik a játék:
A.
A felhasználó gondol egy egész számot a megadott intervallumban. Ezt
nem kell beírnia, csak a játék alatt fejben kell tartania!
B. A program kiválasztja az intervallumból a középső értéket, és tippként kiírja a felhasználónak.
Ha az intervallum elemszáma páratlan, akkor a középső érték egyértelmű, pl. a [3..9] intervallum középső értéke a 6.
Ha az intervallum elemszáma páros, akkor a középső érték két szám is
lehet, pl. az [1..6] intervallum középső értéke lehet a 3 vagy a 4.
Ilyen esetben a program bármelyiket választhatja.
C. A felhasználó erre a következő három válasz egyikét adja meg:
1. Erre gondoltam.
2. A gondolt szám kisebb, mint a tipp.
3. A gondolt szám nagyobb, mint a tipp.
D. Ezután a program a válasz ismeretében folytatja:
Az 1. esetben a játéknak vége, a program kiírja, hogy hány tipp után találta ki a számot.
A 2. esetben („A gondolt szám kisebb, mint a tipp.”) a program az
intervallum felső határát a tippnél 1-gyel kisebbre állítja.
A 3.
esetben („A gondolt szám nagyobb, mint a tipp.”) a program az
intervallum alsó határát a tippnél 1-gyel nagyobbra állítja.
Pl. ha az aktuális intervallum az [1..7] és a gép tippje 4, akkor
• a 2. válasz esetén az új intervallum az [1..3]
• a 3. válasz esetén az új intervallum az [5..7]
E. A 2. és 3. esetben a játék a B jelű lépéssel folytatódik, mindaddig, amíg a program ki nem találja a számot.
F.
Ha a felhasználó helytelen választ ad meg a játék folyamán, vagy nem az
intervallumba eső számra gondol, akkor az intervallum alsó határa
előbb-utóbb meghaladja a felső határt. Ez esetben a program adjon
hibaüzenetet!
Beadandó a feladatot megoldó program forráskódja! A
feladat megoldásaként teljes, fordítható és futtatható kódot kérünk,
amely az adatokat billentyűzetről (standard input) olvassa, és a
képernyőre (standard output) írja ki. Vizuális fejlesztőeszköz
használata esetén a megoldást konzol (szöveges ablakban futó)
alkalmazásként kérjük elkészíteni.
24. feladat: (vissza a menühöz)
Egy
tengerparti üdülőhelyen N napon keresztül naponta kétszer mérik a
vízállást, majd egyszerű statisztikai számításokat végeznek el a
rögzített adatokkal. Készítsen programot, amely lehetővé teszi az
adatok rögzítését, illetve a számítások elvégzését az alábbiak szerint!
– A program tegye lehetővé az adatok bevitelét a billentyűzetről!
o A program kérje be a napok számát, illetve az egyes napokon mért két vízállásértéket!
o A napok száma és a vízállásértékek pozitív egész számok. A vízállásértékek cm-ben vannak megadva.
o A bevitt két értéket az aznap mért minimális és maximális vízállásnak tekintjük.
o
A vízállásértékeket a program egyetlen, egész számokból álló tömbben
tárolja el, mégpedig úgy, hogy az egy napon mért két vízállásérték
egymást kövesse, előbb a minimum, utána pedig a maximumérték.
o Ha a felhasználó ehhez képest rossz sorrendben adja meg a két adatot, akkor a program cserélje meg azokat!
o
A bemenő adatokkal kapcsolatban semmilyen egyéb ellenőrzést nem kell
végezni, tehát feltételezzük, hogy a felhasználó pozitív egész
értékeket ad meg.
o Példa: ha a felhasználó 3 napra a következő
értékeket adja meg: 345 és 312; 298 és 335; 302 és 299, akkor az
adatbekérés után a tömbben a számok a következő sorrendben találhatók:
312, 345, 298, 335, 299, 302.
– A program listázza ki
táblázatszerűen (oszlopokba rendezetten) a napok sorszámát, valaminta
minimális és maximális vízállást! A táblázatnak legyen fejléce!
Minta:
Sorszám Minimum (cm) Maximum (cm)
1. 312
345
2.
298
335
3. 299
302
– A program határozza meg a napi ingadozások
(a napi maximum és minimumértékek közötti különbségek) átlagát! Az
átlag egészre kerekített érték legyen!
– A program határozza meg,
hogy volt-e olyan nap, amelyen az átlagot meghaladó volt a napi
ingadozás! Ha volt, akkor írja ki az első ilyen nap sorszámát, ha pedig
nem, akkor adjon ennek megfelelő üzenetet!
Beadandó a feladatot
megoldó program forráskódja! A feladat megoldásaként teljes, fordítható
és futtatható kódot kérünk, mely az adatokat billentyűzetről (standard
input) olvassa, és a képernyőre (standard output) írja ki. Vizuális
fejlesztőeszköz használata esetén a megoldást konzol (szöveges ablakban
futó) alkalmazásként kérjük elkészíteni.