Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Работа со структурами в языке программирования Си

Тип Реферат
Предмет Информатика
Просмотров
1391
Размер файла
20 б
Поделиться

Ознакомительный фрагмент работы:

Работа со структурами в языке программирования Си

Лабораторная работа №6

“Работа со структурами в языке программирования Си++”

Цель работы: познакомиться с понятием структуры и структурной переменной. Научиться создавать массивы структур и работать со вложенными структурами.

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

Структура – это объединение одного либо более объектов (переменных, массивов, указателей, других структур). Как и массив, она представляет собой совокупность данных, но отличается от него тем, что к ее элементам необходимо обращаться по имени, и ее различные элементы не обязательно должны принадлежать одному типу.

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

Объявление структуры осуществляется с помощью ключевого слова 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.

Каждый тип элемента структуры определяется соответствующей строкой объявления в фигурных скобках. Например, массив УЧЕНИКИ имеет тип УЧЕНИК, год является целым числом. Так как каждый элемент записи относится к определенному типу, его составное имя может появляться везде, где разрешено использовать значение этого типа. Рассмотрим пример программы:

/* Демонстрация записи */

#include < stdio.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 (“ персональная ЭВМ % snn “, pibm.model);

printf ( “объем оперативной памяти - % d К байт n”, pibm.mem);

printf (“производительность - % d млн. операций в секунду n”, pibm.sp);

/* вывод на экран значений элементов структуры */

}

В данной программе объявляется запись computer, которая состоит из трех элементов: mem (память ЭВМ), sp (быстродействие), model [20] (модель ПЭВМ). Переменная pibm имеет тип computer и является глобальной. Строки pibm.model, pibm.mem, pibm. sp в операторе printf вызывают обращение к соответствующим элементам записи pibm типа computer, которым ранее были присвоены определенные значения.

Результат работы программы имеет вид:

персональная ЭВМ ПЭВМ ЕС 1840.05

объем оперативной памяти – 512 К байт

производительность – 1 млн. операций в секунду

Рассмотрим использование в программе вложенных структур:

/* Демонстрация вложенных структур*/

# include < stdio.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 месяц”

“ и год рождения гражданина ind1n”);

scanf (“ % S % S % S %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 */

}

Структура типа date ( дата) содержит три элемента: day (день), month (месяц), year (год). Структура типа person (человек) содержит четыре элемента: fam[20] (фамилия), im[20] (имя) , ot[20] (отчество), f1 (дата рождения). Последний из них (f1) – это вложенная запись типа date.

Результаты работы программы:

Укажите фамилию, имя, отчество, день, месяц и год рождения гражданина ind1

Алексеев

Сергей

Петрович

3

5

1978

Подчеркнутая информация вводится пользователем.

Сведения о гражданине ind1

Фамилия, имя, отчество: Алексеев Сергей Петрович

Год рождения – 1978

Месяц рождения – 5-й

День рождения – 3-й

В следующей программе рассмотрим использование структуры в виде элементов массива pibm. Каждый элемент состоит из следующих компонентов: mem (память), sp (объем винчестера), model [20] (модель ПЭВМ):

/* Массивы записей */

#include < stdio.h >

struct computer { int mem, sp;

char model [20];

pibm [10];};

/* объявлениезаписитипа computer;

объявление массива pibm типа computer */

main ( )

{ int i, j, k, priz;

for ( i=0; i<10; i++)

{ printf (“Введите сведения о ПЭВМ %d и признак (0-конец;

n другая цифра- продолжение)n”, i);

printf (“ модельПЭВМ - ”);

scanf (“%S”, &pibm [i].model );

printf ( “объемоперативнойпамяти -”);

scanf (“%d”, &pibm[i].mem);

printf (“ объемвинчестера - ”);

scanf ( “%d , &pibm[i].sp ”);

printf (“признак - ”);

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”);

continue; }

printf (“ персональнаяЭВМ %sn ”, pibm[j].model);

printf (“объем оперативной памяти - % d Мб n ”, pibm[j].mem);

printf (“объем винчестера - % d Мб n ”, pibm[j].sp);

printf (“ признак – “ );

scanf ( “ %d ”, &priz);

if (!priz) break; }

/* Ввод сведений о ПЭВМ и занесение в массив pibm записей типа computer (первый цикл for); вывод на экран сведений о ПЭВМ (второй цикл for) */

}

Результаты работы программы:

Введите сведения о ПЭВМ и признак (0-конец; другая цифра – продолжение)

модель ПЭВМ – АТ 486 SX

объем оперативной памяти – 32

объем винчестера – 4 Гбайта

признак – 1

Введите сведения о ПЭВМ и признак (0-конец; другая цифра – продолжение)

модель ПЭВМ – АТ 386 DX

объем оперативной памяти – 64

объем винчестера – 14 Гбайт

признак – 0

О какой ПЭВМ Вы хотите получить сведения? (Введитн номер от 0 до 9)

1

модель ПЭВМ – АТ 386 DX

объем оперативной памяти – 16 Мб

объем винчестера – 2,5 Гбайт

признак – 0

2. Задание

Из таблицы взять задание по варианту и написать программу.

3. Содержание отчета

Отчет должен содержать:

1) задание к работе;

2) программу;

3) результаты расчетов.

