Laskimen teko takkuaa, apua tarvitaan

Harjoittelen Visual Basicilla koodaamista (versiolla 3.0) ja teen parhaillaan laskinta. Muuten kaikki koodit, ulkoasu jne. on valmiina, mutta yksi koodinpätkä uupuu: eli laskimessa on kaksi tekstiboxia (toiseen näppäillään laskettava lauseke esim. 1 1-3 ja toiseen tulee tulos), mutten keksi miten saisin ohjelman suorittamaan text1:sen lauseketta. Eli kun on näppäillyt laskutoimituksen lukee text1 boxissa 1 1. Ilmeisesti = -painikkeeseen tarvittaisiin jonkinlainen suorituskäsky, esim. text2 = run"text1" tai jotain.

Osaisiko kukaan siis kertoa millä komennolla/koodinpätkällä = -painike toimisi? KIITOS!
2458
Äänestä

Muut lukivat myös

Vastaukset 2

Vanhimmat

Hieman helpommalla olisit päässyt, jos olisit tehnyt tuon toisella tapaa eli lukemalla näppäimien painallukset. Tekstivaihtoehdosta löysin seuraavan esimerkin:
http://www.programmersheaven.com/download/43994/download.aspx

Esimerkissä oleva evaluate -funktio (func.frm:ssa) tekee sen laskennan.

Äänestä
  • Itse olen tehnyt tuollaisia ohjelmiini jotenkin siten, että ensin etsin ensimmäisen operaattorin ja sitten seuraavan summan.

    Koodina jotenkin näin (kotikoneessani ei ole vb:tä, joten en voinut testata asiaa):

    dim i as integer, OperaattorinPaikka as integer,Operaattori as string,EdOperaattori$
    dim Tulos as double, Luku as double
    dim KokoLaskukaava as String'sisältää siis esim 33 4*5

    Tulos=0
    EdOperaattori$=" "'eka luku aina ynnätään

    while kokolaskukaava""
    OperaattorinPaikka=0
    for i=1 to len(KokoLaskukaava)
    operaattori$=mid$(KokoLaskukaava,i,1)
    if instr(1," -*/",Operaattori$) then OperaattorinPaikka=i:exit for
    next
    if OperaattorinPaikka=0 then OperaattorinPaikka=Len(KokoLaskukaava) 1
    Luku=val(mid$(KokoLaskukaava$,Operaattorinpaikka-1))
    KokoLaskukaava$=mid$(KokoLaskukaava,Operaattorinpaikka 1)

    select case EdOperaattori$
    case " ":Tulos=Tulos Luku
    case "-":Tulos=Tulos-Luku
    case "*":Tulos=Tulos*Luku
    case "/":Tulos=Tulos/Luku
    end select

    EdOperaattori$=Operaattori$'seuraavaksi on tämän -*/ vuoro

    wend

    Äänestä

Kommentoi aloitusta


pikku_nÖrtti kirjoitti:

Harjoittelen Visual Basicilla koodaamista (versiolla 3.0) ja teen parhaillaan laskinta. Muuten kaikki koodit, ulkoasu jne. on valmiina, mutta yksi koodinpätkä uupuu: eli laskimessa on kaksi tekstiboxia (toiseen näppäillään laskettava lauseke esim. 1 1-3 ja toiseen tulee tulos), mutten keksi miten saisin ohjelman suorittamaan text1:sen lauseketta. Eli kun on näppäillyt laskutoimituksen lukee text1 boxissa 1 1. Ilmeisesti = -painikkeeseen tarvittaisiin jonkinlainen suorituskäsky, esim. text2 = run"text1" tai jotain.

Osaisiko kukaan siis kertoa millä komennolla/koodinpätkällä = -painike toimisi? KIITOS!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu