Некорректно работает программа - Turbo Pascal
Формулировка задачи:
Есть программа с использованием множеств. Задание: напечатайте все целые числа, лежащие в диапазоне от 5 до 100, которые представимы в виде 5n+7m, где n и m – целые числа (m, n >=0). Код есть, программа работает, но выводит дублированные значения. Такого быть не должно. Как можно исхитриться со множеством ещё, чтобы программа выполняла свою работу как надо?
Листинг программы
- program ononetakrabootaet;
- var
- m,n,i,j,a:integer;
- dig:set of 5..100;
- begin
- writeln('Write max n:');
- readln(i);
- Writeln('write max m:');
- readln(j);
- dig:=[5..100];
- for n:=1 to i do
- for m:=1 to j do begin
- a:=5*n+7*m;
- if a in dig then write (a,' ');
- end;
- readln
- end.
Решение задачи: «Некорректно работает программа»
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
, которая позволяет пользователю ввести данные для продолжения работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д