- •Самарский государственный технический университет
- •Утверждено на заседании кафедры электротехники, информатики и компьютерных технологий 30.01.03.
- •Лабораторная работа №7 программирование с использованием структур
- •Общие сведения о структурах
- •Имя_структуры . Имя_элемента_структуры
- •Список товаров
- •Листинг программы
- •Результат выполнения программы
- •Порядок выполнения работы
- •Задание на выполнение лабораторной работы
- •Содержание отчета
- •Варианты заданий
- •Контрольные вопросы
- •Библиографический список
- •Приложение Математические функции
- •Типы данных
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Самарский государственный технический университет
Филиал в г. Сызрани
Кафедра электротехники, информатики и компьютерных технологий
ПРОГРАММИРОВАНИЕ
С ИСПОЛЬЗОВАНИЕМ СТРУКТУР
Методические указания к лабораторной работе № 7
по дисциплине "Программирование и основы алгоритмизации"
Составитель:
Будин В.И.
Утверждено на заседании кафедры электротехники, информатики и компьютерных технологий 30.01.03.
СЫЗРАНЬ 2003
Лабораторная работа №7 программирование с использованием структур
Цель работы: закрепление теоретических знаний и приобретение практических навыков по составлению программ с использованием структур и их отладке в интегрированной среде Borland C++5.
Общие сведения о структурах
Структура – это объединенное в единое целое множество поименованных элементов в общем случае разных типов (переменных, массивов, указателей, структур и т. д.)
Определение структуры в общем случае имеет следующий вид:
struct [имя_типа_структуры]
{тип_1 элемент_1;
тип_2 элемент_2;
. . . . . . . . . . .
тип_N элемент_N;
} [список_имен_структур];
где struct – служебное (ключевое) слово; [·] – необязательный параметр.
Элементы структуры называются полями структуры и могут иметь любой тип, кроме типа этой же структуры, но могут быть указателями на него. Если список_имен_структур отсутствует, то имя_типа_структуры опускать нельзя и наоборот. После закрывающей фигурной скобки структуры обязательно ставится точка с запятой.
Пример структуры библиографической карточки.
struct card //card – тип структуры
{char *author; //author – Ф.И.О. автора
char *title; //title – заголовок книги
char *city; //city – место издания
char *firm; //firm – издательство
int year; //year – год издания
int pages; //pages – количество страниц
}; //список_имен_структур опущен
Далее тип структуры можно использовать для определения конкретных объектов.
Например:
card rec1, rec2, rec3; //reci – имена структур типа card
Если структура используется однократно, то объекты определяются без имени типа.
Например:
struct {char N[12];
int value;
} XX, XY, EE[8], *pst;
Для обращения к полям структур используются расширенные (составные, уточненные) имена:
Имя_структуры . Имя_элемента_структуры
При этом с полями структур можно выполнять любые операции, применимые к типу этих полей.
Например:
XY . N[0]=37; //присваивание поля N[0] структуры XY
cin >> EE[3] . value; //ввод значения поля value структуры EE[3]
При определении структур возможна инициализация, т.е. задание начальных значений их элементов.
Например:
card dictionary=
{"Подбельский В.В.", "Язык Си ++", "М.",
"Финансы и статистика", 1999, 560};
При инициализации массивов структур каждый элемент массива заключается в фигурные скобки.
Например:
struct complex {float real, im;} comple [2] [3]=
{{{1,1}, {1,1}, {1,1}}, {{2,2}, {2,2}, {2,2}}};
Для структур одного и того же типа определена операция присваивания. При этом происходит поэлементное копирование полей структур.
Например:
XY=EE[3]; //предполагается, что структура EE[3] уже инициализирована
XX=XY;
Структуру можно передавать в функцию и возвращать в качестве значения функции по правилам, определенным для работы с функциями.
Пример. Составить программу, которая позволяет организовывать список в виде массива структур, содержащий информацию о товарах (табл.1), и сортировать этот список:
а) по алфавиту наименования товара;
б) по убыванию цены товара;
в) по убыванию числа единиц товара.
Вывести отсортированный список на печать.