Egyszerű programozási feladatok

Készítsd el a leírások alapján a működő programokat a tanult programnyelven.

 1. feladat
 2. feladat
 3. feladat
 4. feladat
 5. feladat
 6. feladat
 7. feladat
 8. feladat
 9. feladat
10. feladat
 11. feladat
 12. feladat
 13. feladat
 14. feladat
 15. feladat
 16. feladat
 17. feladat
 18. feladat
 19. feladat
 20. feladat
 21. feladat
 22. feladat
 23. feladat
 24. feladat



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:
3 -2 4 3 -4 2 5

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!
Minta:
SorszámNehézségKivitelezés
1. 64.5
2.3.59
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:
Például:
Adott a következő 16 bites bináris szám: 1011001111011010
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!
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!

– 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.