В ы с ш е е о б р а з о в а н и е м. П. Лапчик, И. Г. Семакин, Е. К. Хеннер



Pdf көрінісі
бет371/437
Дата23.01.2022
өлшемі32,34 Mb.
#24228
1   ...   367   368   369   370   371   372   373   374   ...   437
Program 
Sasha&Masha; 
var 
S,  M:  real; 
begin 
write  ('Возраст 
С а ш и : '); 
r e a d ln(S); 
write ('Возраст 
М а ш и :'); 
r e a d l n (  M ) ; 
if 
S  >  M 
then 
w r i t e ('Саша 
старше  Маши') 
else  if 
S  =  M
then 
write (' Саша 
и  Маша  ровесники')
else 
w r i t e ('Маша 
старше  Саши')
end.
300


Алг 
СОРТИРОВКА-3 
вещ 
А,  В,  С ,  X 
нач
ввод  А,  В,  С 
если 
А  >  В 
то
Program 
S0RT_3; 
var 
А , В , С , X :  real; 
begin
r e a d l n (А,  В, 
if 
А  >  В 
then begin
С) ;
X
:=  A;
X  :=  A;
A
:=  В;
A  :=  В;
В
:=  X
В  :=  X
KB
end;
если 
В >  С
if 
В 

С
то
X
В
с
=  В; 
=  С; 
=  X
кв
если 
А  >  В 
то

А 
В 
кв
вывод  А,В,С
=  А; 
=  В; 
=  X
then begin
X  :=  В; 
В  :=  С; 
С  :=  X 
end; 
if 
А  >  В 
then begin
X  : = A;
A  : = B;
В  : = X
end;
e(A,B ,C)
кон
end.
По  поводу  рассмотренной  задачи  сделаем  следующее  замеча­
ние.  Эта задача, которая выводит на идею использования вспомо­
гательных  алгоритмов.  Упорядочение  трех  переменных  произво­
дится трехкратным применением алгоритма упорядочения двух пе­
ременных,  поэтому  разумно  этот  алгоритм  оформить  как 
вспомогательный.  Программы, реализующие вспомогательные ал­
горитмы,  называются  подпрограммами.  В  Паскале  есть  два  вида 
подпрограмм:  подпрограммы-процедуры  и  подпрограммы-функ­
ции.  В данной задаче можно использовать процедуру.
В учебнике  [6]  подпрограммы не рассматриваются.  Это объяс­
няется  ограниченностью  учебного  времени,  которое  можно  вы­
делить  в  базовом  курсе  на  тему  «Введение  в  программирование». 
При  наличии дополнительного  времени  рекомендуется дать уче­
никам представление о подпрограммах.  Рассмотренная здесь зада­
ча может быть использована как опорная для раскрытия этой темы. 
Приведем пример программы сортировки значений трех перемен­
ных  с  использованием  процедуры  (правила  работы  с  процедура­
ми  смотрите  в учебниках  по  Паскалю).
Program Sort_3; 
var 
А,  В,  С:  real; 
Procedure 
S 0 R 2
(var 
X,Y:
r e a l ) ;
301


var 
Z:  real; 
begin
Z:=X;  X := Y ;  Y:=Z 
end;
begin 
r e a d l n (А,В,C ) ;
S 0 R 2
(A,B)
;
S 0 R 2
(B,C) 
;
S 0 R 2
(A,B)
; 
writeln(A, B, C) 
end.
Пример 3. Дано вещественное число 
X
и натуральное 
N.
  Соста­
вить алгоритм вычисления 
X N.
  Написать программу на Паскале.
Р е ш е н и е .   В Паскале нет операции возведения в степень. Если 
показатель степени — целое положительное число, то возводить в 
степень  нужно  путем  ^-кратного  умножения  основания  самого 
на себя.  Реализуется это циклическим алгоритмом:
алг 
Степень 
цел 
N,i; 
вещ X;
нач 
ввод  N 
ввод  X 
i : = l ;
Y :
 =1;
пока 
i<=N, 
повторять 
нц
Y : =Y*X 
i : =i +l
кц
вывод  Y 
кон
Program 
Power; 
var 
N,i:  integer;
X:  real; 
begin 
readln(N); 
rea d l n ( X ) ; 
i : =1;
Y: = 1;
while 
i<=N 
do 
begin
Y :=Y*X; 
i :=i+l
end;
write(Y) 
end.
При выполнении трассировки этого алгоритма обязательно сле­
дует проверить правильность его работы  при 
N =
  0.  Как известно 
из математики,  JST° =  1. Трассировка доказывает,  что и в этом слу­
чае  алгоритм  будет давать правильный результат.
Пример 4.  Последовательно вводятся ^целы х чисел. Найти мак­
симальное  из  них.
Р е ш е н и е .   В программировании часто приходится решать за­
дачу  поиска  максимального  (минимального)  значения  в  число­
вом массиве.  В базовом курсе могут не рассматриваться структури­
рованные данные,  в том числе массивы.  Однако эту задачу можно 
решить  и  без  использования  массива,  ограничившись  простыми 
переменными. Для этого ввод данных и обработку надо совместить 
в одном цикле.  Вот как это делается:
302




Достарыңызбен бөлісу:
1   ...   367   368   369   370   371   372   373   374   ...   437




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет