Лабораторный практикум по программированию на языке Паскаль. Найханова Л.В - 80 стр.

UptoLike

80
{* главная программа *}
{*************************************************************}
Begin
GetMatr('A', A); {Вызов процедуры для ввода значений матрицы А}
GetMatr('B', B); {Вызов процедуры для ввода значений матрицы B}
{ алгоритм перемножения матриц }
For i1:= 1 to N do
For i2:= 1 to M do
begin
C[i1,i2]:= 0;
For i3:= 1 to N do
C[i1,i2]:= C[i1,i2] + A[i1,i2] * B[i3,i1];
end;
{ вывод значений результирующей матрицы }
For i1:= 1 to N do
begin
For i2:= 1 to M do
Write(' C[',i1:1, ',', i2:1, '] = ', C[i1,i2]:8:3);
WriteLn; { перевод на новую строку }
end;
End. { конец главной программы }
11.3. Различия между процедурами и функциями
Главное различие (из которого следуют все остальные) состоит в том, что функция всегда
возвращает, причем в явной форме, одно-единственное значение, которое может быть
использовано в качестве составной части выражения; процедура такого значения не
возвращает. Однако применительно к процедуре все же можно говорить о возвращаемой
информации - процедура способна изменять значения своих параметров (тех, что описаны с
атрибутом VAR).
Помимо главного различия можно отметить ряд второстепенных различий
синтаксического характера. Так, например, заголовок функции всегда завершается указанием
типа возвращаемого значения. В заголовке процедуры такая информация не нужна. Для
функции типично, чтобы в качестве последнего шага имени функции было назначено
некоторое вычисленное значение. В процедурах этого нет. И наконец, еще одно различие.
Поскольку функция возвращает какое-то значение, вызов функции может появляться прямо
в выражении. Вызов процедуры не может быть частью выражения - это всегда отдельное
предложение.
Контрольные вопросы
1. Для чего предназначены функции?
2. Для чего предназначены процедуры?
3. Чем отличаются формальные и фактические параметры?
4. Опишите способы передачи параметров в подпрограммы и их особенности?
4. Что включает в себя заголовок подпрограммы?
5. Чем отличаются глобальные и локальные переменные?
6. Какая разница между процедурой и функцией?
Задание к работе
1. Модифицируйте подпрограмму, вычисляющую степенную функцию так, чтобы она
вычисляла и отрицательные степени.
2.
Напишите подпрограмму, способную вычислять любые степени: положительные и
отрицательные, целочисленные и действительные.
3.
Выполните индивидуальное задание:
{*                              главная программа                  *}
{*************************************************************}
Begin
   GetMatr('A', A); {Вызов процедуры для ввода значений матрицы А}
   GetMatr('B', B); {Вызов процедуры для ввода значений матрицы B}
   { алгоритм перемножения матриц }
   For i1:= 1 to N do
    For i2:= 1 to M do
    begin
      C[i1,i2]:= 0;
      For i3:= 1 to N do
       C[i1,i2]:= C[i1,i2] + A[i1,i2] * B[i3,i1];
    end;
   { вывод значений результирующей матрицы }
   For i1:= 1 to N do
   begin
    For i2:= 1 to M do
      Write(' C[',i1:1, ',', i2:1, '] = ', C[i1,i2]:8:3);
    WriteLn; { перевод на новую строку }
   end;
End. { конец главной программы }

11.3. Различия между процедурами и функциями
Главное различие (из которого следуют все остальные) состоит в том, что функция всегда
возвращает, причем в явной форме, одно-единственное значение, которое может быть
использовано в качестве составной части выражения; процедура такого значения не
возвращает. Однако применительно к процедуре все же можно говорить о возвращаемой
информации - процедура способна изменять значения своих параметров (тех, что описаны с
атрибутом VAR).
Помимо главного различия можно            отметить     ряд    второстепенных различий
синтаксического характера. Так, например, заголовок функции всегда завершается указанием
типа возвращаемого значения. В заголовке процедуры такая информация не нужна. Для
функции типично, чтобы в качестве последнего шага имени функции было назначено
некоторое вычисленное значение. В процедурах этого нет. И наконец, еще одно различие.
Поскольку функция возвращает какое-то значение, вызов функции может появляться прямо
в выражении. Вызов процедуры не может быть частью выражения - это всегда отдельное
предложение.
Контрольные вопросы
1. Для чего предназначены функции?
2. Для чего предназначены процедуры?
3. Чем отличаются формальные и фактические параметры?
4. Опишите способы передачи параметров в подпрограммы и их особенности?
4. Что включает в себя заголовок подпрограммы?
5. Чем отличаются глобальные и локальные переменные?
6. Какая разница между процедурой и функцией?
Задание к работе
1. Модифицируйте подпрограмму, вычисляющую степенную функцию так, чтобы она
    вычисляла и отрицательные степени.
2. Напишите подпрограмму, способную вычислять любые степени: положительные и
    отрицательные, целочисленные и действительные.
3. Выполните индивидуальное задание:

                                                                                     80