Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

Буддійські монастирі Японії періоду Нара
Назва Школа Кількість ченців Площа землі (га)
Тодайдзі Т   368.8
Якусидзі С   54.7
Дайандзі Д   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"); }

Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал