• Найдите ошибку в программе 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.

Ответы 3

  • Привет
    • Автор:

      jesusxxce
    • 6 лет назад
    • 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;beginwrite('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.
    • Автор:

      apple0nmq
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years