- •Введение
- •1. Вычисление функций
- •Пояснения к программе
- •Пояснения к программе
- •2. Одномерные массивы
- •3. Матрицы
- •Пояснения к программе
- •4. Обработка текстов
- •Пояснения к программе
- •Пояснения к программе
- •5. Процедуры и функции
- •Пояснения к программе
- •Пояснения к программе
- •Пояснения к программе
- •6. Перечисляемый и диапазонный типы
- •Пояснения к программе
- •7. Записи
- •8. Множества
- •9. Файлы
- •10. Списки
- •Пояснения к программе
- •Пояснения к программе
- •Литература
- •Приложение 1 Комбинации клавиш управления в среде Turbo Pascal
- •Приложение 2 Сообщения об ошибках периода компиляции
- •1. Вычисление функций 5
5. Процедуры и функции
5.1 Составить программу для вычисления значений следующих выражений:
U = max(x+y, x*y); V = max(0,5, U).
Пояснения к программе
По условию задания необходимо два раза выполнить однотипные вычисления, поэтому алгоритм нахождения максимума из двух значений оформим в виде процедуры с параметрами Max_2. Сравниваемые величины передаются в процедуру как параметры-значенияR1,R2, а для передачи в вызывающую программу результата выполнения подпрограммы задается параметр-переменнаяRes.
program Max(input, output);
Var x, y, U, V : Real;
procedure Max_2 ( R1, R2 : Real; Var Res : Real );
begin
if R1 > R2
then Res := R1
else Res := R2
end;
Begin
WriteLn ('Введите значения "x" и "y" ');
Read(x, y);
Max_2 ( x+y, x*y, U);
Max_2 ( 0.5, U, V);
WriteLn ('U=', U:6:1, ' V=', V:6:1 );
End.
5.2 Заданный массив целых чисел делится на три части двумя элементами: максимальным и минимальным. Определите сумму элементов в каждой части массива. Используйте функции для нахождения индексов минимального и максимального элементов и подсчета суммы элементов в указанной части массива.
5.3 Пусть дана матрица А размером п х т, состоящая из вещественных чисел. Необходимо получить матрицу В размером п х т, каждый элемент bij, которой равен true, если сумма соседних с aij, элементов меньше указанной величины Z, и false — в противном случае. Воспользуйтесь функцией для нахождения суммы соседних элементов.
5.4 Составить программу для вычисления значений следующих выражений:
U = max( Xi ); V = max( Yi ), где i = 1 ¸ n.
Пояснения к программе
По условию задания необходимо два раза выполнить однотипные вычисления, поэтому алгоритм нахождения максимума в одномерном массиве из nэлементов оформим в виде процедуры с параметрамиMaxVekt. Параметром для данной процедуры является массив и его тип (как и всех составных типов) может быть указан только с помощью предварительно описанного имени типа. Безымянные типы в этом случае не допускаются. Чтобы не создавать в процедуре копию параметра-массива, он объявлен как параметр-переменная и передается по ссылке.
program Max_Vekt;
Const
N = 10;
Type
Vector = Array [ 1 .. N ] of Real;
Var
U, V : Real; X, Y : Vector; i : Integer;
procedure MaxVekt(Var A:Vector; N:Integer; Var Max:Real);
Var i : Integer;
begin
Max := A[ 1 ];
for i := 2 to N do
if A[ i ] > Max then Max := A[ i ]
end;
Begin
Writeln( 'Введите элементы массива "X"');
for i := 1 to N do
Read( X[ i ]);
Writeln( 'Введите элементы массива "Y"');
for i := 1 to N do
Read( Y[ i ]);
MaxVekt ( X, N, U );
Writeln('Максимальное значение в массиве "X" =',U :7:1);
MaxVekt ( Y, N, V );
Writeln('Максимальное значение в массиве "Y" =',V :7:1)
End.
5.5 Пусть даны две вещественные матрицы порядка п. Получите новую матрицу следующим способом (для нахождения минимального элемента и произведения элементов в указанной строке используйте функции):
а) умножением минимального элемента каждой строки первой матрицы на наибольший элемент соответствующего столбца второй матрицы;
б) прибавлением к элементам каждого столбца первой матрицы произведения элементов соответствующих строк второй матрицы.
5.6 Пусть дана матрица А(п х т), состоящая из натуральных чисел. В каждом столбце обнулите минимальное количество элементов так, чтобы сумма элементов столбца не превышала заданную.
5.7 Для заданных значений п и т (п ≤ т) написать программу вычисления числа сочетаний из т элементов по п:
С=