ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Программирование с применением функцийЦель работы: научиться разрабатывать и отлаживать программы с использованием подпрограмм (функций). Объявление функции (прототип, заголовок) задает ее имя, тип возвращаемого значения и список передаваемых параметров. Определение функции содержит, кроме объявления, тело функции, представляющее собой последовательность операторов и описаний в фигурных скобках: [класс] тип имя ([список параметров])[throw (исключения)] {тело функции} С помощью необязательного модификатора класс можно явно задать область видимости функции, используя ключевые слова extern, static: extern – глобальная видимость во всех модулях программы (по умолчанию); static – видимость только в пределах модуля, в котором определена функция. Тип возвращаемого функцией значения может быть любым, кроме массива и функции (но может быть указателем на массив или функцию). Если функция не должна возвращать значение, указывается тип void. Список параметров определяет величины, которые требуется передать в функцию при ее вызове. Элементы списка параметров разделяются запятыми. Для каждого параметра, передаваемого в функцию, указывается его тип и имя (в объявлении имена можно опускать). Механизм возврата из функции в вызвавшую ее функцию реализуется оператором return [выражение]; Пример. Даны три массива A (5), B (5), C (5). Найти среднее арифметическое значение наименьших элементов массивов. До написания программы разрабатывается СА главной программы (рис.10, а) и СА для подпрограммы нахождения наименьшего элемента в любом массиве (рис.10, б). Отлаженная программа решения задачи имеет следующий вид:
#include <stdio.h> #include <conio.h> typedef int* mass; // переопределение типа: mass – указатель на целые // функция вычисления минимального элемента в массиве int minim (mass d) { int i, min; min = d[0]; for (i=1; i<5; ++i) if (d[i]<min) min = d[i]; printf ("минимальный элемент равен %d\n", min); return min; } void main () { int a[] = {5,2,7,1,8}; int b[] = {3,4,5,6,6}; int c[] = {3,8,5,2,6}; int n; float sr; sr = (minim(a) + minim(b) + minim(c)) / 3; printf(" sr= %5.2f ", sr); getch(); } Задание 1 (программа 8_1) Написать и отладить программы для задач из лабораторных работ 1 и 6 с применением подпрограммы - функции с параметрами. Вычисление функции (или обработку массива) выполнить в подпрограмме, а ввод исходных данных и вывод результатов - в основной программе. Предусмотреть, по крайней мере, два обращения к функции с различными фактическими параметрами (двумя массивами). Для отладки программ использовать средства среды Си (см. прил. А): пошаговое исполнение программы (трассировку) с контролем значений переменных в окне отладчика 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]. Найти суммы элементов строк и столбцов в этих матрицах. Лабораторная работа 9 Не нашли, что искали? Воспользуйтесь поиском:
|