Informatika2-2018/Gyakorlat3

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „előző fel következő = Feladatok = == Kezdő == === Átlaghoz le…”)
 
()
 
(egy szerkesztő 5 közbeeső változata nincs mutatva)
9. sor: 9. sor:
 
Írjunk függvényt, mely a kapott valós számokat tartalmazó listában megkeresi a lista elemeinek átlagához legközelebbi számot és ezzel tér vissza.
 
Írjunk függvényt, mely a kapott valós számokat tartalmazó listában megkeresi a lista elemeinek átlagához legközelebbi számot és ezzel tér vissza.
  
=== _n_ hosszú növekvő részek ===
+
=== ''n'' hosszú növekvő részek ===
  
 
Írjunk függvényt, mely kap egy listát és egy egész számot (n). Megkeresi az összes olyan n hosszú részintervallumot, amire igaz, hogy az elemei növekvő sorrendben vannak. Ezeket a listákat beteszi egy fő listába és ezt adja vissza. Segítség: bontsuk részfeladatokra!
 
Írjunk függvényt, mely kap egy listát és egy egész számot (n). Megkeresi az összes olyan n hosszú részintervallumot, amire igaz, hogy az elemei növekvő sorrendben vannak. Ezeket a listákat beteszi egy fő listába és ezt adja vissza. Segítség: bontsuk részfeladatokra!
  
 
== Fő ==
 
== Fő ==
 +
=== Névkonfliktus ===
 +
Egy házibuliban sok új ismeretlen emberrel találkozunk, ezért felírjuk a neveiket egy listába. Ha két új ismerősünket is ugyanúgy hívják, abból probléma lehet, ezért szeretnénk egy <tt>python</tt> függvényt, ami szól ilyen esetben.
  
== Utó ==
+
A függvény neve legyen <code>nevkonfliktus</code>, és egy paramétere legyen:
 +
* ''nevek'', egy lista, amiben a buliban levő emberek beceneve szerepel.
 +
* A függvény <tt>True</tt>-val térjen vissza ha van két ember akinek ugyanaz a beceneve, és <tt>False</tt>-al egyébként.
 +
 
 +
'''Segítség:'''
 +
 
 +
Vigyázzunk, hogy akkor ne jelezzünk ha valakinek önmagával ugyanaz a neve (ami mindenkire igaz), hanem csak akkor ha két különböző embernek ugyanaz a neve.
 +
 
 +
=== Kiejtés ===
 +
A föld bizonyos nyelvei a magyarok számára elég nehezen beszélhetőek, például azért, mert az ő szavaikban sokkal több a mássalhangzó mint a mienkben. Magyarok számára például nehéz lehet kiejteni a szlovák ''zmrzlina'' szót, ami magyarul azt jelenti hogy ''fagylalt''.
 +
 
 +
Írjunk <tt>python</tt> függvényt, ami megpróbálja megállapítani hogy egy szót nehéz-e kiejteni, a benne levő mássalhangzók száma alapján.
 +
* A függvény neve legyen <tt>kiejtes</tt>,
 +
* egy paramétere legyen: ''szo'', egy idegen nyelvű szó. Az egyszerűség kedvéért az itt leírt változat csak angol kis betűket fog tartalmazni.
 +
* A függvény <tt>True</tt>-val térjen vissza, ha legalább kétszer annyi mássalhangzó van a szóban mint magánhangzó, és <tt>False</tt>-al egyébként. A lehetséges betűk közül az ''a, e, i, o, u'' számít magánhangzónak.
 +
 
 +
=== Fogások ===
 +
A diétánk szigorúan meghatározza hogy hány kalóriás ebédet kell fogyasztanunk, így kicsit gondban vagyunk amikor étteremben eszünk és nem magunknak állítjuk össze az ételt. Szerencsére az étlapon mindenhez oda van írva a kalóriaértéke, így egy kicsit könnyebb a dolgunk. Azonban még mindig ki kell választanunk a megfelelő első és második fogást ami megfelel a diétánknak.
 +
 
 +
A függvény neve legyen <tt>fogasok</tt>, és három paramétere legyen:
 +
* ''kaloria'', egy természetes szám, hogy hány kalóriát kell fogyasztanunk
 +
* ''elso'', egy lista, amiben a különböző lehetséges első fogások kalóriaértéke van, tehát természetes számokat tartalmaz
 +
* ''masodik'', szintén egy lista, ami a második fogások kalóriaértékét tartalmazza.
 +
