Var i,n,s:byte; //Здесь мы описываем переменные i- флаг, n - наше число N, s- переменная "деления" label l1; // Здесь мы begin l1:i:=0; //Установка метки на начало программы и установка флага на первоначальное значение - НЕТ repeat //проверка N на подлинность if i=1 then write('Не верный ввод данных!Повторите ввод:') else write('Введите номер N:'); // Условие при котором в первый раз выводится предложение где нас просят ввести N, а если же мы её ввели не правильно выводится ошибка и опять нас просят ввести N так продолжается пока мы не введем правильный N readln(n); i:=1; // Установка флага - ДА untill (n>=1) and (n<100); // Ограничения N writeln('Ваше множество:');// Вывод множества; for i:=n to 99 do // из условия следует что числа будут в диапазоне от 1 до 99 т.к они натуральные и двухзначные begin s:=i mod 11; //Условие при котором Цифры повторяются т.е. делятся на 11 if (s<>0) then write(i,'; '); // Проверка условия выше; end; writeln; write('Повторить программу?(1-Да, 0-Нет)-');// Предложение о том сделать ли еще раз программу read(i); if (i=1) then goto L1; // опять же установка флага и переход к метке L1; если же условие не выполняется, то конец программы end.
While a>0 do begin q:=a mod 10; b:=b*10+q; a:=a div 10; end;
Этот фрагмент формирует число, обратное заданному числу а, это число в конце будет находится в ячейке b. Для примера рассмотрим короткое число. Пусть а=123 123>0 поэтому все команды будут выполняться: q:=a mod 10; Остаток от деления 123 на 10: q=3 b:=b*10+q; Записываем ее в b b=0*10+3=3 (Вот поэтому сначала b должен быть 0) a:=a div 10; Откидываем от а последний разряд: а=12 (берем целую часть деления 123 на 10) идем в начало цикла 12>0 поэтому все команды будут выполняться: q:=a mod 10; Остаток от деления 12 на 10: q=2 b:=b*10+q; Записываем ее в b b=3*10+2=32 a:=a div 10; Откидываем от а последний разряд: а=1 (берем целую часть деления 12 на 10) идем в начало цикла 1>0 поэтому все команды будут выполняться: q:=a mod 10; Остаток от деления 1 на 10: q=1 b:=b*10+q; Записываем ее в b b=32*10+1=321 a:=a div 10; Откидываем от а последний разряд: а=0 (берем целую часть деления 1 на 10) идем в начало цикла. Условие 0>0 не выполняется, переходим к командам после цикла. А в b находится число, перевернутое по отношению к исходному.
i,n,s:byte; //Здесь мы описываем переменные i- флаг, n - наше число N, s- переменная "деления"
label l1; // Здесь мы
begin
l1:i:=0; //Установка метки на начало программы и установка флага на первоначальное значение - НЕТ
repeat //проверка N на подлинность
if i=1 then
write('Не верный ввод данных!Повторите ввод:')
else
write('Введите номер N:'); // Условие при котором в первый раз выводится предложение где нас просят ввести N, а если же мы её ввели не правильно выводится ошибка и опять нас просят ввести N так продолжается пока мы не введем правильный N
readln(n);
i:=1; // Установка флага - ДА
untill (n>=1) and (n<100); // Ограничения N
writeln('Ваше множество:');// Вывод множества;
for i:=n to 99 do // из условия следует что числа будут в диапазоне от 1 до 99 т.к они натуральные и двухзначные
begin
s:=i mod 11; //Условие при котором Цифры повторяются т.е. делятся на 11
if (s<>0) then write(i,'; '); // Проверка условия выше;
end;
writeln;
write('Повторить программу?(1-Да, 0-Нет)-');// Предложение о том сделать ли еще раз программу
read(i);
if (i=1) then goto L1; // опять же установка флага и переход к метке L1; если же условие не выполняется, то конец программы
end.
begin
q:=a mod 10;
b:=b*10+q;
a:=a div 10;
end;
Этот фрагмент формирует число, обратное заданному числу а, это число в конце будет находится в ячейке b. Для примера рассмотрим короткое число. Пусть а=123
123>0 поэтому все команды будут выполняться:
q:=a mod 10; Остаток от деления 123 на 10: q=3
b:=b*10+q; Записываем ее в b b=0*10+3=3 (Вот поэтому сначала b должен быть 0)
a:=a div 10; Откидываем от а последний разряд: а=12 (берем целую часть деления 123 на 10)
идем в начало цикла
12>0 поэтому все команды будут выполняться:
q:=a mod 10; Остаток от деления 12 на 10: q=2
b:=b*10+q; Записываем ее в b b=3*10+2=32
a:=a div 10; Откидываем от а последний разряд: а=1 (берем целую часть деления 12 на 10)
идем в начало цикла
1>0 поэтому все команды будут выполняться:
q:=a mod 10; Остаток от деления 1 на 10: q=1
b:=b*10+q; Записываем ее в b b=32*10+1=321
a:=a div 10; Откидываем от а последний разряд: а=0 (берем целую часть деления 1 на 10)
идем в начало цикла. Условие 0>0 не выполняется, переходим к командам после цикла. А в b находится число, перевернутое по отношению к исходному.