1. Дано натуральное число n (n 9999). Определить, является ли оно палиндромом («перевертышем»), с учетом четырех цифр. Например, палиндромами являются числа: 2222, 6116, 0440.
Начнем не с программы, а с ручной трассировки логики решения. Это важно, очень важно. Мы с Вами с помощью этого приема должны достичь того, чтобы при написании программы у Вас одновременно складывался «зрительный образ» ее работы, Вы видели ее работу, причем это должна быть не статическая «картинка», а динамическая. Трассировка обычно выполняется для конкретных значений входных параметров задачи.
Итак, у нас четырехзначное число, поэтому переменная оператора For изменяется от 1 до 4. В переменной с именем m хранится «остаток» числа, в первоначальный момент времени он равен введенному числу. В переменной с именем г формируем значение числа — «перевертыша». Основными операциями являются: r:=10*r + т Mod 10 (добавление очередной цифры к числу «перевертышу») и т:=т Div 10 (изменение проверяемого числа). Процедура трассировки приведена в таблице. После ее выполнения написание программы — «техническая работа».
Program Му 7_1;
Var
n,m,r,i:Integer;
Begin
WriteLn('Введите целое число, не большее 9999');
ReadLn (n);
m : =n ;
r : = 0 ;
For i: =1 to 4 do
Begin {так как число четырехзначное}
r : =r * 10 + m Mod 10;
m : =m Div 10;
End;
If r=n then
WriteLn ('ДА')
Else WriteLn('НЕТ');
ReadLn;
End.
Измените программу так, чтобы была возможность обрабатывать целые числа из диапазона Longint.
2. Даны натуральные числа n, k (n, k<9999). Из чисел от n до k выбрать те, запись которых содержит ровно три одинаковых цифры. Например, числа 6766, 5444, 0006, 0060 содержат ровно три одинаковых цифры.
Если данное число содержит ровно три одинаковых цифры, то только одна из цифр отличается от остальных, то есть возможны четыре случая.
If ((al=a2) And (al=a3) And (al<>a4)) Or {первое условие)
((al=a2) And (al=a4) And (al<>a3)) Or {второе условие}
((al=a3) And (al=a4) And (al<>a2)) Or {третье условие)
((a2=a3) And (a2=a4) And (a2<>al)) {четвертое условие}
Then WriteLn (i:5);
End;
ReadLn;
End.
Измените программу для обработки 4, 5 или 6-значных чисел. Если Ваше решение будет идейно копировать приведенное, то это хорошо, но не очень. Все же оно будет достаточно громоздким.
Задания для самостоятельной работы:
1. Найти все двузначные числа, в которых есть цифра N или само число делится на N.
2. Составить программу возведения натурального числа в квадрат, используя следующую закономерность:
12=1
22 =1 + 3
З2 =1 + 3 + 5
42 =1 + 3 + 5 + 7
. . . n2 =1+3+5+7+9+...+2п-1
3. Составить программу вычисления суммы кубов чисел от 25 до 55.
4. Сумма цифр трехзначного числа кратна 7, само число также делится на 7. Найти все такие числа.
5. Среди двузначных чисел найти те, сумма цифр которых равна n (0 n 18) и число делится без остатка на числа q.
6. Дано натуральное число n , является ли оно степенью числа 3?
7. Дано натуральное число n, входит ли цифра 3 в запись числа n2?
8. Найти сумму положительных нечетных чисел, меньших 100.
9. Найти сумму целых положительных чисел из промежутка от А до В, кратных 4 (значения переменных А и В вводятся с клавиатуры).
10. Найти сумму целых положительных чисел, больших 20, меньших 100, кратных 3 и заканчивающихся на 2, 4 или 8.
11. В трехзначном числе зачеркнули первую цифру слева, когда полученное двузначное число умножили на 7, то получили данное число. Найти это число.
12. Сумма цифр трехзначного числа кратна 7, само число также делится на 7. Найти все такие числа.
13. Среди четырехзначных чисел выбрать те, у которых все четыре цифры различны.
14.Составьте программу нахождения наименьшего общего кратного двух натуральных чисел.
15.По заданному значению х вычислить значение у, представив многочлен в виде
у=х10+2х9+3х8+…+10х+11
Контрольные вопросы:
1. Как называются программы, в основе которых лежит структура повторения?
2. Какие операторы циклов вам известны?
3. C помощью каких служебных слов записывается цикл с параметром?
4. Что может использоваться в качестве параметра цикла for?
5. Какой тип должен иметь параметр цикла в цикле for?
6. Чему равно значение параметра цикла for после завершения цикла?
7. Можно ли войти в тело цикла for, минуя его заголовок?
8. Допустим ли выход из тела цикла for?
9. Пусть цикл записан в виде:
for v:=e1 to e2 do S;
как называется e1, e2 и v?
10.Сколько раз выполнится оператор s, если e1=e2, а цикл записан в виде
for v:=e1 to e2 do S;
- e1 e2;
- e1 e2;
11.Аналогично рассмотреть for v:=e1 downto e2 do S;