Построение множества из целых чисел, кратных 7, но не кратных 5 и 9 из диапазона от 1 до 200 - Free Pascal
Формулировка задачи:
Построить множество, состоящее из целых чисел, кратных 7, но не кратных 5 и 9 из диапазона от 1 до 200.
чувствую налажал с ифами и нужно заменить их циклом со счетчиком, но вот как это сделать?
const a=200;
label 1;
var mnoz: set of 1..a;
n,b,g,h,i: integer;
begin
n:=0;
for i:=1 to a do begin
b:=n-(n/7)*7;
if b=0 then
g:= n - (n/9)*9;
else goto 1;
if g <> 0 then
h:= n-(n/5)*5;
else goto 1;
if h <> 0 then
mnoz:= mnoz+n;
else goto 1;
1: n:=n+1;
end;
writeln(mnoz);
readln;
end.Решение задачи: «Построение множества из целых чисел, кратных 7, но не кратных 5 и 9 из диапазона от 1 до 200»
textual
Листинг программы
const a = 200; var m : set of 1 .. a; i : integer; begin for i := 1 to a do if (i mod 7 = 0) and (i mod 5 <> 0) and (i mod 9 <> 0) then m := m + [i]; for i in m do write(i : 4); end.
Объяснение кода листинга программы
- Объявляются две переменные:
a(целочисленная константа со значением 200) иm(множество, в котором будут храниться искомые числа). - Переменная
iинициализируется значением 1. - Запускается цикл, который будет выполняться до тех пор, пока значение переменной
iменьше или равно 200. - Внутри цикла проверяется, делится ли текущее значение
iна 7 без остатка. - Если условие выполняется, то проверяется, делится ли текущее значение
iна 5 без остатка. - Если условие не выполняется, то проверяется, делится ли текущее значение
iна 9 без остатка. - Если все три условия выполняются, то текущее значение
iдобавляется в множествоm. - После завершения первого цикла начинается второй цикл, который перебирает все элементы множества
m. - Внутри второго цикла выводится на экран значение каждого элемента множества
m, при этом каждое число выводится в отдельной строке, а перед выводом числа выводится его порядковый номер в множестве. - Код завершается.