Об игре
Новости
Войти
Регистрация
Рейтинг
Форум
1:13
1588
 online
Требуется авторизация
Вы не авторизованы
   Форумы-->Форум для внеигровых тем-->
1|2|3

АвторЗадачка по с++
Раз уж я здесь, то почему бы не попробовать?
Обучаюсь на втором курсе ИвПЭК'а, по специальности программирования. На самом деле это бред, всему чему они нас учат, все равно приходится изучать языки и платформы самостоятельно. У нас в колледже раз в год проходит мероприятие, называется оно "Конференция". Собственно, на этой конференции самые гениальные умы презентуют свои проекты. Ну как свои. Профессора дают задания - скажем, электронная зачетная книжка - и время, на ее выполнение. На 2м курсе мало кому удавалось попасть на "Конференцию", но слишком уж мне нравится эта идея. В качестве пробного задания мне назначили написать программу, которая будет определять знак зодиака и возраст по введенным пользователем данным. Данные эти - день, месяц и год рождения. Первую часть программы, про зз, я выполнил, ничего особенного в этом нет. А вот определить возраст, да и еще и так, что бы он был вида "количество лет, месяцев и дней, с момента рождения", я, увы, не смог.
В первой части программы я инициализировал 3 переменные:

int day, month, year;
cin >> day >> month >> year;

Кто-нибудь знает подходящую функцию, для реализации задания?
Если, конечно, в ГВД есть программисты=)
я знаю.
вводиш сегодняшнюю дату и отнимаешь от нее дату рождения.
такая простая задачка и вторйо курс. мб второй клас?
Если, конечно, в ГВД есть программисты=)
В ГВД их полно!
А еще юристов, историков, политологов, экономистов, психологов и философов!
В свое время писал что-то такое, только определяющее день недели по дате. Это, кстати, сложнее было. Тебе надо лишь подключить time.h
http://ru.wikipedia.org/wiki/Time.h
Получить структуру с текущим временем, создать структуру с датой рождения и найти разницу между ней и датой рождения, там для этого даже функция есть.
для White-_-Man:
Похоже на гонево, слишком простое задание))
программку бы, чтоб размер груди по цвету натитьника определяла.
мм... а можно проще.
Перевести все в дни (в тип int64 точно влезет) + не забыть про високосные года.
Ну и отнять от большего меньшее.
#include <ctime>
void main()
{
time_t rawtime;
}
#include <ctime>
void main()
{
time_t rawtime;
time( &rawtime );
}

получишь текущую дату в секундах
8+ поскольку точность нужна до дней, то можно и так. Каждый 4ый год високосный, каждый 400ый нет. GL
для 7bAll:
я знаю.
вводиш сегодняшнюю дату и отнимаешь от нее дату рождения.
такая простая задачка и вторйо курс. мб второй клас?

что-то я не особо вижу энтузиазма помочь, только желание "понтонуться"

для red-ant:
В свое время писал что-то такое, только определяющее день недели по дате. Это, кстати, сложнее было. Тебе надо лишь подключить time.h
http://ru.wikipedia.org/wiki/Time.h
Получить структуру с текущим временем, создать структуру с датой рождения и найти разницу между ней и датой рождения, там для этого даже функция есть.


Была такая идея
подключить файл #include <ctime>
time_t seconds = time(NULL);
tm* timeinfo = localtime(&seconds);
и далее
timeinfo->tm_mday сегодняшний день
timeinfo->tm_mon+1 месяц по счету (1-12)
timeinfo->tm_year+1900-1 текущий год

но тут возникает проблема, когда сегодняшний день < день рождения

тогда получается путаница
я думаю в с++ должна быть какая-то функция, упрощающая все это
что-то я не особо вижу энтузиазма помочь, только желание "понтонуться"
для White-_-Man:
ну раз хамиш, тогда сам решай.
Задачка по с++
с++ тут не причем

