INFOÉRA 2006 Nagypontosságú aritmetika I.

Slides:



Advertisements
Hasonló előadás
Sorozatszámítás Sorozatszámítás (N,A,s) s := kezdőérték
Advertisements

Racionális számok számítógépi ábrázolása
Halmazok, műveletek halmazokkal
Számrendszerek T.R. Általában a számrendszerekről: Alapszám: N
Programozási alapismeretek 5. előadás. ELTE Szlávi - Zsakó: Programozási alapismeretek 5.2/  Programozási tételek.
Programozási alapismeretek 6. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 6.2/  Rekordok/struktúrák.
INFOÉRA 2006 Kombinatorika
Algoritmizálás, adatmodellezés tanítása 4. előadás
Copyright, 2009 © Szlávi Péter A kupac és a prioritási sor típuskonstrukciók Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Programozási alapismeretek 4. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 4.2/  A szöveg A szöveg.
Programozási alapismeretek 2. előadás. ELTE Szlávi - Zsakó: Programozási alapismeretek 2.2/  Adatokkal kapcsolatos.
Programozási alapismeretek 3. előadás
Programozási alapismeretek 13. előadás. ELTE Érdekességek - kombinatorika  Az iskola bejáratánál N lépcsőfok van. Egyszerre maximum K fokot tudunk lépni,
Programozási alapismeretek 10. előadás
Programozási alapismeretek 5. előadás. ELTE 2/  Programozási tételek – a lényeglényeg  Sorozatszámítás Sorozatszámítás.
Programozási alapismeretek 12. előadás. ELTE  Tapasztalatok a rendezésről Tapasztalatok a rendezésről  Keresés rendezett sorozatban Keresés rendezett.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Csernoch Mária Adatábrázolás Csernoch Mária
Csernoch Mária Adatábrázolás Csernoch Mária
SZÁMRENDSZEREK SZÁMÁBRÁZOLÁS
4. Fejezet : Az egész számok (integer) ábrázolása
SZÁMÁBRÁZOLÁS.
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
Fák, bináris fák INFOÉRA Ez így 60 perc.
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.1/ Keresés Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]
ELTE Szlávi-Zsakó: Programozási alapismeretek 8.1/ Kiválogatás Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]
ELTE Szlávi-Zsakó: Programozási alapismeretek 10.1/ Összegzés mátrixra Feladat: Egy mátrix elemeinek összege.
2 tárolós egyszerű logikai gép vázlata („feltételes elágazás”)
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.1/ Sorozatszámítás Specifikáció (a végleges) :  Bemenet:
ELTE Szlávi-Zsakó: Programozási alapismeretek Szlávi-Zsakó: Programozási alapismeretek 3. 1/
Copyright, 1999 © Szlávi Péter Prioritási sor típuskonstrukció Szlávi Péter ELTE Informatika Szakmódszertani Csoport
2-es, Számrendszerek 10-es és 16-os Készítette: Varga Máté
Szám - számrendszer 564,2 = 5* * * *10-1
Fixpontos, lebegőpontos
ELTE Adatokkal kapcsolatos fogalmak  Konstans: az az adat, amely a műveletvégzés során nem változtat(hat)ja meg értékét, mindvégig ugyanabban az „állapotban”
Egydimenziós tömbökön végezhető műveletek
Félévi típus feladatok
Feladatok: Algoritmusok Pszeudokódban
Operátorok Értékadások
Esettanulmány: sokjegyű kódszámok beírása. Postai csekk – gépi feldolgozásra.
Programozási tételek.
Különböző számrendszerbeli számok visszaalakítása decimális alakra
Copyright, 1999 © Szlávi Péter Sor típuskonstrukció Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Objektum orientált programozás
Fixpontos, lebegőpontos
Algoritmizálás, adatmodellezés tanítása 2. előadás.
Az egész számok szorzása
Alapműveletek (Természetes számok, Egész számok)
Programozási alapismeretek * A Zh-írás módszertana.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
Algoritmizálás, adatmodellezés
Programozási alapismeretek 10. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 10.2/  Kiválogatás + összegzés.
ÖSSZEADÁS a pozitív és a negatív számok körében
Fák, bináris fák INFOÉRA Ez így 60 perc.
INFOÉRA 2006 Véletlenszámok
Programozási alapismeretek 2. előadás. ELTE Szlávi - Zsakó: Programozási alapismeretek 2.2/  Adatokkal kapcsolatos.
Összeállította: Gergely János
INFOÉRA 2006 Nagypontosságú aritmetika II.
Számítógépek felépítése 2. előadás egyszerű gépek, adatábrázolás
INFOÉRA 2006 Nagypontosságú aritmetika III.
NJSzT Nemes Tihamér Országos Középiskolai Sámítástechnikai Tanulmányi Verseny.
Számábrázolás.
137. óra - Ismétlés Számok és műveletek
Számrendszerek.
Egy egyszerű gép vázlata
Számítógép architektúrák
Programozási tételek.
Előadás másolata:

