| Autor |
"PASCAL program sumujący liczby prarzyste" |
|
|
młody.18
|
|
Wysłana - 8 listopad 2006 22:49 | zgłoś naruszenie regulaminu
Witam jestem na 1 roku informatyki i mam problem z programem który musi robic następujace rzeczy:
-zsumowac kilka kolejno wprowadzonych liczb
-zsumowac tylko liczby parzyste
-zsumowac liczby nieparzyste
-wyswietlic ilosc liczb parzystych i nieparzystych
Z góry dziekuje za pomoc
| |
|
 |
|
|
|
Krzynio_85
|
|
1) Robisz jakas petle np. repeat-until, w ktorej zczytujesz kolejno liczby (readln(liczba);) a nastepnie dodajesz je do siebie (suma:=suma+liczba) tak dlugo az np. zostanie wprowadzone 0 (zero). Potem wystarczy juz tylko wyswietlic sume.
2) To samo co w 1 tyle ze dodajesz tylko liczby parzyste, czyli takie ktorych reszta z dzielenia przez 2 rowna sie 0 (zero) - if (liczba mod 2=0) then suma:=suma+liczba;
3) Analogicznie do 2...
4) Liczysz ilosc wystapien parzystych i nieparzystych tzn. gdy liczba jest parzysta to po dodaniu jej do "sumy" dokladasz jeszcze parzyste:=parzyste+1; (analogicznie nieparzyste)
_______________________________
[http://www.elenet.com.pl] |
Znawca -
 |
|
|
|
kortyg
|
|
Zamiast wpisywać,program losuje liczby.
uses crt;
var tab:array[1..20]of integer;
tab_np:array[ 1..20 ]of integer;
tab_p:array[ 1..20 ]of integer;
i,j,k,suma_p,suma_np:integer;
begin
j:=1;k:=1;suma_p:=0;suma_np:=0;
clrscr;
Randomize;
for i:=1 to 20 do
begin
tab[ i ]:= Random(100);
if tab[ i ] mod 2=0 then begin tab_p[ j ]:=tab[ i ];j:=j+1;end
else begin tab_np[ k ]:=tab[ i ];k:=k+1;end;
end;
writeln('zawartosc tablicy:');
for i:=1 to 20 do
write(tab[ i ],' ');writeln;
writeln('liczby parzyste');
for i:=1 to j-1 do
begin
write(tab_p[ i ],' ');
suma_p:=suma_p+tab_p[ i ];
end;;writeln;
writeln('liczby nieparzyste');
for i:=1 to k-1 do
begin
write(tab_np[ i ],' ');
suma_np:=suma_np+tab_np[ i ];
end; ;writeln;
writeln('suma parzystych= ',suma_p);
writeln('suma nieparzystych= ',suma_np);
readkey;
end.
_______________________________
Ed
|
Znawca -
 |
|
|
|
młody.18
|
|
hej wielkie dzieki!!! Biore sie za pisanie!!
|
 |
|
|
|
młody.18
|
|
hej
napisalem jak narazie tylko pierwsza czesc taka która sumuje 5 kolejnych liczb i nie wiem jak dalej pomuzcie bo zwariuje
Program zajeciaa
Uses Crt;
Var
x : Real; //LICZBA PODANA PRZEZ UZYTKOWNIKA
i : Byte; //ZMIENNA STERUJACA PETLA
suma : Real; //SUMA PODAWANYCH LICZB
BEGIN
Textcolor(white);
WriteLn('Liczy sume 5 liczb.');
suma := 0;
For i:=1 To 5 Do
begin
Write('Podaj liczbe ',i,':');
ReadLn(x);
suma := suma + x;
end;
WriteLn('Suma liczb = ',suma:0:2);
Readln
END
|
 |
|
|
|
xitami
|
|
A co to znaczy kilku?
Można umówić się, że:
1 zero oznacza koniec,
2 po pierwsze program pyta ile będzie tych liczb
3 czytamy aż do eof (Ctrl-Z)
4 po wprowadzeniu kolejnej, za każdym razem pokazujemy wyniki
Od tego zależy także skąd będziemy wiedzieli ile było liczb.
Widzę, że sumę potrafisz liczyć, Kortyg pokazał ci kiedy należy powiększyć zmienną SUMA_P (suma liczb parzystych)
W programie Kortyga zbędna jest zmienna SUMA_NP., bo przecie SUMA-SUMA_P=...
Trzeba dodać jeszcze licznik liczb parzystych. |
 |
|
|
|
miszcz0
|
|
pomine tutaj deklaracje zmiennych i to co koledzy napisali, masz to wziac pod uwage i dostosowac do swojego programu:
-pytasz sie ile liczb
write('podaj ilosc liczb');
wczytujesz ilosc liczb:
readln(ilosc); -ilosc nazwa zmiennej
wczytujemy z klawiatury liczby po kolei
zerujemy liczniki ilosc liczb parzystych i nieparzystych oraz ich sumy:
iloscp:=0;
iloscn:=0;
suma:=0;
sumap:=0;
suman:=0;
for i:=1 to ilosc do
begin
writeln('podaj liczbe o indeksie[',i,']=');
readln(liczba );
suma:=suma+liczba ;
if (liczba mod 2=0) then begin
iloscp:=iloscp+1
sumap:=sumap+liczba ;
end
else begin
iloscn:=iloscn+1
suman:=suman+liczba ;
end
end;
i teraz jak chcesz wyswietlic to we write lub writeln wypisujesz poszczegolne zmienne:
suma - liczy sume wszystkich liczb wprowadzonych z klawiatury
sumap- suma parzystych
suman- suma nieparzystych
iloscp - ilosc parzystych liczb
iloscn - ilosc np liczb
chyba proste?
_______________________________
...xXx...
______________________
...ino ano tej ze hej ok!... |
 |
|
|
|
młody.18
|
|
Proste?powiem tylko tyle -biore sie za nauke
|
 |
|