Poszukuje programów: funkcja rekurencyjna

0

Witam. Poszukuje programów: silnia, średnia, największy wspólny dzielnik, potęgowanie, tyle że na funkcji rekurencyjnej. Czy jest ktoś w stanie wskazać miejsce gdzie takie coś znajdę? Na pewno gdzieś widziałem ostatnio na tym forum, ale niestety teraz nie mogę się tego doszukać. Dziękuje za pomoc.

0

**Obliczanie potęgi: **

program nazwa;
uses crt;
	var
	   z,x:integer;
	   i:integer;
 	function potega(a,b:integer):integer;
	var
	   c:byte;
	begin
	   c:=a;
	   for i:=0 to b do
	begin
	   if b=0 then c:=1;
	   if i>1 then
	   c:=c*a
	end;
	   potega:=c;
	end;
	begin
           clrscr;
           writeln('Podaj podstawe');
	       readln(z);
	   writeln('Podaj wykladnik');
	      readln(x);
	   writeln('Wynik: ',potega(z,x));
	   readln;
	   end.
 

**Obliczanie średniej do podania 0: **

 program nazwa;
uses crt;
	var
	   a,b,c,d:integer;
	function srednia1(b,c:integer):real;
           var
	   srednia:real;
	begin
	   c:=c-1;
           srednia1:=b/c;
           end;
	begin
	   clrscr;
	   c:=0;
	   d:=1;
	   repeat
	clrscr;
	   writeln('Podaj ',d,' liczbe');
		readln(a);
 	   b:=b+a;
           c:=c+1;
           d:=d+1
           until a=0;
	clrscr;
	  writeln(srednia1(b,c):0:2);
	readln;
	end.

Więc czy te kody są poprawne? To posiadam z lekcji, jednak nie mogę nigdzie znaleźć największego wspólnego dzielnika na rekurencji. Przepraszam za brak formatowania, ale nie wiem w jaki sposób to robić, aby było czytelne.

0
 program EuklidesRekurencyjnie;
uses crt;
var a,b:integer;

function NWD(a,b:integer):integer;
begin
if b=0 then NWD:=a else NWD:=NWD(b,a mod b);
end;
        Begin
        clrscr;
        write('podaj 1 liczbe');
        read(a);
        write('podaj 2 liczbe');
        read(b);
            begin
            writeln(NWD(a,b));
             repeat until keypressed;
    end;
end.

A mógłbyś wytłumaczyć o co chodzi w tym fragmencie: NWD:=NWD(b,a mod b); ?

0

I czy te dwa wcześniej podane przeze mnie programy są poprawne?

1

NWD:=NWD(b,a mod b);
Jako wynik funkcji przypisujesz wynik funkcji NWD wywołanej z parametrami b oraz a mod b

I czy te dwa wcześniej podane przeze mnie programy są poprawne?

Sformatuj je jak człowiek, to może ktoś na nie spojrzy.

1

Co wy chcecie, na lekcji nie był, to trzeba za niego odrabiać :)

user image

0

To nie jest żadne zadanie ... Po prostu, chce się tego nauczyć, a że koniec roku to niestety nauczyciel nie pomoże. Przy okazji będę musiał coś z tych funkcji mu zaliczyć, więc to nie jest zadanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1