|
Персональная ЭВМ ПЭВМ ЕС 1840.05Стр 1 из 2Следующая ⇒ Теоретические сведения Структура – это объединение одного либо более объектов(переменных, массивов, указателей, других структур). Как и массив, она представляет собой совокупность данных, но отличается от него тем, что к ее элементам необходимо обращаться по имени, и ее различные элементы не обязательно должны принадлежать одному типу. Структуры удобно использовать там, где разнообразные данные, относящиеся к одному и тому же объекту, необходимо объединять. Например, ученика средней школы характеризуют следующие данные: фамилия, имя, дата рождения, класс, возраст. Объявление структуры осуществляется с помощью ключевого слова struct, за которым следует ее тип, список элементов, заключенных в фигурные скобки. Ее можно представить в следующем общем виде: struct тип {тип элемента 1 имя элемента 1; тип элемента n имя элемента n; }; Именем элемента может быть любой идентификатор. В одной строке можно записывать через запятую несколько идентификаторов одного типа. Например: struct date { int day; int month; int year;}; Русские буквы использовать в идентификаторе в языке СИ нельзя. Следом за фигурной скобкой, заканчивающей список элементов, могут записываться переменные данного типа, например: struct date {…} a, b, c; При этом выделяется соответствующая память. Выведенное имя типа можно использовать для объявления записи, например: struct date day;. Теперь переменная day имеет тип date. Разрешается вкладывать структуры одна на другую. Для лучшего восприятия структуры используем русские буквы в идентификаторах, в языке СИ этого делать нельзя. Например: struct УЧЕНИК { char Фамилия [15]; имя [15]; struct DATA ДАТА РОЖДЕНИЯ; int класс, возраст;}; определенный выше тип DATA включает три элемента: День, Месяц, Год, содержащие целые значения (int). Запись УЧЕНИК включает элементы: ФАМИЛИЯ [15]; ИМЯ[15]; ДАТА РОЖДЕНИЯ, КЛАСС, ВОЗРАСТ. ФАМИЛИЯ [15] и ИМЯ [15] – это символьные массивы из 15 компонент каждый. Переменная ДАТА РОЖДЕНИЯ представлена составным элементом (вложенной структурой) ДАТА. Каждой дате рождения соответствуют день месяца, месяц и год. Элементы КЛАСС и ВОЗРАСТ содержат значения целого типа (int). После введения типов ДАТА и УЧЕНИК можно объявить переменные, значения которых принадлежат этим типам. Например: struct УЧЕНИК УЧЕНИКИ [50]; массив УЧЕНИКИ состоит из 50 элементов типа УЧЕНИК. В языке СИ разрешено использовать массивы структуры; записи могут состоять из массивов и других записей. Чтобы обратиться к отдельному компоненту структуры, необходимо указать ее имя, поставить точку и сразу за ней написать имя нужного элемента. Например: Ученики [1]. КЛАСС = 3; Ученики [1]. ДАТА РОЖДЕНИЯ. ДЕНЬ=5; Ученики [1]. ДАТА РОЖДЕНИЯ. МЕСЯЦ=4; Ученики [1]. ДАТА РОЖДЕНИЯ. ГОД=1979; Первая строка указывает, что 1-й ученик учится в третьем классе, а последующие строки – его дату рождения: 5.04.79. Каждый тип элемента структуры определяется соответствующей строкой объявления в фигурных скобках. Например, массив УЧЕНИКИ имеет тип УЧЕНИК, год является целым числом. Так как каждый элемент записи относится к определенному типу, его составное имя может появляться везде, где разрешено использовать значение этого типа. 1. Рассмотрим пример программы: /* Демонстрация записи */ #include < stdio.h > #include < conio.h > #include <iostream.h> struct computer { int mem; int sp; char model [20]; }; /* Объявление записи типа computer, состоящей из трех элементов: mem, sp, model */ struct computer pibm = {512, 1, “ПЭВМ ЕС 1840.05”} /* Объявление и инициализация переменной pibm типа computer */ main () { printf (“ персональная ЭВМ % s\n\n “, pibm.model); printf (“объем оперативной памяти - % d К байт \n”, pibm.mem); printf (“производительность - % d млн. операций в секунду \n”, pibm.sp); /* вывод на экран значений элементов структуры */ getch(); return 0; } В данной программе объявляется запись computer, которая состоит из трех элементов: mem (память ЭВМ), sp (быстродействие), model [20] (модель ПЭВМ). Переменная pibm имеет тип computer и является глобальной. Строки pibm.model, pibm.mem, pibm. sp в операторе printf вызывают обращение к соответствующим элементам записи pibm типа computer, которым ранее были присвоены определенные значения.
Результат работы программы имеет вид:
Персональная ЭВМ ПЭВМ ЕС 1840.05 Объем оперативной памяти – 512 К байт Производительность – 1 млн. операций в секунду
2. Рассмотрим использование в программе вложенных структур: /* Демонстрация вложенных структур*/ # include < stdio.h > #include < conio.h > #include <iostream.h> struct date { int day; int month; int year; }; /* Объявление записи типа date*/ struct person { char fam [20]; char im [20]; char ot [20]; struct date f1;}; /* Объявление структуры типа person;одним из элементов записи person является запись f1 типа date */ main () { struct person ind1; /* обьявление переменной ind1 типа person */ printf (“Укажите фамилию, имя, отчество, день, месяц \n ” “ и год рождения гражданина ind1\n”); scanf (“ %s %s %s %d %d %d”, &ind1.fam, &ind1.im, &ind1.ot, & ind1.f1.day, &ind1.f1.month, &ind1.f1.year); /* Ввод сведений о гражданине ind1 */ printf (“ Фамилия, имя, отчество: %s %s %s \n”, ind1.fam, ind1.im, ind1.ot); printf (“ Год рождения - %d \n”, ind1.f1.year); printf (“ Месяц рождения - %d-й \n”, ind1.f1.month); printf (“ День рождения - %d -й \n”, ind1.f1.day); /* Вывод сведений о гражданине ind1 */ getch(); return 0; }
Структура типа date (дата) содержит три элемента: day (день), month (месяц), year (год). Структура типа person (человек) содержит четыре элемента: fam[20] (фамилия), im[20] (имя), ot[20] (отчество), f1 (дата рождения). Последний из них (f1) – это вложенная запись типа date.
Результаты работы программы:
Укажите фамилию, имя, отчество, день, месяц и год рождения гражданина ind1 Алексеев Сергей Петрович 3 5 1978 Подчеркнутая информация вводится пользователем.
Сведения о гражданине ind1 Фамилия, имя, отчество: Алексеев Сергей Петрович Год рождения – 1978 Месяц рождения – 5-й День рождения – 3-й
3. В следующей программе рассмотрим использование структуры в виде элементов массива pibm. Каждый элемент состоит из следующих компонентов: mem (память), sp (объем винчестера), model [20] (модель ПЭВМ): /* Массивы записей */ #include < stdio.h > #include < conio.h > #include <iostream.h>
struct computer { int mem, int sp; char model [20];}; /* объявление записи типа computer; объявление массива pibm типа computer */ main () { int i, j, k, priz; struct computer pibm[10]; /* объявление записи типа computer; объявление массива pibm типа computer */ for (i=0; i<10; i++) { printf (“Введите сведения о ПЭВМ %d \n”, i); printf (“ модель ПЭВМ - ”); scanf (“%s”, &pibm [i].model); printf (“объем оперативной памяти -”); scanf (“%d”, &pibm[i].mem); printf (“ объем винчестера - ”); scanf (“%d”, &pibm[i].sp); printf ("признак (0-конец, другая цифра- продолжение)-\n"); scanf (“ %d ”, &priz); k=i; if (!priz) break; } /* Здесь!priz – операция отрицания priz; break – выход из цикла for, если priz=0 */ for (i=0; i<10, i++); { printf (“\n О какой ПЭВМ Вы хотите получить сведения?\n (Введите номер от 0 до 9)\n”); scanf (“%d ”,&j); if (j>k) { printf (“Нет сведений об этой ПЭВМ \n”); printf ("0 to end, enother to continue\n "); scanf ("%d", &priz); if (!priz) break; continue; } printf (“ персональная ЭВМ %s\n ”, pibm[j].model); printf (“объем оперативной памяти - % d Мб \n ”, pibm[j].mem); printf (“объем винчестера - % d Мб \n ”, pibm[j].sp); printf (“ признак (0-конец, другая цифра- продолжение)-\n “); scanf (“ %d ”, &priz); if (!priz) break; } /* Ввод сведений о ПЭВМ и занесение в массив pibm записей типа computer (первый цикл for); вывод на экран сведений о ПЭВМ (второй цикл for) */ getch(); return 0; } Результаты работы программы: Модель ПЭВМ – АТ 486 SX Объем винчестера – 4 Гбайта Признак – 1 Модель ПЭВМ – АТ 386 DX Объем винчестера – 14 Гбайт Признак – 0 Модель ПЭВМ – АТ 386 DX Признак – 0 Задание Из таблицы взять задание по варианту и написать программу. Содержание отчета Отчет должен содержать: 1) задание к работе; 2) программу; 3) результаты расчетов.
Литература 1. Подбельский В.В. Язык Cu ++: Учебное пособие. - М.: Финансы и статистика,1995, - 560 с. 2. Страуструп Б. Язык программирования Сг ++. - М.: Радио и связь, 1991. - 352 стр. 3. Собоцинский В.В. Практический курс Turbo Cu ++. Основы объктно- ориентированного программирования. - М.: Свет, 1993. - 236 с. 4. Романов В.Ю. Программирование на языке Cu ++. Практический подход. - М.: Компьтер, 1993. - 160 с. 5. Уинер Р. Язык турбо Cu. - М.: Мир, 1991. - 384 с. 6. Юлин В.А., Булатова И.Р. Приглашение к Cu. - Мн.: Высш. Шк., 1990,- 224 с. 7. Котлинская Г.П., Галиновский О.И. Программирование на языке Cu. -Мн.: Высш. Шк., 1991. - 156 с.
Теоретические сведения Структура – это объединение одного либо более объектов(переменных, массивов, указателей, других структур). Как и массив, она представляет собой совокупность данных, но отличается от него тем, что к ее элементам необходимо обращаться по имени, и ее различные элементы не обязательно должны принадлежать одному типу. Структуры удобно использовать там, где разнообразные данные, относящиеся к одному и тому же объекту, необходимо объединять. Например, ученика средней школы характеризуют следующие данные: фамилия, имя, дата рождения, класс, возраст. Объявление структуры осуществляется с помощью ключевого слова struct, за которым следует ее тип, список элементов, заключенных в фигурные скобки. Ее можно представить в следующем общем виде: struct тип {тип элемента 1 имя элемента 1; тип элемента n имя элемента n; }; Именем элемента может быть любой идентификатор. В одной строке можно записывать через запятую несколько идентификаторов одного типа. Например: struct date { int day; int month; int year;}; Русские буквы использовать в идентификаторе в языке СИ нельзя. Следом за фигурной скобкой, заканчивающей список элементов, могут записываться переменные данного типа, например: struct date {…} a, b, c; При этом выделяется соответствующая память. Выведенное имя типа можно использовать для объявления записи, например: struct date day;. Теперь переменная day имеет тип date. Разрешается вкладывать структуры одна на другую. Для лучшего восприятия структуры используем русские буквы в идентификаторах, в языке СИ этого делать нельзя. Например: struct УЧЕНИК { char Фамилия [15]; имя [15]; struct DATA ДАТА РОЖДЕНИЯ; int класс, возраст;}; определенный выше тип DATA включает три элемента: День, Месяц, Год, содержащие целые значения (int). Запись УЧЕНИК включает элементы: ФАМИЛИЯ [15]; ИМЯ[15]; ДАТА РОЖДЕНИЯ, КЛАСС, ВОЗРАСТ. ФАМИЛИЯ [15] и ИМЯ [15] – это символьные массивы из 15 компонент каждый. Переменная ДАТА РОЖДЕНИЯ представлена составным элементом (вложенной структурой) ДАТА. Каждой дате рождения соответствуют день месяца, месяц и год. Элементы КЛАСС и ВОЗРАСТ содержат значения целого типа (int). После введения типов ДАТА и УЧЕНИК можно объявить переменные, значения которых принадлежат этим типам. Например: struct УЧЕНИК УЧЕНИКИ [50]; массив УЧЕНИКИ состоит из 50 элементов типа УЧЕНИК. В языке СИ разрешено использовать массивы структуры; записи могут состоять из массивов и других записей. Чтобы обратиться к отдельному компоненту структуры, необходимо указать ее имя, поставить точку и сразу за ней написать имя нужного элемента. Например: Ученики [1]. КЛАСС = 3; Ученики [1]. ДАТА РОЖДЕНИЯ. ДЕНЬ=5; Ученики [1]. ДАТА РОЖДЕНИЯ. МЕСЯЦ=4; Ученики [1]. ДАТА РОЖДЕНИЯ. ГОД=1979; Первая строка указывает, что 1-й ученик учится в третьем классе, а последующие строки – его дату рождения: 5.04.79. Каждый тип элемента структуры определяется соответствующей строкой объявления в фигурных скобках. Например, массив УЧЕНИКИ имеет тип УЧЕНИК, год является целым числом. Так как каждый элемент записи относится к определенному типу, его составное имя может появляться везде, где разрешено использовать значение этого типа. 1. Рассмотрим пример программы: /* Демонстрация записи */ #include < stdio.h > #include < conio.h > #include <iostream.h> struct computer { int mem; int sp; char model [20]; }; /* Объявление записи типа computer, состоящей из трех элементов: mem, sp, model */ struct computer pibm = {512, 1, “ПЭВМ ЕС 1840.05”} /* Объявление и инициализация переменной pibm типа computer */ main () { printf (“ персональная ЭВМ % s\n\n “, pibm.model); printf (“объем оперативной памяти - % d К байт \n”, pibm.mem); printf (“производительность - % d млн. операций в секунду \n”, pibm.sp); /* вывод на экран значений элементов структуры */ getch(); return 0; } В данной программе объявляется запись computer, которая состоит из трех элементов: mem (память ЭВМ), sp (быстродействие), model [20] (модель ПЭВМ). Переменная pibm имеет тип computer и является глобальной. Строки pibm.model, pibm.mem, pibm. sp в операторе printf вызывают обращение к соответствующим элементам записи pibm типа computer, которым ранее были присвоены определенные значения.
Результат работы программы имеет вид:
персональная ЭВМ ПЭВМ ЕС 1840.05 Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор... Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все... Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам... ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|