Упражнение - Използване на структури, обединения и изброявания. Обявяване на тип данни.

Използване на структури, обединения и изброявания. Обявяване на тип данни.

Учебни въпроси:
1. Създаване на програми с използване на структури.
2. Създаване на програми с използване на обединения и изброявания.
3. Дефиниране на собствени типове данни.

Необходими пособия:

- компютри с инсталиран софтуер Microsoft Visual Studio 6.0;
- "Езикът C++", Софтпрес, 2001
- "Програмиране с Microsoft Visual C++ 6.0", Софтпрес, 1999
- Записки от лекциите или тук

Време: 3 учебни часа


 

Задача 1: Да се въведе и стартира следната програма на С++, която е пример за използване на структури:


 

- да се стартира програмата, като се зададат съответни данни за Иван и Тодор;

Въпроси към задачата:


1) коя е структурата, която е дефинирана в програмата?

2) кои са двете реализации на структурата?

3) кои са полетата на структурата?

4) защо за типа на тези полета е избран тип short?

5) напишете програмен ред, който присвоява на полето nomer от структурата Иван числото 23.

6) напишете програмен ред, който приравнява полето klasno от структурата Иван на полето klasno от структурата Todor.

7) напишете програмен ред, който извежда сумата от годините на Иван и Тодор.

Задача 2: Да се разшири програмата от предходната задача, като се направи информационна система за 5 души. В структурата да се включат и полета name(име) и ocenka(оценка). Програмата трябва да въвежда даните за всичките 5 души и да има възможност за справка. Справката да включва извеждането на данните за цялата структура.

(Пояснение: За да решите тази задача, трябва да използвате масив от 5 елемента, като всеки елемент на масива е структура. На схемата е показана структурата и начина за дефиниране на масива:)

 

Задача 3: Да се въведе и стартира следната програма, която илюстрира използването на обединения (union):

Решение на задачата:

Въпроси към задачата:
1) кое е обединението, което е дефинирано в програмата?

2) коя е реализацията на това обединение?

3) какво място в паметта заемат двете полета c1 и c2 на обединението?

4) каква ще бъде стойността на полето c2, ако c1=100?

5) известно е, че код 97 съответства на буквата "a". Коя буква съответства на код 353, 609, 865? Обяснете тази закономерност.