Informatika2-2021/Sz¼tGyak09

A MathWikiből
(Változatok közti eltérés)
 
(egy szerkesztő 6 közbeeső változata nincs mutatva)
3. sor: 3. sor:
 
== Kitekintés ==
 
== Kitekintés ==
  
=== Mersenn prím ===
+
=== 1. Mersenn prím ===
  
 
Írjuk meg a Mersenn-e() függvényt, melynek paramétere egy természetes szám és kimenetnek False vagy True értékkel térjen vissza attól függően Mersenn prím-e.
 
Írjuk meg a Mersenn-e() függvényt, melynek paramétere egy természetes szám és kimenetnek False vagy True értékkel térjen vissza attól függően Mersenn prím-e.
10. sor: 10. sor:
 
== Variadic ==
 
== Variadic ==
  
=== Sum ===
+
=== 2. Sum ===
  
 
# Írjunk egy függvényt, aminek az első argumentuma '''n''', egy '''int''' típusú változó. A függvény térjen vissza '''True'''-val, ha annyi extra paraméterrel hívták meg, mint az első bemeneti paraméter értéke, egyébként térjen vissza '''False'''-szal.
 
# Írjunk egy függvényt, aminek az első argumentuma '''n''', egy '''int''' típusú változó. A függvény térjen vissza '''True'''-val, ha annyi extra paraméterrel hívták meg, mint az első bemeneti paraméter értéke, egyébként térjen vissza '''False'''-szal.
18. sor: 18. sor:
 
## Kezeljük le kivételként, ha a bemeneten nem egész számot adtak meg a szó gyakoriságára!
 
## Kezeljük le kivételként, ha a bemeneten nem egész számot adtak meg a szó gyakoriságára!
  
=== Legnagyobb közös osztó ===
+
=== 3. Legnagyobb közös osztó ===
  
 
Írjunk egy lnko() nevű függvényt, aminek a paramétere tetszőlegesen sok pozitív természetes szám és kiszámolja a legnagyobb közös osztójukat.
 
Írjunk egy lnko() nevű függvényt, aminek a paramétere tetszőlegesen sok pozitív természetes szám és kiszámolja a legnagyobb közös osztójukat.
  
=== Mátrix rendezés ===
+
=== 4. Mátrix rendezés ===
  
 
Adott a már házi feladatként megírt Matrix osztály:
 
Adott a már házi feladatként megírt Matrix osztály:
38. sor: 38. sor:
 
             k += '\n'
 
             k += '\n'
 
         return k
 
         return k
    def __add__(self, k1):
 
        k = []
 
        for i in range(self.row):
 
            l = []
 
            for j in range(self.column):
 
                l.append(self.L[i][j] + k1.L[i][j])
 
            k.append(l)
 
        return Matrix(k)
 
    def __sub__(self, k1):
 
        k = []
 
        for i in range(self.row):
 
            l = []
 
            for j in range(self.column):
 
                l.append(self.L[i][j] - k1.L[i][j])
 
            k.append(l)
 
        return Matrix(k)
 
   
 
    def __mul__(self, k1):
 
        k = []
 
        if self.column != k1.row:
 
            return 'A művelet nem végezhető el! '
 
        for i in range(self.row):
 
            l = []
 
            for j in range(k1.column):
 
                a = 0
 
                for h in range(k1.row):
 
                    a += self.L[i][h] * k1.L[h][j]
 
                l.append(a)
 
            k.append(l)
 
        return Matrix(k)
 
 
</python>
 
</python>
  
 
Egészítsük ki egy új függvénnyel, aminek két bemenete van: Egy Matrix osztálybeli elemekből álló lista, egy string (novekvo vagy csokkeno) és a listában lévő mátrixokat a diagonális rész összege szerint rendezi növekvő, illetve csökkenő sorrendben a második paraméter alapján. Úgy írjuk meg a függvényt, hogy ha második paraméternek nem adunk meg semmit, akkor automatikusan növekvő sorrendbe rendezze a mátrixokat.
 
Egészítsük ki egy új függvénnyel, aminek két bemenete van: Egy Matrix osztálybeli elemekből álló lista, egy string (novekvo vagy csokkeno) és a listában lévő mátrixokat a diagonális rész összege szerint rendezi növekvő, illetve csökkenő sorrendben a második paraméter alapján. Úgy írjuk meg a függvényt, hogy ha második paraméternek nem adunk meg semmit, akkor automatikusan növekvő sorrendbe rendezze a mátrixokat.
#Tipp: Írjuk meg először a diag() metódusát egy mátrixnak, majd nézzük meg, hogy az órai előadáson a rendezés hogyan lett megvalósítva.
+
#Tipp: Írjuk meg először a diag() metódusát egy mátrixnak, majd a rendezést a .sort() metódussal végezzük. Továbbá a fordított rendezés a sort(reverse = True) metódussal megvalósítható.
  
