Informatika1-2012/Gyakorlat5

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „== Ismétlés, és gyakorlás: Egyszerű adatszerkezetek, algoritmusok, függvények == === Szótárak kezelése === * Legyen egy ''gyumolcs_arak'' nevű szótárunk,…”)
 
19. sor: 19. sor:
  
 
==== Tökéletes számok ====
 
==== Tökéletes számok ====
* Írj függvényt, amely egy ''a'' számról eldönti, hogy az tökéletes szám-e (megegyezik a nála kisebb osztóinak az összegével, pl: 6, 28).
+
* Egy szám tökéletes szám, ha megegyezik a nála kisebb osztóinak az összegével, pl. a 6 tökéletes szám.
* Írj függvényt, amely 1-től ''n''-ig összegyűjti és egy listában visszaadja a talált tökéletes számokat!
+
* Írj függvényt, amely egy ''a'' számról eldönti, hogy az tökéletes szám-e.
 
+
* Írj függvényt, amely 1-től ''n''-ig összegyűjti és egy listában visszaadja a talált tökéletes számokat.
==== A 3n+1 probléma ====
+
 
+
A híres 3x+1 probléma ([http://mathworld.wolfram.com/CollatzProblem.html Collatz-sejtés]) :
+
végy egy számot, ha páratlan, szorozd meg 3-mal és adj hozzá 1-et, ha páros, oszd el 2-vel.
+
Az az állítás, hogy így bármilyen pozitív egész számból indulva előbb-utóbb eljutunk 1-ig.
+
 
+
Írj Sage függvényt, amely ''x''-et kap bemenetként, és sorban kiírja a lépéseket 1-ig!
+
  
 
=== Szószámláló, szótár segítségével ===
 
=== Szószámláló, szótár segítségével ===

A lap 2012. október 1., 23:24-kori változata

Tartalomjegyzék

Ismétlés, és gyakorlás: Egyszerű adatszerkezetek, algoritmusok, függvények

Szótárak kezelése

  • Legyen egy gyumolcs_arak nevű szótárunk, a következő kulcs-érték párokkal:
'alma': 150
'szilva': 190
'ananász': 450
'banán': 300
  • És legyen egy másik, vasarlas nevű szótár, amely azt tárolja, miből mennyit vettünk:
'banán': 0.6
'alma': 1.5
'ananász': 2
  • Írj Sage függvényt (legyen a neve ar_szamolo), amely megkapja a fenti két szótárat (első paramétere legyen az árakat tartalmazó), és kiszámolja, hogy mennyit kell fizetnünk a gyümölcsökért!

Összetettebb feladatok

Tökéletes számok

  • Egy szám tökéletes szám, ha megegyezik a nála kisebb osztóinak az összegével, pl. a 6 tökéletes szám.
  • Írj függvényt, amely egy a számról eldönti, hogy az tökéletes szám-e.
  • Írj függvényt, amely 1-től n-ig összegyűjti és egy listában visszaadja a talált tökéletes számokat.

Szószámláló, szótár segítségével

Készíts függvényt ami a bemenetként adott szöveget feldolgozza olyan módon, hogy a bemenetként adott szótárba minden, a szövegben szereplő szót az előfordulásának számával beilleszti a szótárba. Ha a szótár már tartalmaz elemeket akkor azokat törölje. A függvény ne térjen vissza értékkel, csak írja ki a számlálás eredményét.

Segítségek: str.split([sep[, maxsplit]]) -> [str, str, ...] has key(<key>), count(<item>), clear()


Osztályozó

Készíts függvényt ami a paraméterként kapott tuple elemeket tartalmazó listát egyesíti majd kiírja az eredményét. Minden tuple egy karakterláncból és egy egész számból áll, amik a nevet és pontszámot jelképezik. Több azonos karakterláncot (nevet) tartalmazó tuple lehet a listában... Eredményként egy szótárral tér vissza aminek az kulcsai 1,2,3,4,5 és az értékek olyan halmazok amikben a nevek (tuple karakterláncai) szerepelhetnek. Kerüljön az 1 értékei közé az az ember akinek kevesebb mint 40 pontja lett, 2 ha <55, 3 ha <70, 4 ha <85 és 5 ha >85.

Gyök számítás intervallum felezéssel

Készíts függvényt ami a bemenetként kapott kifejezés gyökét próbálja megtalálni a szintén paraméterként megadott intervallumban (az alapértelmezett intervallum legyen [-5,5]) intervallum felezéssel.

Buborék rendezés

Készíts függvényt ami megvalósítja a rendezést. Lista elemeit rendezzük a buborék rendezési algoritmus segítségével.

Bemenet egy lista, aminek az elemeit rendezni kell az eredeti listán belül, illetve opcionálisan meg lehet adni, hogy milyen sorrendben a második paraméterben megadott boolean értékkel, ha True akkor csökkenő sorrend kell, ha nincs megadva vagy False akkor növekvő sorrend.

Rendezési alg.: vegyük az első két elemet, rendezzük őket, ezzel kapunk egy kételemű rendezett listát. Majd vegyük a harmadik elemet és "illesszük" be az előző listában. A beillesztés úgy megy végbe, hogy egyesével összehasonlítjuk a lista elemeivel, minden egyes alkalommal kicseréljük a két elemet, amíg a megfelelő helyre nem kerül.

Lépcsős függvényben max. területű téglalap keresése

Készíts függvényt, ami bemenetként egy tömböt kap a függvény értékeivel az adott pontokon, és visszatér a lehető legnagyobb területű téglalap adataival, ami létrehozható a függvény alatti területen. (len, range)

Szigetek megszámlálása

HÁZI FELADAT

készíts függvényt, ami a bemeneteként kapott mátrixban, a szomszédos 1-eseket szigetnek véve visszaadja a térképen található szigetek számát. A matrix elemei 1 vagy 0 lehet. A mátrix mindig azonos oldalhosszúságú, de bármekkora lehet. A szomszédos elemek csak a vízszintesen vagy függőlegesen szomszédos elemeket értjük, átlósan nem értelmezett.

pl.: bemenet: [[0,1,1,0],[0,1,0,0],[0,0,0,1],[0,0,1,1]]

térben valahogy így kell elképzelni:

0110

0100

0001

0011

eredmény: 2

Személyes eszközök