Задать вопрос
1 ноября, 00:19

Найдите ошибку в программе Pascal

Задание: Дано:a, b, c, d.

Найти: среднее значение чисел принадлежащих интервалу (1; 30) и кратных 3.

program zaschita;

var s, k, a, b, c, d:integer; sr:real;

begin

write ('a=') ; readln (a) ;

write ('b=') ; readln (b) ;

write ('c=') ; readln (c) ;

write ('d=') ; readln (d) ;

s:=0;

k:=0;

a:=1;

while (a<=30) do

begin

if (a mod 3=0) then

s:=s+a;

k:=k+1;

end;

b:=1;

while (b<=30) do

begin

if (b mod 3=0) then

s:=s+b;

k:=k+1;

end;

c:=1;

while (c<=30) do

begin

if (c mod 3=0) then

s:=s+c;

k:=k+1;

end;

d:=1;

while (d<=30) do

begin

if (d mod 3=0) then

s:=s+d;

k:=k+1;

end;

sr:=s/k;

writeln ('среднее значение=', sr) ;

end.

+1
Ответы (1)
  1. 1 ноября, 01:24
    0
    1. Если числа a, b, c, d вводятся с клавиатуры, то их просто нужно проверить на принадлежность интервалу (1; 30), но не присваивать им 1!

    2. Циклы while не нужны, они зацикливают программу.

    3. Так как увеличение значения k и суммы нужно выполнять одновременно, то есть при выполнении условия, то нужно было эти команды заключить в операторные скобки begin ... end

    Примерный вариант программы:

    program z;

    var a, b, c, d, k, s:integer;

    begin

    write ('a=') ; readln (a) ;

    write ('b=') ; readln (b) ;

    write ('c=') ; readln (c) ;

    write ('d=') ; readln (d) ;

    k:=0; s:=0;

    if (a>1) and (a<30) and (a mod 3=0) then begin k:=k+1; s:=s+a; end;

    if (b>1) and (b<30) and (b mod 3=0) then begin k:=k+1; s:=s+b; end;

    if (c>1) and (c<30) and (c mod 3=0) then begin k:=k+1; s:=s+c; end;

    if (d>1) and (d<30) and (d mod 3=0) then begin k:=k+1; s:=s+d; end;

    if k=0 then writeln (Not solution') else writeln (s/k) ;

    end.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Найдите ошибку в программе Pascal Задание: Дано:a, b, c, d. Найти: среднее значение чисел принадлежащих интервалу (1; 30) и кратных 3. ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы