programy licznikowe silnia zło?żoność czasowa

0

witam
ponownie najpierw kod źródłowy podam (można go jeszcze poprawić )

uses wincrt;
label dodaw,kon,mnoz,przyp,pr,jed,dwa,koniec1;
var g,w,d,x,y,z,n,k:word;
begin
clrscr;
writeln('podaj silnie: ');
readln(x);
if x=0 then goto koniec1;
n:=0;
g:=x+1;
g:=g-1;
w:=x+1;
w:=w-1;
d:=g+1;
d:=d-1;
d:=d-1;
jed:
k:=x+1;
k:=k-1;
k:=k-1;
if k=0 then goto kon;
dwa:
k:=k-1;
if k=0 then goto kon;
if n=0 then goto mnoz;
pr:
g:=g-1;
d:=g+1;
d:=d-1;
d:=d-1;
w:=z+1;
w:=w-1;
if d=0 then goto kon;
mnoz:
d:=d-1;
if d=0 then goto pr;
przyp:
y:=w+1;
y:=y-1;
dodaw:
x:=x+1;
y:=y-1;
z:=x+1;
z:=z-1;
if y=0 then goto mnoz;
if n=0 then goto dodaw;
koniec1:
z:=x+1;
kon:
z:=x+1;
z:=z-1;
writeln(z);
readln;
end.

i chciałem napisac sprawozdanie do tego na temat złożoności czasowej (obliczeniowej i pamięciowej)
kombinuję i jakoś nie mogę podołać ;-(

0

tak popier... kodu jeszcze nie widziałem. piszesz to na procesor risc, czy co?

  • nie używa się label/goto
  • g:=x+1; g:=g-1; to to samo co g := x;
  • w:=x+1; w:=w-1; jw
  • d := d-1; d := d-1; to d := d-2;
  • po co tyle zmiennych?

jeśli chcesz zmierzyć złożoność obliczeniową zamknij swój kod w procedurze (procedurach) i mierz jej (ich) czas wykonania dla różnych argumentów.

[dopisane]
no najwyraźniej nie wie (swoją drogą i tak nie przeczytałem tematu)... jednak jeśli chodzi o mierzenie czasu wykonania to wszystko jw.

0

najwidoczniej mój poprzednik nie wiem co to są programy licznikowe
w nich nie można bezpośrednio przypisać zmiennej x zmienną y trzeba to zrobić właśnie w sposób x:=y+1; x:=x-1; co w sumie daje x=y
dlatego w temacie podałem PROGRAMY LICZNIKOWE.......

// tagi < delphi > </ delphi > stosuj tylko do kodów zródłowych [mf]

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