Главная | Случайная
Обратная связь

ТОР 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




Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2019 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных