Ach jaj zas Pascal.. :(

Programovacie jazyky, rady, poradňa...
Logan22
Light Expert
Light Expert
Príspevky: 50
Registrovaný: 26 jan 2007, 11:44

Ach jaj zas Pascal.. :(

Príspevok od používateľa Logan22 »

Hoj , vseci mam taky problem dostal som zadanie a neviem co dalej s tym .
Zrealizujte rekurzivne aj nerekurzivne riesenie (ak sa da) programu,
ktory zabezpeci pomocou rekurzivnej procedury (funkcie)
za pouzitia len jedinej premennej sucet dvoch cisiel.

//audiotrack kód zmazaný (nebol v code)
//edit : sorry sa ospravedlnujem som si nevsimol

Kód: Vybrať všetko

program rekurzia;
var
  i, j: word;
 
function sucet (a, b: word): word;
begin
  if (a <> 0) then sucet := sucet(a - 1, b + 1)
  else sucet := b;
end;
 
function sucet2 (a, b: word): word;
var
  i: word;
begin
  for i := 1 to a do b := b + 1;
  sucet2 := b;
end;
 
begin
  write('zadaj 2 cisla: ');
  readln(i, j);
  writeln( sucet(i, j) );
  writeln( sucet2(i, j) );
  readln;
end.
Len ze su tam dve premmene a ja neviem ako to mam spravit tak aby tam bola len jedna premmenna ..

Dakujem
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Určite ide o súčet?

Inak podobný príklad (ale v ňom je súčin) tu riešil (a vyriešil) audiotrack, takže skús hľadať jeho príspevky.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

pri tom súčte stači trošku upraviť tú moju rekurziu na súčin, iba sa pri každom otvorení rekurzie nepriráta premenná a, ale číslo 1 aby som si pamätal kolko krát bola rekurzia otvorená:

Kód: Vybrať všetko

function sucet:integer;
begin
 if a>0 then begin
              a:=a-1;
              sucet:=sucet + 1;
        end else begin
             read(vstup,a);
             sucet:=a;
             end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 Assignfile(vstup,'cisla.txt');
 Reset(vstup);
 Readln(vstup,a);
 showmessage(IntToStr(sucet));
 Closefile(vstup);
end;
// premenná a je globálna
Napísať odpoveď