INFOÉRA 2006 Nagypontosságú aritmetika I. 2006.11.18 Nagypontosságú aritmetika I. Juhász István-Zsakó László: Informatikai képzések a ELTE-n

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Számok ábrázolása: komplemens ábrázolás (negatív számok így nagyon sokjegyűek) előjel + számjegyek + hossz + számrendszer (tömb vagy szöveg): x =  t0 + t1S + t2S2 + ... + tnSn 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 2

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok NagyEgész típus: előjel: {–,+} n: Egész S: alapszám T: tömb(0..Maxn,Egész) x =  t0 + t1S + t2S2 + ... + tnSn 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 3

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok A műveleteknél az előjelet külön kezeljük, a műveleteket visszavezetjük pozitív számokkal végzett műveletekre. Összeadás(x,y,z): z.előjel:=x.előjel; z.S:=x.S Ha x.előjel=y.előjel akkor Összead(x,y,z) különben ha x.előjel<y.előjel akkor Kivon(y,x,z) különben Kivon(x,y,z) Eljárás vége. 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 4

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Még arra is figyelhetünk, hogy |x|≥|y| legyen! Összeadás(x,y,z): z.előjel:=x.előjel; z.S:=x.S Ha x.előjel=y.előjel akkor Ha nagye(x,y) akkor Összead(x,y,z) különben Összead(y,x,z) különben ha x.előjel=’-’ akkor Ha nagye(y,x) akkor Kivon(y,x,z) z.előjel:=’+’ különben Kivon(x,y,z) különben ha nagye(x,y) akkor Kivon(x,y,z) különben Kivon(y,x,z) z.előjel:=’-’ Eljárás vége. A belső eljárások pozitív számokat használnak! 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 5

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Összeadás, ahogyan az iskolában tanultuk! XXXXXXXXX + XXXX  Összead(x,y,z): ÁT:=0 Ciklus i=0-tól y.N-ig a:=(x.t(i)+y.t(i)+ÁT) z.t(i):=a mod x.S; ÁT:=a div x.S Ciklus vége … 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 6

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok … i:=y.N+1 Ciklus amíg ÁT≠0 a:=(x.t(i)+ÁT) z.t(i):=a mod x.S; ÁT:=a div x.S; i:=i+1 Ciklus vége Ciklus amíg i≤x.N z.t(i):=x.t(i); i:=i+1 z.N:=i-1 Eljárás vége. Probléma: a div és a mod művelet lassú! 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 7

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Felhasználhatjuk, hogy az átvitel maximum 1 lehet, így az osztást elkerülhetjük. A megoldás: a:=(x.t(i)+y.t(i)+ÁT) z.t(i):=a mod x.S; ÁT:=a div x.S helyett Ha a<x.S akkor z.t(i):=a; ÁT:=0 különben z.t(i):=a-x.S; ÁT:=1 Ugyanezt a másik ciklusmaggal is megtehetjük. 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 8

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Megoldásváltozatok: kivonás – z:=x-y; eggyel növelés – z:=x+1; eggyel csökkentés –z:=x-1; növelés helyben – x:=x+y; csökkentés helyben – x:=x-y; … 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 9

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Szorzás, ahogyan az iskolában tanultuk! XXXX*XXX XXXXX XXXXX . XXXXXXXX Probléma: a közbülső adatoknak mennyi helyet kell foglalnunk? Megoldás: amint egy sort kiszámoltunk, azonnal hozzáadhatjuk az eredményhez. Újabb probléma: az eredmény minden számje-gyével sok műveletet végzünk. 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 10

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Megoldás egy különleges sorrendű kiszámolás! X X X X*XXX XXX4X2X1 XXXX5X3 XXXXX6 . XXXXXX X X Amikor egy oszlopot számolunk, azt azonnal adjuk hozzá a végeredményhez! 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 11

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok A képlet átfogalmazva: Az indexhatárok számítása: 0≤j≤x.N és 0≤i-j≤y.N  2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 12

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Szoroz(x,y,z): Ciklus i=0-tól x.N+y.N+1-ig a:=ÁT Ciklus j=max(0,i-y.N)-től min(i,x.N)-ig a:=a+x.t(j)*y.t(i-j) Ciklus vége z.t(i):=a mod x.S; ÁT:=a div x.S Ha ÁT=0 akkor z.N:=x.N+y.N különben z.N:=x.N+y.N+1; z.t(z.N):=ÁT Eljárás vége. Megjegyzés: az alapszám hatványaival szorzást persze nem így oldjuk meg, hanem eltolással. 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 13

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Felezéses szorzási algoritmus kettes számrend-szerhez: Felezéses hatványozási algoritmus kettes szám-rendszerhez: Kérdések: páros-páratlan? 2*A, B/2? B-1? 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 14

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok A megoldás: Szoroz2(A,B,C): C:=0 Ciklus amíg B≠0 Ha páros(B) akkor Balraléptet(A) Jobbraléptet(B) különben Össze(C,A) Csökkent(B) Ciklus vége Eljárás vége. Hasonló a hatványozási algoritmus is! 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 15

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Osztás (C:=A div B, D:=A mod B): Osztás(A,B,C,D): C:=0; D:=A Ciklus amíg D≥B C:=C+1; D:=D-B Ciklus vége Eljárás vége. Jól működne, de mennyi idő alatt? 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 16

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok XXXXXXXXX - XXXX … ← - XXXX … → 0XXXXXXXX - XXXX … 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 17

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Osztás (C:=A div B, D:=A mod B): (az osztandó balra tolása, kivonása, majd 1-1 lé-péssel jobbra tolása a következő kivonások előtt) Osztás(A,B,C,D): D:=A; v:=B*A.SK; C:=0 Ciklus i=1-től K-ig C:=C*S Ciklus amíg D≤v C:=C+1; D:=D–v Ciklus vége v:=v/A.S Eljárás vége. 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 18

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Hányados becslésével, visszavezetés "n+1-jegyű osztása n-jegyűvel" esetre: (u0,u1,...un+1)/(v0,...,vn). A H hányados Q becslése a következő (v≥S/2 esetén): , így Q=H vagy H+1 vagy H+2. Egy gyors ellenőrzési lehetőség: vn-1*Q>(S*un+1+un–Q*vn)*S+un-1 Ha igaz, akkor Q:=Q–1 (esetleg kétszer) 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 19

Nagypontosságú aritmetika: egész számok INFOÉRA 2006 2006.11.18 Nagypontosságú aritmetika: egész számok Osztás1(…): Ha U(N+1)=V(N) akkor Q:=S-1 különben Q:=(S*U(N+1)+U(N))/V(N) Ciklus amíg V(N-1)*Q> (S*U(N+1)+U(N)-Q*V(N))*S+U(N-1) Q:=Q-1 Ciklus vége W():=V()*Q U():=U()-W() Ha U()<0 akkor U():=U()+V(): Q:=Q-1 H:=Q Eljárás vége. 2017.04.09. Zsakó László: Nagypontosságú aritmetika Juhász István-Zsakó László: Informatikai képzések a ELTE-n 20

Zsakó László: Programozási alapismeretek M INFOÉRA 2006 2006.11.18 Vége Zsakó László: Programozási alapismeretek M Juhász István-Zsakó László: Informatikai képzések a ELTE-n