/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Jeg vil lave en lommerenger?
Fra : Henrik


Dato : 17-03-07 22:54

Hej allesammen.
Jeg er lige begyndt at programere, og vil godt lave noget simpelt til start,
og det jeg gerne ville lave var en lommeregner sådan jeg kan lære noget om
proberties og div. koder.

henrik



 
 
Gert Krabsen (17-03-2007)
Kommentar
Fra : Gert Krabsen


Dato : 17-03-07 23:12

Henrik wrote:
> Hej allesammen.
> Jeg er lige begyndt at programmere, og vil godt lave noget simpelt til start,
> og det jeg gerne ville lave var en lommeregner sådan jeg kan lære noget om
> properties og div. koder.

Tak for oplysningen og held og lykke med projektet!


For du forventede vel ikke, at vi skulle levere koden?
Så regnede du nok galt. Men skulle du undervejs støde ind i et konkret
problem, der ikke kan afhjælpes ved brug af den magiske taste (<F1>), så
er vi naturligvis parate..


mvh
Krabsen


p.s. jeg har lige slukket min VB-maskine, men er der i øvrigt ikke en
lommeregner blandt de demo-programmer, der følger med Visual Basic?
Så vidt jeg husker har jeg en gang modificeret dette til at dække et
specifikt behov hos en bruger..


Nikolaj Svendsen (18-03-2007)
Kommentar
Fra : Nikolaj Svendsen


Dato : 18-03-07 08:17

Her er noget kode du kan kigge på

Private Sub cmdclear_Click()

txttalfelt.Text = ""
lblregneart.Caption = ""
lbltal1.Caption = ""

End Sub

Private Sub cmddivider_Click()

lbltal1.Caption = txttalfelt.Text
txttalfelt.Text = ""
lblregneart = "divider"

End Sub

Private Sub cmdgange_Click()

lbltal1.Caption = txttalfelt.Text
txttalfelt.Text = ""
lblregneart = "gange"

End Sub

Private Sub cmdminus_Click()

lbltal1.Caption = txttalfelt.Text
txttalfelt.Text = ""
lblregneart = "minus"

End Sub

Private Sub cmdplus_Click()

lbltal1.Caption = txttalfelt.Text
txttalfelt.Text = ""
lblregneart.Caption = "plus"

End Sub

Private Sub lbl0_Click()

txttalfelt.Text = txttalfelt.Text & "0"

End Sub

Private Sub lbl1_Click()

txttalfelt.Text = txttalfelt.Text & "1"

End Sub

Private Sub lbl2_Click()

txttalfelt.Text = txttalfelt.Text & "2"

End Sub

Private Sub lbl3_Click()

txttalfelt.Text = txttalfelt.Text & "3"

End Sub

Private Sub lbl4_Click()

txttalfelt.Text = txttalfelt.Text & "4"

End Sub

Private Sub lbl5_Click()

txttalfelt.Text = txttalfelt.Text & "5"

End Sub

Private Sub lbl6_Click()

txttalfelt.Text = txttalfelt.Text & "6"

End Sub

Private Sub lbl7_Click()

txttalfelt.Text = txttalfelt.Text & "7"

End Sub

Private Sub lbl8_Click()

txttalfelt.Text = txttalfelt.Text & "8"

End Sub

Private Sub lbl9_Click()

txttalfelt.Text = txttalfelt.Text & "9"

End Sub

Private Sub lblberegn_Click()

If lblregneart.Caption = "plus" Then
txttalfelt.Text = Val(txttalfelt.Text) + Val(lbltal1.Caption)
End If
If lblregneart.Caption = "minus" Then
txttalfelt.Text = Val(lbltal1.Caption) - Val(txttalfelt.Text)
End If
If lblregneart.Caption = "gange" Then
txttalfelt.Text = Val(txttalfelt.Text) * Val(lbltal1.Caption)
End If
If lblregneart.Caption = "divider" Then
txttalfelt.Text = Val(lbltal1.Caption) / Val(txttalfelt.Text)
End If

End Sub

Private Sub lblkomma_Click()

txttalfelt.Text = txttalfelt.Text & ","

End Sub


"Henrik" <DU_SKAL_SVARE_VIA@NYHEDSGRUPPEN.DK> skrev i en meddelelse
news:45fc6370$0$15884$edfadb0f@dtext01.news.tele.dk...
> Hej allesammen.
> Jeg er lige begyndt at programere, og vil godt lave noget simpelt til
> start, og det jeg gerne ville lave var en lommeregner sådan jeg kan lære
> noget om proberties og div. koder.
>
> henrik
>



