AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Kann mir jemand bei der erstellung eines Quelltextes helfen?
Thema durchsuchen
Ansicht
Themen-Optionen

Kann mir jemand bei der erstellung eines Quelltextes helfen?

Ein Thema von Bloodhound · begonnen am 12. Jan 2003 · letzter Beitrag vom 16. Jan 2003
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    
Bloodhound

Registriert seit: 11. Jan 2003
38 Beiträge
 
#11
  Alt 13. Jan 2003, 20:14
wo muss denn die function hin??
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#12
  Alt 14. Jan 2003, 06:28
Hi,

kurze Zwischenfrage (das fragen wohl alle Programmierer) : Bis wann soll das fertig sein ?

Gruß
Hansa
  Mit Zitat antworten Zitat
Bloodhound

Registriert seit: 11. Jan 2003
38 Beiträge
 
#13
  Alt 14. Jan 2003, 06:52
am besten wäre heute dann könnt ich es morgen abgeben
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#14
  Alt 14. Jan 2003, 07:27
haha,

so ungefähr habe ich mir das gedacht. Selbst wenn Dir tatsächlich hier einer die Hausaufgaben macht, glaubst Du der Lehrer würde dich nicht fragen, wie Du das hingekriegt hast ? Was nützt Dir das überhaupt ? Selbst wenn das hier tatsächlich noch hinhaut, bist Du genau so weit wie vorher, die Defizite sind immer noch vorhanden! Für mich ist das pure Zeitverschwendung !

Um die minimale Chance zu nutzen und Dir den Mut nicht zu rauben hab ich das hier mal so hingeknallt :
Code:
unit Unit1;

interface

