![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Работа со структурами в языке программирования Си++ |
Лабораторная работа №6 “Работа со структурами в языке программирования Си ” Цель работы: познакомиться с понятием структуры и структурной переменной. Научиться создавать массивы структур и работать со вложенными структурами. Теоретические сведения Структура – это объединение одного либо более объектов (переменных, массивов, указателей, других структур). Как и массив, она представляет собой совокупность данных, но отличается от него тем, что к ее элементам необходимо обращаться по имени, и ее различные элементы не обязательно должны принадлежать одному типу. Структуры удобно использовать там, где разнообразные данные, относящиеся к одному и тому же объекту, необходимо объединять. Например, ученика средней школы характеризуют следующие данные: фамилия, имя, дата рождения, класс, возраст. Объявление структуры осуществляется с помощью ключевого слова s ruc , за которым следует ее тип, список элементов, заключенных в фигурные скобки. Ее можно представить в следующем общем виде: s ruc тип {тип элемента 1 имя элемента 1; тип элемента имя элемента ; }; Именем элемента может быть любой идентификатор. В одной строке можно записывать через запятую несколько идентификаторов одного типа. Например: s ruc da e { i day; i mo h; i year;} ; Русские буквы использовать в идентификаторе в языке СИ нельзя. Следом за фигурной скобкой, заканчивающей список элементов, могут записываться переменные данного типа, например: s ruc da e { } a, b, c; При этом выделяется соответствующая память. Выведенное имя типа можно использовать для объявления записи, например: s ruc da e day;. Теперь переменная day имеет тип da e. Разрешается вкладывать структуры одна на другую. Для лучшего восприятия структуры используем русские буквы в идентификаторах, в языке СИ этого делать нельзя. Например: s ruc УЧЕНИК { char Фамилия ; s ruc DA A ДАТА РОЖДЕНИЯ; i класс, возраст;}; Определенный выше тип DA A включает три элемента: День, Месяц, Год, содержащие целые значения (i ). Запись УЧЕНИК включает элементы: ФАМИЛИЯ ; ДАТА РОЖДЕНИЯ, КЛАСС, ВОЗРАСТ. ФАМИЛИЯ – это символьные массивы из 15 компонент каждый. Переменная ДАТА РОЖДЕНИЯ представлена составным элементом (вложенной структурой) ДАТА. Каждой дате рождения соответствуют день месяца, месяц и год. Элементы КЛАСС и ВОЗРАСТ содержат значения целого типа (i ). После введения типов ДАТА и УЧЕНИК можно объявить переменные, значения которых принадлежат этим типам. Например: s ruc УЧЕНИК УЧЕНИКИ ; массив УЧЕНИКИ состоит из 50 элементов типа УЧЕНИК. В языке СИ разрешено использовать массивы структуры; записи могут состоять из массивов и других записей. Чтобы обратиться к отдельному компоненту структуры, необходимо указать ее имя, поставить точку и сразу за ней написать имя нужного элемента. Например: Ученики . ДАТА РОЖДЕНИЯ. ДЕНЬ=5; Ученики . ДАТА РОЖДЕНИЯ. ГОД=1979; Первая строка указывает, что 1-й ученик учится в третьем классе, а последующие строки – его дату рождения: 5.04.79. Каждый тип элемента структуры определяется соответствующей строкой объявления в фигурных скобках. Например, массив УЧЕНИКИ имеет тип УЧЕНИК, год является целым числом.
Так как каждый элемент записи относится к определенному типу, его составное имя может появляться везде, где разрешено использовать значение этого типа. Рассмотрим пример программы: / Демонстрация записи / #i clude &l ; s dio.h &g ; s ruc compu er { i mem; i sp; char model ; }; / Объявление записи типа compu er, состоящей из трех элементов: mem, sp, model / s ruc compu er pibm = {512, 1, “ПЭВМ ЕС 1840.05”} / Объявление и инициализация переменной pibm типа compu er / mai ( ) { pri f (“ персональная ЭВМ % s “, pibm.model); pri f ( “объем оперативной памяти - % d К байт ”, pibm.mem); pri f (“производительность - % d млн. операций в секунду ”, pibm.sp); / вывод на экран значений элементов структуры / } В данной программе объявляется запись compu er, которая состоит из трех элементов: mem (память ЭВМ), sp (быстродействие), model (модель ПЭВМ). Переменная pibm имеет тип compu er и является глобальной. Строки pibm.model, pibm.mem, pibm. sp в операторе pri f вызывают обращение к соответствующим элементам записи pibm типа compu er, которым ранее были присвоены определенные значения. Результат работы программы имеет вид: персональная ЭВМ ПЭВМ ЕС 1840.05 объем оперативной памяти – 512 К байт производительность – 1 млн. операций в секунду Рассмотрим использование в программе вложенных структур: / Демонстрация вложенных структур / # i clude &l ; s dio.h &g ; s ruc da e { i day; i mo h; i year; }; / Объявление записи типа da e / s ruc perso { char fam ; s ruc da e f1;}; / Объявление структуры типа perso ; одним из элементов записи perso является запись f1 типа da e / mai ( ) { s ruc perso i d1; / обьявление переменной i d1 типа perso / pri f ( “Укажите фамилию, имя, отчество, день, месяц” “ и год рождения гражданина i d1 ”); sca f (“ % S % S % S %d %d”, &i d1.fam, &i d1.im, &i d1.o , & i d1.f1.day, &i d1.f1.mo h, &i d1.f1.year ); / Ввод сведений о гражданине i d1 / pri f (“ Фамилия, имя, отчество: % S % S % S ”, i d1.fam, i d1.im, i d1.o ); pri f (“ Год рождения - % d ”, i d1.f1.year); pri f (“ Месяц рождения - % d -й ”, i d1.f1.mo h); pri f (“ День рождения - % d -й ”, i d1.f1.day); / Вывод сведений о гражданине i d1 / } Структура типа da e ( дата) содержит три элемента: day (день), mo h (месяц), year (год). Структура типа perso (человек) содержит четыре элемента: fam (отчество), f1 (дата рождения). Последний из них (f1) – это вложенная запись типа da e. Результаты работы программы: Укажите фамилию, имя, отчество, день, месяц и год рождения гражданина i d1 Алексеев Сергей Петрович 3 5 1978 Подчеркнутая информация вводится пользователем. Сведения о гражданине i d1 Фамилия, имя, отчество: Алексеев Сергей Петрович Год рождения – 1978 Месяц рождения – 5-й День рождения – 3-й В следующей программе рассмотрим использование структуры в виде элементов массива pibm. Каждый элемент состоит из следующих компонентов: mem (память), sp (объем винчестера), model (модель ПЭВМ): / Массивы записей / #i clude &l ; s dio.h
&g ; s ruc compu er { i mem, sp; char model ;}; / объявление записи типа compu er; объявление массива pibm типа compu er / mai ( ) { i i, j, k, priz; for ( i=0; i&l ;10; i ) { pri f (“Введите сведения о ПЭВМ %d и признак (0-конец; другая цифра- продолжение) ”, i); pri f (“ модель ПЭВМ - ”); sca f (“%S”, &pibm .model ); pri f ( “объем оперативной памяти -”); sca f (“%d”, &pibm.mem); pri f (“ объем винчестера - ”); sca f ( “%d , &pibm.sp ”); pri f (“признак - ”); sca f (“ %d ”, &priz ); k=i; if (!priz) break; } / Здесь !priz – операция отрицания priz; break – выход из цикла for, если priz=0 / for (i=0; i&l ;10, i ); { pri f ( “ О какой ПЭВМ Вы хотите получить сведения? (Введите номер от 0 до 9) ” ); sca f ( “%d ”,&j ); if (j&g ;k) { pri f (“Нет сведений об этой ПЭВМ ”); co i ue; } pri f (“ персональная ЭВМ %s ”, pibm.model); pri f (“объем оперативной памяти - % d Мб ”, pibm.mem); pri f (“объем винчестера - % d Мб ”, pibm.sp); pri f (“ признак – “ ); sca f ( “ %d ”, &priz); if (!priz) break; } / Ввод сведений о ПЭВМ и занесение в массив pibm записей типа compu er (первый цикл for); вывод на экран сведений о ПЭВМ (второй цикл for) / } Результаты работы программы: Введите сведения о ПЭВМ и признак (0-конец; другая цифра – продолжение) модель ПЭВМ – АТ 486 SX объем оперативной памяти – 32 объем винчестера – 4 Гбайта признак – 1 Введите сведения о ПЭВМ и признак (0-конец; другая цифра – продолжение) модель ПЭВМ – АТ 386 DX объем оперативной памяти – 64 объем винчестера – 14 Гбайт признак – 0 О какой ПЭВМ Вы хотите получить сведения? (Введитн номер от 0 до 9) 1 модель ПЭВМ – АТ 386 DX объем оперативной памяти – 16 Мб объем винчестера – 2,5 Гбайт признак – 0 Задание Из таблицы взять задание по варианту и написать программу. Содержание отчета Отчет должен содержать: задание к работе; программу; результаты расчетов. № вар. Задание 1 Опишите запись СТУДЕНТ и поместите в нее следующую информацию: Ф.И.О., оценки (математика, физика, черчение, химия, сопромат). Определите, сколько студентов имеют неудовлетворительную оценку по математике. 2 Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов имеют неудовлетворительную оценку хотя бы по одному предмету. 3 Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов сдали все экзамены на 5. 4 Воспользовавшись записью СТУДЕНТ из варианта №1, определите средний балл группы по физике. 5 Воспользовавшись записью СТУДЕНТ из варианта №1, определите количество отличных оценок, полученных группой по всем предметам. 6 Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов имеют средний балл от 4 до 5. 7 Воспользовавшись записью СТУДЕНТ из варианта №1, определите, какое количество неудовлетворительных оценок получено по всем предметам. 8 Воспользовавшись записью СТУДЕНТ из варианта №1, определите, какой из предметов был сдан группой лучше всего.
На восстановление информации и структуры мировоззрения, потерянных вместе с погибшими нейронами в результате принятия фужера шампанского или кружки пива, требуется от двух до трёх лет при работе на пределе интеллектуальных возможностей в абсолютно трезвом образе жизни, исключающем на протяжении всего этого времени дурманы и яды, искажающие вещественную и биополевую физиологию организма, состояние сознания, и как следствие обработку «первичной», «оперативной» и «ответной» информации. 256 PВ технике развиты методы извлечения сигнала, мощность которого значительно ниже мощности шумов. Но в технике человек употребляет только то, чему есть место в Жизни, и что может быть реализовано и реализуется на искусственно порождаемых цивилизацией носителях. Именно на этом поле изучения возможностей переноса явлений, имеющих место в биосфере, в техносферу выросла отрасль науки, именуемая «бионика». 257 PНапример в языке программирования расчетно-вычислительных задач «Фортран» области «COMMON» («ОБЩИЕ») являются одним из средств осуществления обмена информацией между функционально специализированными подпрограммами в объемлющем их алгоритме решений задачи. 258 PВ родовых эгрегорах уклада жизни общества, в котором господствуют нечеловечные типы строя психики, в качестве тех, кто способен что-то изменить в их «общих областях» статистически преобладают старшие в восходящих родовых линиях
1. Операторы цикла в языке программирования Си++"
2. Структура грамицидинового канала, его фундаментальное и практическое значение
3. Структура и работа персональной ЭВМ
4. Объектно-ориентированное программирование на С с использованием библиотеки OpenGL
9. Протоколы и стандарты объектно-ориентированного программирования
10. Объектно-ориентированное программирование на Borland C++
11. Обучение решению задач из раздела "Основы алгоритмизации и программирования"
12. Управляющие структуры языка "Си". Программирование с использованием указателей
13. Программирование на "СИ" (ТХТ, СИ)
16. Программирование на языке Си++
17. Международная организация труда- создание, структура, задачи и организация её работы
18. Mozart: Symphony #40 in G Minor, K.550 Моцарт: Симфония №40 в си-минор, К. 550
20. Языки и технология программирования. Начальный курс /Pascal/
21. Обучение начальных курсов методам программирования на языке Turbo Pascal
27. Постановка лабораторной работы по курсу волоконнооптические системы связи
28. Вопросы для программированного контроля по курсу "Механика"
29. Лабораторная работа по экономике N2. ЛЭТИ 4 курс
30. Личность Сталина и Би-Би-Си
31. Стихотворение А. А. Фета «Сияла ночь. Луной был полон сад. Лежали…».
34. Международная организация труда- создание, структура, задачи и организация её работы
35. Этические принципы работы практического психолога
36. Организация работы учащихся с биологическими терминами на примере курса «Человек и его здоровье»
37. Возможности художественной литературы в научно-практической работе психологов и педагогов
41. Контрольная работа по курсу Административное право РФ
42. К гербарию по практическим занятиям по курсу луговодство
43. Практическая работа по бухгалтерскому учету
44. Лабораторные работы по программированию
45. Отчет по курсу прикладные задачи программирования
46. Лабораторные работы по Теории вычислительных процессов и структур
47. Программирование элементов разветвляющейся структуры
48. Программирование элементов разветвляющейся структуры
49. Программирование. Контрольная работа
50. Изучение физических принципов работы аппаратуры в курсе "Технические средства обучения"
51. Концепции природы и чувственности от сюнь-цзы до чжу си
52. Практические аспекты организации экономической работы в аграрных предприятиях
57. Структура и режимы работы программируемого периферийного адаптера К580ВВ55
59. Методика проведения лабораторно-практических работ по экономике в школе
60. Разработка лабораторно-практических работ по технологии
61. Методы и способы поверки СИ. Поверочные схемы
62. Методы и особенности работы практического психолога в области помощи ребенку с аутизмом
63. Работа практического психолога в ортопедическом санатории "Пионерск"
64. Понятие о физической величине. Международная система единиц физических величин СИ
66. Производство отделочных работ
67. Штукатурные работы с основами охраны труда
69. Реактивные двигатели, устройство, принцип работы
73. Структура и функции клеточного ядра
74. How "DNA" testing works Анализ "ДНК" как проверяющие работы)
75. Синапсы (строение, структура, функции)
76. Отчёт по лабараторным работам по биологии за 1 семестр
77. Контрольная работа по физиологии
78. Воспитательная работа в вооруженных силах и ее влияние на психику воина в боевой деятельности
79. Билеты за курс средней школы (2003г.)
81. Обеспечение работы с/х предприятия в условиях радиактивного заражения (WinWord)
82. Пути и способы повышения устойчивости работы объектов экономики в чрезвычайных ситуациях
83. Роль и значение машиностроительного комплекса в структуре народного хозяйства России
84. Структура транспорта в Европе
89. Состав нормативных документов, регламентирующих организацию работы с документами
90. Исключительные права на средства индивидуализации товаров, работ, услуг и их производителей
91. Нормы права. Структура норм права
92. Билеты по Истории (1 курс МТЭТ РГТЭУ)
93. Структура государственных органов США по Конституции 1787 года
94. Двухпалатная структура Федерального Собрания
96. Статус депутатов местных Советов и формы их работы
97. Структура, содержание и значение общей части Налогового кодекса России