AGB  ·  Datenschutz  ·  Impressum  







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

Rest einer Division durch Rekursion

Ein Thema von Die absoulte Beginnerin · begonnen am 29. Okt 2008 · letzter Beitrag vom 30. Okt 2008
Antwort Antwort
Die absoulte Beginnerin

Registriert seit: 8. Okt 2008
2 Beiträge
 
Delphi 7 Personal
 
#1

Rest einer Division durch Rekursion

  Alt 29. Okt 2008, 23:10
Hallo,

wir sollten in unserer letzten Informatikstunde eine rekursive Funktion machen, durch die bei einer Division der Restbetrag angegeben wird.

also zum beispiel bei 25:4 die zahl 1 da 25:4=6 rest1

mein ansatz ist jetzt so:
Delphi-Quellcode:
 function reku_div(divident,divisor:integer):integer;
var ergebnis: integer;
begin
 if divident>=divisor
 then reku_div(divident-divisor,divident)
 else ergebnis:=divident;
end;

procedure TForm1.Button1Click(Sender: TObject);
var divident,divisor:integer;
begin
divident:=StrToInt(edit1.text);
divisor:=StrToInt(edit2.Text);
edit3.Text:=IntToStr(reku_div(divident,divisor));
end;
das klappt dann aber leider irgendwie nicht...

kann mir hier vielleicht einer weiterhelfen???

VIELEN DANK!


achso und noch eine frage: woher weiß ich welche programmiersprache ich benutze? also ich arbeite mit delphi sieben aber bei der programmiersprache bin ich mir nicht ganz sicher....

[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

Re: Rest einer Division durch Rekursion

  Alt 30. Okt 2008, 01:07
Willkommen in der DP.

Zitat von Die absoulte Beginnerin:
Hallo,

wir sollten in unserer letzten Informatikstunde eine rekursive Funktion machen, durch die bei einer Division der Restbetrag angegeben wird.

also zum beispiel bei 25:4 die zahl 1 da 25:4=6 rest1
Also die kleinste funktionierende Function in Delphi ist die hier:
Delphi-Quellcode:
function Test : integer;
begin
  Result := 1;
end;
Eine function soll ja auch einen Wert zurückliefern und das hattest du nicht gemacht.
Delphi-Quellcode:
function reku_div( divident, divisor : integer ) : integer;
//var ergebnis: integer; <-- unnötig
begin
 if divident >= divisor
 then
   Result := reku_div( divident - divisor, divisor ) // edit - thanx to Uwe Raabe ;-)
 else
   Result := divident;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 divident, divisor : integer;
begin
  divident := StrToInt( Edit1.Text );
  divisor := StrToInt( Edit2.Text );
  Edit3.Text := IntToStr( reku_div( divident, divisor ) );
end;
Wenn ich dein Beispiel jetzt aufnehme, dann wird ja durch die Rekursion das wie folgt aufgerufen:
Delphi-Quellcode:
function( 25, 4) =
  function( 21, 4 ) =
    function( 17, 4 ) =
      function( 13, 4 ) =
        function( 9, 4 ) =
          function( 5, 4 ) =
            function( 1, 4 ) = 1
Zitat von Die absoulte Beginnerin:
achso und noch eine frage: woher weiß ich welche programmiersprache ich benutze? also ich arbeite mit delphi sieben aber bei der programmiersprache bin ich mir nicht ganz sicher....
vielleicht Delphi?

cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Rest einer Division durch Rekursion

  Alt 30. Okt 2008, 01:13
Zitat von Sir Rufo:
Zitat von Die absoulte Beginnerin:
achso und noch eine frage: woher weiß ich welche programmiersprache ich benutze? also ich arbeite mit delphi sieben aber bei der programmiersprache bin ich mir nicht ganz sicher....
vielleicht Delphi?
Die Frage ist berechtigt. Generell arbeitet Du mit Delphi, aber erst in den neueren Versionen (2007, 2009) wurde neue Sprachelemente eingeführt. Generics, anonyme Methoden, for-in-Schleife, ...

Die meisten haben jedoch keine neue Version und nutzen auch diese Sprachelemente nicht, deswegen brauchst Du Dir da keine Sorgen machen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Rest einer Division durch Rekursion

  Alt 30. Okt 2008, 05:38
Aber auch dann ist es Delphi
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

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

Re: Rest einer Division durch Rekursion

  Alt 30. Okt 2008, 07:03
Zitat von Die absoulte Beginnerin:
if divident>=divisor
then reku_div(divident-divisor,divident)
else ergebnis:=divident;
...
das klappt dann aber leider irgendwie nicht...
Beim rekursiven Aufruf muss der zweite Parameter der Divisor sein!
Delphi-Quellcode:
if divident>=divisor
 then reku_div(divident-divisor,divisor)
 else ergebnis:=divident;
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock
Online

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.764 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Rest einer Division durch Rekursion

  Alt 30. Okt 2008, 08:57
Zitat von mkinzler:
Aber auch dann ist es Delphi
Das ist aber nicht ganz Richtig, denn offiziell ist Delphi eine Entwicklungsumgebung für die Sprache ObjectPascal.
Im allgemeinen Sprachgebrauch wird das zwar Synonym verwendet, aber wenn wir schon so nett drüber sprechen...


Hui, und doch sehe ich gerade, daß dat Dingen offiziell Delphi-Language heisst. Und das auch noch seit 2003.
http://de.wikipedia.org/wiki/Borland_Delphi

Sherlock
Oliver
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Rest einer Division durch Rekursion

  Alt 30. Okt 2008, 10:36
CG ist sich da nicht so sicher, einmal meinen sie die IDE ( jetzt BDS), einmal das Konzept ( D4PHP) und manchmal die Sprache (welche früher ObjektPascal hiess)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Rest einer Division durch Rekursion

  Alt 30. Okt 2008, 10:46
Wird das nicht auch manchmal DelphiLanguage genannt?

Edit: Sorry, ist ja OT.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

Re: Rest einer Division durch Rekursion

  Alt 30. Okt 2008, 11:06
Zitat von divBy0:
Wird das nicht auch manchmal DelphiLanguage genannt?
Ich glaube "Die Absolute Beginnerin" fragt, wegen der Einstellung beim Erstellen des Themas und da handelt es sich eindeutig um "Delphi Win32"
Zitat von divBy0:
Edit: Sorry, ist ja OT.
Nö, wieso, danach wurde am Anfang auch gefragt - obwohl pro Thread ja nur eine Frage erlaubt

cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Die absoulte Beginnerin

Registriert seit: 8. Okt 2008
2 Beiträge
 
Delphi 7 Personal
 
#10

Re: Rest einer Division durch Rekursion

  Alt 30. Okt 2008, 15:58
ok vielen dank!

und mit der programmiersprache, das hatte mich nur irritiert, weil ich das angeben musste, um einen beitrag zu schreiben...

  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 09:29 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