Algoritmusok és programozás

Az alábbiakban egy rövid feladatgyűjteményt közlünk azok számára, akik a programozás alajaival szeretnének megismerkedni.

A feladatokhoz a legtöbb esetben C# nyelvű megvalósítást is elérhetővé tettünk, de az összeállítás célja nem egy programozási nyelv bemutatása és tanítása lenne, hanem olyan ismeretekre próbálunk rákérdezni, amelyek bármilyen választott programozási nyelv esetén szükségesek.

Algoritmusok

Válogatás a hazai programozási versenyek algoritmizálási feladatai közül, feladattípusok szerint csoportosítva.

Algoritmusok értelmezését, követését, javítását gyakoroltató feladatok

Beolvasás, kiírás, értékadás

  1. Hello World! Készíts programot, mely kiír egy üdvözlő szöveget!
  2. Goodbye Joe! Készíts programot, mely bekéri a felhasználó nevét, majd név szerint elbúcsúzik tőle!
  3. Are you Jack Black? Welcome Jack! Készíts programot, mely bekéri a felhasználó vezeték- és keresztnevét, majd ezeket többször felhasználva ír ki üdvözlő szöveget

(C#)

Feltételes utasítás, elágazás

  1. Köszönjek? Kérdezze meg a felhasználót, hogy köszönjön-e le a program és ha a válasz „igen”, akkor írja ki: „Viszont látásra!”.
  2. Kiskorú… Készíts programot, mely bekéri a felhasználó életkorát, majd kiírja, hogy a felhasználó megnézheti-e a „piros karikás” (18 év alattiaknak nem ajánlott) filmet!
  3. Cselekvőképes Készíts programot, mely a beolvasott életkor alapján kiírja, hogy a felhasználó cselekvőképtelen (<14 éves), korlátozottan cselekvőképes (14-18 éves), vagy nagykorú (>18 éves)!

(C#)

Számlálásos ciklus

  1. Egy fecske nem csinál nyarat! Kérjen be egy 1 és 10 közé eső egész számot, majd írja ki a megadott számszor az ismert szólást!
  2. Megmondtam már… Kérjen be egy 1 és 10 közé eső N egész számot, majd írja ki 1-től a megadott számig a „Megmondtam már N-szer, hogy semmit sem mondok el kétszer!” szöveget.
  3. Piramis Kérjen be egy N pozitív egész számot, majd „rajzoljon” karakterekkel (pl. #) N sor magas piramist (1, 3, 5… 2*N-1 karakter hosszú sorokból).
  4. Serleg Az előző feladat módosításával rajzoljon serleget egy fejjel lefelé álló és egy normál helyzetű piramis összeillesztésével! Oldja meg, hogy a két piramis csúcsa közös legyen!
  5. Karácsony Rajzoljon egymáshoz illeszkedő, egyre nagyobb méretű piramisokból összeálló fenyőfát.
  6. elefazssiV Kérjen be egy rövid szöveget, majd írja ki visszafele!

(C#)

Feltételes ciklus

  1. Gondoltam egy számot… Generáljon egy véletlen egész számot 1 és 20 között, majd kérjen be tippeket egész addig, míg a felhasználó el nem találja a gondolt számot!
  2. Menekülő út… Az előző feladatot egészítse ki úgy, hogy ha a felhasználó 0 értéket ad meg, akkor kilépjünk a programból!
  3. Kisebb-nagyobb A számkitalálást segítse azzal, hogy minden tipp esetén visszajelzi, hogy a megadott számnál kisebb, vagy nagyobb a „gondolt” szám!
  4. Évszám Kérjen be egy évszámot! A bekérést mindaddig ismételje, amíg a felhasználó nem ad meg érvényes XX-XXI. századi évszámot!
  5. Dupla-szóköz Kérjen be egy szöveget, majd cserélje benne a dupla szóközöket szimpla szóközre mindaddig, amíg található a szövegben többszörös szóköz!

(C#)

Gyakorló feladatok

  1. Számoljunk… Kérjünk be pozitív egész számokat egészen addig, amíg a felhasználó 0-t nem ad meg. Anélkül, hogy az összes számot eltárolnánk válaszoljunk a következőkre: Hány számot olvastunk be? Melyik volt a legnagyobb/legkisebb beolvasott szám? Mennyi a beolvasott számok átlaga? Rendezett-e a beírt számsor, ha igen, akkor csökkenő, növekvő, vagy konstans?
  2. Háromszög Kérjünk be három szakaszhosszt. Állapítsuk meg, hogy a megadott szakaszokból szerkeszthető-e háromszög! Ha igen, akkor adjuk meg a háromszög kerületét és területét (használjuk a Heron-képletet)!
  3. Piskóta Kérjük be egy kerek piskóta-torta méreteit (átmérő, magasság), és a ráteendő krém vastagságát cm-ben. Számoljuk ki, hogy mennyi krémre van szükség a torta bevonásához, ha 5% ráhagyással dolgozunk.
  4. Mr. X Kérjünk be pozitív egész számokat és rajzoljunk a képernyőre adott méretű X-eket. A program lépjen ki 0-ra.
  5. Téglalap Kérjünk be két pozitív egész számot. Ha kifér a képernyőre, akkor rajzoljunk ki a megadottaknak megfelelő méretű téglalapot. A téglalap mindig fekvő pozíciójú legyen! Írjuk ki a téglalap területét és kerületét, valamint a két oldal közötti abszolút eltérést.
  6. Kódolás Adjuk meg az alábbi algoritmusok programkódját a választott programozási nyelven:
Ki: Hány óra van?
Be: ora
Ha ora > 22 akkor Ki: Jó éjszakát!
különben Ha ora > 18 akkor Ki: Jó estét!
különben Ha ora > 10 akkor Ki: Jó napot!
különben Ha ora > 4 akkor Ki: Jó reggelt!
különben Ki: Jó éjszakát!
Ki: Fibonacci számok
a = b = 1
Ki: a
Ki: b
Ciklus i:=3-tól 20-ig
  c = a+b
  Ki: c
  a = b
  b = c
Ciklus vége
Ki: A világon 10 féle ember van: aki ismeri a kettes számrendszert és aki nem.
Ki: Hányféle ember van tehát?
Be: válasz
Ciklus amíg válasz <> 2
  Ki: Nem jó válasz. Hányféle ember van (decimálisan)?
  Be: válasz
Ciklus vége

C#

Vektorok, mátrixok, tömbök

A legtöbb programozási nyelvben találunk lehetőséget olyan összetett adatszerkezetekre, melyek rögzített számú, azonos típusú elem tárolására adnak lehetőséget. Az ilyen adatszerkezeteket egy dimenziós esetben vektornak, két dimenzió esetén máttrixnak, általánosan tömbnek nevezzük.

Az alábbi feladatok ezen adatszerkezetek használatára épülnek.

Hoci a számlát!

Kérjük be számlaadatokat - napnevet és összeget - egy munkahét öt napjára vonatkozóan! A számlák beolvasása bármilyen sorrendben történhet és a 'vége' szóra fejeződjön be. Feltételezzük, hogy 100-nál nem lesz több beolvasandó számla. Adjuk meg ezek után a napi bevételek összegét és a bevételek százalékos eloszlását! A százalékos eloszlást szemléltessük oszlopdiagramon is!

Mit csinálok? Szigetek...

Repülőgéppel Európából Amerikába haladva adott távolságonként megmérjük az alattunk lévő felület tengerszint feletti magasságát. Ez az óceán felett 0, szárazföldek és szigetek felett pozitív egész érték. A mérések már Európa felett elkezdődnek és Amerika felett érnek véget. A mérési adatok maximális száma legyen 70.

  1. Mekkora volt a legmagasabb mért pont magassága?
  2. Rajzoljuk ki mérési eredményeket arányos méretű oszlopokkal egymás mellé úgy, hogy a legmagasabb oszlop legfeljebb 20 sor magas legyen, miközben a legalacsonyabban fekvő szárazföld esetén is kirajzolunk legalább egy egységnyi magas oszlopot.
  3. Hány szigetet találtunk út közben?
  4. Mekkora a leghosszabb sziget hossza? Hányadik sziget a leghosszabb?
  5. Milyen hosszan haladt az út során víz felett összesen a repülő?
  6. Mekkora a szárazföldek átlagos magassága?
  7. Két tömbbe gyűjtsük ki az átlagos magasság feletti szakaszok kezdő és végpontjait!
  8. Gyűjtsük ki az út során érintett szigetek hosszait. Írjuk ki őket csökkenő sorrendben!
  9. Keressük meg a leghosszabb emelkedő szakaszt! Hol kezdődik? Hol ér véget? Milyen hosszú?
  10. Repültünk-e el szakadék felett az út során? (Szakadéknak nevezzük az olyan helyet, ahol két szomszédos szárazföldi rész között 50m-nél nagyobb a különbség.)
  11. Érintettünk-e hasadékot? (Két szakadék közötti „völgy”.)
  12. A legmeredekebb ugrás emelkedő, vagy lejtő (a repülő útirányából nézve)?

C#

Statisztika

Kérjünk be pozitív egész számokat! Elemezzük az adatsort a tanult statisztikai mutatókkal (átlag, módusz, medián, terjedelem, szórás, átlagos minimális eltérés…)

Megjegyzés: a módusz és a medián keresésének egyik módja lehet, ha először rendezzük az adatsort.

Gauss-féle eliminációs eljárás

A Gauss elimináció a lineáris egyenletrendszerek egy általános megoldási algoritmusa, ahol az egyenletrendszer együthetóit mátrix alakban adjuk meg, majd ezt a mátrixot transzformáljuk több lépésben átlós, illetve egység mátrix alakra, miközben az egyenletek konstansait tartalmazó oszlopvektorban előállnak az egyenletrendszer megoldásai.

gauss

Kidolgozaott verseny-feladatok

Az alábbiakban egy-két mintát adunk a rangos hazai versenyek feladataiból.

OKTV

Nemes Tihamér

Érettségi

oktatas/informatika/programozas/feladatok.txt · Utolsó módosítás: 2019/06/04 14:20 szerkesztette: barnkopf
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0