uses
  Math, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure Edit2Exit(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

FUNCTION Multipliziere (a,b : real) : real;
  BEGIN
    Multipliziere := a * b;
  END;

procedure TForm1.Edit2Exit(Sender: TObject);
begin
  Label3.Caption := FloattoStr (Multipliziere (StrToFloat (Edit1.Text),StrToFloat (Edit2.Text)));
end;

end.
Hier ist KEINE Fehlerprüfung vorhanden. KEINE Besonderheiten. Wirklich ABSOLUT NICHTS besonderes. Ich habe lediglich die Prozedur "Multipliziere" geschrieben und die Unit "Math" in die Uses Liste eingefügt (die ich hierfür aber nicht brauche), damit Du siehst, wo die hin muß . Auf der Form habe ich zudem 2 Edit-Felder 2 Labels und dann noch ein drittes fürs Ergebnis angeordnet. Die Caption, also die Beschriftung des 3. Labels zeigt das Ergebnis. Das wird angezeigt, sobald das zweite Edit verlassen wird (Edit2Exit). So ungefähr mußt Du das machen.

Gruß
Hansa
  Mit Zitat antworten Zitat
Bloodhound

Registriert seit: 11. Jan 2003
38 Beiträge
 
#15
  Alt 14. Jan 2003, 13:21
Vielen dank, ich bin grad dabei deine eingaben nachzuvollziehen, wenn ich das anschau raff ich schon was für was ist und kanns anderen auch erklären.
Allerdings muss irgendwo ein End fehlen, stattdessen ist ein ungültiges zeichen#160 vorhanden
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#16
  Alt 14. Jan 2003, 13:26
Hi,

ausnahmsweise ist der Quelltext sogar getestet. Ist das chr (160) vielleicht nur bei Dir ?

Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#17
  Alt 14. Jan 2003, 13:35
Hallo Bloodhound,

so wie Hansa es geschrieben hat, ist es absolut in Ordnung. Ich hatte oben die Funktion als Methode des Formulars beschrieben. Wenn du das ralisieren willst, wäre die Deklaration wie folgt:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
     ...
  private
    { Private declarations }
    function SinWithScale(a, x, b, fi: extended; useRad: Boolean): extended;
  public
    { Public declarations }
  end;
Unterhalb des Tags implementation folgt dann irgendwo:

Delphi-Quellcode:
function TForm1.SinWithScale(a, x, b, fi: extended; useRad: Boolean): extended;
var
   erg : extended;
begin
  if Not useRad then
  begin
     { hier musst du die Werte x, b und fi in Rad umwandeln,
       da der Benutzer diese in Grad angegeben hat }

  end;

  erg := a*sin(b*(x-fi));

  if Not useRad then
     { hier den erhalten Wert wieder in Grad umwandeln };

  Result := erg;
end;
Wie Hansa habe ich auch keine Fehlerbehandlung eingefügt, dazu solltest du einen try ... except Block verwenden.

Wenn du die Kommentare (also das Umwandeln von Grad in Rad bzw umgekehrt noch erledigst, hast du schon die Funktion fertig.

Such doch mal in der Hilfe unter RadToDeg .

Hansa ist vielleicht etwas scharf in Ton, aber er hat natürlich Recht, wenn er sagt, dass das Abschreiben allein nichts bringt. Für 15 Punkte in Mathe oder Informatik solltest du versuchen mehr allein zu schaffen. Wenn du eine gezielte Frage hast -auch wenn sie sehr einfach ist- wirst du auch weiterhin Hilfe erhalten.

Wenn du die Funktion fertig hast, versuche mal eine Listbox zu füllen, in der du alle x-Werte von -Pi bis Pi, im Abstand von 0.1 und deren Funtionswert ausgibst. Wenn du das hast, kämen wir zur graphischen Anzeige.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Bloodhound

Registriert seit: 11. Jan 2003
38 Beiträge
 
#18
  Alt 14. Jan 2003, 16:31
Hmm das mit den Gradangaben muss wohl ein missverständniss sein.
Die Parameter sind alle ganz normale zahlen, die umwandlung ist allso eigendlich überflüssig denke ich.
Das Prog muss "nur"

die Eingabe in Edit 1(a)
die Eingabe in Edit 2(b)==> 2pi/b=c
die Eingabe in Edit 3(fi)

in die Formel f(x)=a*sin(c(x-fi) einsetzen.

B sollte sowohl als Zahlenwert wie auch in pi angegeben werden können.
Das lässt sich aber denke ich lösen wenn ich ein mit einer If verknüpfunge 2 Buttons einbinde der eine der b direkt in c umrechnet , den anderen bei dem b zuerst mit pi multipliziert wird und dann umgerechnet
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#19
  Alt 14. Jan 2003, 17:00
Hallo Bloodhound,

OK, wenn du keine Angaben in Grad brauchst, kannst du den letzten Parameter aus der Parameterliste streichen. Du könntest eventuell eine CheckBox neben das Eingabefeld stellen mit der Beschriftung "*Pi". Wenn diese markiert ist, multiplizierst du b mit pi, sonst übergibst du b direkt als Parameter an die Funktion. Bei der Eingabe über Edit-Felde erhälst du in der Eigenschaft Text den Eingabewert als String. Diesen musst du natürlich in einen Realzahl umwandeln, dazu kannst du die Funktion StrToFloat aus der SysUtils Bibliothek benutzen. Das Ganze solltest du in einen try ... except Block packen, da der User ja auch einen ungültigen Wert angeben kann. Anstatt eines einfachen Edt Feldes kannst du auch ein MaskEdit Feld benutzen, dann kannst du noch beseer kontrollieren, was der Benutzer eingeben darf.

Jetzt müsste es mit der Listbox klappen, oder?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Bloodhound

Registriert seit: 11. Jan 2003
38 Beiträge
 
#20
  Alt 14. Jan 2003, 19:57
Ich habe das Programm mal so geschrieben wie es sein sollte.
Mein problem ist jetzt das ich nicht die Befehle für die komentare weiß ansonsten ist denke ich alles soweit eichtig


Delphi-Quellcode:
unit Unit1;

interface

uses
  math, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XPMan;

type
  TForm1 = class(TForm)
    a: TEdit;
    b: TEdit;
    fi: TEdit;
    Ergebnis: TEdit;
    Berechnen: TButton;
    CheckBox1: TCheckBox;
    procedure aChange(Sender: TObject);
    procedure ErgebnisChange(Sender: TObject);
    procedure bChange(Sender: TObject);
    procedure fiChange(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure BerechnenClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.aChange(Sender: TObject);
begin
   //Eingabe fließt als a in ergebnis ein
end;

procedure TForm1.bChange(Sender: TObject);
begin
   //2*3,14159 geteilt durch Eingabe b fließt als B in Ergebnis ein
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
   {wenn Checkbox markiert wird eingabe in b  (b mal mit 3,14159 multipliziert)}
end;

procedure TForm1.fiChange(Sender: TObject);
begin
   //Eingabe fließt als fi in Ergabnis ein
end;

procedure TForm1.BerechnenClick(Sender: TObject);
begin
   //Bei klick des Buttons wird ergebnis angezeigt
end;

procedure TForm1.ErgebnisChange(Sender: TObject);
begin
   (*Ergebnis grundform  f(x)=Eingabe in feld a*sin(eingabe in feld b(x-eingabe in feld fi))*)
   {mit sin bzw. x muss nichts gerechnet werden es müssen nur die eingaben eingesetzt werden.}

end;

end.
[edit=Daniel B]Delphi-Tags; Bitte das nächste mal nicht [ code], sondern [ delphi] benutzen. Danke. Kommentar-Zeichen. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    


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 08:20 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