Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 26.07.2007, 00:49 Titel: Ein kleiner simpler Taschenrechner |
|
|
Das ist ein kleiner nützlicher Taschenrechner, der dieckt in der Komanndozeile benutzt werden kann:
Code: | geht ja jetzt in de zweite Runde |
Beispiel wenn das Programm jetzt calc heissen würde:
Code: |
calc 5 + 5
Ausgabe:
10
|
Naja er hätte noch ein paar Funktionen mehr vertragen können
///
Edit
Bugs!! Ich weiss
Naja den Code patche ich noch xD _________________ Bis irgendwann... 
Zuletzt bearbeitet von AndT am 30.07.2007, 11:43, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 26.07.2007, 11:57 Titel: |
|
|
Naja, stimmt schon, kann man noch erweitern.
Was z.B. ganz nett wäre: keine Leerzeichen zwischen den Zahlen und Rechenoperations-Zeichen (was für'n geiles Wort). Vllt. auch Klammern mit Rekursion (Hallo ytwinky! ). _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 26.07.2007, 16:38 Titel: |
|
|
Hi,
..Rekursion ist schon geil, ich benutze sie, seit Turbo-Pascal, schon deshalb gerne, um zu zeigen, daß ich es kapiert habe
@Eingangspost:
Wenn du die umständliche If-Konstruktion durch eine übersichtliche Select Case-Geschichte ersetzt, hast du auch Geschwindigkeitsvorteile:
Bei der If-Anweisung muß jedesmal die Bedingung geprüft und entsprechend verzweigt werden..
..bei Select Case wird die Bedingung nur einmal geprüft und entsprechend verzweigt
..mal abgesehen davon, daß imho bei Select Case Ergänzungen leichter einzubauen sind
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 27.07.2007, 13:42 Titel: |
|
|
OK Ich versuche die If-Sätze zu minimieren (das ist halt gewohnheitssache ) _________________ Bis irgendwann...  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 29.07.2007, 01:16 Titel: |
|
|
bei mir geht's noch kürzer, ich muss noch net mal die kommandozeile öffnen
strg+alt+r öffnet bei mir nämlich calc.exe
schöner start, nur solltest du das noch erweitern, vielleicht noch ein paar nützliche funktionen und das, was meine vorredner schon gepostet haben. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 30.07.2007, 11:40 Titel: |
|
|
Der Rechner geht in die zweite Runde
Code: | Function Calc (Zahl1 as Double,Operation as String,Zahl2 as Double) as Double
Dim as String Operations(1 to 9)
Operations(1)="^"
Operations(2)="x"
Operations(3)="/"
Operations(4)="\"
Operations(5)="MOD"
Operations(6)="SHL"
Operations(7)="SHR"
Operations(8)="+"
Operations(9)="-"
select case Operation
case Operations(1)
calc=Zahl1 ^ Zahl2
case Operations(2)
calc=Zahl1 * Zahl2
case Operations(3)
calc=Zahl1 / Zahl2
case Operations(4)
calc=Zahl1 \ Zahl2
case Operations(5)
calc=ZAhl1 mod Zahl2
case Operations (6)
calc=Zahl1 shl Zahl2
case Operations (7)
calc=Zahl1 shr Zahl2
case Operations (8)
calc=Zahl1 shr Zahl2
case Operations (9)
calc=Zahl1 - Zahl2
end select
end function
dim as double Zahl1,Zahl2,OK
dim as string OperatorX,Z1
Zahl1=VAL(COMMAND(1))
Zahl2=VAL(COMMAND(3))
OperatorX=COMMAND(2)
Z1= str(calc (Zahl1,OperatorX,Zahl2))
OK=1
select case Z1
case "1.#INF"
Print "Durch null geteilt!"
OK=0
end select
IF MID(Z1,LEN(Z1)-4,1) = "e" Then Print "Fehler in der Berechnung!" : OK = 0
IF OK= 1 THEN Print calc (Zahl1,OperatorX,Zahl2) |
_________________ Bis irgendwann...  |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 15.08.2007, 00:02 Titel: |
|
|
probier dein programm mal mit "1 / 100"...
oder "54 + 1"...
oder "4 * 3"...
warum fängst du exponentialanzeigen als "Fehler" ab? Benutz "print using".
Lutz Ifer _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 15.08.2007, 00:29 Titel: |
|
|
Ring frei zur 3. Runde: Code: | Function Calc (Zahl1 As Double, Operator As String, Zahl2 As Double) As Double
Select Case Operator
Case "^"
Return Zahl1 ^ Zahl2
Case "x", "*"
Return Zahl1 * Zahl2
Case "/"
Return Zahl1 / Zahl2
Case "\"
Return Zahl1 \ Zahl2
Case "MOD"
Return Zahl1 Mod Zahl2
Case "SHL"
Return Zahl1 Shl Zahl2
Case "SHR"
Return Zahl1 Shr Zahl2
Case "+"
Return Zahl1 + Zahl2
Case "-"
Return Zahl1 - Zahl2
End Select
End Function | ..siehst du den Unterschied?
[Edit]
Du kannst natürlich auch Format[$] benutzen..
Befehlzreferenz rulez
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
|