Kezdőoldal » Számítástechnika » Programozás » Hogyan kell Microsoft Small...

The_Stellt kérdése:

Hogyan kell Microsoft Small Basic-ben a számjegyeket felcserélése?

Figyelt kérdés
Hogyan lehet a Microsoft Small Basic programban egy beolvasott kétjegyű szám számjegyeit felcserélni?

2015. jan. 3. 19:46
 1/5 anonim ***** válasza:

Elemeket nagyon könnyű felcserélni. Nem értek a Small Basichez, de ez általánosan jó megoldás:


s:=A[i];

A[i]:=A[j];

A[j]:=s;


"A" tömb i és j indexű elemének felcserélése.

Innentől oldd, meg, tudnod kell. ;)

2015. jan. 4. 00:47
Hasznos számodra ez a válasz?
 2/5 tabaki ***** válasza:

Hát, ez csuda informatívra sikeredett, de azért másképp is elmondom.

Két változó tartalmát úgy cserélheted fel, hogy egy harmadik segédváltozót is igénybe veszel. Ekkor a lépések:


1. segéd = egyik

2. egyik = másik

3. másik = segéd


Az egyik és másik változóba természetesen a szám számjegyeit tedd be. Hogy azokat szöveggé alakítva szerzed meg, vagy maradékos osztást alkalmazol, az már a te dolgod, én sem ismerem a Small Basicet.

2015. jan. 4. 01:42
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:
Oké. De egy szám számjegyeit amit nem én adok meg hanem azt bekérni kell ott hogy tudom a számjegyeket felcserélni mert nem szedem szét a számot hogy adja meg az első számjegyet 2 sorral lejjebb meg a másodikat. Lehet hogy én vagyok hülye de ezt egy picit nem értem.
2015. jan. 4. 10:41
 4/5 anonim ***** válasza:

A billentyűről szöveget kapsz, ami elvileg egy karaktertömb. Legalábbis a legtöbb nyelvben. Próbáld ki, hátha mégis működik a kollégák megoldása.


De ha meg egész számként tárolod, akkor a maradékképzés és egészosztás segítségével számjegyekre bonthatod. Kétjegyű számoknál nem is kell ciklusba tenned.

2015. jan. 4. 12:19
Hasznos számodra ez a válasz?
 5/5 tabaki ***** válasza:

@10:41;

Nem hülye vagy, csak lusta átgondolni, hogy miért ajánlgattam a maradékos osztást. Mégis, mi szükség volna rá, ha eleve külön kérnéd be a számjegyeket?

Tehát: Tételezzük föl, hogy nem akarod szöveggé alakítani a számot, hanem az értéke alapján végeznéd el a cserét. Mit jelent az, hogy kétjegyű a szám? Gondolom, tízes számrendszerről beszélünk, akkor az első számjegy egy tízzel beszorzott számot jelent, a második pedig egy eggyel beszorzottat, vagyis a számjegy leolvasható értékét. Ha tehát egy kétjegyű számot tízzel osztasz, az eredmény az első számjegy értéke lesz, a maradék pedig a másodiké. A fenti módon bemutatott cserélő eljárást nem is kell alkalmaznod, csak a második számjegyet beszoroznod tízzel, és az elsőt hozzáadnod.


Kábé így: Beolvastad a számot, utána

EGYIK = SZAM \ 10

MASIK = SZAM mod 10

SZAM = MASIK * 10 + EGYIK


De megúszhatod egyetlen változóval is, ha összevonod a műveleteket:

SZAM = (SZAM mod 10) * 10 + SZAM \ 10


A fenti sorban figyelembe vettem a szorzás/osztás prioritását az összeadáshoz képest, biztonsági zárójelezéssel talán tisztább:

SZAM = ((SZAM mod 10) * 10) + (SZAM \ 10)


Én ugyan FreeBASICben próbáltam ki, de szerintem Small Basicben is működnie kell.

2015. jan. 4. 18:57
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!