СИМВОЛИ КОДОВОЇ ТАБЛИЦІ ASCII 7 страница

 

Тут визначено масив pupils, який складається з 50 елементів типу pupil.

У "Сі" дозволено використовувати масиви записів. Записи можуть складатися з масивів та інших записів.

Звернення до елементів записів здійснюється за допомогою оператора ".", наприклад,

 

pupils[1].class=3;

pupils[1].borndate.day=5;

pupils[1].borndate.month=4;

pupils[1].borndate.year=1982;

 

Приклад 1.Створити запис, полями якого є символьні масиви ім’я та прізвище, а також вкладений запис з цілими полями дати, місяця та року народження. Продемонструвати роботу створеної бази даних.

 

#include <stdio.h>

main( )

{struct date {int day;

int month;

int year;};

/*Оголошення запису date з трьома цілими полями: день, місяць, рік*/

Struct person {char surname[20];

char firstname[20];

struct date f1;};

/*Оголошення запису person з двома полями з масивів символьного типу та вкладеним записом*/

struct person ind1;

printf("\nPlease input through the spaces surname, firstname, day,\nmonth and year of born of person ind1\n");

/*Введіть через пропуски прізвище, ім'я, день, місяць і рік народження особи*/

scanf("%s %s %d %d %d", ind1.surname,ind1.firstname,&ind1.f1.day,&ind1.f1.month,&ind1.f1.year);

printf("\nInformation about person ind1\n");

/*Виведення на екран даних про особу*/

printf("Surname %s\tFirstname %s\n",ind1.surname,ind1.firstname);

printf("Year of born %d\n",ind1.f1.year);

printf("Month of born %d\n",ind1.f1.month);

printf("Day of born %d\n",ind1.f1.day);

}

 

Приклад 2.Створити базу даних двигунів із 9 записів з трьома полями: потужність, швидкість, тип. Передбачити автоматичне виведення інформації про вибраний за номером двигун.

 

#include <stdio.h>

main()

{struct motor {int power,velocity;

char type[30];} motor1[10];

/*Оголошення масиву motor1 з 10 елементів, кожен з яких є записом*/

/*Організація циклу для введення даних*/

int i,j,k,clue;

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

printf("Input information about motor%d and clue (0 for escape,\nanother integer - continue)\n",i);

/*Введіть інформацію про і-й двигун і ключ (0 для виходу, інше ціле- продовження*/

printf("Input type of motor\t"); /*Введіть тип двигуна*/

scanf("%s",motor1[i].type);

printf("Input power of motor\t"); /*Введіть потужність двигуна*/

scanf("%d",&motor1[i].power);

printf("Input velocity of motor\t"); /*Введіть швидкість двигуна*/

scanf("%d",&motor1[i].velocity);

printf("clue\t");

scanf("%d",&clue);

k=i;

if (!clue) break;}

/*Організація циклу для виведення інформації на екран*/

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

printf("\nWhich motor do you want to receive information about?\ninput integer from 0 to 9\n");

/*Про який двигун бажаєте отримати інформацію? Введіть ціле від 0 до 9*/

scanf("%d",&j);

if (j>k) {printf("There is no information about this motor\n");

continue;}

/*Інформація про вказаний двигун відсутня*/

printf("Type of motor\t%s\n",motor1[j].type);

printf("Power of motor\t%d\n",motor1[j].power);

printf("Velocity of motor\t%d\n",motor1[j].velocity);

printf("Input clue");

scanf("%d",&clue);

if (!clue) break;}

}

 

 

2. ЗАВДАННЯ НА РОБОТУ

Розробити та запустити у роботу програму на мові програмування "СІ", яка вирішує задачу відповідно до заданого нижче варіанта.

2.1. Створити запис "Учень", яка містить елементи "Прізвище", "Ім'я", "Середній бал". На основі засобу "Учень" створити запис "Абітурієнт", що додатково містить записи "Вступний екзамен", "Пільга". Створити та заповнити базу даних із 4 абітурієнтів. Знайти список абітурієнтів, прийнятих до університету, на основі наступних умов: 1) за відсутності пільги, середній бал більший 4.5, вступний екзамен більший 4; 2) в разі наявності пільги, середній бал більший 3, вступний екзамен більший 3.5.

2.2. Створити запис "Громадянин", яка містить елементи "Прізвище", "Ім'я","По-батькові". На основі запису "Громадянин" створити запис "Службовець", що додатково містить записи "Стаж роботи", "Заробітна плата". Створити та заповнити базу даних із 4 службовців. Знайти список службовців - пенсіонерів, стаж яких більший 25 років, та їх пенсію, як половину зарплатні, та додатковий відсоток, рівний подвоєному стажу.

2.3. Створити запис "Автомобіль", який містить елементи "Назва","Власник", "Об'єм двигуна", "Пробіг". На основі запису "Автомобіль" створити запис "База ДАІ", що додатково містить записи "Штрафи", "Кількість порушень". Створити та заповнити базу даних ДАІ із 4 автомобілів. Знайти список водіїв, що мають бути позбавлені прав, на основі наступних умов: 1) кількість порушень більша 3; 2) якщо сума штрафів більша 2000 грн.

2.4. Створити запис "Адреса", яка містить елементи "Місто", "Вулиця","Номер квартири". На основі запису "Адреса" створити запис "Споживач", що додатково містить записи "Борг", "Об'єм споживання". Створити та заповнити базу даних із 4 споживачів. Знайти середній борг та адреси споживачів, що мають борг, вищий за середній, та вивести їх не кран.

2.5. Створити запис "ПІБ", який містить елементи "Прізвище","Ім'я", "По батькові". На основі запису "ПІБ" створити запис "Спортсмен", що додатково містить записи "Вид спорту" (футбол, баскетбол, волейбол), та "Досягнення" (любитель, кандидат в майстри спорту, майстер спорту). Створити та заповнити базу даних спортсменів із 4 людей. Знайти найбільш розвинений вид спорту та його представників на основі рейтингу, що розраховується як сума вагових балів кожного представника: любитель – 1 бал, кандидат в майстри спорту – 1.5 бали, майстер спорту – 2 бали.

2.6. Створити запис "ПІБ", яка містить елементи "Прізвище", "Ім'я","По батькові". На основі запису "ПІБ" створити запис "Студент", що додатково містить записи "Кількість пропущених занять", "Кількість предметів із оцінкою "не зараховано"","Наявність заохочення". Створити та заповнити базу даних із 4 студентів. Знайти список студентів, що підлягають відрахуванню, на основі наступних умов: 1) кількість пропущених занять більша 50; 2) кількість "не зараховано" більша 3; 3) студент не підлягає відрахуванню у разі наявності заохочення.

2.7. Створити запис "Продукт", яка містить елементи "Кількість білків", "Кількість жирів","Кількість вуглеводів". На основі запису "Продукт" створити запис "Страва", що додатково містить записи "Назва", "Час приготування", "Ціна". Створити та заповнити базу даних із 4 страв. Знайти найкращу страву на основі наступних умов: мінімальний час приготування і максимальна різниця між кількістю білків та жирів.

2.8. Створити запис "Двигун", яка містить елементи "Назва", "Потужність", "Швидкість", "Ціна". На основі запису "Двигун" створити запис "Електропривод", що додатково містить записи "Ціна перетворювача", "Ціна датчика швидкості", "Ціна інтерфейсу керування". Створити та заповнити базу даних із 4 електроприводів. Знайти електропривод, що відповідає заданим з клавіатури умовам необхідної швидкості та потужності, та має мінімальну ціну.

2.9. Створити запис "Системний блок", який містить елементи "Назва", "Частота процесора", "Об’єм оперативної пам’яті", "Ціна". На основі запису "системний блок" створити запис "Десктоп", що додатково містить записи "Діагональ дисплея", "Споживана потужність". Створити та заповнити базу даних із 4 десктопів. Знайти десктоп, що має кількість ядер та об’єм пам’яті, більші заданих, має задану діагональ та мінімальну споживану потужність.

2.10. Створити запис "Особа", яка містить елементи "Прізвище", "Ім’я", "Вік". На основі запису " Особа " створити запис "Робітник", що додатково містить записи "Заробітна платня", "Ідентифікаційний код", "Сімейний стан", "Діти". Створити та заповнити базу даних із 4 робітників. Знайти робітника, що виплачує найбільший податок. Податок розраховується як відсоток від заробітної платні, рівний стажу роботи. Податок зменшується на 20%, якщо робітник одружений, а також на 10% за кожну дитину у сім’ї.

3. КОНТРОЛЬНІ ЗАПИТАННЯ

 

3.1. Який синтаксис має запис.

3.2. Який чином здійснюється доступ до елементів запису.

3.3. Як створювати масив записів.

3.4. Яким чином можна використовувати вкладені записи.

 


Комп’ютерний практикум № 15