Henrik (18-03-2007)
Kommentar
Fra : Henrik


Dato : 18-03-07 10:11

Mange tak. det var lige den kode jeg manglede.

Henrik



Per Rønne (18-03-2007)
Kommentar
Fra : Per Rønne


Dato : 18-03-07 12:42

Henrik <DU_SKAL_SVARE_VIA@NYHEDSGRUPPEN.DK> wrote:

> Mange tak. det var lige den kode jeg manglede.

Næppe. Den regner jo forkert.

Husk på at 2 + 2*2 = 6 ≠ 8.

Tænk på en stakmaskine.

Jeg kan gengive en opgave, jeg sidste skoleår stillede mit
programmeringshold på et teknisk gymnasium:

=
Stor Opgave 1.

Med udgangspunkt i bogens kapitel 7, udvikles i Visual Basic en
lommeregner, som opfylder følgende betingelser:

1. Lommeregneren skal regne rigtigt. Det vil sige at den skal regne med
fuld operatorhierarki, så 2 + 2*2 = 6 ≠ 8.
Til brug ved ved programmeringen bruges klassen Stack. Bruges Visual
Basic 6 kan klassen ses beskrevet på:

http://www.hello-world.com/vbn/index.php

Vælg "Visual Basic 6" og derefter "Week 11 Creating a Stack Class".
Siderne er bilagt opgaven.
I Visual Basic Express 2005 er klassen direkte implementeret.
2. Lommeregneren skal indeholde en knap, der beregner fakultet: n! =
n(n-1)(n-2)...2*1.
3. Lommeregneren skal kunne beregne de trigonometriske funktioner,
sinus, cosinus og tangens. Samt de tilsvarende inverse funktioner.
Sinus, cosinus, tangens og arc tangens er direkte implementeret i
sproget. De øvrige inverse funktioner kan findes som beskrevet i:

http://en.wikipedia.org/wiki/Sine#Inverse_functions
=

Den anvendte bog var Jakob Kristiansens bog 'Start på Visual Basic 6.0'
fra IDG. VB 2005 har stakker indbygget, men i URLen kan du finde en
beskrivelse af hvordan de anvendes i forbindelse med en lommeregner.
Rettelse: 'kunne'. Men se på hvad en stak er på:

<http://www.pgacon.com/visualbasic.htm>

Og mere generelt på:

<http://www.google.dk/search?q=stacks+in+Visual+Basic&ie=utf-8&oe=utf-8&
aq=t&rls=org.mozilla:da:official&client=firefox-a>
--
Per Erik Rønne
http://www.RQNNE.dk

Nikolaj Svendsen (18-03-2007)
Kommentar
Fra : Nikolaj Svendsen


Dato : 18-03-07 13:57

Hved ikke om der er fejl i den meget længe siden jeg lavte den men så er der
jo os lidt udfordring ;)
""Per Rønne"" <per@RQNNE.invalid> skrev i en meddelelse
news:1hv674c.2jadpb7jrxkwN%per@RQNNE.invalid...
> Henrik <DU_SKAL_SVARE_VIA@NYHEDSGRUPPEN.DK> wrote:
>
>> Mange tak. det var lige den kode jeg manglede.
>
> Næppe. Den regner jo forkert.
>
> Husk på at 2 + 2*2 = 6 ? 8.
>
> Tænk på en stakmaskine.
>
> Jeg kan gengive en opgave, jeg sidste skoleår stillede mit
> programmeringshold på et teknisk gymnasium:
>
> =
> Stor Opgave 1.
>
> Med udgangspunkt i bogens kapitel 7, udvikles i Visual Basic en
> lommeregner, som opfylder følgende betingelser:
>
> 1. Lommeregneren skal regne rigtigt. Det vil sige at den skal regne med
> fuld operatorhierarki, så 2 + 2*2 = 6 ? 8.
> Til brug ved ved programmeringen bruges klassen Stack. Bruges Visual
> Basic 6 kan klassen ses beskrevet på:
>
> http://www.hello-world.com/vbn/index.php
>
> Vælg "Visual Basic 6" og derefter "Week 11 Creating a Stack Class".
> Siderne er bilagt opgaven.
> I Visual Basic Express 2005 er klassen direkte implementeret.
> 2. Lommeregneren skal indeholde en knap, der beregner fakultet: n! =
> n(n-1)(n-2)...2*1.
> 3. Lommeregneren skal kunne beregne de trigonometriske funktioner,
> sinus, cosinus og tangens. Samt de tilsvarende inverse funktioner.
> Sinus, cosinus, tangens og arc tangens er direkte implementeret i
> sproget. De øvrige inverse funktioner kan findes som beskrevet i:
>
> http://en.wikipedia.org/wiki/Sine#Inverse_functions
> =
>
> Den anvendte bog var Jakob Kristiansens bog 'Start på Visual Basic 6.0'
> fra IDG. VB 2005 har stakker indbygget, men i URLen kan du finde en
> beskrivelse af hvordan de anvendes i forbindelse med en lommeregner.
> Rettelse: 'kunne'. Men se på hvad en stak er på:
>
> <http://www.pgacon.com/visualbasic.htm>
>
> Og mere generelt på:
>
> <http://www.google.dk/search?q=stacks+in+Visual+Basic&ie=utf-8&oe=utf-8&
> aq=t&rls=org.mozilla:da:official&client=firefox-a>
> --
> Per Erik Rønne
> http://www.RQNNE.dk



