1. Ввод данных Данные могут вводиться с клавиатуры и из файла, который может быть на жестком диске и на внешнем запоминающем устройстве.
При вводе данных с клавиатуры необходимо создать файл с начальными значениями. При этом самостоятельно выбрать директорию, где записать данный файл. Если необходимо, то создать новую директорию.
При вводе данных с диска нужно самостоятельно выбрать директорию, где находится данный файл.
2.Вывод результатов
Результаты должны быть представлены в виде: а) графика, б) числовых значений. Они также должны быть записаны в виде файла. При этом самостоятельно выбрать директорию, где должен храниться данный файл.
Для данной программы обеспечить вывод графики в виде изменения функции y=f(x) с осями Х и Y. График помещается в отдельном окне.
3. Обеспечить диспетчеризацию решения задачи
Это управление всем процессом решения задачи.
Предусмотреть вывод информации.
4. Защита данных и справочная информация
Защита данных обеспечивается вводом пароля.
Справочная информация включает некоторые сведения о программе и об авторе разработки. В данную программу можно поместить свою фотографии, фамилию, имя и отчество. Можно указать год разработки.
5. Показатели качества созданного программного обеспечения.
Определить быстродействие и затраты памяти в зависимости от степени загрузки
1) k:=k mod 3+k*cos(5); В правой части стоит функция косинус, которая определена только для вещественных чисел и операция mod, которая определена только для целых чисел. Если k целочисленное, то правая часть будет вещественной и попытка присвоить вещественное значение целочисленной переменной недопустима. Надо ставить явное преобразование, например k:=Trunc(k mod 3+k*cos(5)); или k:=Round(k mod 3+k*cos(5)); Если же k - вещественное, то операция k mod 2 недопустима. 2) x:=x*2 div 6+x/4 Тут в правой части смешаны операция div, которая определена только для целых и операция деления, которая определена для вещественных. Такое смешивание вещественных и целый запрещено. В Паскале нет функции перевода целых в вещественные, только процедура, но её в выражение не встроишь. Поэтому можно только говорить о переводе результата х/4 к целому значение посредством Trunc(х/4) или Round(x/4). Либо о замене х/4 на x div 4. Само собой, х надо объявлять целым.
В правой части стоит функция косинус, которая определена только для вещественных чисел и операция mod, которая определена только для целых чисел. Если k целочисленное, то правая часть будет вещественной и попытка присвоить вещественное значение целочисленной переменной недопустима. Надо ставить явное преобразование, например k:=Trunc(k mod 3+k*cos(5)); или k:=Round(k mod 3+k*cos(5));
Если же k - вещественное, то операция k mod 2 недопустима.
2) x:=x*2 div 6+x/4
Тут в правой части смешаны операция div, которая определена только для целых и операция деления, которая определена для вещественных. Такое смешивание вещественных и целый запрещено. В Паскале нет функции перевода целых в вещественные, только процедура, но её в выражение не встроишь. Поэтому можно только говорить о переводе результата х/4 к целому значение посредством Trunc(х/4) или Round(x/4). Либо о замене х/4 на x div 4. Само собой, х надо объявлять целым.
#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.