решение 8.1 - Гимназия №1 имени К.Калиновского г.Свислочь

advertisement
Информатика
8 класс, решения
1. Дано четырёхзначное число. Найти число, полученное
при прочтении его цифр справа налево. Например,
дано a=4579, получим b=9754.
var a, a1, a2, a3, a4, b: integer;
begin
read(a);
a1:=a div 1000;
a2:=(a div 100) mod 10;
a3:=(a div 10) mod 10;
a4:=a mod 10;
b:=a4*1000+a3*100+a2*10+a1;
writeln(b);
end.
2. Дано натуральное число n (9<n<1000). Найти число
единиц в нём.
Для решения данной задачи Вам необходимо познакомиться с оператором
выбора. Этот оператор (команда) необходим в тех случаях, когда нужно
сравнить переменную с конкретным значением или другой переменной.
Например, нам нужно в данной задаче сравнить каждую цифру числа с
единицей:
if a1=1 then k:=k+1;
После if пишут условие, а после then – команду, которую нужно выполнить
после выполнения этого условия. Если условие не выполнится, то никаких
действий выполнено не буде, и программа будет работать дальше.
var a, a1, a2, a3, a4, k: integer;
begin
read(a);
a1:=a div 1000;
a2:=(a div 100) mod 10;
a3:=(a div 10) mod 10;
a4:=a mod 10;
k:=0;
if a1=1 then k:=k+1;
if a2=1 then k:=k+1;
if a3=1 then k:=k+1;
if a4=1 then k:=k+1;
writeln(k);
end.
Синица А.А., гимназия №1 имени К.Калиновского г.Свислочь
Информатика
3. Дано натуральное число n (9<n<10000). Найти число
цифр два в нём.
Данная задача похожа на предыдущую. Отличие заключается в том, что дано
пятизначное число.
var a, a1, a2, a3, a4, a5, k: longint;
begin
read(a);
a1:=a div 10000;
a2:=(a div 1000) mod 10;
a3:=(a div 100) mod 10;
a4:=(a div 10) mod 10;
a5:=a mod 10;
k:=0;
if a1=2 then k:=k+1;
if a2=2 then k:=k+1;
if a3=2 then k:=k+1;
if a4=2 then k:=k+1;
if a4=2 then k:=k+1;
writeln(k);
end.
4. Дано трёхзначное число. Определить, равен ли
квадрат этого числа сумме кубов его цифр.
var a, a1, a2, a3: longint;
begin
read(a);
a1:=a div 100;
a2:=(a div 10) mod 10;
a3:=a mod 10;
if a*a=a1*a1*a1+a2*a2*a2+a3*a3*a3 then writeln('Да') else
writeln('Нет');
end.
Примечание: давайте усовершенствуем это решение и попытаемся
найти такие числа. Для этого нам понадобится новый оператор –
команда повторения. Дело в том, что мы будем искать решение на
всём множестве трёхзначных чисел. Для этого нам необходимо
перебирать все трёхзначные числа. Применим команду
повторения for:
for i:=100 to 999 do;
var a, a1, a2, a3: longint;
begin
Синица А.А., гимназия №1 имени К.Калиновского г.Свислочь
Информатика
for a:=100 to 999 do begin
a1:=a div 100;
a2:=(a div 10) mod 10;
a3:=a mod 10;
if a*a=a1*a1*a1+a2*a2*a2+a3*a3*a3 then writeln('a') else
writeln('Нет'); end
end.
При выполнении этой программы вы узнаете: есть ли среди
трёхзначных чисел искомые в задаче.
Синица А.А., гимназия №1 имени К.Калиновского г.Свислочь
Download