AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Taschenrechner Programmieren

Ein Thema von Jack Ryan · begonnen am 16. Apr 2004 · letzter Beitrag vom 29. Sep 2004
Antwort Antwort
Seite 4 von 6   « Erste     234 56      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#31

Re: Taschenrechner Programmieren

  Alt 18. Apr 2004, 12:41
Das wird wohl von Unit zu Unit anders sein. genauso, was den Funktionsumfang betriift, hängt eben davon ab, wie viel Mühe sich derjenige gemacht hat.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#32

Re: Taschenrechner Programmieren

  Alt 18. Apr 2004, 13:24
Hallo Jack,
auch hier kann ich folgendes Buch empfehlen:
Sedgewick

In diesem Buch beschreibt Herr Sedgewick in Pascalnotation verschiedene Algorithmen.
Unteranderem auch einen Algorithmus für einen Taschenrechner. Na ja nicht direkt. Es werden
Algorithmen für Staple erklärt. Ein Beispiel beschäftigt sich genau mit der Deiner Fragestellung.

D.h. für Lösung Deines Problems solltest Du mit einem Stapel arbeiten.
Im folgenden muss vorausgesetzt werden dass Du weißt was ein Stapel ist.
Push holt einen Wert vom Stapel, Pop packt einen Wert auf den Stapel.
Damit ließe sich folgender Ausdruck wie folgt berechenen:
Code:
5*(((9+8)*(4*6)+7)
Code:
push(5)
push(9)
push(8)
push(pop+pop)
push(4)
push(6)
push(pop*pop)
push(pop*pop)
push(7)
push(pop+pop)
push(pop+pop)
Result:=pop
Wie man sieht müssen die Operanden vor dem Operator auf dem Stapel erscheinen. Um das zu vereinfachen
kann man den Ausdruck 5*(((9+8 )*(4*6)+7) in der umgekehrten polnischen Notation darstellen. Dann würde unser Ausdruck wie folgt aussehen:
Code:
598+46**7+*
Man kann hier sehr deutlich einen Zusammenhang zwischen der Notation und den Stapeloperationen sehen. Der Ausdruck 5*(((9+8 )*(4*6)+7) entspricht der Notation wie wir sie in der Schule gelernt haben. Diese Notation nennt man auch InFix-Notation. Die umgekehrte polnische Notation nennt man auch PostFix-Notation. Interessant ist auch das die PostFix-Notation ohne Klammern auskommt.

Deine geistige Leistung muss es jetzt sein einen Stapel zu entwicklen, einen Algorithmus schreiben, der die InFix-Notation in die PostFix-Notation umwandelt und auf den Stapel packt und berechnet.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Jack Ryan

Registriert seit: 16. Apr 2004
10 Beiträge
 
#33

Re: Taschenrechner Programmieren

  Alt 18. Apr 2004, 14:24
Sei nicht böse es ist sicher gut erklärt aber ich bin ein Delphi Anfänger und kann mit diesen Begriffen irgendwie nichts anfangen
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#34

Re: Taschenrechner Programmieren

  Alt 18. Apr 2004, 19:11
Hallo Jack,
ich weiß ja nicht warum Du einen Taschenrechner programmieren musst.
Aber ein Taschenrechner der Punkt vor Strichrechnung können muss ist für
einen Anfänger der absolute Overkill.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Jack Ryan

Registriert seit: 16. Apr 2004
10 Beiträge
 
#35

Re: Taschenrechner Programmieren

  Alt 18. Apr 2004, 20:46
Ohh gut zu wissen!!!!

Gibt es nicht irgendeine Möglichkeit mir das einfach nahezubringen
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#36

Re: Taschenrechner Programmieren

  Alt 20. Apr 2004, 13:49
@JackRyan "Wie geht das mit den Units?"


ja, du sachst einfach
uses deineunit; und um selbst eine zu machen so:

Delphi-Quellcode:
unit deineunit;

uses ...;

interface

   //typen

   //functionen und procedures headers
   //zB:

   procedure ichbintoll(a:string);

   //variablendeklarationen
   var
   a, b, c:integer;

implementation

   //function und procedure quelltexte
   
   procedure ichbintoll(a:string);
   begin
   Form1.Label1.Caption:='Ich Bin Ganz doll toll!!!';
   end;

end.
und das wars
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#37

Re: Taschenrechner Programmieren

  Alt 20. Apr 2004, 13:52
was näherbringen?

punktvorstrichrechnung?
das solltest dú können
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#38

Re: Taschenrechner Programmieren

  Alt 20. Apr 2004, 13:55
@glkbkk
bei denem Codebeispiel fängt jetzt der Compiler an zu mekern, weil er Fotm1 nicht findet

Code:
...
implementation
[color=red]  //die Unit, wo Form1 & Form1.Label1 drin sind
   uses unit1;[/color]

   //function und procedure quelltexte
...
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#39

Re: Taschenrechner Programmieren

  Alt 20. Apr 2004, 14:00
das mit form1.label war nurn beispiel

da werden ja normalerweise algemeine functions drin sein (so mathe oder so) die sich nicht direkt auf irgendwelche d-komponenten beziehen

(die sollte man direkt in den record des jeweiligen typs schreiben, kann mir da aber mal wer per pn sagen wie das geht (damit kein mod kommt und sagt:"ihr kommt vom thema ab" ))
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Jack Ryan

Registriert seit: 16. Apr 2004
10 Beiträge
 
#40

Re: Taschenrechner Programmieren

  Alt 22. Apr 2004, 15:56
so hab das jetzt hinbekommen *freu*.

Nur noch das problem.
Wie kann ich eine Fakultät berechnen???
also wenn ich 4 eingeben dann soll er 1*2*3*4
oder bei 7 1*2*3*4*5*6*7
rechnen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 6   « Erste     234 56      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz