Читайте также: |
|
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 Для заданных значений п и т (п ≤ т) написать программу вычисления числа сочетаний из т элементов по п:
С =
Дата добавления: 2015-07-08; просмотров: 417 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Пояснения к программе | | | Пояснения к программе |