Задания к самостоятельной работе




 

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

2. Напишите программу, которая использует шаблон функции по имени min для определения наименьшего из трех аргументов. Проверьте программу, используя пары целых чисел, символов и чисел с плавающей запятой.

3. Определите, содержат ли следующие фрагменты программы ошибки. Для каждой ошибки укажите, как она может быть исправлена.

За­мечание: в некоторых фрагментах ошибки могут отсутствовать.

a) template < class A >

int sum (int numl, int num2, int num3)

{ return numl + num2 + num3;)

b) void printResults (int x, int y)
{ cout «"Сумма равна " «x + у «' \n';

return x + y; }

c) template < class A>

A product (A numl, A num2, A num3)

{ return numl * num2 * num3; }

double cube (int);
int cube (int);

4. Ряд Фибонначи состоит из чисел, каждое из которых является суммой двух предыдущих(1, 1, 2, 3, 5, 8, 13, …). Найти n-ный элемент ряда, используя рекурсию.

5. Наибольший общий делитель (НОД) двух целых чисел х и у — это наибольшее целое, на которое без остатка делится каждое из двух чисел. Напишите рекурсивную функцию nod, которая возвращает наибольший общий делитель чисел х и у. НОД для х и у опреде­ляется рекурсивно следующим образом: если у равно 0, то nod(x, у) возвращает х; в противном случае nod(x, у) равняется nod(y, х % у), где % — это операция вычисления остатка.


Лабораторная работа 5

Структуры

Структура – одна или несколько переменных, которые для удобства работы с ними сгруппированы под одним именем.

В отличие от массивов переменные структуры могут иметь различный тип.

Структура – абстрактный тип данных, т.е. тип данных, определяемый пользователем.

Синтаксис определения структуры:

struct имя

{ список переменных;

};

Ключевое слово struct указывает на то, что далее приведено имя структуры как нового типа данных. Имя структуры иначе называют телом структуры.

Идентификаторы, объявленные внутри фигурных скобок, называются элементами структуры. Элементы одной и той же структуры должны иметь уникальные имена. Структуры, как и глобальные переменные, должны быть объявлены вне каких-либо функций.

Структуры используются в организации сложных данных, так как позволяют представлять группу связанных между собой переменных не как отдельные элементы, а как единое целое.

Примеры структур: точка, описываемая двумя координатами х и у; структура «платежная ведомость», содержащая сведения о служащем: имя, адрес, зарплата, номер карточки и так далее.

Программа, объявляющая точку с координатами х и у, используя структуру:

# include < iostream >

# include < math>

struct Point {

int x;

int y;

}

main () {

Point A, B; // объявление двух точек A и B с координатами x и y.

cout << ” Enter coordinates of point A \n ”;

cin >> A.x >> A.y;

cout << ” Enter coordinates of point B \n ”;

cin >> B.x >> B.y;

double d;

d = sqrt (pow ((A.x - B.x), 2) + pow ((A.y - B.y), 2));

cout << d;

return 0;

}

Доступ к отдельным элементам структуры производится с помощью операции “точка” (”.”), которая называется оператором прямого доступа к элементам структуры.

Point A;

A.x=1;

A.y=2;

Существует вторая операция доступа к элементам структуры, которая называется “операция указателя структуры” и обозначается через знак ->. Эта операция используется, если переменная была объявлена как указатель структурного типа.

Point * A;

A->x=-5;

A->y=0;

или

(*A).x=-5;

(*A).y=0;

Скобки необходимы в этой записи, потому что операция “.” имеет более высокий приоритет, чем операция косвенной адресации “*”.

Так же, как и любую другую переменную, переменную структурного типа можно одновременно объявлять и инициализировать:

Point A={-1,0};

Point B={-2,-6};

Значения переменных структуры присваиваются в порядке их объявления при определении структуры.

Структуры внутри структур

Допускается объявление вложенных структур. Это означает, что структура может содержать 1 или несколько элементов структурного типа.

Пример:

struct MD {

int headers;

int cylinders;

int speed;

car name[10];

double size;

};

struct Computer {

char model[20];

int memory;

int diagonal;

MD disk;

};

Для доступа к элементу структуры MD используется следующая запись:

Computer A;

A.disk.size=20;

Структуры в качестве параметров функции

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

# include < iostream.h >

struct Student {

int ID;

char name [ 10 ];

int age;

};

void input (Student *);

main () {

Student List;

input (&List);

cout << List.ID << List.name << List.age;

return 0;

}

void input (Student *L) {

cin >> L->ID;

cin >> L->name;

cin >> L->age;

}

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-04-04 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: