Meiner 1. Taschenrechner (FreePascal)

Sectas'

Neuling
Thread Starter
Mitglied seit
30.03.2005
Beiträge
692
Ort
HH - City!
Hallo Leute!

Habe vor 2 Tagen einen Taschenrechner fertig gestellt und wollte ihn eigentlich mal vorstellen.

Habt ihr noch Verbeserungsvorschläge?

Ich mache demnächst noch das Ausgabefeld an eine andere Stelle und aktiviere Dezimalzahlen (2 Stellen)

Keine Bange ist kein Virus oder dergleichen, hab garkeine Ahnung von Mutation Strings und son kram :fresse:

Weiss einer vielleicht wie ich z.B. Wurzel ziehe oder Cosinus bzw. Sinus errechne?

Viel Spaß beim Ausprobieren!

Link : http://mitglied.lycos.de/chemiCal87/Programme/

Rechtsklick, speichern unter!!!!

PS. Quattro steht übrigens dafür, dass er alle 4 Grundrechenarten beherrscht. Für neue wäre ich sehr dankbar!
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wie geht das?

Ich hatte bis jetzt erst 2 Tage AWSE (Anwendungen Erstellen) in der Schule, gotoxy und writeln; und son Kram sind die neuesten Sachen die ich so kenne

Kannst du mir das erklären?
 
Du hast als Datentyp für die Variablen wahrscheinlich Integer, Word oder sowas.
Das ersetzt du durch String. Danach kannste mit val(eingabeString,convZahl, errorCode) prüfen, ob im eigebebeden String nur Zahlwerte enthalten sind, wenn ja, konvertiert er den String "eingabeString" in einen Zahlwert "convZahl", anderfalls hat die Variable "errorCode" den Wert "1".
So könntest du das beispielsweise regeln.

repeat
write('Geben Sie die 1. Zahl ein: ');
readln(eingabeString);
val(eingabeString,convZahl,errorCode);
until(errorCode <> 1);


Das werdet ihr aber wahrscheinlich alles noch lernen.
 
Zuletzt bearbeitet:
Wurzeln
Code:
Exp(1/[COLOR="Red"]WURZEL[/COLOR] * Ln([COLOR="Red"]ZAHL[/COLOR])
potenzen
Code:
power([COLOR="Red"]BASIS[/COLOR], [COLOR="Red"]EXPONENT[/COLOR])
sinus
Code:
sin([COLOR="Red"]WINKEL[/COLOR]*2Pi/360)
cosinus
Code:
floattostrf(RadToDeg(cos(DegToRad([COLOR="Red"]WINKEL[/COLOR]))), fffixed, 10, 2)

wenn du units einbinden kannst brauchst du evtl. bei den letzten 2 noch die unit "math"

die sachen in rot musst du durch deine werte ersetzen ;)

wenn du eine prozedur namens key-press hast, kannst du für die prüfung auf buchstaben folgendes nehmen
Code:
case key of
    ',':     key := '.';
    'o','O': key := '0';
  end;
  if not (key in ['0'..'9','.','-',#8]) then key := #0;

@ jean

ist das soviel anders bei freepascal

meins ist jetzt aus delphi-beispielen, sollte doch das selbe sein
 
Zuletzt bearbeitet:
die oberen 3 beispiele kannst du auch mit floattostrf aus dem kosinus-beispiel umrechnen, dann bekommst du auch schöne werte auf 2 stellen gerundet :)
 
Ich kenne FreePascal net. Nut Turbo Pascal und Delphi :P
Ich weiss aber nicht ob es die Delphi FUnktionen unter FreePascal funktionieren.

Die Case-Buchstaben-Überprüfung hat einen Haken.
Das funktioniert nur, wenn man ein Zeichen eingibt, aber nicht wenn man z.B. "ab" eigeben würde.
 
Zuletzt bearbeitet:
freepascal steht wahrscheinlich einfach nur dafür, dass es ein kostenloser pascal kompiler ist ;)

und das case geht auf jeden fall, weil du normalerweise 2 buchstaben nur nacheinander drückst, und er dann einzeln prüft, und selbst wenn du 2 auf einmal drückst, gehen sie trotzdem als getrennte befehle ans programm :)
 
Das mit FreePascal mag sein.

Das andere nicht.
Du liest erst die Variable ein und kontrollierst du dann mit deiner Case-Anweisung. Abschluss des Einlesevorgangs ist die Return-Taste. Erst danach geht es weiter zur Case.
 
ihr redet aneinander vorbei :)
tigger meint, dass er die taste prüft, sobald sie getippt wurde. da braucht es kein 'return', die Eingabe ist quasi eine Endlosschleife
 
danke roland :)

ja ich meine on key-press, also eine prüfung, sobald eine taste getippt wird ;)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh