Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_1.doc
Скачиваний:
18
Добавлен:
16.11.2019
Размер:
214.53 Кб
Скачать

Лабораторна робота № 1

Тема: Основи програмування С++. Базові типи даних та ввод-вивод

Мета: отримання практичних навичок в роботі з типами даних мови C++ і використання функцій стандартного вводу-виводу.

Приклад рішення задачі

Буддійські монастирі Японії періоду Нара

Назва

Школа

Кількість ченців

Площа землі (га)

Тодайдзі

Т

220

368.8

Якусидзі

С

50

54.7

Дайандзі

Д

10

12.2

Примітка: Т - Тэндай; З - Сингон; Д - Дзедзицу

Розробка алгоритму рішення

Визначення змінних програми

Назва - є символьним рядком з 8 символів: char name1[9], name2[9], name3[9]; додатковий символ резервується для позначення кінця символьного рядка.

Школа. Ці дані є одним символом. Їх оголошення: char sch1, sch2, sch3;

Кількість ченців - цілі числа, тип unsigned short (діапазон цього типу : 0 - 255). Оголошення змінних : unsigned short cnt1, cnt2, cnt3;

Площа земель - змінними з плаваючою точкою, тип float : float sq1, sq2, sq3;

Пояснення до тексту програми

Кодова частина програми починається із запрошення - виведення рядка-константи :

printf("1. Введіть: назву, школу, кількість, площу >");

за яким прочитуються дані, такі, що вводяться оператором:

scanf("%s %c %d %f", name1, &sc1, &cnt1, &sq1);

Специфікації типу : %s рядок, символ - %c, ціле число - %d, число з плаваючою точкою - %f. Специфікації розділяються пропусками, тобто і дані при введенні повинні розділяться пропусками або переходом на новий рядок. У списку введення перед усіма елементами, крім того, який вводиться по %s, ставиться знак &.

Для формування виводу слід підрахувати ширину кожного стовпця. Перший стовпець з урахуванням пропусків на початку і у кінці - 11. Ширина інших стовпців складає відповідно до 7, 11 і 13 символів. Враховуючи вертикальні лінії, ширина рядка складає 47 знакомісць.

Перший рядок - горизонтальна лінія, яка складається з символу '-', повтореного 47 разів. Другий рядок - загальний заголовок, доповнений до ширини 47 пропусками. Третій рядок - ще одна горизонтальна лінія. Четвертий і п'ятий рядки - заголовки стовпців, кожен з них має встановлену ширину. Шостий рядок - ще одна горизонтальна лінія.

Нарешті, рядки з сьомою до дев'ятої - фактичні дані. У кожному рядку виводяться значення набору змінних для одного рядка. Наприклад:

printf("| %9s | %c | %-3d | %5.1f |\n", name1, sc1, cnt1, sq1);

Значення імені виводяться :специфікація %s з шириною 9; значення школи - специфікація %c; Оскільки значення в цьому стовпці виводиться по центру стовпця, перед і після нього ставляться пропуски. Значення кількості - специфікація %d з шириною 3, а площа - %f із загальною шириною 5 і одним знаком після точки. Значення в цих стовпцях доповнюються до потрібної ширини пропусками. У стовпці 3 ставиться ознака вирівнювання по правому краю.

Повний текст програми.

/*******************************************************/

/* /* Лабораторна робота N 1 */

/* /* Типи даних та ввод-вивод */

/* /* Приклад виконання. Варіант N30. */

/*******************************************************/

##include <stdio.h>

void 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 | %3d | %-5.1f |\n", name1, sc1, cnt1, sq1);

printf("| %9s | %c | %3d | %-5.1f |\n", name2, sc2, cnt2, sq2);

printf("| %9s | %c | %3d | %-5.1f |\n", name3, sc3, cnt3, sq3);

/* /* виведення приміток */

printf("|---------------------------------------------|\n");

printf("| Примітка: Т - Тэндай; З - Сингон; |\n");

printf("| Д - Дзедзицу |\n");

printf("-----------------------------------------------\n");

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]