Пример и задания с подпрограммой-процедурой
Пример. Ввести два массива A [1..3], B [1..4] с помощью процедуры "ввод". Вычислить средние арифметическое и геометрическое значения элементов каждого из них, используя подпрограмму-процедуру. Для решения задачи pазpаботана СА (pис. 15), состоящая из основной программы (а) и двух процедур: одной - для ввода элементов массива (б), другой – для определения средних арифметического и геометрического значений в массиве (в), а также написана пpогpамма для реализации алгоритма: Program lr7; type mass = array[1..5] of integer; var ka, kb: byte; Sr, Sg: real; a, b: mass; PROCEDURE VVOD ( Var d: mass; Var k: byte ); {заголовок процедуры ввода} Var i: integer; Begin {тело процедуры} writeln(' введите число элементов'); read(k); writeln(' введите массив из ', k,' элементов'); FOR i:=1 to k do read(d[i]); end; {конец процедуры VVOD} PROCEDURE SARR (k:byte; f:mass; var s,p:real); {заголовок процедуры} var i: byte; begin s:=0 ; p:=1; for i:=1 to k do begin s := s+f [i]; p:=p*f[i] end ; s := s/k ; p := EXP(Ln(p)/k) End; {конец тела процедуры SARR} BEGIN{Блок основной программы} VVOD(a,ka); { ввод элементов массива А и его размера} SARR(ka,a,Sr,Sg); {вызов процедуры для обработки массива А} writeln( ‘ SrA= ’ , Sr:5:2 , ‘ SgA= ’ , Sg :5:2); VVOD(b,kb); SARR(kb,b,Sr,Sg); {вызов процедуры для обработки массива B} writeln( ‘ SrB= ’ , Sr :5:2, ‘ SgB= ’ , Sg :5:2); END. Задания для самостоятельного выполнения Задание 1 Написать и отладить программу для п. 6.4 с выделением алгоритма обработки или формирования массива. Организовать вызов процедуры с параметрами-массивами для двух наборов исходных данных. (Для ускорения отладки массив можно задать типизированной константой). Задание 2 1. Даны массивы A [1..6], B [1..6], C [1..6]. Получить A*B, B*С, A*C. Вычисление произведения массивов оформить процедурой. 2. Даны массивы A [1..5], B [1..6]. Получить новые массивы путем сдвига элементов в массиве А на один разряд, а в массиве В - на два разряда вправо, освободившиеся слева элементы обнулить. Сдвиг элементов в массиве оформить подпрограммой. 3. Даны два одномерных массива А [1..6] и C [1..6]. Получить A2, С2, А*С. Перемножение массивов выполнить в подпрограмме. 4. Даны две матрицы целых чисел S [1..3,0..2], K [1..3,0..2], в которых имеется по два одинаковых числа. Найти и распечатать их значение и индексы. 5. Вычислить значение функции Z = x1+ex2, где x1, x2 – корни уравнения Aix2+Bix + Ci = 0, i = 1,2,..,N. Коэффициенты уравнения заданы в массивах A [1..N], B [1..N], C [1..N]. Для вычисления корней использовать процедуру. 6. Составить процедуру для перемножения двух квадратных матриц, с помощью которой вычислить вторую, третью и четвертую степени матрицы M [1..5,1..5]. 7. Даны массивы A [1..6], B [1..6], C [1..6]. Преобразовать их, каждому элементу массива присваивая значение соседнего с ним справа. Последнему элементу присвоить значение первого. 8. По заданным вещественным массивам A [1..6], B [1..6] и С [1..6] вычислить (minAi)/maxAi + (maxCi)/min(Ci) + max(B+C)i /min(B+C)i. 9. Даны массивы A [1..6], B [1..8]. Выбрать из них положительные элементы и записать соответственно в массивы A1 [1..k] и B1 [1..n], где k < 6, n < 8; из отрицательных элементов сформировать массивы A2 [1..6-k], B2 [1..8-n]. 10. Даны массивы A [1..6], B [1..6], C [1..6]. Переставить элементы в них таким образом, чтобы слева подряд были записаны отрицательные, а справа положительные элементы. 11. Даны две целые квадратные матрицы четного порядка. Элементы массивов с четными номерами строки и столбца заменить нулем (стереть). Напечатать полученные массивы. 12. Даны одномерные массивы A [1..6], B [1..8], C [1..10]. Записать их в виде матриц AA [1..3,1..2], BB [1..2,2..4], CC [1..5,1..2]. 13. Даны две целые квадратные матрицы шестого порядка. Распечатать элементы главных диагоналей каждой из них и определить симметричность каждой матрицы относительно главной диагонали. 14. По заданным 10 элементам вещественных массивов A, B и С вычислить 15. Даны две матрицы целых чисел V (-1..2,0..3) W [1..3,0..2]. Сформировать из них одномерные массивы VV и WW, записывая элементы построчно. 16. Дана матрица чисел H [1..5,1..6]. Переставить столбцы матрицы таким образом, чтобы элементы первой строки матрицы были расположены в порядке возрастания их модулей. Перестановку двух столбцов матрицы реализовать процедурой. 17. Дана матрица чисел G [1..4,1..6]. Переставить элементы в матрице так, чтобы элементы каждого столбца матрицы были расположены в порядке возрастания их модулей. Перестановку элементов в столбце реализовать процедурой. 18. Даны массивы A [1..6], B [1..6], C [1..6]. Упорядочить элементы в них в порядке убывания их модулей. 19. Даны две матрицы целых чисел V [1..2,1..3], W [1..3,1..2]. Найти общие суммы элементов строк и столбцов, результаты сформировать в виде двух массивов. 20. Даны две целые квадратные матрицы шестого порядка. Определить, можно ли отражением относительно главной и побочной диагоналей преобразовать одну в другую.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|