Читайте также: |
|
Программирование с использованием функций
Цель работы: научиться разрабатывать и отлаживать программы с
использованием подпрограмм (функций)
Стpуктуpа оформления функции в программе:
FUNCTION <имя>(формальные параметры):<тип>;
{разделы описаний}
{описание вложенных процедур и функций}
BEGIN
{операторы функции}
<имя>:= <выражение> { обязательный оператор }
END;
Пример. Даны три массива A (5), B (5), C (5). Найти среднее арифметическое значение наименьших элементов массивов.
До написания программы разрабатывается СА главной программы (рис.10, а) и СА для подпрограммы нахождения наименьшего элемента в любом массиве (рис.10, б).
Отлаженная программа решения задачи имеет следующий вид:
Program lr8;
type mass = array[1..5] of integer;
const a: mass=(5,2,7,1,8);
b: mass=(3,4,5,6,6);
c: mass=(3,8,5,2,6);
var n: integer;
sr: real;
FUNCTION minim(d:mass):integer; {заголовок функции}
var
i, min: integer;
begin {начало блока операторов функции}
min:=d[1];
for i:=2 to 5 do
if d[i]<min then
min:=d[i];
writeln('минимальный элемент равен ',min);
minim:=min {имени функции присваивается значение}
end; {конец блока функции}
BEGIN
sr: = (minim(a) + minim(b) + minim(c))/3; {блок основной программы}
writeln('sr = ',sr:5:2); {три обращения к функции}
END.
Задание 1 (программа 8_1)
Написать и отладить программы для задач из лабораторных работ 1 и 6 с применением подпрограммы - функции с параметрами. Вычисление функции (или обработку массива) выполнить в подпрограмме, а ввод исходных данных и вывод результатов - в основной программе. Предусмотреть, по крайней мере, два обращения к функции с различными фактическими параметрами.
Для отладки программ использовать средства среды Турбо Паскаля (прил. 2): пошаговое исполнение программы (трассировку) с контролем значений переменных в окне отладчика Watch.
Задание 2 (программа 8_2)
1. По заданным вещественным массивам A [1..6], B [1..6] и C [1..6] вычислить
(max B)/max A + (max C)/max(B+C) при min A < max B,
max(B+C) + max C в противном случае.
2. Даны две квадратные вещественные матрицы шестого порядка. Напечатать квадрат той из них, в которой наименьший след (сумма диагональных элементов), считая, что такая матрица одна.
3. Определить координаты центра тяжести трех материальных точек с массами m1,m2,m3 и координатами (x1,y1), (x2,y2), (x3,y3) по формулам
xc = (m1x1+m2x2+m3x3)/(m1+m2+m3), yc = (m1y1+m2y2+m3y3)/(m1+m2+m3).
Вычисление координаты оформить функцией с параметрами.
4. Вычислить все медианы для каждого из трех треугольников по заданным в массивах A, B, C сторонам: ma=0.5 , mb= 0.5 , mc=0.5 . Вычисление медианы оформить функцией.
5. Даны три одномерных массива вещественных чисел A [1..6], B [1..8] и С[1..7]. Найти общую сумму положительных элементов в массивах. Нахождение суммы элементов в массиве оформить функцией.
6. Даны два двумерных массива целых чисел с размерами (4х5) элементов. Подсчитать количество отрицательных элементов в каждом из них.
7. Даны два одномерных массива целых чисел A [1..8] и B[1..8]. Найти сумму их максимальных элементов. Для нахождения максимального элемента в массиве использовать функцию.
8. Даны два двумерных массива целых чисел по (5х5) элементов каждый. Подсчитать произведение элементов главных диагоналей в каждом из них.
9. Даны три одномерных массива вещественных чисел A[1..6], B[1..8] и С[1..7]. Найти среднее геометрическое значение положительных элементов для каждого.
10. Даны две матрицы целых чисел M[1..3,0..1], К[1..3,0..2]. Найти среднее арифметическое значение для каждой из них.
11. Даны три одномерных массива целых чисел A[1..6], B[1..8] и С[1..7]. Подсчитать количество неотрицательных элементов в каждом.
12. Даны две матрицы целых чисел S[1..3,0..2], К[1..3,0..2], в каждой из которых имеется по два одинаковых числа. Распечатать их значения.
13. Даны два одномерных массива целых чисел A[1..6] и B[1..8]. Вычислить значение Z=(min A[i] + min B[j]) / min (A[i]+B[j]).
i j i, j
14. По заданным целым массивам X[0..7] и Y[8..15] вычислить
xi2 при xi yi+8>0,
yi2 в противном случае.
15. Дана матрица целых чисел D [1..6,1..5]. Найти наименьшую из сумм неотрицательных элементов строк матрицы. Для вычисления суммы использовать подпрограмму (функцию).
16. Дана матрица целых чисел E [1..3,1..5]. Используя функцию, найти среднее геометрическое значение для каждого столбца матрицы.
17. Дана матрица целых чисел F [1..4,1..5]. Найти наименьшие значения элементов в каждой из строк матрицы с помощью функции.
18. Даны две квадратные вещественные матрицы шестого порядка. Напечатать квадрат той из них, в которой наименьший след (сумма диагональных элементов), считая, что такая матрица одна.
19. Сформировать двумерный массив 1 2 3 4 5
1 4 9 16 25
1 8 27 64 125
....
Найти правило и оформить функцией вычисление любой строки.
20. Даны две матрицы целых чисел V [1..2,1..3], W [1..3,1..2]. Найти суммы элементов строк и столбцов в этих матрицах.
Дата добавления: 2015-09-05; просмотров: 54 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
ЛАБОРАТОРНАЯ РАБОТА 7 | | | ЛАБОРАТОРНАЯ РАБОТА 9 |