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)
@SimkoL:
Sajnos, még mindig nem tudom kipróbálni, de nekem a netes keresés alapján úgy tűnt, hogy ismeri az egészosztást (\) meg a modulót (mod) is. Úgy látszik, mégis egy olyan oldalra tévedtem, amelyik az eredeti Small Basicről szólt, pedig igyekeztem vigyázni... :(
@SimkoL: "Érdekes nyelv..."
Így igaz. Az IDE-je nekem is tetszik, viszont a nyelv a nehézkességnek és az ügyefogyottságnak kifejezetten taszító elegye. Ennél az ős-BASICek is barátságosabbak voltak, nem beszélve a számtalan ma is élő, nagyobb tudású, szintén ingyenes változatról. Cserébe .NET futtatókörnyezet kell neki, nem készít exe-fájlt (legalábbis közvetlenül nem, csak a VB-n keresztül), és természetesen csak Windowson fut. Komolyan nem értem az infótanárokat, hogy miért rokonszenveznek vele.
Mivel a múltkor már majmot csináltál belőlem egy rafináltan bent hagyott programhibával, most éltem a gyanúperrel, és igazítottam a kódon. Szerintem ebben a sorban:
While szam < 9 Or szam > 100
meg kell fordítani a feltételeket, érdemes valahová becsempészni a
Program.End()
utasítást, mert (legalábbis nálam) nem lehetett olyan értéket beírni, hogy ne induljon újra a bekérés, igaz, így a WHILE feltételeként akármilyen hülyeséget is írhatsz. Továbbá még össze is vontam a következő két sort:
szam = TextWindow.ReadNumber()
szam = Math.Floor(szam)
A programod most így néz ki (remélem, nem tévesztek, mert csak gépeléssel módosítom a windowsos gépemen lévő szöveg alapján):
TextWindow.Title = "Számfordító"
szam = 0
While (szam > 9) Or (szam < 100) 'Tökmindegy, de zárójeleztem a biztonság kedvéért
TextWindow.Write("Kérem a számot: ")
szam = Math.Floor(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()
Program.End()
EndIf
EndWhile
Igazítottam rajta, mert így a hibás számoknál kilép:
TextWindow.Title = "Számfordító"
szam = 0
While (szam > 9) Or (szam < 100) 'Tökmindegy, de zárójeleztem a biztonság kedvéért
TextWindow.Write("Kérem a számot: ")
szam = Math.Floor(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.Write("Kilépsz ? ((iI / nN) + Enter): ")
kilep = TextWindow.Read()
if kilep = "i" or kilep ="I" then
Program.End()
EndIf
EndIf
EndWhile
@SimkoL:
Ööö... én azt hittem, az a szándék. De igazad van, illik rendesen köríteni.
@06:32: „max nem nyer semmit”
Elfeledkezel arról a kárról, amely ennek a nyelvnek a tanulásával éri...
@tabaki
Igazad van. Én amúgy nem értem az ilyen versenyeken miért nem lehet normális programozási nyelveket használni.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!