Informatika1-2008/Gyakorlat5

A MathWikiből
(Változatok közti eltérés)
(4. gyakorlat (Maple))
(5. gyakorlat (Maple))
2. sor: 2. sor:
  
 
* Funkcionális programozás  
 
* Funkcionális programozás  
** egyszerű példák a map, select használatára
+
** egyszerű példák a map, select használatára: [http://www.math.bme.hu/~tothagi/info1/gy8_selectmap.mw mw]
 
* Algoritmusok:
 
* Algoritmusok:
** legnagyobb közös osztó meghatározása euklideszi algoritmus segítségével:
+
** legnagyobb közös osztó meghatározása euklideszi algoritmus segítségével: [http://www.math.bme.hu/~tothagi/info1/gy9_euklideszi.mw mw]
** buborék rendezés lista rendezésére:
+
** buborék rendezés lista rendezésére: [http://www.math.bme.hu/~tothagi/info1/gy10_buborek.mw mw]
 
+
 
+
 
+
  
  
16. sor: 13. sor:
  
 
2. Összefésülés és összefésüléses rendezés:
 
2. Összefésülés és összefésüléses rendezés:
Az összefésülés algoritmus bemenete két rendezett (!) lista, melyek nem feltétlenül azonos hosszúak. A várt kimenet egy olyan lista, mely tartalmazza a kapott két lista összes elemét (ha vannak azonosak, akkor azokat többször is), továbbá rendezett lista. Tehát a kimeneti listába össze van fésülve a két bemeneti lista tartalma. A módszer a következő. Összeasonlítjuk a listák első elemeit, kiválasztjuk a kisebbet,
+
Az összefésülés algoritmus bemenete két növően rendezett (!) lista, melyek nem feltétlenül azonos hosszúak. A várt kimenet egy olyan lista, mely tartalmazza a kapott két lista összes elemét (ha vannak azonosak, akkor azokat többször is), továbbá rendezett lista. Tehát a kimeneti listába össze van fésülve a két bemeneti lista tartalma. A módszer a következő. Összehasonlítjuk a listák első elemeit, kiválasztjuk a kisebbet, ez lesz a végső lista legkisebb, azaz legelső eleme. Ezután amelyik listában ez az elem volt, annak a második elemét vizsgáljuk a másik lista első elemével. Ismét kiválasztjuk a kisebbet, az adott listában tovább lépünk, a másikban nem. Ezt addig ismételjük, míg valamelyik lista el nem fogy. Ekkor a másik listából maradt elemeket a kimeneti lista végére másoljuk.
 
+
  
3. Diagram:
+
3. Diagram: [http://www.math.bme.hu/~tothagi/info1/hf11_diagram.mw mw]

A lap 2008. október 7., 23:52-kori változata

5. gyakorlat (Maple)

  • Funkcionális programozás
    • egyszerű példák a map, select használatára: mw
  • Algoritmusok:
    • legnagyobb közös osztó meghatározása euklideszi algoritmus segítségével: mw
    • buborék rendezés lista rendezésére: mw


Házi feladat:

1. A következő feladatot oldjuk meg kétféleképpen. Mindkettő procedúra legyen, de először feltételes- és ciklusutasításokkal, másodszor a funkcionális programozás elvét használva (a tanult listakezelő parancsok egymásba ágyazásával) oldjuk meg a feladatot. A cél: a készített procedúra két azonos elemszámú listáról döntse el, hogy hány olyan hely van, ahol az első listában kisebb szám áll, mint a másodikban. Pl. a [2,5,1], [5,3,7] hívásra azt írja ki, hogy 2, míg a [2,3], [1] hívásra hibaüzenetet kapjunk.

2. Összefésülés és összefésüléses rendezés: Az összefésülés algoritmus bemenete két növően rendezett (!) lista, melyek nem feltétlenül azonos hosszúak. A várt kimenet egy olyan lista, mely tartalmazza a kapott két lista összes elemét (ha vannak azonosak, akkor azokat többször is), továbbá rendezett lista. Tehát a kimeneti listába össze van fésülve a két bemeneti lista tartalma. A módszer a következő. Összehasonlítjuk a listák első elemeit, kiválasztjuk a kisebbet, ez lesz a végső lista legkisebb, azaz legelső eleme. Ezután amelyik listában ez az elem volt, annak a második elemét vizsgáljuk a másik lista első elemével. Ismét kiválasztjuk a kisebbet, az adott listában tovább lépünk, a másikban nem. Ezt addig ismételjük, míg valamelyik lista el nem fogy. Ekkor a másik listából maradt elemeket a kimeneti lista végére másoljuk.

3. Diagram: mw

Személyes eszközök