№ вар. Задание
1Опишите запись СТУДЕНТ и поместите в нее следующую информацию: Ф.И.О., оценки (математика, физика, черчение, химия, сопромат). Определите, сколько студентов имеют неудовлетворительную оценку по математике.
2Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов имеют неудовлетворительную оценку хотя бы по одному предмету.
3Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов сдали все экзамены на 5.
4Воспользовавшись записью СТУДЕНТ из варианта №1, определите средний балл группы по физике.
5Воспользовавшись записью СТУДЕНТ из варианта №1, определите количество отличных оценок, полученных группой по всем предметам.
6Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов имеют средний балл от 4 до 5.
7Воспользовавшись записью СТУДЕНТ из варианта №1, определите, какое количество неудовлетворительных оценок получено по всем предметам.
8Воспользовавшись записью СТУДЕНТ из варианта №1, определите, какой из предметов был сдан группой лучше всего.
9Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов не имеют задолженностей.
10Опишите запись АНКЕТА и поместите в нее следующую информацию: Ф.И.О.(фамилия, имя, отчество), адрес (улица, номер дома, номер квартиры), пол, возраст. Определите, сколько лиц женского и сколько мужского пола проживают в одном доме.
11Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько лиц мужского пола в возрасте старше 18 лет и младше 60 проживают на одной улице.
12Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько лиц женского пола в возрасте старше 30 лет проживают в одном доме.
13Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько детей до 7 лет проживают на одной улице.
14Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько лиц мужского пола и женского в возрасте до 50 лет проживают на одной улице.
15Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько детей от 1 года до 5 проживают в одном доме.
16Опишите запись ТРАНСПОРТ и поместите в нее следующую информацию: Ф.И.О. (фамилия, имя, отчество пассажира), багаж (количество вещей, вес в кг). Определить число пассажиров, вес багажа которых превышает 30 кг.
17Воспользовавшись записью ТРАНСПОРТ из варианта №16, определите, имеется ли пассажир, багаж которого состоит из одной вещи весом в 20 кг.
18Воспользовавшись записью ТРАНСПОРТ из варианта №16, определите средний вес багажа.
19Воспользовавшись записью ТРАНСПОРТ из варианта №16, определите количество пассажиров, вес багажа которых превосходит средний.
20Воспользовавшись записью ТРАНСПОРТ из варианта №16, определите количество пассажиров, имеющих более трех вещей.

Литература

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 с.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
157252
рейтинг
icon
6079
работ сдано
icon
2741
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
67 201 оценка star star star star star
среднее 4.9 из 5
МИИТ
Работа выполнена на отлично в кратчайшие сроки и без замечаний. Спасибо
star star star star star
СПБГУ
Реферат с ответами на вопросы по предмету Осн. науч. исследований выполнено в срок на Отли...
star star star star star
ТГМА
Мария очень грамотный и вежливый исполнитель! Работу выполнила досрочно с высоким антиплаг...
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Эксплуатационная практика | П. В | Производственная практика

Отчет по практике, Эксплуатационная практика | П.В | Производственная практика

Срок сдачи к 10 сент.

только что

Переписать тех процесс .

Другое, Резание Материалов

Срок сдачи к 31 авг.

только что

Курсовая

Курсовая, Системы управления технологическими процессами

Срок сдачи к 15 сент.

только что

Сделать отчет о практике

Отчет по практике, Менеджмент организации

Срок сдачи к 16 июля

1 минуту назад

Написать отчет по практике. Юриспруденция. Д-00517

Отчет по практике, Право

Срок сдачи к 15 июля

3 минуты назад

срочно составить Гугл форму исследования

Кандидатская диссертация, Гугл форма исследования на анлийском языке

Срок сдачи к 13 июля

4 минуты назад

«Консультирование родителей детей с ОВЗ

Курсовая, Основы психологического консультирования

Срок сдачи к 31 июля

4 минуты назад

Решить задачу

Решение задач, Математика

Срок сдачи к 13 июля

5 минут назад

Выполнить расчетную часть

Отчет по практике, Маркшейдерское дело

Срок сдачи к 22 июля

7 минут назад

20-25 стр работа, отсутствие ИИ

Курсовая, Теория государства и права

Срок сдачи к 31 июля

8 минут назад

Ахмедова Мальвина Акифовна 4 семесип левел синергия

Отчет по практике, Учебно-ознакомительная практика | У.О | Учебная практика

Срок сдачи к 25 сент.

9 минут назад

Рзаева Сона Рашад кызы Левел синергия 4 семестр

Отчет по практике, Переводческая практика | У.О | Учебная практика

Срок сдачи к 19 июля

9 минут назад

Джабарлы Анар Самир оглы 2 cеместр мти левел

Отчет по практике, Технологическая (проектно-технологическая) практика | У.О | Учебная практика

Срок сдачи к 9 авг.

9 минут назад

Поступаю в университет Предстоит сдавать дистанционно вступительные...

Решение задач, Основы технических знаний

Срок сдачи к 16 июля

9 минут назад

Дневник практики

Другое, Дневник практики

Срок сдачи к 18 июля

9 минут назад

Дневник практики

Отчет по практике, Юридический факультет

Срок сдачи к 18 июля

9 минут назад
9 минут назад

Решить 3 вариант. 2 задачи.

Решение задач, Теория вероятностей и математическая статистика

Срок сдачи к 19 июля

10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно