
- •1. Разработка алгоритма решения
- •1.1 Общий метод решения
- •1.2. Определение переменных программы
- •1.3. Текста программы
- •1.4. Отладка программы
- •1.5. Результаты работы программы
- •1.6. Выводы
- •2. Разработка алгоритма решения.
- •2.1. Основной алгоритм
- •2.1.2. Оптимизация алгоритма
- •2.2. Определение переменных программы
- •2.3. Текст программы
- •2.4. Отладка программы
- •2.5. Результаты работы программы
- •2.6. Выводы
Програмна реалізація алгоритмів лінійної структури
Если в программе все операторы выполняются последовательно один за другим, то такая программа называется линейной.
Задание 1.
Разработать программу, которая выводит на экран таблицу, содержащую данные, введенные с клавиатуры.
Вариант 30 Буддийские монастыри Японии периода Нара
Название |
Школа |
Количество монахов |
Площадь земли (га) |
Тодайдзи |
Т |
220 |
368.8 |
Якусидзи |
С |
50 |
54.7 |
Дайандзи |
Д |
10 |
12.2 |
Примечание: Т - Тэндай; С - Сингон; Д - Дзедзицу
1. Разработка алгоритма решения
1.1 Общий метод решения
В заданной таблице, первая строка - общий заголовок, вторая - заголовки столбцов таблицы. Фактические данные составляют третью, четвертую и пятую строки. Шестая строка - примечания.
Программа начинается с ввода фактических данных. Для удобства оператора, перед вводом на экран выводится приглашение, в котором перечисляется, какие именно данные ожидает программа. За одно приглашение-ввод вводится одна строка фактических данных таблицы. Т.е., приглашение-ввода повторяется трижды. Введенные данные сохраняются в переменных программы.
На втором этапе программа выполняет вывод данных на экран. Каждая строка таблицы выводится одним оператором вывода. Среди строк, которые выводятся, есть строки без переменных значений (заголовки и линии) и строки с переменными значениями (строки с фактическими данными).
1.2. Определение переменных программы
Для каждой переменной подбирается такой тип, который бы обеспечивал представление в памяти ее значения с достаточным диапазоном и достаточной точностью.
Название. Во всех фактических значениях этот столбец является символьной строкой из 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;
1.3. Текста программы
/*******************************************************/
/* Linear structure */
/* Input- Output */
/* Variant 30 */
/*******************************************************/
#include <stdio.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.Input: Name, school, number, square>");
scanf("%s %c %d %f",name1, &sc1, &cnt1, &sq1);
printf("2. Input: Name, school, number, square>");
scanf("%s %c %d %f",name2, &sc2, &cnt2, &sq2);
printf("3. Input: Name, school, number, square>");
scanf("%s %c %d %f",name3, &sc3, &cnt3, &sq3);
printf("-----------------------------------------------\n");
printf("|Buddiyskie monastyri Yaponii perioda Nara |\n");
printf("|---------------------------------------------|\n");
printf("| Name | school| number | square land |\n");
printf("| | | monk | (hectare) |\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("|Annotate : Т - Tenday; С - Singol; |\n");
printf("| Д - Ddedzitsu |\n");
printf("-----------------------------------------------\n");
return 0;
}