Лабораторные работы по "Информатике"
Автор: Александр Поляков • Октябрь 2, 2022 • Лабораторная работа • 9,031 Слов (37 Страниц) • 177 Просмотры
Министерство образования и науки Российской Федерации
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО
ПРОФЕССИОНАЛЬНОГО ОБРАЗОАВНИЯ
«ПЕРМСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬССКИЙ
ПОЛИТЕХНИЧЕСКИЙ УНИВЕРССИТЕТ»
Кафедра «Информационных технологий и автоматизированных систем»
Лабораторные работы по информатике
(2 семестр)
Вариант 2
Пермь 2017
Лабораторная работа №7
1. Постановка задачи:
1. Написать перегруженные функции и основную программу, которая их вызывает.
а) для сложения вещественных чисел;
б) для сложения комплексных чисел.
2. Написать функцию mult с переменным числом параметров, которая находит произведение чисел типа float. Написать вызывающую функцию main, которая обращается к функции mult не менее трёх раз с количеством параметров 3, 7, 11.
2. Выполнение задачи.
Текст программы № 1.
#include <iostream> /*)*/
//#include <cstdlib> // заголовок для работы с функцией system()
#include <conio.h> // библиотека для работы оператора getch ();
#include <clocale> // заголовок для правильногоотображения языка
#include <math.h>
using namespace std;
double summa_el (double a, double b, double c, double d) {
a+=b+c+d;
cout << "\n Произведение вещественных чисел = "<< a << "\n" ;
return 0;
}
int summa_el(int a, int b, int c, int d) {
int Z1, Z2;
Z1=a+c;
Z2=b+d;
cout << "\n Произведение комплексных чисел = "<< Z1 <<" + "<< Z2 << "\n";
return 0;
}
int main() {
setlocale(LC_CTYPE, "rus"); // вызов функции настройки clocale на русский
summa_el(1.3432, 3.86806, -4.5447, 4.175468);
summa_el(14, -78, -120, 25);
getch(); // Команда задержки экрана
return 0;
}
Текст программы № 2.
#include <iostream> /
#include <conio.h> // библиотека для работы оператора getch ();
#include <clocale> // заголовок для правильногоотображения языка
using namespace std;
//------------- функция с переменным числом параметров -----------------
double mult (double a, ...) {
double *p = &a; //настройка указателя на параметр "а"
double b=1; // определение переменной для хранения произведения
for (; a!=0; a--) //цикл получения произведения
b*= *(++p);
return b;
}
//------------ основная программа ----------------------
int main() {
setlocale(LC_CTYPE, "rus");
cout << "\n Функция произведения чисел с переменным числом параметров" << endl;
cout << "\n 3 чисел (1.5255, 445.444, 0.01) ="
<< mult (3, 1.5255, 445.444, 0.01); // определяем количество параметров "3" и парпраметры
cout << "\n 7 чисел (5.1, 21.7, 3.2, 0.004, 1.1, 6.1, 9.2) = "
<< mult(7, 5.1, 21.7, 3.2, 0.004, 1.1, 6.1, 9.2);
cout << "\n 11 чисел (1.2, 2.4, 3.5, 0.5, 6.2, 2.5, 9.02, 0.1, 1.2, 2.2, 11.5) = "
<< mult(11, 1.2, 2.4, 3.5, 0.5, 6.2, 2.5, 9.02, 0.1, 1.2, 2.2, 11.5);
cout << endl << endl;
getch(); // Команда задержки экрана
return 0;
}
4. Результаты работы программы.
5. Объяснение результатов.
1. Функции с одним именем summa_el работают с разными типами переменных, возвращает различные данные, выполняют различные задачи. Программа сама определяет по типу передаваемых данных, к какой из функций обратится и что в дальнейшем с этими данными делать.
2. Функция не содержит фиксированных параметров, количество и тип параметров становится известным только в момент вызова. В функцию для определения начала и конца переменного списка передаётся количество передаваемых параметров, определяющее работу функции.
...