AGB  ·  Datenschutz  ·  Impressum  







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

funktionen

Ein Thema von xxsasch4xx · begonnen am 15. Mär 2010 · letzter Beitrag vom 15. Mär 2010
Antwort Antwort
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#1

funktionen

  Alt 15. Mär 2010, 16:30
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:
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;
bis hierhin ist mir alles klar also bei der prozedure werden nun x und y vertauscht mit Hilfe von h

aber jetzt kommt meine Problem Zeile die ich nicht ganz verstehe im Fettdruck bei function 2

Delphi-Quellcode:
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;
also a wird jetzt b -1 also dann 5 aber was hat es mit dem +b am ende noch aufsticht?
  Mit Zitat antworten Zitat
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#2

Re: funktionen

  Alt 15. Mär 2010, 16:33
irgentwie geht der fettdruck nicht im delphi code

ich meinte diese zeile hier:

f2:=f2(a,b-1)+b;
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#3

Re: funktionen

  Alt 15. Mär 2010, 16:34
wie wäre es mit "5+6=11"?
Was war die Frage?
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#4

Re: funktionen

  Alt 15. Mär 2010, 16:38
meine frage ist ja wie man auf den endwert in label 1 kommt ohne das programm auszutesten bei delphi
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#5

Re: funktionen

  Alt 15. Mär 2010, 16:39
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
Uwe Raabe
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#6

Re: funktionen

  Alt 15. Mär 2010, 16:42
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
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#7

Re: funktionen

  Alt 15. Mär 2010, 17:34
dann müsste die Funktion aber f2 heißen und nich 2 *verzweifelt nach einer ausrede such*
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#8

Re: funktionen

  Alt 15. Mär 2010, 19:25
achso ja stimmt aber ich hatte schon F2 gemeint als name^^
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Aussagekräftiger Titel

  Alt 15. Mär 2010, 20:46
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 07:38 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