Elemi algoritmusok Páll Boglárka
Elemi algoritmusok: Az elemi algoritmusok a klasszikus feladatokra adnak megoldásokat: Pl: Két szám értékének felcserélése Minimum, maximum meghatározása Bizonyos tulajdonsággal rendelkező elemek megszámolása Egy szám számjegyeinek meghatározása, számok alkotása számjegyekből Két szám legnagyobb közös osztójának meghatározása Prímszámok tesztelésére alkalmas algoritmus Egy szám osztóinak megkeresésére használt algoritmus Számrendszerek közti átalakításaok
2 1 1. Két szám felcserélése C A B Két szám felcseréléséhez egy segédváltozót kell használnunk (pohár módszer) 2 1 C A B
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.
FELADAT: Adott egy kétjegyű szám. Cseréljük fel a számjegyeit. Pl: 45 -> 54 Lépések: Kimentjük a szám számjegyeit a és b-be A számjegyeket felcseréljük Megalkotjuk az új számot a-ból és b-ből
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
2. Minimum és maximum meghatározása Lépések: Beolvassuk az első a szám értékét Maximumnak, és minimumnak az első a szám értékét adjuk Beolvassuk a következő a számot Ha a> max vagy a<min akkor az a lesz az új maximum vagy minimum Folytatjuk a 3 lépéstől
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 Ha a>max akkor max:=a Ha vége Ha a<min akkor min:=a Adott a Minden vége Eredmény min, max Vége
Feladat: Olvassunk be számokat amíg a szám nagyobb mint nulla. Határozzuk meg a legnagyobbat és a legkisebbet.
3. Bizonyos tulajdonsággal rendelkező elemek megszámolása Lépések: Egyetlen ilyen tulajdonsággal rendelkező elemünk sem volt azaz db:=0 Beolvassuk az első a szám értékét 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 Folytatjuk a 2 lépéstől azaz beolvassuk a következő a számot
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
Feladat: Olvassunk be számokat amíg a szám nagyobb mint nulla. Határozzuk meg hány szám volt osztható 3-al.
4. a) Egy szám számjegyeinek meghatározása Példa: n := 3652 számjegy := n mod 10 2 n:= n div 10 365 számjegy := n mod 10 5 n:= n div 10 36 számjegy := n mod 10 6 n:= n div 10 3 számjegy := n mod 10 3 n:= n div 10 0
4. a) Egy szám számjegyeinek meghatározása Lépések: n mod 10 művelettel meghatározzuk az n szám utolsó számjegyét a kapott számjegyet feldolgozzuk az eredeti n számból levágjuk a feldolgozott számjegyet, ez az n div 10 művelettel történik 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.
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
Feladat Adott egy n természetes szám. Számítsátok ki az n szám számjegyeinek összegét és szorzatát.
4. b) Szám alkotása számjegyekből Példa: Alkossunk számot a 3 6 5 2 számjegyekből szám:=0 számjegy := 3 szám:= szám* 10 + 3 0+3 3 számjegy := 6 szám:= szám* 10 + 6 30+6 36 számjegy := 5 szám:= szám* 10 + 5 360+5 365 számjegy := 2 szám:= szám* 10 + 2 365 +2 3652
4. b) Szám alkotása számjegyekből Lépések: a szám kezdeti értéke 0 beolvassuk a sorra következő számjegy értékét a beolvasott számjegyet hozzáadjuk az eddig megalkotott szám 10-szereséhez addig folytatjuk a 2. lépéstől, amíg a beolvasott érték számjegy
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 Amíg vége Kiír nr Vége
Feladat Adottak számjegyek, alkossuk meg a párosakból alkotható számot Adott egy n szám, alkossuk meg a szám fordítottját. Pl: 3456 6543