1. Составить программу перестановки значений переменных а, b, с в порядке возрастания, т. е. так, чтобы а<b<с. Текст решения простой.
Program M_14_1;
Var a ,b, c:Integer;
Procedure Swap (Var x,y: Integer);
Var t: Integer;
Begin
t:=x; x:=y; y:=t;
End;
Begin
WriteLn('Введите три числа ');
ReadLn (a ,b, с) ;
If a>b Then Swap(a,b) ;
If b>c Then Swap(b,c);
If a>c Then Swap (a, c);
WriteLn (a, ' ' ,b, ' ', c);
ReadLn; End.
Найдите ошибку в решении. Исправлению подлежит имя одной переменной в одной строке программы. Составьте блок – схему к данной задаче. Измените программу так, чтобы аналогичная задача решалась для четырех вводимых чисел.
2. Задание 1 занятия №8 требовало определить, является ли введенное число палиндромом.
Оформим «перевертывание» числа в виде функции.
Function Pal (n: Long!nt) : LongInt;
Var x:LongInt;
Begin
x:=0;
While n<>0 Do
Begin
x:=x*10+n Mod 10;
n:=n Div 10;
End;
Pa1:=x;
End;
Пусть исходное число введено, например 59. Оно не палиндром. «Перевернем» его, получим 95. Найдем сумму чисел 59 и 95 — 154. «Перевернем» это число — 451. Находим сумму — 605. Еще раз: 506 и 1111. Получили палиндром. Найти для всех натуральных чисел из интервала от 50 до 80 количество шагов, необходимых для сведения их к палиндромам, с помощью описанной схемы.
Program My14_3;
Const
a=50;
b=80;
Var n, t: Longint;
cnt, i: Integer;
Function Pal (n: LonIlnt) :LongInt;
Begin
. . . . . .
End;
begin
For i:=a To b Do
Begin
сnt:=0; n:=1;
While Pal (n) <>n Do
begin
t:= Pal(n);
n:=n+t;
Write (t, ‘ ‘, n, ‘ ‘);
Inc (сnt);
End;
WriteLn (i, ‘ ‘, сnt);
End;
End.
Задание для самостоятельной работы:
1. Дано n целых чисел. Найти среди них число, у которого приведенная ниже характеристика имеет максимальное значение:
· сумма цифр;
· первая цифра;
· количество целителей;
· сумма всех делителей.
2. Составить программу расчета факториала числа введенного с клавиатуры (факториал считать с помощью функции).
Контрольные вопросы:
1. Что называется подпрограммой?
2. В чем состоит сходство и различие подпрограмм-процедур и подпрограмм-функций в языке Pascal?
3. Опишите последовательность событий при вызове процедуры?
4. Что такое параметр?
5. Что называют фактическим и формальным параметром?
6. Каково отличие параметров-значений и параметров-переменных?
7. Что называется функцией?
8. В чем состоит сходство и различие подпрограмм-процедур и подпрограмм-функций в языке Pascal?
9. Опишите последовательность событий при вызове функции?
10. Что такое параметр?
11. Что называют фактическим и формальным параметром?
12. Каково отличие параметров-значений и параметров-переменных, особенности их написания?
13. Для чего используется исполнение программы в пошаговом режиме с заходом в процедуры и как это осуществить?
14. Чем отличаются локальные переменные от глобальных?