Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
new_mb.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
892 Кб
Скачать
☆
    1. 3.6. Объединение

Унаследованным из языка C является и тип «union» – объединение. Объединение может хранить данные любого из объявленных в ней типов, при этом в нем в каждый момент времени хранится значение только одного типа.

Листинг 3.12. Объединения.

#include <iostream>

using namespace std;

union varvalue

{

int ival;

float fval;

double dval;

} varval;

int main (void)

{

cin >> varval.ival;

//теперь в объединении – целочисленное значение;

cout << varval.ival << " " << varval.fval << " " << varval.dval << endl;

cin >> varval.fval;

//теперь в объединении – дробное значение;

cout << varval.ival << " " << varval.fval << " " << varval.dval << endl;

cin >> varval.dval;

//теперь в объединении дробное значение другого типа;

cout << varval.ival << " " << varval.fval << " " << varval.dval << endl;

return 0;

}

    1. 3.7. Переопределение типов

Средство «typedef» предоставляет возможность давать типам данных новые имена. Данное средство применимо не только к стандартным встроенным типам, но и к более сложным объявлениям.

Листинг 3.13. Переопределение типов.

#include <iostream>

using namespace std;

//создание псевдонима для указателя на символ;

typedef char* String;

//структура – запсь из двух строк;

struct Person

{

String name;

String surname;

};

//создание псевдонима для целогочисленногг значения;

typedef int Number;

//структура – запись из двух строк и номер;

struct Record

{

Number number;

Person person;

};

int main (void)

{

Record rec;

rec.person.name = "Ivan";

rec.person.surname = "Ivanov";

rec.number = 1;

cout << rec.number << ". " << rec.person.name

<< " " << rec.person.surname << endl;

return 0;

}

    1. 3.8. Упражнения

Выполнить задания из разделов «3.8.1. Статические и динамические массивы» и «3.8.2. Многомерные массивы» в двух вариантах.

  1. Для произвольного массива, элементы которого имеют любой из встроенных числовых типов, с заданным числом элементов (статический).

  2. Для массива, элементы которого имеют любой из встроенных числовых типов, размерность которого и значения элементов задаваемых пользователем с клавиатуры (динамический).

      1. 3.8.1. Статические и динамические массивы

  1. Найти и вывести на экран наименьший элемент.

  2. Найти и вывести на экран разность модулей максимального и минимального элементов.

  3. Найти и вывести на экран, все пары соседних элементов, где первый меньше второго.

  4. Найти и вывести на экран все положительные элементы.

  5. Найти и вывести на экран сумму всех положительных элементов.

  6. Найти и заменить все максимальные элементы их отрицательными значениями.

  7. Найти и вывести на экран индексы всех нечетных элементов.

  8. Найти и вывести на экран все элементы, индексы которых кратны пяти.

  9. Найти и вывести на экран два элемента, стоящие рядом и отличающиеся на единицу.

  10. Найти и вывести на экран наибольший элемент.

  11. Найти и вывести на экран индекс элемента, модуль которого является максимальным.

  12. Найти и вывести на экран все элементы, кратные пяти.

  13. Найти и вывести на экран все элементы, индексы которых кратны трем.

  14. Найти и вывести на экран индексы всех четных элементов.

  15. Найти и вывести на экран, все пары соседних элементов, где первый больше второго.

  16. Найти и поменять местами максимальный и минимальный элементы.

  17. Найти и вывести на экран все отрицательные элементы.

  18. Найти и вывести на экран количество отрицательных элементов.

  19. Найти и заменить все минимальные элементы их отрицательными значениями.

  20. Сдвинуть массив циклически на два элемента влево.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]