Informatika2-2018/Gyakorlat3

A MathWikiből
(Változatok közti eltérés)
a (= Fogások)
()
 
(egy szerkesztő 2 közbeeső változata nincs mutatva)
41. sor: 41. sor:
 
* ''masodik'', szintén egy lista, ami a második fogások kalóriaértékét tartalmazza.
 
* ''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''.
 
* 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ó ==
 
== Záró ==

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