Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Моя первая программа на С++.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

Вопросы

  1. Что такое массив?

  2. Может ли массив содержать переменные нескольких типов?

  3. Как вы будете определять массив?

  4. Что такое двухмерный массив?

  5. Как вы будете определять двухмерный массив?

  6. Какова взаимосвязь между значением индекса и значением элемен- та массива?

  7. Как сравнить две строки?

  8. Как присвоить значение строковой переменной?

Упражнения

  1. Напишите программу, в которой массивы используются для хране- ния имен, адресов и номеров телефонов 20 человек.

  2. Внесите в программу из упражнения 1 изменения так, чтобы иметь возможность ввода имени и последующего просмотра массива в по- исках номера телефона соответствующего человека.

  3. Объясните, почему следующая программа написана неправильно:

4. main()

5. {

  1. int temps(31);

  2. int index, total;

  3. for (index = 0; index < 31; index++) 9. {

  1. printf("Введите значение

  2. температуры #%d: ", index);

  3. scanf("%d", &temps(index));

13. }

  1. high = temps(0);

  2. low = temps(0);

  3. index = 1;

  4. while (index < 31)

18. {

  1. if (temps(index) > high)

  2. high = temps(index);

  3. else

  4. low = temps(index);

  5. index++;

24. }

  1. printf("Минимальное значение

  2. температуры равно %d\n", low);

  3. printf("Максимальное значение

  4. температуры равно %d\n", high);

}

Глава 11

СТРУКТУРЫ И УКАЗАТЕЛИ

Все переменные, которые мы использовали в этой книге до настоящего момента, относились к одному оп- ределенному типу, они были или символьными, или строковыми, или целочисленными, или с плавающей точкой. Даже массивы независимо от их размерности содержали переменные только одного типа. Все встречавшиеся нам переменные были простыми, то есть такими переменными, значения которым при- сваиваются путем простого использования имени переменной в инструкциях ввода данных или присваи- вания.

В этой главе будет рассказано о двух классах переменных, которые являются более многоликими: струк- турах и указателях. Структурой называется переменная, представляющая собой множество других пере- менных, которые могут относиться к различным типам. Указателем называется переменная, с помощью которой можно обращаться к области памяти, отведенной под другую переменную.

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

Использование структур

В программе зачастую требуется отразить реальную ситуацию, когда некую информацию нужно организо- вать и обрабатывать систематически. Такая необходимость возникает в бухгалтерских системах, при ре- шении инженерных проблем, в обучающих системах и во многих других приложениях.

В программах мы обычно представляем каждый элемент данных в виде переменной, определенной с ти- пом float, int, char или как строка. Но в реальной жизни нам часто приходится иметь дело с объектами, которые содержат не один, а несколько типов данных. Предположим, что вы составляете каталог своих компакт-дисков. Скажем, у вас есть набор карточек, каждая из которых содержит название, описание, цену, отношение к музыкальному стилю и номер, под которым диск хранится на стеллаже (рис.11.1).

Рис. 11.1. Не компьютеризированная картотека

Вы сможете легко компьютеризировать свою картотеку, если присвоите каждый из элементов соответст- вующей переменной:

char name[20], description[40], category[12]; float cost;

int number;

Однако в реальной жизни всеми этими сведениями мы пользуемся не по отдельности, а заносим их вместе на одну регистрационную карточку, ведь несмотря на то, что каждый бит информации на карточке пред- ставляет собой

отдельный и независимый элемент, все вместе они составляют целостность, а именно, описывают один из объектов коллекции.

Если вы хотите иметь программу, которая адекватно отражала бы эту ситуацию, вам придется каким-то способом объединить данные разных типов во множество. К счастью, в языке Си и Си++ действительно существует возможность объединения данных разных типов в единое целое, представляющее собой как бы компьютерный вариант регистрационной карточки. Такая совокупность данных называется структурой.