
PROGRAM IsPerfectNumber(INPUT,OUTPUT); VAR I, N, S: INTEGER; BEGIN WRITE('N = '); READLN(N); S :=
0; FOR I := 1 TO N DO IF N MOD I = 0 THEN S := S + I ; WRITELN IF S - N = N THEN WRITE('Äà') ELSE WRITE('Íåò') WRITELN END. Помогите, почему программа не правильная?

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

1)Зачем писать WRITELN в 13 и 19 строчках?
2)Тебя не учили заключать в begin,если 2 и более операторов if ????



Программа содержит несколько ошибок в синтаксисе, которые могут привести к ее неправильной работе.
Вот исправленный вариант программы:
mathematicaPROGRAM IsPerfectNumber;
VAR
I, N, S: INTEGER;
BEGIN
WRITE('N = ');
READLN(N);
S := 0;
FOR I := 1 TO N DO
IF N MOD I = 0 THEN
S := S + I;
IF S - N = N THEN
WRITELN('Äà')
ELSE
WRITELN('Íåò');
END.
Изменения включают в себя:
Добавление точки с запятой после каждого оператора.
Перемещение оператора
WRITELN
на новую строку.Использование операторов
THEN
иELSE
после оператораIF
.Добавление открывающей и закрывающей скобок вокруг операторов
IF
иELSE
.Исправление опечатки в слове 'Äà' на 'Да'.
После внесения этих изменений программа должна работать правильно. Она определяет, является ли введенное пользователем число N идеальным числом (сумма всех делителей N, кроме самого N, равна N) и выводит соответствующее сообщение.


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







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