Некорректно работает программа - Turbo Pascal
Формулировка задачи:
Есть программа с использованием множеств. Задание: напечатайте все целые числа, лежащие в диапазоне от 5 до 100, которые представимы в виде 5n+7m, где n и m – целые числа (m, n >=0). Код есть, программа работает, но выводит дублированные значения. Такого быть не должно. Как можно исхитриться со множеством ещё, чтобы программа выполняла свою работу как надо?
Решение задачи: «Некорректно работает программа»
textual
Листинг программы
uses crt; var m,n,a:integer; dig:set of 5..100; begin clrscr;//раз уж Турбо dig:=[]; for m:=1 to (100-7) div 5 do for n:=1 to (100-5) div 7 do begin a:=5*m+7*n; dig:=dig+[a]; end; for m:=12 to 100 do if m in dig then write (m,' '); readln end.
Объяснение кода листинга программы
- В начале кода используется директива
uses crt;
, которая позволяет использовать функции и структуры из стандартной библиотеки Turbo Pascal. - Далее объявляются переменные
m
,n
иa
типаinteger
. - Объявляется набор
dig
типаset of 5..100
, который представляет собой множество чисел от 5 до 100 включительно. - В цикле
for
происходит инициализация и генерация чиселm
иn
. - Затем происходит расчет значения переменной
a
как суммыm
иn
. - Полученное значение
a
добавляется в множествоdig
. - После этого происходит проверка условия
if m in dig then write (m, ' ')
, гдеwrite
- это функция записи строки в файл, а(m, ' ')
- это запись значения переменнойm
и пробела в файл. - Цикл
for
завершается, и программа продолжает выполнение. - В конце программы происходит вызов функции
readln
, которая позволяет пользователю ввести данные для продолжения работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д