• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Задачи: Формирование даты исход из нач. даты + часы, координаты прямоу

  • Автор темы dimon131
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

dimon131

1 Даны целые числа x1, y1,…, xn, yn. Выяснить, есть ли среди точек (x1, y1),…, (xn, yn)
четыре вершины квадрата. Если да, то вывести их


2 Дана дата в виде числа, месяца, времени(например, 12 мая, 9 часов), и эта дата припала на день недели – четверг. Кроме того дано натуральное число К. Вывести день недели, месяц и сезон, которые наступят после после данной даты через k часов. Считать год не высокосным невисокосним

Если можно, то на языке Си

Добавлено: код задачи №2

#include<conio.h>
#include<stdio.h>
#include<math.h>
int main()
{
unsigned long k; //переменные
int u,i,a,b,c,d,n;
printf("Vvedite k, k=");
scanf("%d\n",&k); //Ввод данных
printf("Vvedite 4iclo, c=");
scanf("%d\n",&c); //Ввод данных
printf("Vvedite № mecaca, n=");
scanf("%d\n",&n); //Ввод данных
printf("Vvedite vrema, d=");
scanf("%d\n",&d); //Ввод данных
a=k/24;
c=c+a;
b=k%24;
d=d+b;
i=c;
u=d;

switch(n)
{
case 1:printf("janvar\n"); break;
case 2:printf("fevral\n"); break;
case 3:printf("mart\n"); break;
case 4:printf("aprel\n"); break;
case 5:printf("maj\n"); break;
case 6:printf("ijun\n"); break;
case 7:printf("ijul\n"); break;
case 8:printf("avgust\n"); break;
case 9:printf("sentabr\n"); break;
case 10:printf("oktabr\n"); break;
case 11:printf("najabr\n"); break;
case 12: printf("dekabr\n"); break;
}
if (i<24) //условие
{
printf("4iclo %d",c); //Вывод на экран
printf("mesac %d",n);
printf("vremja %d",d);
}
else
{
for(i=c;i<24;i-24)
i++;
}
if(i>30) //условия
{
i-30;
n++; //действия

printf("4iclo %d",c); //Вывод на экран
printf("mesac %d",n);
printf("vremja %d",d);
}
getch();
return 0;
}
 
D

DarkKnight

2 Дана дата в виде числа, месяца, времени(например, 12 мая, 9 часов), и эта дата припала на день недели – четверг. Кроме того дано натуральное число К. Вывести день недели, месяц и сезон, которые наступят после после данной даты через k часов. Считать год не высокосным невисокосним

Вот оптимальное решение... Но оно не совсем математического, математический алгоритм будет намного более объемен, слишком много параметров нужно учитывать... Будет время напишу мат. решение... Но такой алгоритм - намного более правелен, хотя и ни так хорошо проверят знания.

C++:
/*
codeby.net
Autor: DarkKnight125 (Denis Goncharov)
*/
#include <iostream>
#include <time.h>

using namespace std;

void main(void)
{
setlocale(LC_ALL,"Russian");
struct tm *myDate;

cout << "Введите заданную дату и время в формате (dd.mm.yyyy hh:mm) : ";
int d,m,y,h,min; //День, месяц, Год, Час, минута

//Получим введенные данные
cin>>d; //Получим дату
cin.ignore(); //этим будем пропускать не значащие символы
cin>>m; //Получим месяц
cin.ignore(); 
cin>>y; //Получим год
cin>>h; //Получим время
cin.ignore();
cin>>min; //Получим минуты
//Сформируем структуру
time_t vTime = time(NULL); //Получим текущее время
myDate = localtime(&vTime); //Сформируем структуру
//заполним структуру введенной датой
myDate->tm_year = y - 1900; //Отчет идет от 1900 
myDate->tm_mon = m-1; //Месяцы в структуре идут от 0
myDate->tm_mday = d;
myDate->tm_hour = h;
myDate->tm_min = min;
//
//Введем время которое нужно прирастить
int dHour; //Приращение часов
cout << "Введите кол-во часов приращения dHour = ";
cin>>dHour; 
myDate->tm_hour += dHour; //Добавим часы
vTime = mktime(myDate); //Сформируем структуру по зад. параметрам

//Вывод времени года
if (myDate->tm_mon == 11 || myDate->tm_mon < 2)
cout << "Время года ЗИМА " << endl;
if (myDate->tm_mon >= 2 && myDate->tm_mon < 5)
cout << "Время года ВЕСНА " << endl;
if (myDate->tm_mon >= 5 && myDate->tm_mon < 8)
cout << "Время года ЛЕТО " << endl;
if (myDate->tm_mon >=8 && myDate->tm_mon < 11)
cout << "Время года ОСЕНЬ " << endl;

cout<<ctime(&vTime); //Стандартный С вывод даты (можно конечно определить массивы строк и вывести на русском, но это уже сам)
}
 

Вложения

  • time_hour.jpg
    time_hour.jpg
    21,5 КБ · Просмотры: 443
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!