Опубликован: 02.02.2011 | Доступ: свободный | Студентов: 3339 / 950 | Оценка: 4.43 / 3.57 | Длительность: 33:06:00
Специальности: Программист
Лекция 18:

Объединения

< Лекция 17 || Лекция 18: 123 || Лекция 19 >

Лабораторная работа 17. Объединения

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

При выполнении лабораторной работы для каждого задания требуется написать программу на языке С++, в которой выполнена разработка объединения в соответствии с постановкой задачи, ввод данных элементов объединения, их обработка и вывод на экран в указанном формате. При этом объединение может являться одним из полей структуры. Ввод данных осуществляется с клавиатуры с учетом требований к входным данным, содержащихся в постановке задачи. Ограничениями на входные данные являются максимальный размер строковых данных, диапазоны числовых типов полей объединения или структуры, максимально допустимый размер массива структур в языке С++.

Теоретические сведения.

Ознакомьтесь с материалом лекции 17.

Задания к лабораторной работе.

Выполните приведенные ниже задания.

  1. На основе определения структуры из Примера 2 лекции 17 разработайте программу, которая запрашивает параметры геометрической фигуры и выводит ее периметр и площадь.
  2. На основе определения структуры из Примера 3 лекции 17 разработайте программу, которая запрашивает информацию о трех объектах и выводит ее в виде таблицы.
  3. Разработайте структуру, используя объединение: Сотрудник (ФИО, пол, образование, специальность, вуз, должность, стаж). Сотрудник может не иметь высшего образования. Введите информацию о трех сотрудниках и распечатайте в виде таблицы.
  4. Опишите переменную структуру для моделирования, предложенного понятия. Координаты точки (пара вещественных или комплексных чисел). Определите расстояние между двумя введенными точками.

Указания к выполнению работы.

Каждое задание необходимо решить в соответствии с изученными методами объявления и обработки данных объединений в языке С++. В задачах объединение, как правило, является одним из полей структурного типа. При объявлении объединений выполните комментирование используемых полей. При выполнении задач 1 и 2 используйте Примеры 2 и 3 соответственно из материалов лекции 17. В задачах 2 и 3 следует использовать массив структур, организовав его вывод в виде таблицы.

Следует реализовать каждое задание в соответствии с приведенными этапами:

  • изучить словесную постановку задачи, выделив при этом все виды данных;
  • сформулировать математическую постановку задачи;
  • выбрать метод решения задачи, если это необходимо;
  • разработать графическую схему алгоритма;
  • записать разработанный алгоритм на языке С++;
  • разработать контрольный тест к программе;
  • отладить программу;
  • представить отчет по работе.

Требования к отчету.

Отчет по лабораторной работе должен соответствовать следующей структуре.

  1. Титульный лист.
  2. Словесная постановка задачи. В этом подразделе проводится полное описание задачи. Описывается суть задачи, анализ входящих в нее физических величин, область их допустимых значений, единицы их измерения, возможные ограничения, анализ условий при которых задача имеет решение (не имеет решения), анализ ожидаемых результатов.
  3. Математическая модель. В этом подразделе вводятся математические описания физических величин и математическое описание их взаимодействий. Цель подраздела – представить решаемую задачу в математической формулировке.
  4. Алгоритм решения задачи. В подразделе описывается разработка структуры алгоритма, обосновывается абстракция данных, задача разбивается на подзадачи. Схема алгоритма выполняется по ЕСПД (ГОСТ 19.003-80 и ГОСТ 19.002-80).
  5. Листинг программы. Подраздел должен содержать текст программы на языке программирования С++, реализованный в среде MS Visual Studio 2010.
  6. Контрольный тест. Подраздел содержит наборы исходных данных и полученные в ходе выполнения программы результаты.
  7. Выводы по лабораторной работе.
  8. Ответы на контрольные вопросы.

Контрольные вопросы

  1. В чем принципиальное отличие размещения в памяти элементов структуры и объединения?
  2. Каким образом определяется размер объединения?
  3. Какова цель использования объединений в программировании?
  4. Какую информацию об объединении содержит указатель на это объединение?
  5. Какое значение будет храниться в объединении, если будут проинициализированы все поля?
  6. Какие существуют способы обращения к элементам объединения?
  7. В чем отличия различных способов обращения к элементам объединения?
  8. Для моделирования каких данных целесообразно использовать массив объединений?
  9. С какой целью объединения включаются в структуру в качестве ее полей?
  10. Как и с какой целью объявляются переменные с изменяемой структурой?
< Лекция 17 || Лекция 18: 123 || Лекция 19 >
Денис Курбатов
Денис Курбатов
Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!