![]() |
funktionen
hallo habe in einer Woche eine theoretische Prüfung in der schule und es geht um Funktionen und Prozeduren
aber mir ist eine Zeile nicht ganz klar also ich habe folgende Aufgabe: Im edit feld 1 wird 6 eingetragen und im edit feld 2 wird eine 2 eingetragen. Welcher wert wird nach anklicken im labelfeld 1 ausgegeben?
Delphi-Quellcode:
bis hierhin ist mir alles klar also bei der prozedure werden nun x und y vertauscht mit Hilfe von h
button2.click
var a,b:integer; begin a:=strtoint(edit1.text); b:=strtoint(edit2.text); if a>b then p (a,b); // true bei eingabe 6 und 2 label1.caption:=inttostr(f2(a,b)); procedure p(var x,y:integer); var h:integer; begin h:=x; x:=y; y:=h; end; aber jetzt kommt meine Problem Zeile die ich nicht ganz verstehe im Fettdruck bei function 2
Delphi-Quellcode:
also a wird jetzt b -1 also dann 5 aber was hat es mit dem +b am ende noch aufsticht?
function f2(a,b:integer):integer;
begin if b=a then // nein 2 ist nicht gleich 6 f2:=a else f2:=f2(a,b-1)+b; |
Re: funktionen
irgentwie geht der fettdruck nicht im delphi code
ich meinte diese zeile hier: f2:=f2(a,b-1)+b; |
Re: funktionen
wie wäre es mit "5+6=11"?
Was war die Frage? |
Re: funktionen
meine frage ist ja wie man auf den endwert in label 1 kommt ohne das programm auszutesten bei delphi
|
Re: funktionen
f2 ist eine rekursiv implementierte Funktion mit den zwei Parametern a und b, wobe a <= b sein muss. Der Rückgabewert der Funktion soll a sein, wenn a = b ist, anderfalls erhält man ihn durch addieren von b zu dem Rückgabewert von f2(a, b-1).
Für deinen Fall (a=2, b=6) ist das: f2(2, 6) = f2(a, 5) + 6 = f2(2, 4) + 5 + 6 = f2(2, 3) + 4 + 5 + 6 = f2(2, 2) + 3 + 4 + 5 + 6 = 2 + 3 + 4 + 5 + 6 = 20 und nicht 11 |
Re: funktionen
f2 ist eine rekursive Funktion, das heißt sie ruft sich selbst wieder auf. Auf das Ergebnis kommst du am besten, wenn du von hinten anfängst (dann, wenn die Funktion "abgebrochen" wird). Am besten schreibst du dir die Parameter und die Ergebnisse so auf:
Code:
A B result
2 6 ? 2 5 ? 2 4 9 2 3 5 2 2 2 |
Re: funktionen
dann müsste die Funktion aber f2 heißen und nich 2 *verzweifelt nach einer ausrede such*
|
Re: funktionen
achso ja stimmt aber ich hatte schon F2 gemeint als name^^
|
Aussagekräftiger Titel
Bitte gib deinem Beitrag einen aussagekräftigen Titel. Der jetzige Titel lässt nicht erkennen, um was für ein Problem oder Frage es sich handelt. Um den Titel zu ändern, editiere einfach deinen ersten Beitrag. Damit erleichterst du das Auffinden deines Beitrages mit der Suche und ersparst anderen Mitglieder ein unnötiges Öffnen deines Beitrages.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz