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,…”)
 
 
(egy szerkesztő 12 közbeeső változata nincs mutatva)
1. sor: 1. sor:
 
== Ismétlés, és gyakorlás: Egyszerű adatszerkezetek, algoritmusok, függvények ==
 
== Ismétlés, és gyakorlás: Egyszerű adatszerkezetek, algoritmusok, függvények ==
 +
 +
=== Mese ===
 +
 +
* Ha valamit nem tudunk kiszámolni, megkérdezzük a géptől
 +
* Algoritmusok, programozási nyelvek, implementáció
 +
* Egyszerű adattípusok, és összetett adatszerkezetek
 +
* Függvények
 +
* Diót szedünk, füvet nyírunk, porszívózunk, [http://2.bp.blogspot.com/_R4sQHqF0HVs/TCeQDWUL-gI/AAAAAAAADJA/U5CJop1xYZY/s1600/lego+bricks.JPG Legózunk] mert jó!
 +
* https://docs.google.com/document/d/1sn7MQl8hyO0ixGrzFWusmmqFbv1x_rwyDEP2PFUHpXA/edit
  
 
=== Szótárak kezelése ===
 
=== Szótárak kezelése ===
16. sor: 25. sor:
 
*Í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!
 
*Í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 ===
+
== Összetettebb feladatok ==
  
==== 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).
+
* Í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 ====
+
* 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.
A híres 3x+1 probléma ([http://mathworld.wolfram.com/CollatzProblem.html Collatz-sejtés]) :
+
* Í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.
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 ===
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:
+
* 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,
str.split([sep[, maxsplit]]) -> [str, str, ...]
+
a szövegben szereplő szót az előfordulásának számával beilleszti a szótárba.
has key(<key>), count(<item>), clear()
+
* Segítség:  str.split([sep[, maxsplit]]) -> [str, str, ...]
 
   
 
   
 
=== 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 ===
 
=== 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
+
* 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.
 
(az alapértelmezett intervallum legyen [-5,5]) intervallum felezéssel.
  
 
=== Buborék rendezés ===
 
=== Buborék rendezés ===
Készíts függvényt ami megvalósítja a rendezést.
+
* A buborék rendezés: http://hu.wikipedia.org/wiki/Bubor%C3%A9krendez%C3%A9s
Lista elemeit rendezzük a buborék rendezési algoritmus segítségével.
+
* Készíts függvényt ami megvalósítja a rendezést.
 
+
** Egy 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
+
** Opcionálisan adjuk meg bemenetként, hogy növekvő vagy csökkenő legyen a rendezés sorrendje.
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 ===
 
=== 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
+
* 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 eleme 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.
 +
* Példa bemenet: [[0,1,1,0],[0,1,0,0],[0,0,0,1],[0,0,1,1]]

A lap jelenlegi, 2012. október 2., 08:17-kori változata

Tartalomjegyzék

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

Mese

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.

  • Segítség: str.split([sep[, maxsplit]]) -> [str, str, ...]

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

  • A buborék rendezés: http://hu.wikipedia.org/wiki/Bubor%C3%A9krendez%C3%A9s
  • Készíts függvényt ami megvalósítja a rendezést.
    • Egy lista elemeit rendezzük a buborék rendezési algoritmus segítségével.
    • Opcionálisan adjuk meg bemenetként, hogy növekvő vagy csökkenő legyen a rendezés sorrendje.

Szigetek megszámlálása

  • 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 eleme 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.
  • Példa bemenet: [[0,1,1,0],[0,1,0,0],[0,0,0,1],[0,0,1,1]]
Személyes eszközök