Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Elemi algoritmusok Páll Boglárka. Elemi algoritmusok:  Az elemi algoritmusok a klasszikus feladatokra adnak megoldásokat: Pl: 1. Két szám értékének felcserélése.

Hasonló előadás


Az előadások a következő témára: "Elemi algoritmusok Páll Boglárka. Elemi algoritmusok:  Az elemi algoritmusok a klasszikus feladatokra adnak megoldásokat: Pl: 1. Két szám értékének felcserélése."— Előadás másolata:

1 Elemi algoritmusok Páll Boglárka

2 Elemi algoritmusok:  Az elemi algoritmusok a klasszikus feladatokra adnak megoldásokat: Pl: 1. Két szám értékének felcserélése 2. Minimum, maximum meghatározása 3. Bizonyos tulajdonsággal rendelkező elemek megszámolása 4. Egy szám számjegyeinek meghatározása, számok alkotása számjegyekből 5. Két szám legnagyobb közös osztójának meghatározása 6. Prímszámok tesztelésére alkalmas algoritmus 7. Egy szám osztóinak megkeresésére használt algoritmus 8. Számrendszerek közti átalakításaok

3 1. Két szám felcserélése  Két szám felcseréléséhez egy segédváltozót kell használnunk (pohár módszer) 1 2 A C B

4 1. Két szám felcserélésének algoritmusa: Algoritmus felcserél Adottak a, b, c c:=a a:=b b:=c Vége.

5 2. Minimum és maximum meghatározása  Az algoritmus több beolvasott szám (egy számsor) értékei közül határozza meg a legnagyobbat és a legkisebbet.  Az algoritmus elején maximumnak és minimumnak az első elem értékét adjuk, majd a maximumot és minimumot összehasonlítjuk a számsor többi elemével

6 2. Minimum és maximum meghatározása Lépések: 1. Beolvassuk az első a szám értékét 2. Maximumnak, és minimumnak az első a szám értékét adjuk 3. Beolvassuk a következő a számot 4. Ha a> max vagy a

7 Feladat: Határozzuk meg n szám maximumát és minimumát Algoritmus maxmin Adott a, n, i, max, min max:=a min:=a Minden i:=2 től n-ig végezd el Adott a Ha a>max akkor max:=a Ha vége Ha a

8 3. Bizonyos tulajdonsággal rendelkező elemek megszámolása Lépések: 1. Egyetlen ilyen tulajdonsággal rendelkező elemünk sem volt azaz db:=0 2. Beolvassuk az első a szám értékét 3. Megvizsgáljuk, hogy az a teljesítí a feltételt, ha igen akkor növeljük a feltételt teljesítő elemek darabszámát 4. Folytatjuk a 2 lépéstől azaz beolvassuk a következő a számot

9 Feladat: Határozzuk meg n szám közül hány páros Algoritmus darab Adott a, n, i, db db:=0 Minden i:=1 től n-ig végezd el Ha a mod 2=0 akkor db:=db+1 Ha vége Adott a Minden vége Eredmény db Vége

10 4. a) Egy szám számjegyeinek meghatározása n := 3652 számjegy := n mod 102 n:= n div számjegy := n mod 105 n:= n div 1036 számjegy := n mod 106 n:= n div 103 számjegy := n mod 103 n:= n div 100 Példa:

11 4. a) Egy szám számjegyeinek meghatározása Lépések: 1. n mod 10 művelettel meghatározzuk az n szám utolsó számjegyét 2. a kapott számjegyet feldolgozzuk 3. az eredeti n számból levágjuk a feldolgozott számjegyet, ez az n div 10 művelettel történik 4. a fenti lépéseket addig ismételjük amíg az n számnak még vannak számjegyei, vagyis amíg n<>0-tól.

12 Feladat: Határozzuk meg az n szám számjegyeit Algoritmus számjegy Adott n, számjegy Amíg n<>0 végezd el számjegy:= n mod 10 Kiír számjegy n:=n div 10 Amíg vége Vége

