AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Fehler-Anzeige: Not enough actual parameters
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler-Anzeige: Not enough actual parameters

Ein Thema von icqgoofy · begonnen am 4. Feb 2006 · letzter Beitrag vom 4. Feb 2006
Antwort Antwort
icqgoofy
(Gast)

n/a Beiträge
 
#1

Fehler-Anzeige: Not enough actual parameters

  Alt 4. Feb 2006, 12:24
Hallo zusammen,

in Informatik sollen wir einen "Taschenrechner" mit simplen
Methoden (nur Addition/Multiplikation) schreiben.
Vorgabe ist, dass die Lösungsvariablen nicht Werteparameter
sein dürfen, sondern Varibalenparameter sein müssen.

Ich habe das Programm nach den Vorgaben des Lehrers geschrieben,
genau wie wir alle aus dem Kurs.
Doch bei uns allen kommt jener Fehler.

Hier meine Unit:

Delphi-Quellcode:
unit Unit1;

interface

[...] //hab grad die uses rausgemacht, die betreffen ja das Problem nicht

type
  TFTaschenrechner = class(TForm)
   .... //hier stehen halt die Objekte
    procedure Berechnung(rZa1,rZa2: Real; var rSum,rProd: Real);
    procedure BErgebnis_AnzeigeClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FTaschenrechner: TFTaschenrechner;
  rSumme: Real;
  rProdukt: Real;

implementation

{$R *.dfm}

procedure TFTaschenrechner.Berechnung(rZa1,rZa2: Real; var rSum,rProd: Real);
begin
  rSum:=rZa1+rZa2;
  rProd:=rZa1*rZa2;
  rSumme:=rSum;
  rProdukt:=rProd;
end;


procedure TFTaschenrechner.BErgebnis_AnzeigeClick(Sender: TObject);
var rZahl1,rZahl2 : Real;
begin
  rZahl1:=StrToFloat(EZahl1.Text);
  rZahl2:=StrToFloat(EZahl2.Text);
  FTaschenrechner.Berechnung(rZahl1,rZahl2; var rSum,rProd: Real); //hier tritt der Fehler auf
  EAddition.Text:=FloatToStr(rSumme);
  EMultiplikation.Text:=FloatToStr(rProdukt);
end;



end.
Über Hilfe wäre ich sehr dankbar;)

Gruß icqgoofy
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#2

Re: Fehler-Anzeige: Not enough actual parameters

  Alt 4. Feb 2006, 12:26
Zeile 41: was macht das var dort... und was der Strichpunkt zwischen den Parametern?

Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Fehler-Anzeige: Not enough actual parameters

  Alt 4. Feb 2006, 12:29
Zitat:
Delphi-Quellcode:
procedure TFTaschenrechner.BErgebnis_AnzeigeClick(Sender: TObject);
var rZahl1,rZahl2 : Real;
begin
  rZahl1:=StrToFloat(EZahl1.Text);
  rZahl2:=StrToFloat(EZahl2.Text);
  FTaschenrechner.Berechnung(rZahl1,rZahl2; var rSum,rProd: Real);
  EAddition.Text:=FloatToStr(rSumme);
  EMultiplikation.Text:=FloatToStr(rProdukt);
end;
Die Procedur muß so aufgerufen werden
 FTaschenrechner.Berechnung(rZahl1,rZahl2, rSumme,rProdukt);
Markus Kinzler
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#4

Re: Fehler-Anzeige: Not enough actual parameters

  Alt 4. Feb 2006, 12:29
Mit den globalen Variablen rSumme und rProdukt führst du den Sinn deiner var-Parameter ad absurdum.
  Mit Zitat antworten Zitat
icqgoofy
(Gast)

n/a Beiträge
 
#5

Re: Fehler-Anzeige: Not enough actual parameters

  Alt 4. Feb 2006, 12:34
Ok,
also ist es absurd das mit den globalen Variablen so zu machen.
Wie kann ich es dann machen, dass die Variablenparamter wieder an
die Ausgabe-Prozedur übergeben werden?

Das ist nämlich die Vrogabe unseres Lehrers, dass die
Lösungsvariablen Variablenparameter bleiben müsse.

Gruß icqgoofy
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#6

Re: Fehler-Anzeige: Not enough actual parameters

  Alt 4. Feb 2006, 12:40
Vielleicht solltest du dann erstmal nachlesen, was var-Parameter genau sind und wie man sie verwendet

Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Fehler-Anzeige: Not enough actual parameters

  Alt 4. Feb 2006, 12:40
Für deinem Zweck könntest du sie geanuso wie rZahl1 und rZahl2 lokal definieren.
Markus Kinzler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Fehler-Anzeige: Not enough actual parameters

  Alt 4. Feb 2006, 12:45
Zitat von Dust Signs:
Vielleicht solltest du dann erstmal nachlesen, was var-Parameter genau sind und wie man sie verwendet
Ich glaube in diesem Beispielprogramm wird doch sichtbar was var-Paramter bewirken. Zudem heißen die Paramter anders, wie die globalen Variablen.

Grundsätzlich sind var-Parameter aber eine "gefährliche" Waffe.

@icqgoofy: Die Frage ist nur, was dein Lehrer gemeint aht als er euch die Verwendung von by-reference Parametern verordnet hat

Edit: Habe leider die Prozedur nicht richtig angeschaut : so ist es natütlich falsch! Dust-sign hat natürlich Recht.

Die Prozedur müßte so aussehen:

Delphi-Quellcode:
procedure TFTaschenrechner.Berechnung(rZa1,rZa2: Real; var rSum,rProd: Real);
begin
  rSum:=rZa1+rZa2;
  rProd:=rZa1*rZa2;
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:31 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