logo
методические указания Паскаль

Программирование с использованием процедур

Цель работы: научиться разрабатывать и отлаживать программы с использованием процедур

Структура оформления процедуры:

PROCEDURE <имя>(формальные параметры);

{раздел описаний процедуры}

{описания вложенных процедур и функций}

BEGIN

{операторы подпрограммы}

END;

Пример. Ввести три массива A[1..3], B[1..4], C[1..5] процедурой "ввод". Вычислить средние арифметические значения в каждом из них.

Для решения задачи pазpаботана СА (pис.11), состоящая из ос­новной программы (а) и двух процедур: одной - для ввода элементов массива (б), другой - для определения среднего арифметического значения в массиве (в), а также следующая пpогpамма для реализации алгоритма:

Program lr9;

type mass = array[1..5] of integer;

var ka, kb, kc:byte;

a, b, c: 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}

FUNCTION SR(k:byte;f:mass):real; {заголовок функции}

var i: byte;

S: integer;

begin

S:=0;

for i:=1 to k do

S:=S+f [i];

SR:=S/k

End; {конец функции}

BEGIN {основная программа}

VVOD(a,ka); {обращение к процедур возвращающей в основную программу массив А и его размер}

writeln(‘srA=’,SR(ka,a):5:2); {обращение к функции SR}

VVOD()b,kb;

Writeln(‘srB=’,SR(kb,b):5:2);

VVOD(c,kc);

Writeln(‘srC=’,SR(kc,c):5:2);

END.

Задание 1 (программа 9_1)

Написать и отладить программу для задачи из лабораторной работы 7 с выделением алгоритма обработки или формирования массива. Организовать вызов процедуры с параметрами- массивами для двух наборов исходных данных. (Для ускорения отладки массив можно задать типизированной константой).

Задание 2 (программа 9_2)

1. Даны массивы A [1..6], B [1,,6], C [1..6]. Получить *B, B*С, *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]. Выбрать из них положительные элементы и записать соответственно в массивы A [1..k] и B [1..k], где 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. Даны две целые квадратные матрицы шестого порядка. Определить, можно ли отражением относительно главной и побочной диагоналей преобразовать одну в другую.