13 4. b) Szám alkotása számjegyekből Alkossunk számot a számjegyekből szám:=0 számjegy := 3 szám:= szám* számjegy := 6 szám:= szám* számjegy := 5 szám:= szám* számjegy := 2 szám:= szám* Példa:

14 4. b) Szám alkotása számjegyekből Lépések: 1. a szám kezdeti értéke 0 2. beolvassuk a sorra következő számjegy értékét 3. a beolvasott számjegyet hozzáadjuk az eddig megalkotott szám 10-szereséhez 4. addig folytatjuk a 2. lépéstől, amíg a beolvasott érték számjegy

15 Feladat: Határozzuk meg az n szám számjegyeit Algoritmus számjegy Adott nr:=0 Adott számjegy Amíg számjegy>=0 és számjegy<=9 végezd el nr:= nr *10 + számjegy Adott számjegy Amíg vége Kiír nr Vége

16 5. Egy szám osztóinak megkeresésére használt algoritmus  Az algoritmus egy beolvasott számnak megkeresi az összes osztóját  Egy x szám összes osztói [1, x] között vannak.  Pl: Keressük 15 osztóit

17 5. Egy szám osztóinak megkeresésére használt algoritmus Lépések: 1. Beolvassuk az x szám értékét 2. Sorban tekintjük az x lehetséges osztóit az [1,x] intervallumból 3. Megvizsgáljuk, hogy az x szám osztható-e az éppen vizsgált számmal 4. Ha x mod lehetséges_oszto =0 akkor találtunk egy osztót és ezt kiírjuk 5. Folytatjuk a 2 lépéstől

18 Feladat: Határozzuk meg n szám összes osztóját Algoritmus osztó Adott n Minden oszto:=1 től n-ig végezd el Ha n mod oszto =0 akkor Kiir oszto Ha vége Minden vége Vége

19 6. Prímszámok tesztelésére alkalmas algoritmus  Prímszámnak, nevezzük azt a természetes számot, amelynek pontosan két osztója van, vagyis csak önmagával és 1-el osztható.  A legelső pozitív prímszámok a következőek: 22, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, …

20 6. Prímszámok tesztelésére alkalmas algoritmus  Ahhoz, hogy megállapítsuk, hogy egy szám prímszám meg kell vizsgálni, hogy létezik e 1-nél nagyobb és önmagánál kisebb osztója.  Ha létezik ilyen szám akkor nem prím, ellentkező esetben pedig prím.  Úgy járunk el, hogy kezdetben feltételezzük, hogy a szám prím, majd megvizsgáljuk az összes lehetséges osztót 2 és n div 2 között és ha találunk ilyet akkor a számunk már nem pímszám.

21 Példa  n= 41  feltételezem n prim  Vizsgálom az osztóit 2 és 20 között  2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20  n=169  feltételezem n prim  Vizsgálom az osztóit 2 és 84 között 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, mod 13 = 0 tehát a szám nem prím 41 mod osztó <> 0 minden esetben, tehát n prím

22 6. Prímszámok tesztelésére alkalmas algoritmus Algoritmus prím Adott n prím:=igaz Minden oszto:=2 től (n div 2) -ig végezd el Ha n mod oszto =0 akkor prim:=hamis Ha vége Minden vége Ha prim=igaz akkor Kiír ‘A szám prim’ Különben Kiír ‘A szám nem prim’ Ha vége Vége

23 7. Két szám legnagyobb közös osztójának meghatározása 1. Ismételt kivonásos módszer AB Kivonás (nagyobb - kisebb) = = – 12 = A=B, lnko = 12, lkkt = 48 * 36 / 12 = 144

24 7. Két szám legnagyobb közös osztójának meghatározása 1. Ismételt kivonásos módszer ABKivonás (nagyobb - kisebb) = = = = = = = = = 1 11A=B, lnko = 1, lkkt = 37 * 17 / 1 = 629

