200 likes | 414 Views
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
E N D
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
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) 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 Ha vége 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.
n := 3652 számjegy := n % 102 n:= [ n/ 10] 365 számjegy := n % 105 n:= [ n/ 10] 36 számjegy := n % 106 n:= [n / 10] 3 számjegy := n % 103 n:= [n / 10]0 4. a) Egy szám számjegyeinekmeghatározása Példa:
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.
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 Példa:
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 Be 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