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.
http://lmgtfy.com/?q=silnia+rekurencja+pascal
Dalej sobie poradzisz :)
**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.
pierwszy wynik: http://www.google.com/search?&q=pascal+nwd+rekurencyjnie [glowa]
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); ?
I czy te dwa wcześniej podane przeze mnie programy są poprawne?
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.
Co wy chcecie, na lekcji nie był, to trzeba za niego odrabiać :)
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.