25 7. Két szám legnagyobb közös osztójának meghatározása  Algoritmus leírása  Amíg a két szám különbözik egymástól, a nagyobbikból kivonjuk a kisebbiket, és a nagyobbikban megőrizzük a különbséget.  Az lnko az utolsó külöbnség lesz.  Az lkkt-t úgy kapjuk meg, hogy a két szám szorzatát osztjuk az lnko-val 1. Ismételt kivonásos módszer

26 7. Két szám legnagyobb közös osztójának meghatározása Algoritmus Eukleidesz Adott a, b Amig (a<> b) vegezd el Ha (a>b) akkor a:=a-b kulonben b:=b-a Amig vege lnko :=b Kiir ‘lnko’ Algoritmus vege

27 7. Két szám legnagyobb közös osztójának meghatározása  Maradék 0, lnko = 1  Lkkt = 37 * 17 / 1 = 629 ABR = A mod B % 36 = % 12 = 0 ABR = A mod B % 17 = % 3 = % 2 = % 1 = 0  2. Ismételt osztással – Euklidész algoritmus  Maradék 0, lnko = 12  Lkkt = 48 * 36 / 12 = 144

28 7. Két szám legnagyobb közös osztójának meghatározása  2. Ismételt osztással – Euklidész algoritmus  Algoritmus leírása  Elosztjuk a-t b-vel. Legyen azt osztási maradék r.  Amíg a maradék nem nulla, ismételten áthelyezzük b-t a-ba, r-t b-be és folytatjuk az osztásokat  Az utolsó osztó (b) éppen az lnko lesz.  Az lkkt-t úgy kapjuk meg, hogy a két szám szorzatát osztjuk az lnko-val

29 7. Két szám legnagyobb közös osztójának meghatározása Algoritmus Eukleidesz Adott a, b r:=a mod b, Amig (r≠0) vegezd el a:=b; b:=r; r:=a mod b Amig vege lnko:=b Algoritmus vege

30 8. Számrendszerek közti átalakítások  1. eset: 10 –es számrendszerből q számrendszerbe való átalakítás Példa: q 6 q 6 = mod 6 = 3 p=1 q 6 = q 6 + 3*p =3 123 div 6 = 20, 20 mod 6 = 2 p=10 q 6 = q 6 + 2*p =23 20 div 6 = 3, 3 mod 6 = 3 p=100 q 6 = q 6 + 3*p =323 3 div 6 = 0, = 323

31 Számrendszerek közti átalakításaok  Példa:  q 8 q 8 = mod 8 = 5, p = 1 q 8 = q 8 + 5*p =5 965 div 8 = 120, 120 mod 8 = 0, p = 10 q 8 = q 8 + 0*p =5 120 div 8 = 15, 15 mod 8 = 7, p = 100 q 8 = q 8 + 7*p= div 8 = 1, 1 mod 8 = 1, p = 1000 q 8 = q 8 + 1*p = div 8 = 0, = 1705

32 8. Számrendszerek közti átalakítások Lépések: 1.Addig osztjuk a 10-es számrendszerbeli számot q értékével amíg a hányados különbözik 0-tól. 2.Az osztások alkalmával kapott maradékok fordított sorrendben alkotják az adott szám q-számrendszerbeli alakját.

33 Algoritmus számrendszer Adott n, nq, p, q nq : = 0 p := 1 Amig n<> 0 végezd el nq:= nq + p * (n mod q) n:= n div q p:= p* 10 Amig vége Kiir nq Vége


Letölteni ppt "Elemi algoritmusok Páll Boglárka. Elemi algoritmusok:  Az elemi algoritmusok a klasszikus feladatokra adnak megoldásokat: Pl: 1. Két szám értékének felcserélése."

Hasonló előadás


Google Hirdetések