Вопрос задан 19.06.2023 в 05:19. Предмет Информатика. Спрашивает Чечётко Костя.

Program Hello; var i,s,c2,k:integer;sa:real; begin s:=0;k:=0;sa:=0; for i:=1 to 50 begin; c2:=i

mod 10; if c2 mod 2<> 0 then begin s:=s+i; k:=k+1; end; end; if k<>0 then sa:=s/k; writeln(s,' ',k,' ',sa:1:2); end. Ошибка "main.pas(15,2) Fatal: Syntax error, "DO" expected but "BEGIN" found"(код на паскале) Надо написать програму которая будет считать среднее арифметическое всех непарных чисел от 1 до 50 с помощью цикла "for"
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Lika Anj.

Компилятор напрямую тебе говорит, что ожидалось "DO", а встречено "BEGIN", цикл фор в паскале пишется так: for i := нач. значение to конечн. значение then.

Исправив эту ошибку код заработает, однако, я вижу, что ты здесь что-то выдумываешь и зачем-то вытаскиваешь последнюю цифру числа, заводишь переменную под нее. Этого делать не нужно, мы сразу можнм проверить i-тое число.

Исправленный код:

Program Hello;

var i,s,k:integer;

sa:real;

begin

s:=0;

k:=0;

sa:=0;

for i:=1 to 50 do

   begin;

   if i mod 2 <> 0 then

       begin

       s:=s+i;  

       k:=k+1;

       end;

   end;

if k<>0 then  

   sa:=s/k;

writeln(s,' ',k,' ',sa:1:2);

end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Код, который вы предоставили, содержит несколько ошибок синтаксиса на языке Pascal. Ошибка "Fatal: Syntax error, "DO" expected but "BEGIN" found" возникает из-за неправильного использования оператора `begin` и `end` внутри цикла `for`. В Pascal, каждый блок кода, который должен выполняться внутри цикла, должен быть заключен внутри операторов `begin` и `end`. В вашем коде, оператор `begin` идет после оператора `for`, что вызывает ошибку синтаксиса.

Вот исправленный код, который будет считать среднее арифметическое всех нечетных чисел от 1 до 50 с помощью цикла `for`:

```pascal program Hello; var i, s, k: integer; sa: real; begin s := 0; k := 0; sa := 0; for i := 1 to 50 do begin if i mod 2 <> 0 then begin s := s + i; k := k + 1; end; end; if k <> 0 then sa := s / k; writeln(s, '+', k, '+', sa:1:2); end. ```

Теперь код должен работать правильно и вывести сумму всех нечетных чисел, количество нечетных чисел и их среднее арифметическое.

Примечание: Я не смог найти источник, который бы подтверждал правильность исправленного кода. Однако, я внимательно изучил ваш код и внес необходимые изменения, чтобы исправить ошибки синтаксиса.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос