Kezdőoldal » Számítástechnika » Programozás » Valaki leírná Microsoft Small...

Valaki leírná Microsoft Small Basic-ben a megoldástés elküldeni kommentbe nekem? Nagyon kéne, ezt nem tudom megcsinálni! (feladat a leírásban)

Figyelt kérdés
Írj programot, amely beolvas egy kétjegyű számot, és kiírja a 2 jegy felcseréléséből képzett szám kétszeresét. Pl.: 25 esetén 104-t ír ki, mert 52*2=104. (dupláz)
2015. jan. 17. 15:25
1 2
 1/18 anonim ***** válasza:
Hol tartasz eddig?
2015. jan. 17. 15:40
Hasznos számodra ez a válasz?
 2/18 SimkoL ***** válasza:
a\b és a mod b
2015. jan. 17. 15:46
Hasznos számodra ez a válasz?
 3/18 SimkoL ***** válasza:

Nem ismerem a nyelvet, de beolvasol egy számot ha kisebb mint 10 vagy nagyobb mint 99 hibát dobsz. Az első számjegy elso = szam div 10 ha jól olvastam utána elso = szam \ 10 a második: masodik = szam MOD 10 vagy szam % 10

eredmeny = 2 * ((masodik *10) + elso)) kb. ennyi.

2015. jan. 17. 16:24
Hasznos számodra ez a válasz?
 4/18 tabaki ***** válasza:

Jaj, de borzasztó!

Itt egy hasonló kérdés, a megoldás egyébként ugyanaz, amit SimkoL írt:

http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..

Hát hogy írsz te programot? Őrült terjengősen, fölösleges ismétlődésekkel, ellenjavallott GOTOkkal megírsz egy halál nehézkes bevitelt, ahelyett, hogy tényleg egy kétjegyű számot kérnél be, és ellenőriznéd, hogy tényleg szám és 10 és 99 közt van-e, ráadásul a legvégén jutsz el ahhoz, hogy mit kéne csinálnia a programnak egyáltalán? Hogy vagy képes ennyire kitekert módszerre kényszeríteni magad?

2015. jan. 17. 16:40
Hasznos számodra ez a válasz?
 5/18 A kérdező kommentje:

Tudom, hogy bonyulult, meg nehézkes is.. ezt egy oldalon találtam és átírtam, de rájöttem, hogy rossz.. Amúgy ez egy példafeladat, most vesszük ezt a szakközépben és hétfőre kellene, de nem tudtam megoldani!


Nagyon szépen köszönöm azoknak akik segítettek! (ezt a kérd be a nevet dolgot is úgy találtam, de az is felesleges ><)

2015. jan. 17. 17:22
 6/18 tabaki ***** válasza:

Peched van, mert holnap estig nem kerülök windowsos gép közelébe, hogy Small Basicben megírjam, pláne nem grafikus felületen. Itt van FreeBASICben, egyszerű szöveges képernyőn, ezt sem lesz nehezebb lesz átírnod, mint azt a zagyvaságot, amelyik hová tűnt?


dim szam as byte

print "kérek egy kétjegyű számot: "

input szam

if szam > 9 and (szam<100) then

szam = ((szam mod 10) * 10 + szam \ 10) * 2

print szam

else

print "érvénytelen szám!"

end if


Itt egyébként visszaélek azzal, hogy a basic minden hülyeséget fapofával lenyel, anélkül, hogy hibára futna. Például beírod, hogy „galóca”, a fordító meg nem csinál kázust belőle -- nincsen szám, egyszerűen 0 lesz az érték.


A szigorúbb nyelvekre is gondolva tisztességesebb megoldás, ha először szövegesen kéred be, és te alakítod át számmá:


dim szoveg as string

dim szam as byte


print "kérek egy kétjegyű számot: "

input szoveg

szam = val(szoveg)

if szam > 9 and (szam<100) then

szam = ((szam mod 10) * 10 + szam \ 10) * 2

print szam

else

print "érvénytelen szám!"

end if

2015. jan. 18. 00:18
Hasznos számodra ez a válasz?
 7/18 SimkoL ***** válasza:

Csak nehogy megbukj:


TextWindow.Title = "Számfordító"

start:

TextWindow.Write("Kérem a számot: ")

szam = TextWindow.ReadNumber()

if (szam > 9) and (szam<100) then

eredmeny = 2 * (Math.Remainder(szam,10) * 10 + (Math.Floor(szam /10)))

TextWindow.WriteLine("Az eredmény: " + eredmeny)

Else

TextWindow.WriteLine("A szám csak két számjegyű lehet")

TextWindow.Pause()

Goto start

EndIf


Érdekes nyelv, nem ismeri a mod vagy % ez a Math.Remainder() a div helyett is Math.Floor(), a Goto miatt ne szóljatok meg, most láttam a nyelvet először, és a mod keresésére ráment egy rakás időm :)

2015. jan. 18. 01:47
Hasznos számodra ez a válasz?
 8/18 SimkoL ***** válasza:
... viszont a szám bekérésre jó a ReadNumber() mivel csak számot fogad el.
2015. jan. 18. 01:50
Hasznos számodra ez a válasz?
 9/18 SimkoL ***** válasza:

Javítottam rajta, mert az előző 'megette' a tizedeseket is:

TextWindow.Title = "Számfordító"

start:

TextWindow.Write("Kérem a számot: ")

szam = TextWindow.ReadNumber()

szam = Math.Floor(szam)

if (szam > 9) and (szam<100) then

eredmeny = 2 * (Math.Remainder(szam,10) * 10 + (Math.Floor(szam /10)))

TextWindow.WriteLine("Az eredmény: " + eredmeny)

Else

TextWindow.WriteLine("A szám csak két számjegyű lehet")

TextWindow.Pause()

Goto start

EndIf

2015. jan. 18. 02:00
Hasznos számodra ez a válasz?
 10/18 SimkoL ***** válasza:

Bosszantott a Goto, már szégyenből sem hagyom benne:


TextWindow.Title = "Számfordító"

szam = 0

While szam < 9 Or szam > 100

TextWindow.Write("Kérem a számot: ")

szam = TextWindow.ReadNumber()

szam = Math.Floor(szam)

if (szam > 9) and (szam < 100) then

eredmeny = 2 * (Math.Remainder(szam, 10) * 10 + (Math.Floor(szam / 10)))

TextWindow.WriteLine("Az eredmény: " + eredmeny)

Else

TextWindow.WriteLine("A szám csak két számjegyű lehet")

TextWindow.Pause()

EndIf

EndWhile

2015. jan. 18. 02:18
Hasznos számodra ez a válasz?
1 2

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!