Текста программы
Розробка алгоритму
1.1. Загальний|спільний| метод розв'язання
Спочатку йде загальний|спільний| заголовок. У заданій таблиці, перший рядок заголовки стовпців таблиці. Фактичні дані складають третю, четвертую і п'яту рядки. Шостий рядок - примітки|тлумачення|.
Програма починається з введення фактичних даних. Для зручності оператора, перед введенням на екран виводиться запрошення, в якому перераховується, які саме дані чекає програма. За одне запрошення-введення вводиться|запроваджує| один рядок фактичних даних таблиці. Тобто, запрошення-вводу| повторюється тричі. Введені|запроваджувати| дані зберігаються в змінних програми.
На другому етапі програма виконує виведення даних на екран. Кожен рядок таблиці виводиться одним оператором виводу|висновку|. Серед рядків, які виводяться, є рядки без змінних значень (заголовки і лінії) і рядка із|із| змінними значеннями (рядки з|із| фактичними даними).
1.2. Визначення змінних програми
Для кожної змінної підбирається такий тип, який би забезпечував представлення в пам'яті її значення з|із| достатнім діапазоном і достатньою точністю.
Школа. Ці дані є одним символом. Їх оголошення:
char| sch1|, sch2|, sch3|;
Кількість ченців. Ці дані є цілими числами в діапазоні 10 - 220. Цей діапазон перекривається діапазоном можливих значень типу unsigned short (діапазон цього типу: 0 - 255). Тобто оголошення відповідних змінних:
unsigned| short| cnt1|, cnt2|, cnt3|;
Площа земель. Це число з дробовою частиною, отже, відповідні змінні мають бути змінними з плаваючою крапкою. Точність даних - всього один знак після крапки, тому для їх уявлення буде достатньо типу float:
float| sq1|, sq2|, sq3|;
#include<iostream.h>
#include <windows.h>
#include <iomanip.h>
#include <string.h>
int main(){
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
//------------------------------------Объявление основных переменных---
char sc1='Т', sc2='С', sc3='Д'; //школа
short int cnt1=220, cnt2=50, cnt3=10; //количество монахов
double sq1=368.8, sq2=54.7, sq3=12.2; //площадь земли
cout.setf(ios::left); //выравнивание элементов объекта cout слева
//--------------------------------------ввод данных------------------
/*
int i=1; //номер записи
//ввод 1-й записи
cout<<i<<"\n";
cout<<setw(20)<<"Школа"<<":";
cin>>sc1;
cout<<setw(20)<<"Количество монахов"<<": ";
cin>>cnt1;
cout<<setw(20)<<"Площадь земли"<<":";
cin>>sq1;
//ввод 2-й записи
i=i+1;
cout<<i<<"\n\n";
cout<<setw(20)<<"Школа"<<": ";
cin>>sc2;
cout<<setw(20)<<"Количество монахов"<<": ";
cin>>cnt2;
cout<<setw(20)<<"Площадь земли"<<": ";
cin>>sq2;
//ввод 3-й записи
i++;
cout<<i<<"\n\n";
cout<<setw(20)<<"Школа"<<": ";
cin>>sc3;
cout<<setw(20)<<"Количество монахов"<<": ";
cin>>cnt3;
cout<<setw(20)<<"Площадь земли"<<": ";
cin>>sq3;
//--------------------------------------вывод данных-------------------
// Объявление переменных для печати таблицы
const int poz1=8,poz2=19, poz3=14;
const int poz_all=poz1+poz2+poz3+2*4;
const char simb='-';
cout.setf(ios::fixed); //выдача в формате с фиксированной точкой
cout<<setprecision(2); //два знака после запятой
cout<<endl;
cout<<setw(poz_all)<<"Буддийские монастыри Японии периода Нара\n";
cout<<endl;
cout.fill(simb);
cout<<setw(poz_all-1)<<simb<<endl;
cout.fill(' ');
cout<<"| "<<setw(poz1)<<"Школа";
cout<<"| "<<setw(poz2)<<"Количество монахов";
cout<<"| "<<setw(poz3)<<"Площадь земли"<<"| \n";
cout.fill(simb);
cout<<setw(poz_all-1)<<simb<<endl;
cout.fill(' ');
cout<<"| "<<setw(poz1)<<sc1;
cout<<"| "<<setw(poz2)<<cnt1<<"| "<<setw(poz3)<<sq1<<"| \n";
cout<<"| "<<setw(poz1)<<sc2;
cout<<"| "<<setw(poz2)<<cnt2<<"| "<<setw(poz3)<<sq2<<"| \n";
cout<<"| "<<setw(poz1)<<sc3;
cout<<"| "<<setw(poz2)<<cnt3<<"| "<<setw(poz3)<<sq3<<"| \n";
cout.fill(simb);
cout<<setw(poz_all-1)<<simb<<endl;
cout<<"Примечание: Т - Тэндай; С - Сингон; Д - Дзедзицу\n";
cout<<endl<<endl; //перевод строки*/
return;
}
1.4. Відладка програми
При відладці програми використовувався покроковий режим відладки з|із| відстежуванням|відслідковувати| значень змінних - тих, які вводяться|запроваджують|.