Kezdőoldal » Számítástechnika » Programozás » Hogy tudom ezt megcsinálni...

Hogy tudom ezt megcsinálni Visual Basic-ben?

Figyelt kérdés
Excel programozunk most, és kaptunk egy feladatot amit nem tudok megcsinálni. Visual Basic-ben kéne egy 2-es számrendszebeli törtszámot átváltani 10-esbe. Valaki tudna segíteni? Előre is köszönöm.

2018. nov. 27. 18:58
 1/4 anonim ***** válasza:

"Excel programozunk most"


Biztos nem.



Meddig is jutottál, hol akadtál el?

2018. nov. 27. 19:32
Hasznos számodra ez a válasz?
 2/4 coopper ***** válasza:

Szia.


2-es számrendszerben is ugyan müködik minden mint 10-es számrendszerben, csak ott nem egyesek(10^0), tizesek(10^1), százasok(10^2), ezresek(10^3) stb. vannak, hanem a kettes számrendszernek megfelelő helyi értékek, tehát egyesek(2^0), kettesek(2^1), négyesek(2^2), nyolcsasok(2^3) stb, illeve törtrésznél pediglen, ugyan lefelé menve fél(2^-1), negyed(2^-2), stb van.


Ha most megvan a számod, mit kell vele tenni (1000011.10101) :


Látszik hogy szét kell szedni a tizedes pontnál (itt kettedes pont). Ezt VBA-ban INSTR-rel megkapod. aztán MID-del az INSTR-rel megkaptt poziciónál szétszeded a stinget két részre, lesz egy egész rész és lesz egy törtrész.


Egész rész feldolgozása :

Egy ciklussal végig mész az egész részen a végétől az eleje felé és az akltuális poziciónál lévő értéket megszorzod kettő ahanyadik hatványával ahányadik a pozicio -1. tehát a pl. egészrésze : 1000011,

ciklusértékek,számérték*kettő hatvány=részösszeg

1,1*2^(1-1)=1

2,1*2^(2-1)=2

3,0*2^(3-1)=0

4,0*2^(4-1)=0

5,0*2^(5-1)=0

6,0*2^(6-1)=0

7,1*2^(7-1)=64


A részeredményeket összeadod megkapod az egész részét a számnak : 1+2+0+0+0+0+64 = 67


A törtrésznél foditva van az eleje felől megyünk ciklussal a vége felé és kettőnek a minusz hatványával számulunk , tehát törtrész : 10101

ciklusértékek,számérték*kettő hatvány=részösszeg

1,1*2^(-1)=0.5

2,0*2^(-2)=0.0

3,1*2^(-3)=0.125

4,0*2^(-4)=0.0

5,1*2^(-5)=0.03125

Itt is összegzed a részeredményeket és megvan a törtrész :

0.5+0+0.125+0+0.03125=0.65625


Összeadod az egész részt és a tört részt és kész vagy.


Tehát szétszeded a számot két részre (egész rész, tört rész), Két ciklus, egy az egész résznek, egy a tört résznek, szummázás, kettő pozitiv és negativ hatványáival való szorzás (vagy szorzás és osztás), és összeadás, ennyi lenne a feladat.


Nem csinálom meg helyetted a feladatod, de ha elakadsz és mutatsz kódot akkor szivesen segitek.


Sok sikert. Üdv.

2018. nov. 27. 19:38
Hasznos számodra ez a válasz?
 3/4 A kérdező kommentje:
Köszönöm szépen a segítséget!
2018. nov. 27. 21:47
 4/4 anonim ***** válasza:

Egyszerűbb, ha megérted a kettes számrendszer lényegét, mert onnantól kezdve egyedül, segítség nélkül is képes vagy megírni a konverziót, akár oda-vissza is.


Helyiérték:


64, 32, 16, 8, 4, 2, 1


Szám:


10011


balról jobbra beszorzod a szám helyiértékén található számjegyet a helyiértékkel, majd ezeket az eredményeket összeadva kijön a decimális érték.


1 x 1 +

1 x 2 +

0 x 4 +

0 x 8 +

1 x 16 = 19.


Persze, ahol nullát találsz, ott a szorzást mellőzheted is. De ez gondolom kiderült a példából is.

2018. nov. 28. 10:25
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!