Розробка тексту програми
Текст програми починаємо з включення файлу stdio.h .
Оскільки нам доведеться проводити порівняння (блок 15 ) поля name в елементах масиву , а це поле - символьний рядок , включаємо також файл string.h , де описані функції роботи з символьними рядками . На самому початку програми вводимо також опис структури mon і одночасно - оголошення масиву mm. Потім відкривається головна функція програми, і в ній оголошуються інші змінні . оголошення:
float sqx ;
Відкривається простий цикл з лічильником n , в кожній ітерації циклу виводиться запрошення і вводяться значення полів чергового елемента масиву. Порівняння поля name з константою "***" - ознакою кінця введення виконується за допомогою функції strcmp ( ). Якщо введена ознака кінця, відбувається достроковий вихід з циклу за оператором break .
Слід, однак , зупинитися на введенні значення для поля sq . Тут ми зіткнулися (чи не вперше в нашій практиці) з явищем , яке не можемо пояснити інакше , ніж помилкою в системі програмування : функція scanf ( ) працює ненадійно при введенні значень типу float і double , якщо це - значення полів елементів масиву структур. Тому ми оголосили робочу змінну sqx типу float і значення поля sq спочатку вводиться в цю змінну , а потім присвоюється полю структури .
Вивід масиву складається з виведення заголовка як кількох рядків - констант і виведення в циклі рядків з фактичними даними.
Рядки не можуть присвоюватися прямо, а лише - через функцію strcpy ( ). Виведення таблиці - результату - такий же , як і початкової таблиці.
/ ************************************************* ******* /
/*практична робота 5 */
/* Структури і масиви структур */
/ ************************************************* ******* /