ты бы алгоритм составил для начала, для понимания
кому интересно, первая часть программы

#include <iostream>
#include <string.h>
#include <ctime>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
const char *arrZodiak[12] = {"Овен", "Телец", "Близнецы", "Рак", "Лев", "Дева", "Весы", "Скорпион", "Стрелец", "Козерог", "Водолей", "Рыбы"};
const char *arrMonth[12] = {"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"};
char zodiak[20] = "";
char Month[20] = "";
int day, month, year; // дата рождения

cout <<"Введите дату рождения (дд мм гггг): ";
cin >> day >> month >> year;

// Вычисляем знак зодиака
if ( (month == 3 && day >= 21) || (month == 4 && day <= 20) )
strcpy(zodiak, arrZodiak[0]); // Овен
else
if ( (month == 4 && day >= 21) || (month == 5 && day <= 20) )
strcpy(zodiak, arrZodiak[1]); // Телец
else
if ( (month == 5 && day >= 21) || (month == 6 && day <= 21) )
strcpy(zodiak, arrZodiak[2]); // Близнецы
else
if ( (month == 6 && day >= 22) || (month == 7 && day <= 22) )
strcpy(zodiak, arrZodiak[3]); // Рак
else
if ( (month == 7 && day >= 23) || (month == 8 && day <= 23) )
strcpy(zodiak, arrZodiak[4]); // Лев
else
if ( (month == 8 && day >= 24) || (month == 9 && day <= 23) )
strcpy(zodiak, arrZodiak[5]); // Дева
else
if ( (month == 9 && day >= 24) || (month == 10 && day <= 22) )
strcpy(zodiak, arrZodiak[6]); // Весы
else
if ( (month == 10 && day >= 23) || (month == 11 && day <= 22) )
strcpy(zodiak, arrZodiak[7]); // Скорпион
else
if ( (month == 11 && day >= 23) || (month == 12 && day <= 21) )
strcpy(zodiak, arrZodiak[8]); // Стрелец
else
if ( (month == 12 && day >= 22) || (month == 1 && day <= 20) )
strcpy(zodiak, arrZodiak[9]); // Козерог
else
if ( (month == 1 && day >= 21) || (month == 2 && day <= 19) )
strcpy(zodiak, arrZodiak[10]); // Водолей
else
if ( (month == 2 && day >= 20) || (month == 3 && day <= 20) )
strcpy(zodiak, arrZodiak[11]); // Рыбы

cout <<("По знаку зодиака вы ");
cout <<(zodiak) << endl;
cout <<("Месяц вашего рождения ");
cout <<(Month) << endl;
system ("pause>>void");
return 0;
}
для ЗАМИНКА:
ты бы алгоритм составил для начала, для понимания
парень хочет чтоб ему напсиали задачку, и он выдал ее за свою на конференции.
а еще она должна складатся с одной-двух функции встроеных в с++, чтоб ему не надо было много копировать)
хочет упростить елементарное)
для 7bAll:
парень хочет чтоб ему напсиали задачку, и он выдал ее за свою на конференции.
а еще она должна складатся с одной-двух функции встроеных в с++, чтоб ему не надо было много копировать)
хочет упростить елементарное)

это не задание конференции
В качестве пробного задания мне назначили написать программу
для White-_-Man:
не вижу что будет если юзер введет к примеру 1.13.2000 или 0.12.2001
или -1.-2.-3012
для MrSlayer:
для Koek:
мм... а можно проще.
Перевести все в дни (в тип int64 точно влезет) + не забыть про високосные года.
Ну и отнять от большего меньшее.


понятия не имею, как перевести все в дни XD
для 7bAll:
не вижу что будет если юзер введет к примеру 1.13.2000 или 0.12.2001
или -1.-2.-3012

конечно, я добавлю проверку на допустимые значения, но после того, как пойму, как реализовать определение возвраста
1|2|3
К списку тем
2007-2025, онлайн игры HeroesWM