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

Статус
Закрыто для дальнейших ответов.
08.12.2010
13
0
#1
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;
}
 

DarkKnight

Well-known member
01.08.2010
653
0
#3
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); //Стандартный С вывод даты (можно конечно определить массивы строк и вывести на русском, но это уже сам)
}
 

Вложения

Статус
Закрыто для дальнейших ответов.