Варіант 1
|
Деякі види антилоп |
|||
|
Назва |
Група |
Місце проживання |
Чисельність популяції |
|
Джейран |
A |
Азія |
30000 |
|
Гну |
B |
Африка |
560000 |
|
Бейза |
H |
Африка |
2500 |
|
Групи: А - справжні антилопи, B - коров'ячі антилопи, H - кінські антилоп |
|||
|
Відомості про присвоєння кваліфікації |
|||
|
Прізвище |
Рік народження |
Оцінка результатів іспитів |
Присвоєно рівень кваліфікації |
|
Шевченко |
1970 |
4.33 |
6 |
|
Розанов |
1975 |
5.1 |
5 |
|
Панасюк |
1966 |
3.07 |
3 |
|
Примітка: показана підсумкова оцінка за результатами іспитів з теоретичної та практичної підготовки |
|||
Варіант 2
|
Фірми - виробники СКБД |
|||
|
Фірма |
Кількість. продуктів |
Річний обсяг продажу ($) |
Частина ринку (%) |
|
Oracle |
1 |
2488000000 |
31.1 |
|
IBM |
3 |
2392000000 |
29.9 |
|
Microsoft |
2 |
1048000000 |
13.1 |
|
Примітка: за даними Gartner Group за 2012р |
|||
|
Журнал реєстрації аварій: |
|||
|
Назва підприємства |
Категорія |
Втрати від аварії (тис.грн) |
Термін простою (дн) |
|
Птахофабрика |
1 |
12.7 |
4 |
|
Теплоцентраль |
1 |
0.711 |
1 |
|
Автосервіс |
2 |
1770.15 |
38 |
|
Примітка: вказуються тільки прямі витрати, пов'язані з ліквідацією наслідків аварії |
|||
Варіант 3
|
Відділ кадрів |
|||
|
Прізвище |
Ініціали |
Рік нар |
Оклад |
|
Иванов |
І.І. |
1975 |
517.50 |
|
Петренко |
П.П. |
1956 |
219.10 |
|
Паніковский |
М.С. |
1967 |
300.00 |
|
Примітка: оклад встановлений станом на 1 січня 2000 року |
|||
|
Прайс-лист |
|||
|
Код товару |
Категорія |
Ціна (грн) |
Термін поставки (дн) |
|
01-0018 |
К |
11282 |
7 |
|
01-0033 |
С |
170 |
1 |
|
02-0170 |
М |
1735 |
14 |
|
Примітка: К - комп'ютери, С - комплектуючі, М - розмножувальна техніка |
|||
Варіант 4
|
Відомость деталей |
|||
|
Найменування |
Тип |
Кількість |
Вага 1 деталі (г) |
|
Фланец |
З |
3 |
450 |
|
Перехідник |
П |
8 |
74 |
|
Станина |
О |
1 |
117050 |
|
Примітка: прийнято таке кодування типів: О - оригінальна, П - покупна, З - запозичена |
|||
|
Японскі острова |
|||
|
Острів |
Площа (кв.км) |
Кіл. малих островів |
Протяжність берегової лінії (км) |
|
Хонсю |
230500 |
192 |
11875 |
|
Хоккайдо |
78500 |
75 |
3072 |
|
Сікоку |
18800 |
13 |
2946 |
|
|
|||
Варіант 5
|
Характеристики ПЕОМ |
|||
|
Процесор |
Частота (Mgz) |
RAM (Mb) |
Тип |
|
Pentium-III |
233 |
|
C |
|
AMD-К6 |
166 |
|
C |
|
PowerPC-620 |
2000 |
|
R |
|
Тип: C - CISC-процессор, R - RISC-процессор |
|||
|
Штучно отримані елементи |
|||
|
Атомний номер |
Назва |
Масовое число |
Період напіврозпаду (років) |
|
93 |
Нептуній |
237 |
220000 |
|
97 |
Берклій |
247 |
700 |
|
98 |
Каліфорній |
251 |
660 |
|
|
|||
Варіант 6
|
Каталог бібліотеки |
|||
|
Автор книги |
Назва |
Рік випуску |
Група |
|
Сенкевич |
Потоп |
1978 |
Х |
|
Ландау |
Механіка |
1989 |
У |
|
Дойль |
Сумчасті |
1990 |
C |
|
Примітка: Х - художня література; У - навчальна література; С - довідкова література |
|||
|
Елементарні частинки |
|||
|
Частинка |
Група |
Заряд |
Маса спокою |
|
Нейтрон |
Н |
0 |
940 |
|
Ка-плюс |
М |
+1 |
494 |
|
Електрон |
Л |
-1 |
0.511 |
|
Групи часток: Г - гіперони, Н - нуклони, М - мезони, Л - лептони |
|||
Варіант 7
|
Відомість комплектуючих |
|||
|
Позначення |
Тип |
Номінал |
Кількість |
|
RT-11-24 |
R |
100000 |
12 |
|
RT-11-24 |
R |
50000 |
10 |
|
CGU-12K |
C |
17.5 |
3 |
|
Примітка: R - резистор; C - конденсатор |
|||
|
Властивості напівпровідників |
|||
|
Речовина |
Ширина забороненої зони |
Рух електронів |
Рух дірок |
|
Бор |
1.1 |
10 |
10 |
|
Телур |
0.36 |
1700 |
1200 |
|
CdTe |
1.45 |
450 |
100 |
|
Одиниці виміру: ширина забороненої зони - ев; рух - кв.см / сек * в |
|||
Варіант 8
|
Проекти пошуку позаземних сигналів |
|||
|
Рік |
Науковий керівник |
Діаметр антени (м) |
Робоча частота (МГц) |
|
1960 |
Дрейк |
26 |
1420 |
|
1970 |
Троїцький |
14 |
1875 |
|
1978 |
Хоровіц |
300 |
1665 |
|
Примітка: спостерігалися об'єкти від 2 зірок до декількох галактик |
|||
|
Сплави з високим опором |
|||
|
Сплав |
Опір |
Темп.коэфф.опору |
Макс.температура |
|
Константан |
0.44 |
0.00001 |
500 |
|
Нікелін |
0.39 |
0.39 |
150 |
|
Фехраль |
1.1 |
0.0001 |
900 |
|
Одиниці виміру: опір - му * кв.мм / м. Коефіцієнт опору - 1/град. |
|||
Варіант 9
|
Офісні пакети |
|||
|
Найменування |
Виробник |
Кількість частин |
Ціна ($) |
|
Office |
Microsoft |
4 |
870 |
|
SmartSute |
Lotus |
5 |
1020 |
|
StarOffice |
Sun |
4 |
9 |
|
Примітка: можливо безкоштовно отримати продукт StarOffice через Internet |
|||
|
Температура переходу речовин в сверхпроводніковий стан |
||
|
Речовина |
Тип |
Температура |
|
Zn |
М |
0.8-0.8 |
|
Pb-Au |
П |
2.0-7.3 |
|
NbC |
З |
10.1-10.5 |
|
Тип речовини: М - метал, П - сплав, З - з'єднання |
||
Варіант 10
|
Сільськогосподарські культури |
|||
|
Найменування |
Тип |
Посівна площа (га) |
Урожайність (ц/га) |
|
Соя |
Б |
13000 |
45 |
|
Чумиза |
З |
8000 |
17 |
|
Рис |
З |
25650 |
24 |
|
Примітка: З - зернові, Б - бобові |
|||
|
Швидкість звуку в рідинах |
|||
|
Речовина |
Тип |
Температура (град.С) |
Швидкість (м/сек) |
|
Анілін |
Ч |
20 |
1656 |
|
Ртуть |
Ч |
20 |
1451 |
|
Кедровое |
М |
29 |
1406 |
|
Тип рідини: Ч - чиста речовина, М - масло |
|||
Варіант 11
|
Відомість спортивних змагань |
|||
|
Прізвище учасника |
Код команди |
Кількість балів |
Місце у підсумку |
|
Баландін |
С |
123.7 |
2 |
|
Шишков |
Ш |
79.98 |
3 |
|
Кравченко |
Д |
134.8 |
1 |
|
Примітка: Д - "Динамо", С - "Спартак", Ш - "Шахтар" |
|||
|
Коефіцієнти теплопровідності матеріалів |
|||
|
Речовина |
Тип |
Вологість (%) |
Коефіцієнт |
|
Алюміній |
М |
0-100 |
209.3 |
|
Скловата |
Т |
0-100 |
0.035 |
|
Глина |
Д |
15-20 |
0.73 |
|
Примітка: М - метали, Т - термоізоляційні матеріали, Д - інші матеріали |
|||
Варіант 12
|
Відомість громадського транспорту |
|||
|
Вид транспорту |
№ маршрута |
Протяжність маршруту (км) |
Час в дорозі (мин) |
|
Тр |
12 |
27.55 |
75 |
|
Т-с |
17 |
13.6 |
57 |
|
А |
12а |
57.3 |
117 |
|
Примітка: Тр - трамвай, Тс - троллейбус, А - автобус |
|||
|
В'язкість металів в рідкому стані |
|||
|
Речовина |
Атомний номер |
Температура (град.С) |
В'язкість (кг/м*сек) |
|
Алюміній |
13 |
700 |
2.90 |
|
Вісмут |
83 |
304 |
1.65 |
|
Свинець |
82 |
441 |
2.11 |
|
Примітка: дані дани для температури плавлення |
|||
Варіант 13
|
Приблизна кількість зірок різних спектральних класів в Галактиці |
|||
|
Спектральний клас |
Приблизна маса (від.Солнца) |
Частина % |
Чисельність |
|
O |
32 |
0.00002 |
55000 |
|
F |
1.25 |
2.9 |
12000000000 |
|
M |
0.2 |
73.2 |
293000000000 |
|
Примітка: не показані дані для класів: B, A, G, K |
|||
|
Прайс-лист |
|||
|
Найменування товару |
Тип товару |
Ціна за 1 шт (грн) |
Мінімальна кількість в партії |
|
Папка |
К |
4.75 |
4 |
|
Папір |
К |
13.90 |
10 |
|
Калькулятор |
О |
411.00 |
1 |
|
Примітка: К - канцтовари, О - оргтехніка |
|||
Варіант 14
|
Час виконання деяких програм, які застосовують паралельні алгоритми |
|||
|
Назва прграми |
Кількість рядків коду |
Час вик. на SGI Callenge (cек) |
Час вик. на SGI Indy (cек) |
|
OCEAN |
1917 |
8.70 |
18.2 |
|
DYFESM |
3386 |
6.95 |
22 |
|
TRFD |
417 |
1.05 |
2.98 |
|
Примітка: SGI Callenge - ЦП R1000 196 MHz, 1.024 MB RAM SGI Indy - ЦП MIPS R4600 134 MHz, 64 MB RAM |
|||
|
Сільськогосподарські підприємства |
|||
|
Назва |
Вид власності |
Площа землі (га) |
Кільк. працівників |
|
Зоря |
Д |
300 |
120 |
|
Росинка |
К |
174 |
27 |
|
Петренко |
Ч |
56 |
6 |
|
Вид власності: Д - державна, Ч - приватна, К - кооперативна |
|||
Завдання 2
Вказівники та масиви
Мета Отримання практичних навиків в роботі з вказівниками і з адресною арифметикою в мові C.
Виконати завдання роботи:
• розмір масиву визначається на початку виконання програми як випадкове число в діапазоні 50 - 200 ;
• в тексті програми забороняється застосовувати операцію індексації.
Приклад рішення задачі
|
Розмірність масиву |
Діапазон значень |
Що потрібно зробити
|
|
100 |
-50 - 50 |
У всіх послідовностях від’ємних чисел обмежити значення тих елементів, абсолютне значення яких перевищує абсолютне середнє для цієї послідовності |
Розробка алгоритму рішення.
Алгоритм розв'язання задачі в основному - той же , що і в роботі 4. Різниця полягає в тому, що на початку виконання, після ініціалізації датчика випадкових чисел, потрібно отримати випадкове число в діапазоні 50 - 200 (назвемо його size ) і виділити пам'ять для масиву цілих чисел розміром size. Перед самим виходом з програми ми повинні звільнити виділену пам'ять.
Якщо ім'я масиву Ar є вказівником на його початок, то замість циклу, в якому індекс i змінюється від 0 до size, ми можемо організувати цикл, в якому деякий поточний вказівник Cr змінюється від Ar до Ar + size. Також, коли нам потрібно запам'ятати початок від’ємної послідовності, ми можемо запам'ятовувати не індекс відповідного елемента , а його адресу - вказівник на нього.
