Entwickler-Ecke

Sonstiges (Delphi) - Funktionen


TigerKath - So 16.10.05 13:33
Titel: Funktionen
Hallo,

wir nehmen in Informatik gerade Delphi-Funktionen durch und
ich hab keine Ahnung wie eine ganze Delphi-Funktion mit Ausgabe und
allem drumherum aussehen soll deshalb wollt ich Fragen, ob mir jemand die folgende
genannte Aufgabe in einem vollständigen Programm lösen könnte, damit ich einen
überblick bekomme wie ein ganzes Delphi-Funtions Programm auszusehen hat!

Aufgabe:
Aus dem Mathematik-Unterricht kennst du Folgen. Schreibe eine Funktion FolgeAn in
Dekphi, die bei Eingabe einer ganzen Zahl n>=1 das n. Folgenglied der Folge
a(n)=(8n+2)/(n²+1)
berechnet und zurückliefert.


ICH HOFFE IHR KÖNNT MIR HEUTE NOCH HELFEN-BRAUCHE DIESES PROGRAMM FÜR EINE KLAUSUR!
ABER DAS VOLLSTÄNDIGE MIT ALLEM DRUM UND DRAN!

DABKESCHÖN


Christian S. - So 16.10.05 13:35

Hallo TigerKath,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image klicken und den Titel ändern. Dank Dir!

Viele Grüße,
Christian S.

P.S.: Findest Du Deine Anfrage nicht ein bisschen dreist? "Macht mir meine Arbeit, aber gefälligst noch heute! Und wehe es ist nicht vollständig!"


alzaimar - So 16.10.05 13:37

Klar können wir Dir helfen und ein komplettes Programm schreiben und deine Hausaufgabe lösen.

Machen wir aber nicht. :schmoll:


ManuelGS - So 16.10.05 13:41

"Hilf dir selbst, so hilft dir Gott." :mrgreen:


Gausi - So 16.10.05 13:41

Ich will mal nicht so sein:

Delphi-Quelltext
1:
2:
3:
4:
function Verdoppele(x:integer):integer;
begin
  result := x + x;
end;


Mit ein ganz klein bissel Überlegen ist damit deine Aufgabe gelöst. Du musst nur eine halbe Zeile etwas ändern.

Zum einlesen und ausgeben: Editfelder und StrToInt und IntToStr. Mehr dazu in der Hilfe.

(Aber den Titel trotzdem ändern ;-))


Amateur - So 16.10.05 13:44

du hast nerven... macht meine hausaufgaben...du glaubst doch net wirklich dass du jemand findest der das macht oder?
hier jedenfalls nicht...
aber ein tipp google mal nach function und delphi. da findest du sicher was...


TigerKath - So 16.10.05 13:57

BITTE,ich will nicht das ihr mir irgendwelche Hausaufgaben macht,
ich möchte es nur verstehen können und das klapppt nur mit einem ganzen Delphi Programm,
weil ich nicht weiß wie es auszusehen hat mit einer Funktion!

Mein Problem ist es dss...ich nicht verstehe
wie das ganze vollständige Delphi-Programm lauten soll!
Von Anfang an...ich weiß nicht wie ich diese funtion da rein bringen soll...
das ist mein problem und für was funktionen überhaupt da sind?

bitte helft mir doch...ich bräuchte nur ein besipiel für ein GANZES DELPHI PROGRAMM
MIT EINER FUNKTION....dann würd ich es anwenden können.

Bitte helft mir doch

CIAO TigerKath


Amateur - So 16.10.05 14:03

schon mal was von der suchfunktion hier gehört? tipp mal function ein und freu dich!


Christian S. - So 16.10.05 14:04

Hallo!

Bitte ändere den Titel Deines Topics. Lies dazu nochmal die erste Antwort auf Deine Frage.

Grüße
Christian


Coder - So 16.10.05 14:09

