Написать программу которая по номеру дня недели выдает название этого дня

Нужно написать программу с функцией, которая будет вычислять день недели по дате. Даты представлены структурой (год, месяц, день). В этой программе мне не очень понятна функция int date(Date z), а именно с 20 по 24 строку. Хочу разобраться в этой функции. Объясните, пожалуйста, эти строки.

#include #include #include using namespace std; struct Date < int day; int month; int year; >; int date(Date z) < int a; int y; int m; int R; a = (14 — z.month) / 12; y = z.year — a; m = z.month + 12 * a — 2; R = 7000 + (z.day + y + y / 4 — y / 100 + y / 400 + (31 * m) / 12); return R % 7; >int main() < setlocale(LC_ALL, «Russian»); Date z; char C; string S[7] = < «Воскресенье», «Понедельник», «Вторник», «Среда», «Четверг», «Пятница», «Суббота» >; cin >> z.day >> z.month >> z.year; cout
Отслеживать
задан 2 мар 2019 в 11:05
109 3 3 серебряных знака 12 12 бронзовых знаков

Покопайтесь в Интернете/литературе, как вычисляют юлианскую дату.
2 мар 2019 в 11:38
Спасибо большое!
2 мар 2019 в 12:12

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Название дня/месяца даты — Excel-Booster 13

В данной функции вычисляется, высокосный ли год или нет, так как каждые 14 лет, прибавляется день в феврале, то есть 29 дней, а в не высокосные годы, будет соответствено 28 дней.

А возвращает она, остаток от деления в данной функции, который и будет соответствовать дню недели. Так же отвечу для предыдущего человека, функция ‘_getch()’ ожидает от пользователя дальнейших действий, дабы консоль не закрылась после выполнения своей функции.

Читайте также:
Какие программы есть для звонков

Отслеживать
ответ дан 14 мар 2019 в 5:38
182 1 1 золотой знак 2 2 серебряных знака 12 12 бронзовых знаков

Я попытался изъяснить принцип действия этого кода простыми словами, вот:

#include #include using namespace std; // Создает структуру «Date» с внутренними переменными (день, месяц, год). struct Date< int day; int month; int year; >; int date(Date z) < // Создает переменные. int a; int y; int m; int R; // Вычисляет непонятный для меня номер (от 14 отнимает месяц и разделяет на 12). a = (14 — z.month) / 12; // От года отнимает номер. y = z.year — a; // Вычисляет код года (к месяцу прибовляется (12 умноженное на номер), и отминусовуется 2). m = z.month + 12 * a — 2; // Вычисляет число (к 7000 прибавляется (математическое уравнение вычисления дня недели)). R = 7000 + (z.day + y + y / 4 — y / 100 + y / 400 + (31 * m) / 12); // Возвращает номер дня недели (седьмой процент числа). return R % 7; >int main()< // Устанавливает язык локализации «Русский». setlocale(LC_ALL, «Russian»); // Создает переменную даты (используя структуру «Date»). Date z; // Создает список дней недели. string S[7] = < «Воскресенье», «Понедельник», «Вторник», «Среда», «Четверг», «Пятница», «Суббота» >; // Принимает (день, месяц, год). cin >> z.day >> z.month >> z.year; // Отсылает в функцию «date» внесенную дату, и принимая номер дня ворачивает название. cout

У меня _getch(); функция не работает, и я так и не понял зачем она, поэтому я её убрал.

Дeвyшкa пo oшибкe пoпaдaeт в тюpьмy, гдe eё иcпoльзyют пo пoлнoй

Я вот предлагаю более оптимизированный вариант для компьютера нужно добавить библеотеку #include :

#include #include #include using namespace std; // Создает структуру «date» с внутренними переменными (день, месяц, год). struct date< int day, month, year; >; int get_weekday(date i)< // Заносит дату в переменную. std::tm time_in = < 0, 0, 0, i.day+1, i.month+1, i.year >; // Конвертирует дату в time_t. std::time_t time_temp = std::mktime( // Вносит time_t дату в переменную time_out. const std::tm * time_out = std::localtime( // Возрващаем из time_out день недели. return (int)time_out->tm_wday; > int main()< // Устанавливает язык локализации «Русский». setlocale(LC_ALL, «Russian»); // Создает переменную даты (используя структуру «date»). date z; // Создает список дней недели. string S[7] = < «Воскресенье», «Понедельник», «Вторник», «Среда», «Четверг», «Пятница», «Суббота» >; // Принимает (день, месяц, год). cin >> z.day >> z.month >> z.year; // Отсылает в функцию «get_weekday» внесенную дату, и принимая номер дня ворачивает название. cout

Читайте также:
В какой программе можно создать электронное портфолио

Источник: ru.stackoverflow.com

Написать программу которая по введенному номеру дня недели выдавал название дня

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

Новые вопросы по информатике
Напиши обратные действия. Снять — Открыть — Прилететь —
Перевести число 2-чной системы счисления в 10-чную: 1110000/2, 10001101/2
Какими знаками можно обозначить на письме звонкий и глухой удары в барабан?

1) В поезде 17 вагонов, 10-17-купейные, остальные-плацкарт. Ввести № вагона. напечатать вид. 2) Ввести 2 числа. Напечатать их частное или сообщить, что на 0 делить нельзя

Товар стоит a руб. b коп. За него заплатили c руб. d коп. Сколько сдачи требуется получить? программа паскаль

Главная » Информатика » Написать программу которая по введенному номеру дня недели выдавал название дня

Источник: 4i5.ru

Написать программу которая по номеру дня недели выдает название этого дня

Школьнику.com

Опубликовано 08.06.2017 по предмету Информатика от Гость >> Оцени ответ

Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

  • Алгебра
  • Математика
  • Русский язык
  • Українська мова
  • Информатика
  • Геометрия
  • Химия
  • Физика
  • Экономика
  • Право
  • Английский язык
  • География
  • Биология
  • Другие предметы
  • Обществознание
  • История
  • Литература
  • Українська література
  • Беларуская мова
  • Қазақ тiлi

Показать ещё

Источник: www.shkolniku.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru