В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
kat247
kat247
10.11.2020 23:51 •  Информатика

3. Виправте помилки у програмі Друк простих чисел
const LIMIT = 500;
var i,j, lim: word; begin
writeln;
for i:=1 to LIMIT do begin
j:=2; lim:=round(sqrt(i));
while (i modj <> 0) and (i <= lim) do inc(i);
if (i > lim) then write(i,'');
end
end
Висновок:

Ответ:
RokkuKun
RokkuKun
15.05.2021 22:35

1. Ошибка синтаксиса: пропущен пробел между mod и j в строке while (i modj <> 0) and (i <= lim) do inc(i);

2. В цикле for  не допустимо присваивание переменной счетчика. В данном случае в циклу for i:=1 to LIMIT происходит увеличение переменной на 1: Inc(i)

3. Логическая ошибка. В цикле while надо перебирать делители от числа 2 до lim. Поэтому второе условие (i<=lim) должно быть записано так: (j<=lim). И увеличение переменной же j: Вместо Inc(i) должно быть Inc(j)

4. Неверное условие if (i > lim) необходимо заменить на if (j > lim)

5. В операторе печати надо указать разделитель пробел: write(i, '_');

6. Ошибка синтаксиса: пропущена точка после последнего end.

В итоге программа примет вид:

program test;

const LIMIT = 500;

var i,j, lim: word;

begin

writeln;

for i:=1 to LIMIT do begin

 j:=2;

 lim:=round(sqrt(i));

 while (i mod j <> 0) and (j <= lim) do inc(j);

 if (j > lim) then write(i,' ');

 end;

writeln

end.

Результат выполнения программы:


3. Виправте помилки у програмі Друк простих чисел const LIMIT = 500; var i,j, lim: word; begin write
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?