В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
gilewich
gilewich
07.04.2022 20:52 •  Информатика

Условие: нужно ввести 4 значное целое число и определить является ли оно палиндромом("перевертышем"). для определения отдельных разрядов числа используется операции div и mod что в паскале обозначает: program n1; var a,b,i,q,l: integer; constlimit=4 begin readln(a); l: =a; b: =0; while a> 0 do begin q: =a mod 10; b: =b*10+q; a: =a div 10; end; if(l=b)then writeln('yes')else writeln('no'); end. 1. while a> 0 do 2. q: =a mod 10; b: =b*10+q; a: =a div 10; я не совсем понимаю, для чего в переменную b мы присвоили значение где b умножено на 10 и к произведению прибавлена q? 3. l: =a; b: =0; и я не понимаю, почем мы здесь присвоили b значение равное 0? объясните !

Ответ:
olinka6
olinka6
05.07.2020 14:53
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 находится число, перевернутое по отношению к исходному.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?