Программирование с использованием функций
Цель работы: научиться разрабатывать и отлаживать программы с использованием подпрограмм (функций)
Ст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)
По заданным вещественным массивам 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. Даны две квадратные вещественные матрицы шестого порядка. Напечатать квадрат той из них, в которой наименьший след (сумма диагональных элементов), считая, что такая матрица одна.
1 9. Сформировать двумерный массив 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]. Найти суммы элементов строк и столбцов в этих матрицах.
Лабораторная работа 9
- 2Федеральное агентство по образованию
- Алгоритмизация и программирование
- Основы программирования в среде Турбо Паскаля.
- Приоритет операций в выражении
- Задание 1 (программа 1_1)
- Программирование разветвленных алгоритмов. Операторы передачи управления
- Программирование циклических алгоритмов с заданным числом повторений
- Программирование циклических алгоритмов с предусловием
- Программирование циклических алгоритмов с постусловием
- Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.
- Программирование алгоритмов обработки одномерных массивов
- Задание 1
- Программирование с использованием функций
- Программирование с использованием процедур
- Лабораторная работа 10 Обработка символьных и строковых данных
- Множества
- Первая и вторая цифры размерность исходных множеств.
- Модульное программирование
- Динамические структуры данных. Списки
- Задание 1 (программа 15_1)
- Графика
- Задания к расчетно-графической работе
- Порядок выполнения лабораторных работ
- Обозначения графические в схемах алгоритмов (гост 19.701-90)
- Сообщение об ошибках Сообщения об ошибках периода компиляции
- Сообщения об ошибках периода исполнения Ошибки операционной системы dos
- Ошибки вода - вывода
- Критические ошибки