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 Egy szám osztóinak megkeresésére használt algoritmus Prímszámok tesztelésére alkalmas algoritmus Két szám legnagyobb közös osztójának meghatározása 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 Be a, b 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 Be a, n max:=a min:=a Minden i:=2 től n-ig végezd el Be a Ha a>max akkor max:=a Ha vége Ha a<min akkor min:=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 Be n db:=0 Minden i:=1 től n-ig végezd el Be a Ha a % 2=0 akkor db:=db+1 Ha vége 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 % 10 2 n:= [ n / 10] 365 számjegy := n % 10 5 n:= [ n / 10] 36 számjegy := n % 10 6 n:= [n / 10] 3 számjegy := n % 10 3 n:= [n / 10] 0
4. a) Egy szám számjegyeinek meghatározása Lépések: n % 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 / 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 Be n Amíg n<>0 végezd el számjegy:= n % 10 Kiír számjegy n:=[n / 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: Alkossunk szamot számjegyekbol Algoritmus számjegy Be számjegy nr:=0 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