:arrow: Prozeduren und Funktionen [http://www.dsdt.info/grundlagen/sprache/prozfunk.php]
:wave:


Chryzler - So 16.10.05 14:10

Na,

also so schwer kann das doch nicht sein!


Delphi-Quelltext
1:
2:
3:
4:
function Irgendwas(a: Single): Single;
begin
a := ((8 * a) + 2) / ((a * a) + 1); 
end;


Und das nächste Mal zuerst ein bisschen überlegen :roll:

PS: Den Titel noch ändern, sonst kennt man sich hier irgendwann gar nicht mehr aus :(


alzaimar - So 16.10.05 14:14

Chryzler: Verräter! :wink:


Roosevelt - So 16.10.05 14:15

ich muss jetzt mal was generales los werden... immer wenn irgend jemand schreibt, das irgendeine Aufgabe mit der Schule zu tuen hat, sind die meisten hier im Forum nur am rum maulen...
es reicht wenn einer schreibt, dass hier im Forum keine Hausaufgaben gelöst werden... es müssen nicht 5 Leute anrücken und schreiben das es so was nicht gibt...

@TigerKath glaubst du nicht das auch vieleicht dein Lehrer hier Mitglied im Forum ist, und das er hier vieleicht auch mit ließt und sich das Ergebniss, welches dir die Leute hier im Forum geben, ansieht und dann mit den ergebnissen vergleicht, welche er von euch bekommt???
Nur mal so als Hinweiß!!!


TigerKath - So 16.10.05 14:18

ich glaub ihr versteht das nicht ich will nur wissen wie baut man Funtionen in ein Delphi Programm ein, damit auch eine Ausgabe stattfinden kann???!


Christian S. - So 16.10.05 14:22

Hast Du Dir den Link angesehen, den Coder Dir gegeben hat? Dort ist das beschrieben und Du siehst auch ein komplettes Programm.


Blackheart666 - So 16.10.05 14:26

Wie Gausi Dir den Tip schon gegeben hat!
Die Funktion schreibst Du dir selbst.

Die Funktion in seinem Bsp. heißt Verdoppele ,womit gerechnet wir ist ein Integer.
Das Resultat ist dann Integer + Integer.
Aufrufen kannst Du dann die Function in Button Klick zB.



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
var
  Form1: TForm1;
  Result:Integer;
implementation

{$R *.dfm}
function Verdoppele(x:integer):integer;
begin
  result := x + x;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Result:=Verdoppele(7);
 Caption:=IntToStr(Result);
end;

end.


Amateur - So 16.10.05 14:29

ich sags nun auch nocheinmal. die suchfunktion liefert dir genug... meistens sogar ganze units von form1. das ist das gleiche wie ein prog hier reinstellen...
und der link beschreibt auch wie funktionen geschrieben werden...
probier es doch mal aus und wenn du nicht mehr weiterkommst schreibste hier nochmal rein aber dann auch in nen neuen thread...
thx


Kroko - So 16.10.05 14:36

auch auf die Gefahr hin gleich als Verräter abgeurteilt :cry: zu werden:
@Tigerkath:
SCHREIBE MIR MAL BITTE DIE GENAUE Aufgabe auf einen 20 Euronenschein, vergiß Deine Emil-Adresse nicht, sende es mir zu und in 20 Minuten hast Du die komplette Aufgabe als Programm und Quelle! :lol:


Amateur - So 16.10.05 14:41

ich machs für 10! :wink:


Kroko - So 16.10.05 14:43

9,50 :wink:


Gausi - So 16.10.05 14:43

Kommt schon Mädels. Das ist nicht die "Jobbörse". Davon abgesehen mach ichs umsonst in maximal 2 Minuten. Mit Fehlerabfrage vielleicht in 5. Aber dadurch lernt TigerKath nix.

Also: Beim Thema bleiben. Jeder hat mal klein angefangen.


alzaimar - So 16.10.05 14:46

Gausi: Spielverderber :schmoll:


TigerKath - So 16.10.05 14:58


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
function FolgeAn(n:integer):integer;
var
  Form1: TForm1;

implementation

{$R *.dfm}
function FolgeAn(n:integer):integer;
begin
Result:=((8 * n) + 2) / ((n * n) + 1);
end;

procedure TForm1.Button1Click(Sender: TObject);
var Ergebnis:integer;
begin
Ergebnis:=FolgeAn(2);
end;

end.




//WO IST DANN DA DER FEHLER, WEIL ES FUNKT NICHT?????

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt.


Blackheart666 - So 16.10.05 15:01

Woher weiss die Functuion was n ist !


Kroko - So 16.10.05 15:02


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
var
  Form1: TForm1;

implementation

{$R *.dfm}
function FolgeAn(n:integer):real;
begin
Result:=((8 * n) + 2) / ((n * n) + 1); //bei Integer nimm div
end;                                   //für real nimm /  

procedure TForm1.Button1Click(Sender: TObject);
var Ergebnis:real;
begin
Ergebnis:=FolgeAn(2);
end;

end.


Kroko - So 16.10.05 15:05

user profile iconBlackheart666 hat folgendes geschrieben:
Woher weiss die Functuion was n ist !

WEIL ES IN DR DEKLARTION STEHT :lol:


TigerKath - So 16.10.05 15:06

So also:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
 function FolgeAn(n:integer):integer;
var
  Form1: TForm1;

implementation

{$R *.dfm}
function FolgeAn(n:integer):integer;
begin
Result:=((8 * n) + 2div ((n * n) + 1);
end;

procedure TForm1.Button1Click(Sender: TObject);
var Ergebnis:integer;
begin
Ergebnis:=FolgeAn(2);
end;

end.


Doch wo wird das ausgeben...das Ergebnis, wie definier ich das?

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt.


Blackheart666 - So 16.10.05 15:09

Stimmt hats nur überflogen zwecks, function vorne weg mein Fehler. Man sollte auch richtig Lesen.


TigerKath - So 16.10.05 15:09

ich dachte in die klammer muss eine zahl rein...die dann n sein solll!
Oder wie soll ich das definieren


Gausi - So 16.10.05 15:10

Das Ergebnis in einem Edit anzeigen geht so: Edit1.Text := IntToStr(Ergebnis); Einfach nach der Berechnung von Ergebnis diese Zeile einfügen. Vorher natürlich noch ein Edit auf die Form packen


Kroko - So 16.10.05 15:12


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Button1Click(Sender: TObject);
var Ergebnis:integer;
begin
Ergebnis:=FolgeAn(2);
  Panel1.Caption := FloatToStr(Ergebnis);
end;

wenn du ein Panel auf die Form ziehst!


TigerKath - So 16.10.05 15:12

nicht lieber panelcaption also
Panel1.Caption := IntToStr(Ergebnis);


TigerKath - So 16.10.05 15:20

ES FUNKTIONIERT, DOCH ICH BRÄUCHTE DAS PROGRAMM NICHT MIT INTEGER SONDERN
EXTENDED. DOCH WENN ICH STATT INTEGER EXTENDED EINSETZE DANN FUNKT ES NICHT.WIE SOLL
ICH DAS ÄNDERN????


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
function FolgeAn(n:Integer):Integer;
var
  Form1: TForm1;

implementation

{$R *.dfm}
function FolgeAn(n:Integer):Integer;
begin
Result:=((8 * n) + 2div ((n * n) + 1);
end;

procedure TForm1.Button1Click(Sender: TObject);
var Ergebnis:Integer;
begin
Ergebnis:=FolgeAn(3);
Panel1.Caption := IntToStr(Ergebnis); 
end;

end.


Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt. Hinweis: Quellcode bitte mit [delphi]...[/delphi] einschliessen


DarkHunter - So 16.10.05 15:24

Mach aus dem Integer ein extended


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
function FolgeAn(n:extended):extended;
var
  Form1: TForm1;

implementation

{$R *.dfm}
function FolgeAn(n:extended):extended;
begin
Result:=((8 * n) + 2) / ((n * n) + 1);
end;

procedure TForm1.Button1Click(Sender: TObject);
var Ergebnis:Extended;
begin
Ergebnis:=FolgeAn(3);
Panel1.Caption := FloatToStr(Ergebnis); // Das Float statt int weil Float für gleitkomma werte steht.
end;

end.


und bitte schrei nicht so rum ;)


GTA-Place - So 16.10.05 15:24

FloatToStr(); statt IntToStr();


TigerKath - So 16.10.05 15:32

ok vielen dank programm läuft ich habs verstanden und es macht jetzt richtig viel spaß dich ich noch weiter eifrig programmiere und da bin ich wieder auf ein problem gestoßen...guckt euch das mal an...was ich falsch gemacht hab und sagt es mir bitte...danke!


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
 function Zahlbeschreinbung(x:Integer):Integer;
var
  Form1: TForm1;

implementation

{$R *.dfm}


function Zahlbeschreinbung(x:Integer):Integer;
begin
 if x<0 then
 Result:='negativ';
 if x>0 then
 Result:='positiv';
 if x=0 then
 Result:='null';
end;
 
procedure TForm1.Button1Click(Sender: TObject);

var Ergebnis:Integer;
 begin
 Ergebnis:= Zahlbeschreinbung(6);
end;

end.


Moderiert von user profile iconGausi: Wieder mal aufgeräumt.


Gausi - So 16.10.05 15:37

So. Hier mach ich jetzt auch dicht. Pro Thread bitte nur eine Frage. Hier ist schon genug Durcheinander. Wenn jetzt auch noch der Unterschied zwischen Integern und Strings kommt...ne. ;-)

* closed *