Isäni kertoi, että pyrkiessään arkkitehdiksi hänen piti tehdä C++:lla tehdä ohjelma, joka muuttaa numerot roomalaisiksi numeroiksi ja vice versa. Olen vielä varsin aloittelija ohjelmointikielien käytössä (Tein ensimmäiset ohjelmani pelinteko-ohjelmilla), ja olen miettinyt josko tällainen härdelli olisi mahdollista toteuttaa QB:lla järkevästi.
Tiedän, että se on mahdollista, todennäköisesti jopa helppoa, mutta tällä hetkell ainut ratkaisu jonka näkisin olisi tyyppiä:
DIM numero AS INTEGER INPUT "laita numero: "; numero IF numero = 1 then rooma$ = "I" IF numero = 2 then rooma$ = "II"
... ja niin edespäin. Kuten huomaatte,
en ole kovinkaan hyvä QB:in käytössä, mutta minua kiinnostaisi, josko joku osaisi tuon ratkaista (esimerkiksi jollain komennolla, joka osaa laittaa I + V = IV.).
kiitos.
Numeron muuttaminen roomalaiseksi numeroksi on hyvä ohjelmointiharjoitus.
Tässä on yksi QB-toteutus asiasta:
INPUT "Kirjoita numero: ", n% WHILE n% > 0 ' luetaan DATA-riviltä seuraava luku muuttujaan l% ' ja seuraava merkkijono muuttujaan m$ READ l%, m$ ' vähennetään luettua lukua niin kauan kuin pystyy WHILE n% >= l% r$ = r$ + m$ n% = n% - l% WEND WEND PRINT "Roomalaisittain "; r$ DATA 1000, M, 900, CM, 500, D, 400, CD, 100, C, 90, XC DATA 50, L, 40, XL, 10, X, 9, IX, 5, V, 4, IV, 1, I
Ohjelman toiminta perustuu siihen, että numero voidaan muuttaa roomalaiseksi vähentämällä siitä järjestyksessä ohjelman lopussa mainittuja lukuja. Tiettyä lukua vähennetään aina mahdollisimman monta kertaa. Esim. jos luku on 142, vähennetään ensin 100 (C), sitten 40 (XL) ja lopuksi 1 (I) ja 1(I), jolloin tulos on CXLII.
Hempuli kirjoitti:
en ole kovinkaan hyvä QB:in käytössä, mutta minua kiinnostaisi, josko joku osaisi tuon ratkaista (esimerkiksi jollain komennolla, joka osaa laittaa I + V = IV.).
Näin asiaan mitenkään liittymättä, I + V ei suinkaan ole IV vaan VI.
jepjep, tiedän, mutta sanoin sen esimerkkinä kirjainten yhteenliittämisestä, eli luvussa 13 ottaisi 10 = X ja 3 = III, ja yhdistäisi ne X + III = XIII. Sitä meinasin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.