Member
Статус: Не в сети Регистрация: 12.06.2003 Откуда: Щёкино
Помогите с домашкой по Информатике, кто шарит в Паскале. Задание такое:"Найти сумму всех чётных элементов массива, кратных заданному числу"
Вот я сделал, но что-то не прёт, работает, но сумму не находит. По-моему она находио кол-во чисел в массиве, но не всегда.
Вот что я сделал:
Program E1;
Const n=6;
Var a:Array [1..n] of integer; i,k,b:integer;
begin Randomize;
writeln('Введите заданное число');
readln(k);
b:=0;
for i:=1 to n do
a[i]:=random(3);
for i:=1 to n do
write(a[i],' ');
if (a[i]mod k=0) and (a[i] mod 2=0) then b:=b+i;
writeln(b);
readln;
end.
Member
Статус: Не в сети Регистрация: 17.10.2003 Откуда: Киев
Программист из меня хреновый, но по-моему должно быть так:
diMIDroll писал(а):
Const n=6; Var a:Array [1..n] of integer; i,k,b:integer; begin Randomize; writeln('Введите заданное число'); readln(k); b:=0; for i:=1 to n do a[i]:=random(9)+1; for i:=1 to n do begin write(a[i],' '); if (a[i]mod k=0) and (i mod 2=0) then inc(b); end; writeln(b); readln; end.
Ты уверен, что на четность нужно проверять a[i]? По-моему проверять нужно i (если я не прав, подправь код).
Последний раз редактировалось LS 12.11.2003 20:02, всего редактировалось 1 раз.
2LS да не, по ходу программист из тебя нормальный, суть понял, тока с i mod 2=0 просчитался. Итак, мой вариант
Const n=6;
Var a:Array [1..n] of integer; i,k,b:integer;
begin
Randomize;
writeln('Введите заданное число');
readln(k);
b:=0;
for i:=1 to n do
a[i]:=random(9)+1;
for i:=1 to n do
begin;
write(a[i],' ');
if (a[i]mod k=0) and (a[i] mod 2=0) then
inc(b);
end;
writeln(b);
readln;
end.
Const n=6;
Var a:Array [1..n] of integer; i,k,b:integer;
begin
Randomize;
writeln('Введите заданное число');
readln(k);
b:=0;
for i:=1 to n do
a[i]:=random(9)+1;
for i:=1 to n do
begin;
write(a[i],' ');
if (a[i]mod k=0) and (a[i] mod 2=0) then
b=b+a[i];
end;
writeln(b);
readln;
end.
Member
Статус: Не в сети Регистрация: 03.01.2003 Откуда: Ростов-на-Дону
короче Final Version:
Const n=6;
Var a:Array [1..n] of integer; i,k,b:integer;
begin
Randomize;
writeln('Введите заданное число');
readln(k);
b:=0;
for i:=1 to n do
a[i]:=random(9)+1;
for i:=1 to n do
begin;
write(a[i],' ');
if (a[i]mod k=0) and (a[i] mod 2=0) then
b:=b+a[i];
end;
writeln(b);
readln;
end.
_________________ Just Zerg! Остановим деградацию русского языка, скажем нет удафкомовской лексике!!
Member
Статус: Не в сети Регистрация: 12.06.2003 Откуда: Щёкино
Ой народ, как вы все здесь запарились. Извеняюсь что долго не появлялся, девахе у кореша диск резал.
Короче перед этой строчкой "if (a[i]mod k=0) and (a[i] mod 2=0) then b:=b+i; " надо было вставить "for i:=1 to n do ".
И саму строчку "if (a[i]mod k=0) and (a[i] mod 2=0) then b:=b+i; " исправить на "if (a[i]mod k=0) and (a[i] mod 2=0) then b:=b+a[i]; ".
Но, но ВСЕМ, ВСЕМ, ВСЕМ ОГРОМНОЕ СМАСИБО ЗА ПОМОЩЬ.
Последний раз редактировалось diMIDroll 12.11.2003 22:36, всего редактировалось 1 раз.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения