Скачиваний:
6
Добавлен:
25.12.2018
Размер:
212.48 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

      1. Федеральное государственное автономное образовательное учреждение высшего образования

«Санкт-Петербургский государственный университет аэрокосмического приборостроения»

КАФЕДРА № 2

Преподаватель

доцент, к.т.н. Куртяник Д.В.

Отчёт

по лабораторной работе №6

по дисциплине Информатика

на тему: « Перегрузка функций»

Работу выполнил

студент гр. 4616 Павлов А.В.

Санкт-Петербург

Цель лабораторной работы: изучение концепции подпрограмм и способов передачи аргументов в функции, освоение методов процедурного программирования на языке C++ при решении типовых вычислительных задач.

Задание на программирование: используя технологию процедурного программирования, разработать программу, решающую поставленную задачу в соответствии с индивидуальным заданием.

Порядок выполнения работы:

1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные, их ограничения.

2) Разработать математическую модель.

3) Построить схему алгоритма.

4) Составить программу на языке С++.

5) Входные данные на этапах тестирования и демонстрации работы преподавателю должны вводиться с клавиатуры по запросу. Выходные данные должны выводиться на экран с пояснениями.

6) Использовать стандартные потоковые объекты ввода/вывода cin и cout.

7) Разработанная программа должна содержать функцию, выполняющую индивидуальное задание. При этом разработанная функция должна быть реализована 3 способами:

- как функция, возвращающая искомое значение;

- как функция, возвращающая искомое значение через дополнительный аргумент - указатель;

- как функция, возвращающая искомое значение через дополнительный аргумент - ссылку.

Эти три функции должны иметь одно и то же имя, т.е. должны быть перегружены.

Задача должна быть решена с использованием вызовов функций всех трех типов из функции main().

8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, текст программы, контрольные примеры.

1-3)

Вариант 10

Разработать функцию, вычисляющую наибольший общий делитель двух натуральных чисел.

Ввести три натуральных числа. Найти их НОД.

Ввод чисел A,B => цикл знаменатель = 1 => знам. <=a и знам.<=b, знаменатель +1 (for(int znam=1;((znam<=a)&(znam<=b));znam++){

if((a%znam==0)&(b%znam==0)){c=znam;})

Текст программы.

//вычисление максимально большого общего знаменателя двух натуральных чисел

#include <iostream>

#include <locale.h>

using namespace std;

int znam(int,int);

void znam(int, int, int*);

void znam(int, int, int&);

int main(){

setlocale(LC_ALL,"Russian") ;

//изначальные данные

int a,b,var;

int rez; // результат

for(;;){

//Выбор

cout<<"\nВид действия:\n1 - вычисления предела произведения\n2 - завершения задачи\nвведите вид действия -> ";

cin>>var;

switch(var){

case 1:

//ввод натуральных чисел

cout<<"Для нахождения общего знаменателя введите два числа\nВведите первое число А: ";

cin>>a;

cout<<"Введите второе число В: ";

cin>>b;

cout << "\nФункция, возвращающая значение" << endl;

rez = znam(a,b);

cout<<"\nу этих чисел самый большой общий знаменатель равен: "<<rez<<endl;

cout << "\nФункция с дополнительным аргументом-указателем" << endl;

znam(a,b,&rez);

cout<<"\nу этих чисел самый большой общий знаменатель равен: "<<rez<<endl;

cout << "\nФункция с дополнительным аргументом-ссылкой" << endl;

znam(a,b,rez);

cout<<"\nу этих чисел самый большой общий знаменатель равен: "<<rez<<endl;

break;

case 2:return 0;

}//switch

}//for

}

//функция возвращающая значение

int znam(int a, int b){

int c;

//вычисление общего знаменателя

for(int znam=1;((znam<=a)&(znam<=b));znam++)

{

if((a%znam==0)&(b%znam==0)){c=znam;}

}

if(c==1){

cout<<"\nу этих чисел нет общего знаменателя";

return c;

}

return c;

}

//функция с указателем

void znam(int a, int b, int *rez)

{

int c;

//вычисление общего знаменателя

for(int znam=1;((znam<=a)&(znam<=b));znam++)

{

if((a%znam==0)&(b%znam==0)){c=znam;}

}

if(c==1){

cout<<"\nу этих чисел нет общего знаменателя";

*rez=c;

}

*rez=c ;

}

//функция с ссылкой

void znam(int a, int b, int &rez)

{

int c;

//вычисление общего знаменателя

for(int znam=1;((znam<=a)&(znam<=b));znam++)

{

if((a%znam==0)&(b%znam==0)){c=znam;}

}

if(c==1){

cout<<"\nу этих чисел нет общего знаменателя";

rez=c;

}

rez=c ;

}

Примеры.

Соседние файлы в предмете Основы программирования и алгоритмизации