GRATIS REGNE-MODUL TIL ALLE

Tags:    visual-basic

Jeg er lidt træt af at det skal være så svært at regne i vb... Eller det er ikke svært det er bare irriterende hvis man fx udvikler et eller andet program og man får brug for at regne en enkelt værdi ud... (Har selv prøvet det da jeg skulle lave et program der kunne tegne en graf. Der skulle den også beregne funktionen ud for hvert punkt på x-akslen...)

Nu er det så at jeg er ved at udvikle et regne-modul så man ikke behøver at skrive lange koder, men bare kan skrive: Calc("2+2")... dette vil give 4...

Dette arbejde ville jeg så dele med alle jer udviklere som ønsker at kunne regne på en let måde :D

Hvis du er intresseret så læs videre

Indtil videre er følgende til lavet:
- Kan let regne med negative tal
- Kan regne med op til 30 tal (også decimaltal)
- Mulighed for at indstille et max antal deciamaltal som i tilfælde af at resultatet er længere, vil afrunde det.
- 100% matematisk
- Kan bruge: Multiplikation *, Divition /, Addition +, Substration - og parentesser ( )
- Mulighed for at få vist udregningen af resultatet i en ListBox eller ComboBox
- Der er INGEN bugs og den udregner resultatet på få millisekunder!

Alt dette kan den gøre uden du så meget som behøver at skulle kigge på modulet!
Alt hvad du skal gøre er at indsætte modulet i dit projekt og fx lave en lommeregner sådan:
Fold kodeboks ind/udKode 

Og bum så har du en fuldt fungerende lommeregner!!!

Sådan ser fuctionen ud:
Fold kodeboks ind/udKode 


Optional betyder at du ikke behøver at skrive værdien...

---

Da dette modul ikke kun skal bruges af mig selv skal jeg jo ikke kun tilføje de ting jeg har brug for...Derfor vil jeg gerne have jer alle samme til at skrive hvad i synes der skulle være muligt med mit modul... Og i behøver foresten ikke at skrive hvordan det skal gøres :D

Hvis nogen af jer fx gerne vil kunne benytte pi så skriv at det skal være med alle decimaler: 141592... med 30 decimaler og at man skal kunne bruge det ved bare at skrive fx. Calc("2*PI")...

Så du skal altså skrive hvad det er og hvordan det skal kunne benyttes...

[Redigeret d. 18/06-03 13:32:31 af HAP]



Er grunden til at ingen har svaret fordi der ikke er nogen der er interesserede i at jeg lave et regne-modul?

Alt jeg spurgte om var jo bare hvad i synes ville passe jer bedst....
fx; om jeg skal skrive fx sinus som:
sinus()
Sinus()
SINUS()
sin()
Sin()
SIN()

Det er slet ikke så svært...



Det var egentlig meningen at vi skulle være fælles om at vælge hvordan ting skal gøre...

Så nu valgte jeg at potens skal skrives: 7^2

Ulempen ved det er at man ikke kan nøjes med at skrive et ^... Når jeg trykker det på min computer sker der intet! Når man så trykke det igen skriver den: ^^



Og nu har jeg besluttet at pi skal skrives sådan: pi

PS. Husk at jeg på 2 sek kan ændre det til fx PI... Så hvis der er nogen der synes det skal skrive på en anden måde skal de bare sige til!



nu er der også:

tan()
cos()
sin()
log()
sqrt()

tan = tangens
cos = cosinus
sin = sinus
log = logaritme funktion
sqrt = Kvadratrod


Jeg ved ikke rigtig hvordan jeg skal få mod ind i det, men det bliver vel noget med:
Calc("2*7mod2") = 2...

HAR JEG GLEMT NOGET ELLER ER DER NOGET DER SKAL ÆNDRES???



nåhh ja... Der er jo også
omvendt sin
omvendt cos
omvendt tan

Jeg er ikke sikker men jeg mener de skal skrives på en af disse tre måder

normal sin: sin()
ovendt sin: sin-1()

eller

normal sin: sin()
ovendt sin: arcsin()

eller

normal sin: sin()
ovendt sin: arc-sin()

Jeg ved foresten ikke hvad arc står for, men jeg så det et eller andet sted: Arc Sin

[Redigeret d. 19/06-03 20:47:58 af HAP]



Er der nogen der kan fortælle mig hvad dælen disse ting er: ARC-TAN2, LOG10



... en hel masse beskeder ...


Hvorfor virker modulus ikke i den version du sendte mig?
Og hvordan regner den ud mht. mod - regner den alt ud på højre/venstre side først og tager derefter modulus eller først modulus af de to tal på højre/venstre side og regner herefter videre?
Måske ville det være smartere at lave modulus-funktionen som: mod(a,b)

