- •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.2.2. Пример для варианта 30
Написать программу решения следующей задачи: Определить число положительных элементов до первого отрицательного в массивах X(6), Y(10), Z(8).
2.4.2.3. Программа
//Лабораторная работа № 13
//Задание 2
// Вычисления без использования функций
//Вариант 30
//Автор Петрова Мария гр. ИНФО-101
// 12.05.2012
//= = = = = = = = = = = = == = = = == = = = ==
#include <conio.h> // подключение библиотеки функций ввода-вывода
#include <iostream.h> // подключение библиотеки потокового ввода-вывода
#include <iomanip.h> // подключение библиотеки средств манипулирования потоками
int SumMas(float A[20],char Sim,int n);//Оператор прототипа
int main ()
{
// Объявление переменных
int n1,n2, n3, i;
float X[20], Y[20], Z[20];
// Ввод массивов
cout << "Введите исходные массивы:"<<endl;
cout << "Введите число элементов массива X (n1 <= 20): ";
cin >> n1;
for (i=0; i<n1; i++)
{
cout <<"Введите " << i << "-ый элемент массива X: ";
cin >> X[i];
}
cout << "Введите число элементов массива Y (n2 <= 20): ";
cin >> n2;
for (i=0; i<n2; i++)
{
cout <<"Введите " << i << "-ый элемент массива Y: ";
cin >> Y[i];
}
cout << "Введите число элементов массива Z (n3 <= 20): ";
cin >> n3;
for (i=0; i<n3; i++)
{
cout <<"Введите " << i << "-ый элемент массива Z: ";
cin >> Z[i];
}
SumMas(X, 'X',n1);
SumMas(Y, 'Y',n2);
SumMas(Z, 'Z',n3);
cout << "Нажмите любую клавишу..." ;
getch();
return 0;
}
int SumMas(float A[20],char Sim,int n)
{
int i,k;
k = 0;
for (i=0; i<n; i++)
{if (A[i]>=0)k = k + 1; else break;
}
cout <<"Число положительных элементов до "<< endl;
cout <<"первого отрицательного в массиве "<<Sim << " = "<< k << endl;
}
2.4.2.4. Тестирование
2.4.3. Задание 3. Функции пользователя при работе с массивами
2.4.3.1. Условие задания
Написать программу решения задачи с использованием механизма функций пользователя.
Таблица 13.3
№ |
Задание |
1 |
Написать подпрограмму для замены в массивах X(8), Y(10) и Z(11) всех чётных элементов на значение 1. |
2 |
Написать подпрограмму для замены знака каждого второго элемента в массивах A(10), B(12) и C(8) на противоположенный. |
3 |
Написать подпрограмму для вычисления суммы отрицательных элементов в массивах A(10), B(12) и C(8). |
4 |
Написать подпрограмму для расчёта числа положительных элементов в массивах A(10), B(12) и C(8). |
5 |
Написать подпрограмму для вычисления куба суммы положительных элементов в массивах X(5,3), Y(3,4) и Z(4,5). |
6 |
Написать подпрограмму для расчёта суммы элементов второй строки матриц M(5,3), N(3,4) и L(4,5). |
7 |
Написать подпрограмму для вычисления суммы элементов пятого столбца матриц X(3,5), Y(4,4) и Z(5,4). |
8 |
Написать подпрограмму для отыскания минимального элемента в массива X(15),Y(12) и Z(10). |
9 |
Написать подпрограмму для отыскания максимального элемента в массивах A(5,3), B(3,4) и C(4,5) и индексов этого элемента. |
10 |
Написать подпрограмму для вычисления k!=1*2*3*…*k. |
11 |
Написать подпрограмму для замены в матрицах A(5,5) B(4,4) и C(3,3) всех элементов, стоящих на главной диагонали на число 2. |
12 |
Написать подпрограмму для вычисления квадрата суммы элементов массивов A(10), B(13) и C(12), значения которые меньше 10. |
13 |
Написать подпрограмму для вычисления суммы положительных элементов i-той строки матриц A(5,3), B(3,4) и C(4,5). |
14 |
Составить подпрограмму для вычисления количества элементов матриц A(5,3), B(3,4) и C(4,5), знчения которых лежат в интервале (2,8). |
15 |
Составить подпрограмму для расчёта квадратного корня из суммы положительных элементов массивов X(15),Y(12) и Z(10). |
16 |
Составить подпрограмму для вычисления минимального элемента матриц A(5,3), B(3,4) и C(4,5) с указанием индексов где находится этот элемент. |
17 |
Составить подпрограмму для расчёта количества нулевых элементов массивов X(5,3), Y(3,4) и Z(4,5). |
18 |
Составить подпрограмму для замены знака всех нечётных элементов массива Z(150) на противоположный. |
19 |
Составить подпрограмму для вычисления следа (суммы элементов главной диагонали) матриц A(5,5), B(3,3) и C(4,4). |
20 |
Составить подпрограмму для замены знака на противоположенный у всех элементов i-го столбца матриц A(5,5), B(3,3) и C(4,4). |
21 |
Составить подпрограмму для вычисления максимального элемента матриц X(5,3), Y(3,4) и Z(4,5) и определения номеров строки и столбца, которым принадлежит этот элемент. |
22 |
Составить подпрограмму для вычисления количества элементов массивов X(10,25), значения которых больше 10, и вычисления квадратного корня из суммы этих элементов. |
23 |
Составить подпрограмму для вычисления минимального элемента n-й строки матриц A(5,5), B(3,3) и C(4,4). |
24 |
Составить подпрограмму для вычисления количества нулевых элементов I-го столбца матрицы A(5,5), B(3,3) и C(4,4). |
25 |
Составить подпрограмму для вычисления количества элементов массивов X(5,3), Y(3,4) и Z(4,5), значения которых лежат в интервале [0,6]. |
26 |
Составить подпрограмму для расчёта тангенса суммы положительных элементов массивов X(5,3), Y(3,4) и Z(4,5). |
27 |
Составить подпрограмму для вычисления максимального и минимального элементов матриц A(5,5), B(3,3) и C(4,4) и определения номеров строк и столбцов, в которых стоят эти элементы. |
28 |
Составить подпрограмму для замены элементов k-го столбца матриц A(5,5), B(3,3) и C(4,4) на число 1. |
29 |
Составить подпрограмму для расчёта количества нулевых элементов i-й строки матриц A(5,5), B(3,3) и C(4,4). |
30 |
Составить подпрограмму для нахождения количества положительных, отрицательных и нулевых элементов массивов А(5,4), В(4,5), C(6,6). |