Henrik (18-03-2007)
Kommentar
Fra : Henrik


Dato : 18-03-07 14:21

Ja, men den kode du skrev indeholdte lige det sidste stykke af min egen
kode.

tjek lommeregner.hense.dk

så kan i se at det lykkedes..



Per Rønne (18-03-2007)
Kommentar
Fra : Per Rønne


Dato : 18-03-07 14:24

Nikolaj Svendsen <nikolaj@logtech.dk> wrote:

> Hved ikke om der er fejl i den meget længe siden jeg lavte den men så er der
> jo os lidt udfordring ;)

Det hele kan koges sammen i ordet 'operatorhierarki'.

Traditionelt har man i matematikken anvendt et bestemt hierarki for
operatorer som gange og plus. Det gør at multiplikation og division
udregnes før man lægger tal sammen, altså:

2 + 2*2 = 2 + (2*2) = 2 + 4 = 6.

For at det skal fungere skal man bruge en datastruktur til at lagre
mellemregninger, som der jo kan være mange af. Hertil bruger man en
stak.

En billig lommeregner, og den du havde programmeret, regner forkert:

2 + 2*2 = (2 + 2)*2 = 4*4 = 8 ;-(.
--
Per Erik Rønne
http://www.RQNNE.dk

Nikolaj Svendsen (18-03-2007)
Kommentar
Fra : Nikolaj Svendsen


Dato : 18-03-07 16:50

Jaja men det var det første program jeg lavet havde ikke en skid forstand på
det dengang og gad ikke til og tjekke koden

""Per Rønne"" <per@RQNNE.invalid> skrev i en meddelelse
news:1hv6cpj.juxvnq1t7jcwN%per@RQNNE.invalid...
> Nikolaj Svendsen <nikolaj@logtech.dk> wrote:
>
>> Hved ikke om der er fejl i den meget længe siden jeg lavte den men så er
>> der
>> jo os lidt udfordring ;)
>
> Det hele kan koges sammen i ordet 'operatorhierarki'.
>
> Traditionelt har man i matematikken anvendt et bestemt hierarki for
> operatorer som gange og plus. Det gør at multiplikation og division
> udregnes før man lægger tal sammen, altså:
>
> 2 + 2*2 = 2 + (2*2) = 2 + 4 = 6.
>
> For at det skal fungere skal man bruge en datastruktur til at lagre
> mellemregninger, som der jo kan være mange af. Hertil bruger man en
> stak.
>
> En billig lommeregner, og den du havde programmeret, regner forkert:
>
> 2 + 2*2 = (2 + 2)*2 = 4*4 = 8 ;-(.
> --
> Per Erik Rønne
> http://www.RQNNE.dk



Per Rønne (18-03-2007)
Kommentar
Fra : Per Rønne


Dato : 18-03-07 17:14

Nikolaj Svendsen <nikolaj@logtech.dk> wrote:

> Jaja men det var det første program jeg lavet havde ikke en skid forstand på
> det dengang og gad ikke til og tjekke koden

Der var jo så ikke tale om en kodefejl, men om en fejl i forståelsen af
hvad en lommeregner skal kunne.

Men lad os nu stoppe her.
--
Per Erik Rønne
http://www.RQNNE.dk

Søg
Reklame
Statistik
Spørgsmål : 177422
Tips : 31962
Nyheder : 719565
Indlæg : 6407882
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste