
- •1. Краткие теоретические сведения
- •1.1. Знакомство с функциями
- •1.2. Описание функции
- •1.3.1. Тело функции
- •1.3.2. Формальные параметры функции
- •1.3.3. Обращение к функции
- •1.3.4. Фактические параметры.
- •1.4. Формальные и фактические параметры функции
- •1.5. Описание и объявление функции. Прототип функции
- •1 Способ - Перед main().
- •2 Способ - После main ().
- •1.6. Передача параметров в функцию. Изменяемые значения параметров
- •1.6.1. Передача параметров
- •1.6.2. Передача параметров по значению
- •1.6.3. Передача параметров по ссылке
- •1.6.4. Передача параметров по указателю
- •1.7. Механизм обращения к функции и передача данных
- •1.8. Локальные и глобальные переменные. Время жизни и область действия (видимости) переменных
- •1.8.1. Представление об области видимости переменных
- •1.8.2. Объявление локальных переменных
- •1.8.3. О конфликте имен
- •1.8.4. Глобальные переменные
- •1.8.5. Если имена глобальных и локальных переменных конфликтуют
- •1.9. Принцип сокрытия данных внутри функции. Принцип локализации имен
- •1.10. Передача одномерных массивов как параметров функции
- •1.11. Передача многомерных массивов в функцию
- •1.12. Рекурсивные функции
- •1.13. Аргументы по умолчанию
- •1.14. Встраиваемые функции (inline)
- •1.15. Перегрузка функций
- •1.16. Указатель на функцию
- •1.17. Шаблоны функций
- •1.18. Использования библиотеки этапа выполнения
- •1.18.1. Использование функций библиотеки этапа выполнения
- •1.18.2. Изучение функций библиотеки этапа выполнения
- •1.18.3. Использование функций api
- •1.19. Изменение значений параметров функции
- •1.19.1. Почему функции обычно не могут изменить значения параметров
- •1.19.2. Изменение значения параметра
- •1.19.3. Использование ассемблерных листингов для лучшего понимания работы компилятора
- •1.20. Примеры решения задач с использованием механизма функций
- •2. Задание
- •2.4. Задания для выполнения на занятиях
- •2.4.1. Задание 1. Функции пользователя-использование формул
- •2.4.1.1. Условие задания
- •2.4.1.2. Пример для варианта 30
- •2.4.1.3. Программа
- •2.4.1.4. Тестирование
- •2.4.2. Задание 2. Функции пользователя при работе с массивами
- •2.4.2.1. Условие задания
- •2.4.2.2. Пример для варианта 30
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Функции пользователя при работе с массивами
- •2.4.3.1. Условие задания
- •2.4.3.2. Пример для варианта 30
- •2.4.3.3. Программа
- •2.4.3.4. Тестирование
- •2.4.4. Задание 4. Вычисление выражений с использованием функций
- •2.4.4.1. Условие задания
- •2.4.4.2. Пример для варианта 30
- •2.4.4.3. Программа
- •2.4.4.4. Тестирование
- •2.4.5. Задание 5. Вычисление интеграла методом трапеций
- •2.4.5.1. Условие задания
- •2.4.5.2. Пример для варианта 30
- •2.4.5.3. Программа
- •2.4.5.4. Тестирование
- •2.4.5.5. Типичные ошибки при выполнении работы
- •Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Знакомство с функциями 2
2.4.3.2. Пример для варианта 30
Составить подпрограмму для нахождения количества положительных, отрицательных и нулевых элементов массивов А(5,4). В(4,5), C(6,6).
2.4.3.3. Программа
//Лабораторная работа № 13
//Задание № 3
// Вычисления без использования функций
//Вариант 30
//Автор Петрова Мария гр. ИНФО-101
// 12.05.2012
//= = = = = = = = = = = = == = = = == = = = ==
#include <conio.h> // подключение библиотеки функций ввода-вывода
#include <iostream.h> // подключение библиотеки потокового ввода-вывода
#include <iomanip.h> // подключение библиотеки средств манипулирования потоками
int SumMas(float X[20][20],char Sim,int n, int m);//Оператор прототипа
int main ()
{
// Объявление переменных
int n1,m1,n2,m2, n3,m3, kp, ko, kn, i,j;
float A[20][20], B[20][20], C[20][20];
// Ввод массивов
cout << "Введите исходные массивы:"<<endl;
cout << "Число строк массива A (m1 <= 20): ";
cin >> m1;
cout << "Число строк столбцов A (n1 <= 20): ";
cin >> n1;
for(i=0; i<m1; i++)
for(j=0; j<n1; j++)
{
cout <<"Введите элемент массива A[" << i << "," << j <<"]= ";
cin >> A[i][j];
}
cout << "Число строк массива B (m2 <= 20): ";
cin >> m2;
cout << "Число строк столбцов A (n2 <= 20): ";
cin >> n2;
for(i=0; i<m2; i++)
for(j=0; j<n2; j++)
{
cout <<"Введите элемент массива B[" << i << "," << j <<"]= ";
cin >> B[i][j];
}
cout << "Число строк массива C (m3 <= 20): ";
cin >> m3;
cout << "Число строк столбцов C (n3 <= 20): ";
cin >> n3;
for(i=0; i<m3; i++)
for(j=0; j<n3; j++)
{
cout <<"Введите элемент массива C[" << i << "," << j <<"]= ";
cin >> C[i][j];
}
SumMas(A, 'A',m1,n1); //Обращение к функции с массивом А
SumMas(B, 'B',m2,n2); //Обращение к функции с массивом B
SumMas(C, 'C',m3,n3); //Обращение к функции с массивом C
cout << "Нажмите любую клавишу..." ;
getch();
return 0;
}
int SumMas(float X[20][20],char Sim,int m,int n)
{
int i,j,kp,ko,kn;
kp = 0;ko = 0;kn = 0;
for (i=0; i<m; i++)
{
for (j=0; j<n; j++)
{
if (X[i][j]>0)kp = kp + 1;
if (X[i][j]==0)kn = kn + 1;
if (X[i][j]<0)ko = ko + 1;
}
}
cout <<"Массив "<<Sim<<endl;
cout <<"Число положительных элементов kp = "<<kp<< endl;
cout <<"Число отрицательных элементов ko = "<<ko<< endl;
cout <<"Число нулевых элементов kn = "<<kn<< endl;
}
2.4.3.4. Тестирование
2.4.4. Задание 4. Вычисление выражений с использованием функций
2.4.4.1. Условие задания
Написать программу решения задачи с использованием механизма функций пользователя.
Используя нестандартные функции, составить программы для расчёта указанных величин.
Таблица 13.4
№ |
Нестандартные функции |
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|