Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







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





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

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

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

Объявление структуры осуществляется с помощью ключевого слова 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, определите, сколько студентов имеют неудовлетворительную оценку хотя бы по одному предмету.
  Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов сдали все экзамены на 5.
  Воспользовавшись записью СТУДЕНТ из варианта №1, определите средний балл группы по физике.
  Воспользовавшись записью СТУДЕНТ из варианта №1, определите количество отличных оценок, полученных группой по всем предметам.
  Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов имеют средний балл от 4 до 5.
  Воспользовавшись записью СТУДЕНТ из варианта №1, определите, какое количество неудовлетворительных оценок получено по всем предметам.
  Воспользовавшись записью СТУДЕНТ из варианта №1, определите, какой из предметов был сдан группой лучше всего.
  Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов не имеют задолженностей.
  Опишите запись АНКЕТА и поместите в нее следующую информацию: Ф.И.О.(фамилия, имя, отчество), адрес (улица, номер дома, номер квартиры), пол, возраст. Определите, сколько лиц женского и сколько мужского пола проживают в одном доме.
  Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько лиц мужского пола в возрасте старше 18 лет и младше 60 проживают на одной улице.
  Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько лиц женского пола в возрасте старше 30 лет проживают в одном доме.
  Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько детей до 7 лет проживают на одной улице.
  Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько лиц мужского пола и женского в возрасте до 50 лет проживают на одной улице.
  Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько детей от 1 года до 5 проживают в одном доме.
  Опишите запись ТРАНСПОРТ и поместите в нее следующую информацию: Ф.И.О. (фамилия, имя, отчество пассажира), багаж (количество вещей, вес в кг). Определить число пассажиров, вес багажа которых превышает 30 кг.
  Воспользовавшись записью ТРАНСПОРТ из варианта №16, определите, имеется ли пассажир, багаж которого состоит из одной вещи весом в 20 кг.
  Воспользовавшись записью ТРАНСПОРТ из варианта №16, определите средний вес багажа.
  Воспользовавшись записью ТРАНСПОРТ из варианта №16, определите количество пассажиров, вес багажа которых превосходит средний.
  Воспользовавшись записью ТРАНСПОРТ из варианта №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 с.

 

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

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

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

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







Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.