Розробка тексту програми
Текст програми починаємо з включення файлу 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. Також, коли нам потрібно запам'ятати початок від’ємної послідовності, ми можемо запам'ятовувати не індекс відповідного елемента , а його адресу - вказівник на нього.