- •Тема 1. Программирование линейных алгоритмов. Арифметические выражения
- •Тема 2. Программирование разветвляющихся вычислительных процессов
- •Тема 3. Программирование циклических вычислительных процессов.
- •Тема 4. Обработка одномерных массивов.
- •Тема 5. Обработка двумерных массивов.
- •Тема 6. Обработка символьных данных.
- •Тема 7. Обработка строковых данных.
- •Тема 8. Составление программ с использование процедур
- •5Доп. [16-19], 10доп.[104-116], 11доп.[187-211]
- •Тема 9. Составление программ с использование функции
- •5Доп. [16-19], 10доп.[104-116], 11доп.[187-211]
- •Тема 10. Составление программ с использованием записи.
- •5Доп [19-22], 10доп.[95-99], 11доп.[321-338]
- •Тема 11. Множества.
- •Тема 12. Составление программ с использованием типизированных файлов
- •5Доп. [16-19], 10доп.[87-95], 11доп.[359-369]
- •Тема 13. Составление программ с использованием текстовых файлов
- •5Доп. [16-19], 10доп.[87-95], 11доп.[359-369]
- •Тема 14. Динамическая память и указатели.
- •Тема 15.
5Доп. [16-19], 10доп.[104-116], 11доп.[187-211]
Тема 9. Составление программ с использование функции
Методические рекомендации: Составить блок-схему алгоритма и программу для решения задач с использованием функций.
1. Описать функцию Norm1(A,M,N) вещественного типа, вычисляющую норму матрицы A размера M x N с вещественными элементами:
Norm1(A,M,N) = max {|A[1,j]| + |A[2,j]| + ... + |A[M,j]|},
где максимум берется по всем j от 1 до N. Для данной матрицы A размера M x N найти Norm1(A,k,N), k = 1,...,M.
2. Описать функцию Norm2(A,M,N) вещественного типа, вычисляющую норму матрицы A размера M x N с вещественными элементами:
Norm2(A,M,N) = max {|A[i,1]| + |A[i,2]| + ... + |A[i,N]|}, где максимум берется по всем i от 1 до M. Для данной матрицы A размера M x N найти Norm2(A,k,N), k = 1,...,M.
3. Описать функцию SumLine(A,M,N,k) вещественного типа, вычисляющую сумму элементов вещественной матрицы A размера M x N, расположенных в k-й строке (если k > M, то функция возвращает 0). Для данной матрицы A размера M x N и трех данных k найти SumLine(A,M,N,k).
4. Описать функцию SumCol(A,M,N,k) вещественного типа, вычисляющую сумму элементов вещественной матрицы A размера M x N, расположенных в k-ом столбце (если k > N, то функция возвращает 0). Для данной матрицы A размера M x N и трех данных k найти SumCol(A,M,N,k).
5. Описать функцию Otr(Ax,Ay,Bx,By) вещественного типа, находящую длину отрезка AB на плоскости по координатам его концов: |AB| = sqrt((Ax-Bx)2 + (Ay-By)2) (Ax, Ay, Bx, By — вещественные параметры). С помощью этой функции найти длины отрезков AB, AC, AD, если даны координаты точек A, B, C, D.
6. Используя функцию Otr из задания 16, описать функцию Perim(Ax,Ay,Bx,By,Cx,Cy) вещественного типа, находящую периметр треугольника ABC по координатам его вершин (Ax, Ay, Bx, By, Cx, Cy — вещественные параметры). С помощью этой функции найти периметры треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.
7. Используя функции Otr и Perim из заданий 16 и 17, описать функцию Area(Ax,Ay,Bx,By,Cx,Cy) вещественного типа, находящую площадь треугольника ABC по формуле Герона: SABC = sqrt(p·(p–|AB|)·(p–|AC|)·(p–|BC|)), где p — полупериметр. С помощью этой функции найти площади треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.
8. Используя функции Otr и Area из заданий 16 и 18, описать процедуру Dist(Px,Py,Ax,Ay,Bx,By,D), находящую расстояние D от точки P до прямой AB по формуле D = 2SPAB / |AB|, где SPAB — площадь треугольника PAB. С помощью этой процедуры найти расстояния от точки P до прямых AB, AC, BC, если даны координаты точек P, A, B, C.
9. Рекурсивную функцию SqrtK(x,k,n) вещественного типа, находящую приближенное значение корня k-й степени из числа x по формуле: y(0) = 1, y(n+1) = y(n) – (y(n) – x / y(n)k–1) / k, где y(n) обозначает SqrtK(x,k,n) (x — вещественный параметр, k и n — целые; x > 0, k > 1, n > 0). С помощью этой функции найти приближенные значения корня K-й степени из X при 6 различных значениях N для данных X и K.
10. Описать рекурсивную функцию MinRec(A,N) вещественного типа, которая находит минимальный элемент вещественного массива A размера N, не используя оператор цикла. С помощью функции MinRec найти минимальные элементы массивов A, B, C размера NA, NB, NC соответственно.
11. Описать рекурсивную функцию Digits(S) целого типа, находящую количество цифр в строке S без использования оператора цикла. С помощью этой функции найти количество цифр в данных пяти строках.
12. Описать рекурсивную функцию Simm(S) логического типа, проверяющую, является ли симметричной строка S, без использования оператора цикла. С помощью этой функции проверить данные пять строк.
1осн.[161-181]
