Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Лабораторна робота 4
Знайомство з середовищем програмування мовою С. Структура програми. Базові типи даних. Введення та виведення інформації.
1. Мета роботи
Метою лабораторної роботи є здобуття практичних навичок в роботі з типами даних в мові C і у використанні функцій стандартного введення-виведення.
1.1. Загальний метод рішення
У таблиці, що приведена в індивідуальному завданні, перший рядок - загальний заголовок таблиці, другий - заголовки стовпців таблиці. Фактичні дані складають третій, четвертий і п'ятий рядки. Шостий рядок - примітки.
Програма повинна починатися з введення фактичних даних. Для зручності користувача перед введенням на екран повинно виводитися запрошення, в якому перераховуються дані для введення. За одне запрошення-введення вводитиметься один рядок фактичних даних таблиці. Тобто, запрошення-введення повинно повторюватися тричі. Введені дані будуть збережені в змінних програми.
На другому етапі програма виконує виведення даних на екран. Кожен рядок таблиці може виводитися одним оператором виведення. Серед рядків, які виводяться, будуть рядки без змінних значень (заголовки і лінії) і рядки із змінними значеннями (рядки з фактичними даними).
Для формування наочного табличного вигляду можна застосовувати символи ''|'' і ''-''.
Визначення змінних є першим і найголовнішим завданням нашої програми. Для кожної змінної потрібно підібрати такий тип, який би забезпечував представлення в пам'яті її значення з достатнім діапазоном і достатньою точністю.
Назва санаторію. У всіх фактичних значеннях цей стовпець є символьним рядком з 8 символів. Тобто для представлення його в пам'яті змінні, в яких зберігаються значення цього стовпця, мають бути оголошені як:
char name1[9], name2[9], name3[9];
додатковий символ резервується для позначення кінця символьного рядка.
Номер підпорядкування санаторію. Ці дані є одним символом. Їх оголошення:
char sch1, sch2, sch3;
Кількість відпочиваючих. Ці дані є цілими числами в діапазоні 10 - 220. Цей діапазон перекривається діапазоном можливих значень типа unsigned short (діапазон цього типа: 0 - 255). Тобто оголошення відповідних змінних: unsigned short cnt1, cnt2, cnt3;
Площа території. Це число з дробовою частиною, отже, відповідні змінні мають бути змінними з плаваючою крапкою. Точність даних всього один знак після крапки, тому для їх представлення буде досить типу float: float sq1, sq2, sq3;
Починаємо розробку тексту програми із заголовка головної функції main(): int main(void) Далі відкривається тіло функції і в неї включається опис змінних. Кодова частина програми починається із запрошення - виведення рядка-константи:
printf("1. Введіть: назву, номер, кількість, площу >");
за яким зчитуються дані, що вводяться оператором:
scanf("%s %c %d %f",name1, &sc1, &cnt1, &sq1);
Оскільки описи цих функцій зберігаються у файлі stdio.h, включаємо цей файл в початок програми:#include <stdio.h>
При введенні рядок вводиться по специфікації типа %s, один символ - по специфікації типа %c, ціле число - по специфікації типа %d, число з плаваючою крапкою - по специфікації типа %f. Специфікації розділяються пропусками, тобто і дані при введенні повинні розділятися пропусками або переходом на новий рядок. У списку введення перед всіма елементами крім того, який вводиться по %s, ставиться знак &.
Запрошення-введення повторюється тричі, з різними змінними в списку введення.
Для формування виводу слід підрахувати ширину кожного стовпця. Ширина першого стовпця визначається розміром фактичних даних в рядку - 9 символьних місць, з врахуванням пропусків на початку і в кінці - 11. Ширина останніх стовпців визначається шириною тексту в заголовках стовпців. Слід враховувати вертикальні лінії.
У кожному рядку виводяться значення набору змінних для одного рядка. Наприклад:
printf("| %9s | %c | %5d | %5.1f |\n", name1, sc1, cnt1, sq1);
Значення назви виводяться по специфікації типу %s з шириною 9. Значення номеру виводяться по специфікації типу %c. Значення кількості виводяться по специфікації типа %d з шириною 5, а площа - %f із загальною шириною 5 і одним знаком після крапки. Значення в цих стовпцях доповнюються до потрібної ширини пропусками.
Текст програми наведено нижче.
/*****************************************************/
/* Лабораторна робота 6 */
/* Типи даних та введення-виведення */
/*****************************************************/
/*****************************************************/
/* Лабораторна робота 6 */
/* Типи даних та введення-виведення */
/*****************************************************/
#include <stdio.h>
#include <conio.h>
int main(void) {
char name1[9], name2[9], name3[9];
char sc1, sc2, sc3;
unsigned short cnt1, cnt2, cnt3;
float sq1, sq2, sq3;
/* Введення фактичних даних*/
printf("1. Введіть: назву, номер, кількість, площу>");
scanf("%s %c %d %f",name1, &sc1, &cnt1, &sq1);
printf("2. Введіть: назву, номер, кількість, площу>");
scanf("%s %c %d %f",name2, &sc2, &cnt2, &sq2);
printf("3. Введіть: назву, номер, кількість, площу>");
scanf("%s %c %d %f",name3, &sc3, &cnt3, &sq3);
/* Виведення таблиці */
/* виведення заголовків */
printf("--------------------------------------------\n");
printf("| Санаторії України |\n");
printf("|------------------------------------------|\n");
printf("| Назва |Номер| Кількість |Площа землі |\n");
printf("| | | відпочив. | (га) |\n");
printf("|-----------|-----|-----------|------------|\n");
/* виведення рядків фактичних даних */
printf("| %9s | %c | %5d | %5.1f |\n", name1, sc1, cnt1, sq1);
printf("| %9s | %c | %5d | %5.1f |\n", name2, sc2, cnt2, sq2);
printf("| %9s | %c | %5d | %5.1f |\n", name3, sc3, cnt3, sq3);
/* виведення приміток */
printf("|------------------------------------------|\n");
printf("| Примітка: Номери 1 - Крим; 2 - Карпати; |\n");
printf("| 3 - інші |\n");
printf("-------------------------------------------|\n");
getch();
return 0;
}
При виконанні лабораторної роботи вивчені питання:
Назва типу |
Пояснення |
Діапазон значень |
Short |
Коротке ціле число |
-128 . . . 127 |
unsigned short |
Коротке ціле число без знака |
0 . . . 255 |
int |
Ціле число |
-32768 . . . 32767 |
unsigned int |
Ціле число |
0 . . . 65535 |
long |
Довге ціле число |
-230 . . . 230-1 |
unsigned long |
Довге ціле число без знака |
0 . . . 231-1 |
char |
Один символ |
символы кода ASCII |
char[ ] |
Рядок |
|
float |
Число з плаваючою крапкою |
3.4 10-38 . . . 3.4 10+38 |
double |
Число з плаваючою крапкою подвійної точності |
1.7 10-308 . . . 1.7 10+308 |
Завдання:
Розробити програму, яка вводить фактичні дані з таблиці згідно індивідуального завдання та виводить на екран таблицю.
Варіант 1
Види антилоп |
|||
Назва |
Група |
Місце проживання |
Чисельність популяції |
Джейран |
A |
Азія |
3000 |
Гну |
B |
Африка |
5600 |
Бейза |
H |
Африка |
2500 |
Групи: А - справжні антилопи, B коровї антилопы, H - лошадині антилопи |
Варіант 2
Фірми - виробники СКБД |
|||
Фірма |
Кількість продуктів |
Річний обсяг продаж ($) |
Частина ринка (%) |
Oracle |
1 |
24880 |
31.1 |
IBM |
3 |
23920 |
29.9 |
Microsoft |
2 |
10480 |
13.1 |
Примітка: за даними Gartner Group за 1999р |
Варіант 3
Приблизна кількість зірок різних спектральних класів в Галактиці |
|||
Спектральний клас |
Приблизна маса (відн.Сонця) |
Частина % |
Чисельність |
O |
32 |
0.00002 |
55000 |
F |
1.25 |
2.9 |
12000 |
M |
0.2 |
73.2 |
29300 |
Примітка: не наведені дані для класів: B, A, G, K |
Варіант 4
Конфігурація програмних засобів інформаційних систем |
||||
Операційна система |
СУБД |
Мін.обсяг зовнішньої памяті (MB) |
Мін.обсяг оперативної памяті (MB) |
Приблизна вартість ($) |
OS/2 |
DB2 |
130 |
22 |
3343 |
Windows/NT |
SQLServer |
230 |
24 |
2685 |
SCO/Unix |
Oracle |
110 |
48 |
3745 |
Примітка: прийнята вартість ліцензії на 8 користувачів |
Варіант 5
Температура переходу речовин в надпровідниковий стан |
||
Речовина |
Тип |
Температура |
Zn |
М |
0.8 |
Pb-Au |
П |
2.0 |
NbC |
С |
10.1 |
Тип речовини: М - метал, П - сплав, С - суміш |
Варіант 6
Сплави з високим опором |
|||
Сплав |
Опір |
Темп.коеф.опор. |
Макс.температура |
Константан |
0.44 |
0.00001 |
500 |
Нікелін |
0.39 |
0.39 |
150 |
Фехраль |
1.1 |
0.0001 |
900 |
Одиниці виміру: опір - ом*кв.мм/м. Коефіцієнт опору - 1/град. Температура - град.С |
Варіант 7
Прайс-лист |
|||
Код товару |
Категорія |
Вартість (грн) |
Термін постачання (дн) |
01-0018 |
К |
11282 |
7 |
01-0033 |
С |
170 |
1 |
02-0170 |
М |
1735 |
14 |
Примітка: К компютери, С - комплектуючі, М - множувальна техніка |
Варіант 8
Види антилоп |
|||
Назва |
Група |
Місце проживання |
Чисельність популяції |
Джейран |
A |
Азія |
3000 |
Гну |
B |
Африка |
5600 |
Бейза |
H |
Африка |
2500 |
Групи: А - справжні антилопи, B коровї антилопы, H - лошадині антилопи |
Варіант 9
Фірми - виробники СКБД |
|||
Фірма |
Кількість продуктів |
Річний обсяг продаж ($) |
Частина ринка (%) |
Oracle |
1 |
24880 |
31.1 |
IBM |
3 |
23920 |
29.9 |
Microsoft |
2 |
10480 |
13.1 |
Примітка: за даними Gartner Group за 1999р |
Варіант 10
Приблизна кількість зірок різних спектральних класів в Галактиці |
|||
Спектральний клас |
Приблизна маса (відн.Сонця) |
Частина % |
Чисельність |
O |
32 |
0.00002 |
55000 |
F |
1.25 |
2.9 |
12000 |
M |
0.2 |
73.2 |
29300 |
Примітка: не наведені дані для класів: B, A, G, K |
Варіант 11
Конфігурація програмних засобів інформаційних систем |
||||
Операційна система |
СУБД |
Мін.обсяг зовнішньої памяті (MB) |
Мін.обсяг оперативної памяті (MB) |
Приблизна вартість ($) |
OS/2 |
DB2 |
130 |
22 |
3343 |
Windows/NT |
SQLServer |
230 |
24 |
2685 |
SCO/Unix |
Oracle |
110 |
48 |
3745 |
Примітка: прийнята вартість ліцензії на 8 користувачів |
Варіант 12
Температура переходу речовин в надпровідниковий стан |
||
Речовина |
Тип |
Температура |
Zn |
М |
0.8 |
Pb-Au |
П |
2.0 |
NbC |
С |
10.1 |
Тип речовини: М - метал, П - сплав, С - суміш |
Варіант 13
Сплави з високим опором |
|||
Сплав |
Опір |
Темп.коеф.опор. |
Макс.температура |
Константан |
0.44 |
0.00001 |
500 |
Нікелін |
0.39 |
0.39 |
150 |
Фехраль |
1.1 |
0.0001 |
900 |
Одиниці виміру: опір - ом*кв.мм/м. Коефіцієнт опору - 1/град. Температура - град.С |
Варіант 14
Прайс-лист |
|||
Код товару |
Категорія |
Вартість (грн) |
Термін постачання (дн) |
01-0018 |
К |
11282 |
7 |
01-0033 |
С |
170 |
1 |
02-0170 |
М |
1735 |
14 |
Примітка: К компютери, С - комплектуючі, М - множувальна техніка |