Напишите программу, которая вводит с клавиатуры номер месяца и день,и определяет, сколько дней осталось до нового года. при вводе неверныхданных должно быть выведено сообщение об ошибке. считается, что годневисокосный.через case.
Алг нач цел Кол_во=256, логтаб Матрица[1:Кол_во] цел Число,j
Матрица[1]:=нет нц для Число от 2 до Кол_во Матрица[Число]:=да кц нц для Число от 2 до div(Кол_во,2) нц для j от 2 до div(Кол_во,Число) Матрица[Число*j]:=нет кц кц нц для Число от 1 до Кол_во если Матрица[Число]=да то вывод Число," " все кц кон
Тут зависит от задачи. Понятное дело речь идёт об преобразование в сторону уменьшения объема данных. Нужно отметить что для этой задачи большой объем информации нужно будет свертывать(объединять, группировать) по каким-то полям таблицы, а по каким то суммировать числовые значения. Вот эти две операции и определять манеру визуализации для достижения цели задачи. Само собой нужно будет решить какие данные не важны и будут в итоге отсеяны из визуализации. Так же если таблица имеет ссылочные поля, то можно задействовать метод графов, опять же с группированием однотипных элементов.
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
short int year[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int month = 0, day = 0, daysUntilNewYear = 0;
while (month == 0)
{
cout << "Введите месяц: ";
cin >> month;
if (month < 1 || month > 12)
{
month = 0;
cout << "В году лишь 12 месяцев, повторите ввод" << endl;
}
}
while (day == 0)
{
cout << "Введите день: ";
cin >> day;
if (day > year[month - 1] || day < 1)
{
day = 0;
cout << "В выбранном месяце " << year[month - 1] << " дней, повторите ввод" << endl;
}
}
for (int i = month - 1; i < 12; i++)
{
daysUntilNewYear += year[i];
}
daysUntilNewYear -= day - 1;
cout << "До Нового Года осталось " << daysUntilNewYear << " дней"<< endl;
system("pause");
return 0;
}
Если через case делать, то будет больше кода и он будет менее понятен - смысла в этом нет, поэтому сделал через while.