== Kombinációk ==
+
== Hatványhalmaz ==
Írjunk egy ''variadikus'' függvényt, melynek első bemenete egy természetes szám, utána tetszőlegesen sok egész szám. A kimenete egy lista legyen, ami az első paraméter számú kombinációit tartalmazza az első paraméter után megadott természetes számoknak.
+
  
== Zéró Számhármasok ==
+
=== 5. 0-1 sorozatok ===
Írjunk egy ''variadikus'' függvényt, melynek bemenetei különböző egész számok, kimenete pedig egy listában azon számhármasok, melyeknek összege 0.
+
 
#Tipp: Használjuk a Kombinációk függvényt!
+
Írjunk egy hatvanyhalmaz() függvényt, aminek egyetlen paramétere egy n természetes szám és a kimenete az összes n hosszú 0-1 sorozat 1 listába szedve.<br>
 +
Például:
 +
<python>
 +
hatvanyhalmaz(2) = [[1,1],[1,0],[0,1],[0,0]]
 +
</python>
 +
Tipp: A listát minden lépésben kétszerezzük meg, azaz fűzzük önmagához és valamelyik elemhez 0-át, valamelyik elemhez 1-est fűzzünk.
 +
 
 +
=== 6. n alatt a k ===
 +
 
 +
Az előző feladatot felhasználva írjunk egy függvényt, nalattk()-t, aminek első paramétere egy k szám, ami megadja, hogy hány elemű halmazokat szeretnénk csinálni az utána következő paraméterekből. Ez egy variadikus függvény.

A lap jelenlegi, 2021. április 14., 09:44-kori változata

Tartalomjegyzék

Feladatok

Kitekintés

1. Mersenn prím

Írjuk meg a Mersenn-e() függvényt, melynek paramétere egy természetes szám és kimenetnek False vagy True értékkel térjen vissza attól függően Mersenn prím-e. A programot a logaritmus függvény használata nélkül írjuk meg.

Variadic

2. Sum

  1. Írjunk egy függvényt, aminek az első argumentuma n, egy int típusú változó. A függvény térjen vissza True-val, ha annyi extra paraméterrel hívták meg, mint az első bemeneti paraméter értéke, egyébként térjen vissza False-szal.
  2. Definiáljunk egy szumma függvényt, ami tetszőlegesen sok bemeneti paraméterének összegével tér vissza!
    1. Kezeljük le a kivételt, ha a paraméterek típusa nem azonos!
  3. Definiáljunk egy print_words függvényt, úgy, hogy a megadott (akármennyi) szavakat annyiszor írja ki, amennyit megadunk bemenetként (szavanként)!
    1. Kezeljük le kivételként, ha a bemeneten nem egész számot adtak meg a szó gyakoriságára!

3. Legnagyobb közös osztó

Írjunk egy lnko() nevű függvényt, aminek a paramétere tetszőlegesen sok pozitív természetes szám és kiszámolja a legnagyobb közös osztójukat.

4. Mátrix rendezés

Adott a már házi feladatként megírt Matrix osztály:

class Matrix:
    def __init__(self,L):
        self.row = len(L)
        self.column = len(L[0])
        self.L = L
    def __str__(self):
        k = ''
        for i in self.L:
            for j in i:
                k = k + str(j).rjust(4)
            k += '\n'
        return k

Egészítsük ki egy új függvénnyel, aminek két bemenete van: Egy Matrix osztálybeli elemekből álló lista, egy string (novekvo vagy csokkeno) és a listában lévő mátrixokat a diagonális rész összege szerint rendezi növekvő, illetve csökkenő sorrendben a második paraméter alapján. Úgy írjuk meg a függvényt, hogy ha második paraméternek nem adunk meg semmit, akkor automatikusan növekvő sorrendbe rendezze a mátrixokat.

  1. Tipp: Írjuk meg először a diag() metódusát egy mátrixnak, majd a rendezést a .sort() metódussal végezzük. Továbbá a fordított rendezés a sort(reverse = True) metódussal megvalósítható.

Hatványhalmaz

5. 0-1 sorozatok

Írjunk egy hatvanyhalmaz() függvényt, aminek egyetlen paramétere egy n természetes szám és a kimenete az összes n hosszú 0-1 sorozat 1 listába szedve.
Például:

hatvanyhalmaz(2) = [[1,1],[1,0],[0,1],[0,0]]

Tipp: A listát minden lépésben kétszerezzük meg, azaz fűzzük önmagához és valamelyik elemhez 0-át, valamelyik elemhez 1-est fűzzünk.

6. n alatt a k

Az előző feladatot felhasználva írjunk egy függvényt, nalattk()-t, aminek első paramétere egy k szám, ami megadja, hogy hány elemű halmazokat szeretnénk csinálni az utána következő paraméterekből. Ez egy variadikus függvény.

Személyes eszközök