Некорректно работает программа - 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.

Объяснение кода листинга программы

  1. В начале кода используется директива uses crt;, которая позволяет использовать функции и структуры из стандартной библиотеки Turbo Pascal.
  2. Далее объявляются переменные m, n и a типа integer.
  3. Объявляется набор dig типа set of 5..100, который представляет собой множество чисел от 5 до 100 включительно.
  4. В цикле for происходит инициализация и генерация чисел m и n.
  5. Затем происходит расчет значения переменной a как суммы m и n.
  6. Полученное значение a добавляется в множество dig.
  7. После этого происходит проверка условия if m in dig then write (m, ' '), где write - это функция записи строки в файл, а (m, ' ') - это запись значения переменной m и пробела в файл.
  8. Цикл for завершается, и программа продолжает выполнение.
  9. В конце программы происходит вызов функции readln, которая позволяет пользователю ввести данные для продолжения работы программы.

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы