Informatics2-2018/Lab03

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „previous up next = Exercises = == Mean nearest == Write a function that finds an e…”)
 
7. sor: 7. sor:
 
Write a function that finds an element in a list which is the nearest to the mean of the list.
 
Write a function that finds an element in a list which is the nearest to the mean of the list.
 
There should be one parameter, the list.
 
There should be one parameter, the list.
 +
 +
=== Increasing sublists ===
 +
 +
Write a function that finds increasing sublists with a given length within a given list.
 +
The function should have two parameters:
 +
* a list ''l''
 +
* and a natural number ''n''
 +
* return the list of ''n''-long increasing sublists of ''l''
 +
 +
Break down to subtasks:
 +
* first return the list of all ''n''-long sublists of ''l''
 +
* Check whether a sublist is increasing
 +
 +
=== Name conflict ===
 +
We are throwing a party and there are a lots of unknown people there.
 +
We write their names in a list.
 +
Write a python function that decides whether there is a duplicate in the names (two person with the same name).
 +
 +
The function should have one parameter: the list of names.
 +
 +
Return <tt>True</tt> if there are at least two people with the same name, </tt>False</tt> is all the names are unique.
 +
 +
'''Hint:'''
 +
 +
Mind that do not compare ones name to itself, only to other's names.
 +
 +
=== Pronunciation ===
 +
In Hungarian there are a lots of vowels and some words are hard to pronounce if there are a lots of consonants in them.
 +
For example ''"elorozza"'' has a good number of vowels, but the Slovakian ''"zmrzlina"'' has too many consonants.
 +
 +
Write a python function that decides whether a word has too many consonants or not.
 +
 +
* Call the function <tt>pronunciation</tt>
 +
* with one parameter: ''word'', the word in question
 +
* return the string <tt>"Hard"</tt> if the number of consonants are more (or equal) than twice the number of vowels.
 +
* return <tt>"Easy"</tt> otherwise.
 +
 +
=== Food courses ===
 +
Suppose you have a really strict diet and you have a given number of calories what you should eat for dinner.
 +
You walk in a restaurant and they have the menu of soups and main dishes. Every item on the menu has a calorie value.
 +
 +
Can you choose the right dishes to exactly match your calorie intake?
 +
 +
Write a python function
 +
* called <tt>dishes</tt>
 +
* that have three parameters:
 +
** ''calorie'', the number of calories you should eat
 +
** ''soups'', a list containing calorie values for the soups
 +
** ''mains'', a list containing calorie values for the main dishes
 +
* You should return <tt>True</tt> if there is a two-course meal that fits your diet (<tt>True</tt> otherwise).
 +
 +
=== 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.
 +
 +
  
 
[[Informatics2-2018/Lab02|previous]] [[Informatics2-2018#Labs|up]] [[Informatics2-2018/Lab04|next]]
 
[[Informatics2-2018/Lab02|previous]] [[Informatics2-2018#Labs|up]] [[Informatics2-2018/Lab04|next]]

A lap 2018. február 28., 17:13-kori változata

previous up next

Tartalomjegyzék

Exercises

Mean nearest

Write a function that finds an element in a list which is the nearest to the mean of the list. There should be one parameter, the list.

Increasing sublists

Write a function that finds increasing sublists with a given length within a given list. The function should have two parameters:

  • a list l
  • and a natural number n
  • return the list of n-long increasing sublists of l

Break down to subtasks:

  • first return the list of all n-long sublists of l
  • Check whether a sublist is increasing

Name conflict

We are throwing a party and there are a lots of unknown people there. We write their names in a list. Write a python function that decides whether there is a duplicate in the names (two person with the same name).

The function should have one parameter: the list of names.

Return True if there are at least two people with the same name, </tt>False</tt> is all the names are unique.

Hint:

Mind that do not compare ones name to itself, only to other's names.

Pronunciation

In Hungarian there are a lots of vowels and some words are hard to pronounce if there are a lots of consonants in them. For example "elorozza" has a good number of vowels, but the Slovakian "zmrzlina" has too many consonants.

Write a python function that decides whether a word has too many consonants or not.

  • Call the function pronunciation
  • with one parameter: word, the word in question
  • return the string "Hard" if the number of consonants are more (or equal) than twice the number of vowels.
  • return "Easy" otherwise.

Food courses

Suppose you have a really strict diet and you have a given number of calories what you should eat for dinner. You walk in a restaurant and they have the menu of soups and main dishes. Every item on the menu has a calorie value.

Can you choose the right dishes to exactly match your calorie intake?

Write a python function

  • called dishes
  • that have three parameters:
    • calorie, the number of calories you should eat
    • soups, a list containing calorie values for the soups
    • mains, a list containing calorie values for the main dishes
  • You should return True if there is a two-course meal that fits your diet (True otherwise).

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.


previous up next

Személyes eszközök