Program Example_18;
type mas = array [1..30] of integer
Var n, m, i : integer; A_cp, B_cp : real; T_a, T_b : boolean;
A, B : mas;
procedure Massiv(X: mas; K: integer; var X_cp: real; var T: boolean);
Var j, S : integer;
Begin
S := 0;
For j := 1 to K do
S := S + D;
X_cp := S / K;
T := True;
For j := 1 to K-1 do
If X[j] > X[j+1] then T := False;
End;
Begin
writeln;
write(‘Введите количество элементов массива A N = ‘);
read(n);
write(‘Введите ‘, n, ‘целых чисел – элементы массива А : ‘);
For i := 1 to n do
read(A[i]);
write(‘Введите количество элементов массива В M = ‘);
read(m);
write(‘Введите ‘, m, ‘целых чисел – элементы массива B : ‘);
For i := 1 to n do
read(B[i]);
writeln(‘Результат:‘);
Massiv(A, N, A_cp, T_a);
writeln(‘Среднее арифметическое элементов массива A равно ’, А_ср:5:2);
if T_a then writeln(‘Массив A упорядочен по неубыванию’)
else writeln(‘Массив A не упорядочен по неубыванию’);
Massiv(B, M, B_cp, T_b);
writeln(‘Среднее арифметическое элементов массива В равно ’, В_ср:5:2);
if T_b then writeln(‘Массив B упорядочен по неубыванию’)
else writeln(‘Массив B не упорядочен по неубыванию’);
readln
end.
Данные для тестирования
1) Для n = 8, A = {1, 2, 3, 4, 5, 6, 7, 8}
Для m = 5, B = {7, 2, 1, 4, 5}
ð Результат:
Среднее арифметическое элементов массива A равно 4.50
Массив A упорядочен по неубыванию
Среднее арифметическое элементов массива B равно 3.80
Массив B не упорядочен по неубыванию
Пример 8.3 . Для заданных действительного А и целого М вычислить значение выражения
Возведение некоторого числа X в степень N организовать с помощью функции Stepen(Х, N).
Решение задачи
Выберем схему решения поставленной задачи.
Чтобы получить XN, нужно вычислить произведение .
В функции Stepen(Х, N) введём переменную P для накопления произведения N сомножителей (начальное значение Р=1). Вычисление произведения осуществляется с помощью оператора цикла с параметром (for) – на каждом шаге переменная Р домножается на Х. Если N – отрицательное, то зададим Х = 1 / Х.
Последний выполнимый оператор в функции Stepen – присвоение результата имени функции, т.е. Stepen := Р.
В основной программе после того как будут введены значения А и M, с помощью обращения к функции Stepen с соответствующими аргументами, вычисляем значение выражения для Z.
Блок-схемы алгоритмов основной программы и функции Stepen (Х, N )
Текст программы на языке Паскаль
Program Example_19;
Var m : integer; A, Z : real;
function Stepen(X: real; N: integer): real;
Var i : integer; P : real
Begin
P := 1;
If N < 0 then X := 1 / X;
For i := 1 to abs(N) do
P := P * X;
Stepen := P
End;
Begin
writeln;
write(‘Введите действительное число А = ‘);
read(А);
write(‘Введите показатель степени – целое число М = ‘);
read(m);
Z := (Stepen(A, 5) - Stepen(A, -3)) / 3 / Stepen(A, M);
writeln(‘Результат: Z = ‘, Z:8:4);
readln
end.
Данные для тестирования
1) Для A = 2, М = 3
ð Результат: Z = (25 – 2-3) / 3 / 23 = (32 – 0.125) / 24 = 1.328125
2) Для A = -2, М = -3
ð Результат: Z = ((-2)5 – (-2)-3) / 3 / (-2)-3 = (-32 + 0.125)*(-8) / 3 = 85
Работа с МАТРИЦами
В задачах этой темы исходная матрица (матрицы) должны считываться из заранее подготовленного текстового файла, в котором записана квадратная матрица размером не менее 6 строк и 6 столбцов. Числа, определяющие размер исходной матрицы (n или n, m) и другие скалярные исходные данные должны вводиться с клавиатуры.
После завершения работы программы исходная матрица и результаты работы программы должны быть выведены на экран и в текстовый файл.
Пример 9.1 . Дана матрица действительных чисел n ´ m, все элементы которой различны. Найти сумму элементов строки, в которой находится наименьший элемент матрицы и столбца, в котором находится наибольший элемент.
Решение задачи
Выберем схему решения поставленной задачи.
Прежде всего, на устройстве Е: создадим текстовый файл (назовём его data . txt), в котором разместим исходный массив размером не менее 6 строк и 6 столбцов. Это можно сделать с помощью приложения Блокнот или через редактор текста среды Turbo Pascal.
С помощью ввода с клавиатуры зададим размеры n и m исходной матрицы. Считывание элементов матрицы {А} из файла и вывод их на экран организуем с помощью вложенных операторов цикла с параметром (for).
Затем переходим к поиску наименьшего и наибольшего элементов массива. При отыскании наибольшего элемента будем запоминать номер столбца, в котором он находится, а при поиске наименьшего – номер его строки. Введём переменные:
min – значение наименьшего элемента массива;
max – значение наибольшего элемента массива;
k – номер столбца, в котором находится наибольший элемент массива;
r – номер строки, в котором находится наименьший элемент массива;
S – искомая сумма.
Вычисление искомой суммы элементов организуем также с использованием операторов цикла с параметром (for).
Блок-схема алгоритма
Дата: 2019-03-05, просмотров: 202.