Informatics2-2018/Lab03
(Ú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
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.