* A függvény <tt>True</tt>-val vagy <tt>False</tt>-al térjen vissza attól függően, hogy lehet-e olyan első és második fogást választani amelyek összege pontosan a ''kaloria''.
 +
 
 +
=== Pascal ===
 +
A Pascal-háromszög a binomiális együtthatók háromszög formában való elrendezése. Részletes leírás található pl. a magyar [https://hu.wikipedia.org/wiki/Pascal-h%C3%A1romsz%C3%B6g wikipédián].
 +
A lényeg az, hogy az ''n.'' sor ''k.'' eleme az az ''"n alatt a k"'' binomiális együttható, és minden elem a felette levő kettő összege.
 +
Írjuk meg a <tt>pascal</tt> nevű függvényt, ami visszaadja a Pascal-háromszög első néhány sorát listák listájaként. A függvény paramétere:
 +
* ''n'', hogy hány sort számoljunk ki
 +
 
 +
Így tehát pl. <tt>pascal(4)</tt>-nek a következőt kell visszaadnia:
 +
 
 +
    [[1],
 +
    [1, 1],
 +
    [1, 2, 1],
 +
    [1, 3, 3, 1]]
 +
 
 +
Az elemek kiszámolásához ne a binomiális együttható általános (faktoriálisos) képletét használjuk, hanem azt, hogy a felette levő két elem összege!
 +
 
 +
=== Cserebere ===
 +
A bemenetünk egyrészt egy szó a ''szo'' nevű változóban, másrészt cserék egy sorozata, amit végre kell hajtani a szón, a ''cserek'' nevű változóban.
 +
Így ''szo'' egy karakterlánc, ''cserek'' pedig egy lista, melynek minden eleme egy pár, ami a csere helyét, és az új betűt tartalmazza.
 +
 
 +
Ezeket a cseréket kell elvégezni a ''szo''-n és az így kapott sztringet visszaadni.
 +
 
 +
=== Név generátor ===
 +
Egy olyan számítógépes játékon dolgozunk, amiben rendszeresen találkozunk más, a számítógép által megszemélyesített, karakterekkel.
 +
Ezeknek a karaktereknek számítógép véletlenszerűen választ nevet, azonban szeretnénk elkerülni hogy ugyanazt a nevet sokszor lássa a játékos.
 +
Ezért ahelyett hogy egy listányi nevet megadtunk volna a játék készítésekor, inkább külön-külön egy listányi előtagot és utótagot adtunk meg, hogy ezekből rakja össze a karakterek neveit.
 +
 
 +
Írjuk meg a függvényt, ami az összes lehetséges nevet összerakja az adott elő és utótagok listája alapján.
 +
* A függvény neve legyen <tt>nev_generator</tt>, és két paramétere legyen
 +
* ''elotagok'', egy lista, amiben az előtagok szerepelnek karakterláncokként
 +
* ''utotagok'', egy lista, amiben az utótagok vannak hasonlóan.
 +
* A adja vissza az összes lehetséges összerakott nevet egy listában.
 +
 
 +
== Záró ==
 
[https://ccweb.math.bme.hu/cloudcoder cloudcoder]-en a feladatok ajánlott sorrendje:
 
[https://ccweb.math.bme.hu/cloudcoder cloudcoder]-en a feladatok ajánlott sorrendje:
  

A lap jelenlegi, 2018. február 21., 10:34-kori változata

előző fel következő

Tartalomjegyzék

Feladatok

Kezdő

Átlaghoz legközelebbi

Írjunk függvényt, mely a kapott valós számokat tartalmazó listában megkeresi a lista elemeinek átlagához legközelebbi számot és ezzel tér vissza.

n hosszú növekvő részek

Írjunk függvényt, mely kap egy listát és egy egész számot (n). Megkeresi az összes olyan n hosszú részintervallumot, amire igaz, hogy az elemei növekvő sorrendben vannak. Ezeket a listákat beteszi egy fő listába és ezt adja vissza. Segítség: bontsuk részfeladatokra!

Névkonfliktus

Egy házibuliban sok új ismeretlen emberrel találkozunk, ezért felírjuk a neveiket egy listába. Ha két új ismerősünket is ugyanúgy hívják, abból probléma lehet, ezért szeretnénk egy python függvényt, ami szól ilyen esetben.

A függvény neve legyen nevkonfliktus, és egy paramétere legyen:

  • nevek, egy lista, amiben a buliban levő emberek beceneve szerepel.
  • A függvény True-val térjen vissza ha van két ember akinek ugyanaz a beceneve, és False-al egyébként.

Segítség:

Vigyázzunk, hogy akkor ne jelezzünk ha valakinek önmagával ugyanaz a neve (ami mindenkire igaz), hanem csak akkor ha két különböző embernek ugyanaz a neve.

Kiejtés

A föld bizonyos nyelvei a magyarok számára elég nehezen beszélhetőek, például azért, mert az ő szavaikban sokkal több a mássalhangzó mint a mienkben. Magyarok számára például nehéz lehet kiejteni a szlovák zmrzlina szót, ami magyarul azt jelenti hogy fagylalt.

Írjunk python függvényt, ami megpróbálja megállapítani hogy egy szót nehéz-e kiejteni, a benne levő mássalhangzók száma alapján.

  • A függvény neve legyen kiejtes,
  • egy paramétere legyen: szo, egy idegen nyelvű szó. Az egyszerűség kedvéért az itt leírt változat csak angol kis betűket fog tartalmazni.
  • A függvény True-val térjen vissza, ha legalább kétszer annyi mássalhangzó van a szóban mint magánhangzó, és False-al egyébként. A lehetséges betűk közül az a, e, i, o, u számít magánhangzónak.

Fogások

A diétánk szigorúan meghatározza hogy hány kalóriás ebédet kell fogyasztanunk, így kicsit gondban vagyunk amikor étteremben eszünk és nem magunknak állítjuk össze az ételt. Szerencsére az étlapon mindenhez oda van írva a kalóriaértéke, így egy kicsit könnyebb a dolgunk. Azonban még mindig ki kell választanunk a megfelelő első és második fogást ami megfelel a diétánknak.

A függvény neve legyen fogasok, és három paramétere legyen:

  • kaloria, egy természetes szám, hogy hány kalóriát kell fogyasztanunk
  • elso, egy lista, amiben a különböző lehetséges első fogások kalóriaértéke van, tehát természetes számokat tartalmaz
  • masodik, szintén egy lista, ami a második fogások kalóriaértékét tartalmazza.
  • A függvény True-val vagy False-al térjen vissza attól függően, hogy lehet-e olyan első és második fogást választani amelyek összege pontosan a kaloria.

Pascal

A Pascal-háromszög a binomiális együtthatók háromszög formában való elrendezése. Részletes leírás található pl. a magyar wikipédián. A lényeg az, hogy az n. sor k. eleme az az "n alatt a k" binomiális együttható, és minden elem a felette levő kettő összege. Írjuk meg a pascal nevű függvényt, ami visszaadja a Pascal-háromszög első néhány sorát listák listájaként. A függvény paramétere:

  • n, hogy hány sort számoljunk ki

Így tehát pl. pascal(4)-nek a következőt kell visszaadnia:

   [[1],
   [1, 1],
   [1, 2, 1],
   [1, 3, 3, 1]]

Az elemek kiszámolásához ne a binomiális együttható általános (faktoriálisos) képletét használjuk, hanem azt, hogy a felette levő két elem összege!

Cserebere

A bemenetünk egyrészt egy szó a szo nevű változóban, másrészt cserék egy sorozata, amit végre kell hajtani a szón, a cserek nevű változóban. Így szo egy karakterlánc, cserek pedig egy lista, melynek minden eleme egy pár, ami a csere helyét, és az új betűt tartalmazza.

Ezeket a cseréket kell elvégezni a szo-n és az így kapott sztringet visszaadni.

Név generátor

Egy olyan számítógépes játékon dolgozunk, amiben rendszeresen találkozunk más, a számítógép által megszemélyesített, karakterekkel. Ezeknek a karaktereknek számítógép véletlenszerűen választ nevet, azonban szeretnénk elkerülni hogy ugyanazt a nevet sokszor lássa a játékos. Ezért ahelyett hogy egy listányi nevet megadtunk volna a játék készítésekor, inkább külön-külön egy listányi előtagot és utótagot adtunk meg, hogy ezekből rakja össze a karakterek neveit.

Írjuk meg a függvényt, ami az összes lehetséges nevet összerakja az adott elő és utótagok listája alapján.

  • A függvény neve legyen nev_generator, és két paramétere legyen
  • elotagok, egy lista, amiben az előtagok szerepelnek karakterláncokként
  • utotagok, egy lista, amiben az utótagok vannak hasonlóan.
  • A adja vissza az összes lehetséges összerakott nevet egy listában.

Záró

cloudcoder-en a feladatok ajánlott sorrendje:

  1. nevkonfliktus
  2. ismetles
  3. kiejtes
  4. szorzotabla
  5. fogasok
  6. pascal
  7. cserebere
  8. nev_generator

előző fel következő

Személyes eszközök