Jeg synes du skal bruge 'sin', 'cos', 'tan', 'sqrt', 'sqr' (for VB-kompatibilitet), '^' (= potens. Her trykker man først på '^'-knappen (Shift + den knap ved siden af Enter) og direkte efterfølgende på mellemrum), 'asin', 'acos', 'atan' (omvendt sin, cos, tan), 'ln' (naturlig logaritme = base e-logaritme), 'log' (10-tals-logaritme = base 10-logaritme), 'logX' (her er X et tal = base x-logaritme), 'exp' (eksponentialfunktion med base e), 'expX' (eksponentialfunktion med base X), 'rec' (reciprok-værdi: rec(a) = 1 / a)

Forskellige regneregler med logaritme og eksponentialfunktion:
expX(a) = X^a
exp(a) = E^a (E = 2,718281828...)
ln(a) = log(a) / log(E)
log(a) = ln(a) / ln(10)
logx(a) = ln(a) / ln(x)

Måske kunne du også lave noget med variabler, så man kunne skrive:
A:=27
Næste kald:
sin(A)

Endnu mere smart: Man kan definere funktioner, f.eks.:
F(X):=sin(X)+X^2
Næste kald:
F(27)

Der skal måske være nogle kald til at rense variabel-/funktions-tavlen.

Måske kunne du også lave bolsk algebra, dvs. funktioner der returnerer 1 for sandt, 0 for falsk:
a=b, a<b, a>b, a<>b (synonym: a><b), a>=b, a<=b, etc.

Måske også nogle binære operatorer, som f.eks.:
a and b, a or b, a xor b, not a

Hvad med en måde at angive output på, så man f.eks. kan få outputtet som:
2,48392E+283 el. -281,4821E-2

Der er nok at tage fat på. Jeg skriver måske lige lidt mere senere i dag.

/ Bjarke

--------------------------------------------------
[THIS IS A SIGNATURE VIRUS! PLEASE COPY IT INTO YOUR OWN SIGNATURE(S)]
--------------------------------------------------
*** Matematisk Student anno 2003!! *** (Juhuu...)



Glemte lige at sige:

Når det bliver rigtig smart skal man også kunne regne med komplekse tal, vektorer, matricer, lister (en række tal, hvor alle beregningerne udføres på alle tal). Selvfølgelig kræver det en masse kendskab til noget matematik.

Hvad med funktioner som f.eks. 'rnd' (tilfældigt tal mellem 0 og 1), 'rndint(a,b)' (tilfældigt heltal mellem a og b).

I øvrigt burde du lave nogle standarder for om funktioner skal være med småt eller stort. En god idé kunne måske være at lave alle interne funktioner og konstanter med små bogstaver - så er der plads til senere hen at implementere at man kan oprette sine egne variabler, funktioner m.m. som kører med store bogstaver. Det behøves i øvrigt ikke at være mere kompliceret end at man får ét bogstav til én funktion eller én variabel - det giver alligevel 26 funktioner/variabler.

/ Bjarke

--------------------------------------------------
[THIS IS A SIGNATURE VIRUS! PLEASE COPY IT INTO YOUR OWN SIGNATURE(S)]
--------------------------------------------------
*** Matematisk Student anno 2003!! *** (Juhuu...)



Der er meget af det du skriver som jeg nok skal tilføje (det kan godt være jeg har nogle spørgsmål til noget af det.)...

Men det med at man skal kunne oprette variabler og ting som det hører ikke et modul hjemme! Det er ting som man kan indbygge i sit program som så benyttede modulet!!!
Desuden kan man ikke rigtig kalde det et modul da det i andre ser højst sandsynligt vil være i form af en dll fil...

Det kan godt være jeg senere laver et program der kan det hele!
Der skal være flere linier at skrive på osv...
MEN DET ER IKKE DET JEG LAVER NU :D



Men det med at man skal kunne oprette variabler og ting som det hører ikke et modul hjemme! Det er ting som man kan indbygge i sit program som så benyttede modulet!!!
Desuden kan man ikke rigtig kalde det et modul da det i andre ser højst sandsynligt vil være i form af en dll fil...


En .dll kan vel godt kaldes et modul. Donno.

I hvert synes jeg nu at det med funktioner KAN være en nyttig ting. Hvis du ikke understøtter det kan det simpelthen blive for komplekst at udregne nogle ting. Hvis man nu f.eks. skal bruge en masse funktioner til det man er i gang med (måske noget med statistik e.l.?) kan man definere alle de funktioner der hører til området og så benytte sig af dem. Det vil klart forbedre brugervenligheden for programmørerne - og det er da bestemt en ting man skal tænke på!! Synes du ikke?

/ Bjarke

--------------------------------------------------
[THIS IS A SIGNATURE VIRUS! PLEASE COPY IT INTO YOUR OWN SIGNATURE(S)]
--------------------------------------------------
*** Matematisk Student anno 2003!! *** (Juhuu...)



t