Ĺadny brzuch
Mam takie zadanie: Napisz program obliczający iloczyn n kolejnych liczb naturalnych dodatnich (zaczynając od 1), w Pascalu.
Napisałem i prosiłbym o sprawdzenie :)
program iloczyn;
uses crt;
var
n,x,y:word;
begin
clrscr;
writeln('Program obliczajacy iloczyn n kolejnych liczb naturalnych');
writeln('Podaj n: n= ');
readln(n);
y:=1;
x:=1;
repeat x:=x*y;
y:=y+1;
until y=n+1;
end;
writeln('Iloczyn',n'kolejnych liczb naturalnych wynosi: ',x);
end.
---------------------------------------------------------------------------------------------------
Pentium 4 2,6 GHz HT; Radeon 9600 XT Sapphire; 512 DDR 400 MHz Kingston; Asus P4P800; Win XP Professional + Service Pack 2
program iloczyn;
uses crt;
var
n,x,y:word;
begin
clrscr;
writeln('Program obliczajacy iloczyn n kolejnych liczb naturalnych');
writeln('Podaj n: n= '); {lepiej by bylo write}
readln(n);
y:=1;
x:=1;
repeat x:=x*y;
y:=y+1;
until y=n+1;
end;
writeln('Iloczyn ',n,' kolejnych liczb naturalnych wynosi: ',x);
readln; {zeby mozna bylo zobaczyc wyniki}
end.
Teraz będzie działać, ale lepiej zamiast repeat-until lepiej użyć for-to-do:
for y:=1 to n do x:=x*y;
Pozdrawiam i zapraszam na *** www.windowsik.prv.pl ***
Wielkie dzięki.
Czy użycie repeat-until zamiast for-to-do spowoduje jakieś różnice, czy też można powiedzieć, że jest to to samo?
---------------------------------------------------------------------------------------------------
Pentium 4 2,6 GHz HT; Radeon 9600 XT Sapphire; 512 DDR 400 MHz Kingston; Asus P4P800; Win XP Professional + Service Pack 2
cytat:rObO87 napisał:
Czy użycie repeat-until zamiast for-to-do spowoduje jakieś różnice, czy też można powiedzieć, że jest to to samo?
W działaniu nie będzie różnic, tyle że kod źródłowy będzie przejrzyście wyglądał i będzie krótszy :)
Pozdrawiam i zapraszam na *** www.windowsik.prv.pl ***
w c++ masz do wyboru 3 pętle, for jest najbardziej rozbudowana, ale za pomocą wszystkich można zrobić to samo :) można ręcznie przecież wartość zmiennej podnosić itp.
w Delphi tak samo, możesz zrobić niekończącą się pętle while i dodatkowe 2 linijki na powyższanie wartości zmiennej i warunek kiedy pętla ma zrobić break :)
MinGW Developer Studio (www.parinya.ca) - najlepsze darmowe środowisko programistyczne
www: www.delphi.9o.pl
mail: ssspine@go2.pl
GG: 5229533
cytat:Spine napisał:
w Delphi tak samo, możesz zrobić niekończącą się pętle while i dodatkowe 2 linijki na powyższanie wartości zmiennej i warunek kiedy pętla ma zrobić break :)
Nie rób tak. To rozwiązanie co prawda zadziała, ale nie powinno się tak programować. Chodzi o to, że ktoś, kto czyta kod źródłowy programu (osoba sprawdzająca lub nawet Ty sam po kilku miesiącach) może nie zorientować się, o co tak naprawdę chodzi i kiedy ta pętla ma się zakończyć. Od tego jest warunek wejścia w pętlę, by go używać.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Napisałem i prosiłbym o sprawdzenie :)
program iloczyn;
uses crt;
var
n,x,y:word;
begin
clrscr;
writeln('Program obliczajacy iloczyn n kolejnych liczb naturalnych');
writeln('Podaj n: n= ');
readln(n);
y:=1;
x:=1;
repeat x:=x*y;
y:=y+1;
until y=n+1;
end;
writeln('Iloczyn',n'kolejnych liczb naturalnych wynosi: ',x);
end.
---------------------------------------------------------------------------------------------------
Pentium 4 2,6 GHz HT; Radeon 9600 XT Sapphire; 512 DDR 400 MHz Kingston; Asus P4P800; Win XP Professional + Service Pack 2
program iloczyn;
uses crt;
var
n,x,y:word;
begin
clrscr;
writeln('Program obliczajacy iloczyn n kolejnych liczb naturalnych');
writeln('Podaj n: n= '); {lepiej by bylo write}
readln(n);
y:=1;
x:=1;
repeat x:=x*y;
y:=y+1;
until y=n+1;
end;
writeln('Iloczyn ',n,' kolejnych liczb naturalnych wynosi: ',x);
readln; {zeby mozna bylo zobaczyc wyniki}
end.
Teraz będzie działać, ale lepiej zamiast repeat-until lepiej użyć for-to-do:
for y:=1 to n do x:=x*y;
Pozdrawiam i zapraszam na *** www.windowsik.prv.pl ***
Wielkie dzięki.
Czy użycie repeat-until zamiast for-to-do spowoduje jakieś różnice, czy też można powiedzieć, że jest to to samo?
---------------------------------------------------------------------------------------------------
Pentium 4 2,6 GHz HT; Radeon 9600 XT Sapphire; 512 DDR 400 MHz Kingston; Asus P4P800; Win XP Professional + Service Pack 2
cytat:rObO87 napisał:
Czy użycie repeat-until zamiast for-to-do spowoduje jakieś różnice, czy też można powiedzieć, że jest to to samo?
W działaniu nie będzie różnic, tyle że kod źródłowy będzie przejrzyście wyglądał i będzie krótszy :)
Pozdrawiam i zapraszam na *** www.windowsik.prv.pl ***
w c++ masz do wyboru 3 pętle, for jest najbardziej rozbudowana, ale za pomocą wszystkich można zrobić to samo :) można ręcznie przecież wartość zmiennej podnosić itp.
w Delphi tak samo, możesz zrobić niekończącą się pętle while i dodatkowe 2 linijki na powyższanie wartości zmiennej i warunek kiedy pętla ma zrobić break :)
MinGW Developer Studio (www.parinya.ca) - najlepsze darmowe środowisko programistyczne
www: www.delphi.9o.pl
mail: ssspine@go2.pl
GG: 5229533
cytat:Spine napisał:
w Delphi tak samo, możesz zrobić niekończącą się pętle while i dodatkowe 2 linijki na powyższanie wartości zmiennej i warunek kiedy pętla ma zrobić break :)
Nie rób tak. To rozwiązanie co prawda zadziała, ale nie powinno się tak programować. Chodzi o to, że ktoś, kto czyta kod źródłowy programu (osoba sprawdzająca lub nawet Ty sam po kilku miesiącach) może nie zorientować się, o co tak naprawdę chodzi i kiedy ta pętla ma się zakończyć. Od tego jest warunek wejścia w pętlę, by go używać.