Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/55: Рейтинг темы: голосов - 55, средняя оценка - 4.65
-15 / 1 / 0
Регистрация: 26.01.2019
Сообщений: 34

По заданной дате требуется определить, какое число будет послезавтра

01.03.2019, 19:22. Показов 11108. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По заданной дате требуется определить, какое число будет послезавтра.

Напомним, что год является високосным, если его номер кратен 4, но не кратен 100, а также если он кратен 400.

Входные данные
Дано число, месяц и год (год – число в промежутке от 1 до 10000).

Выходные данные
Требуется вывести, какое число будет послезавтра, в формате входных данных.

Примеры
входные данные
1 8 2009
выходные данные
3 8 2009
входные данные
30 12 2009
выходные данные
1 1 2010
входные данные
28 2 2008
выходные данные
1 3 2008
Моё решение:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
a, b, c = input().split(" ")
a = int(a)
b = int(b)
c = int(c)
if a<27:
    a = a+2
    print(a, b, c)
elif a>=27:
    if b==2:
        if (c % 4 == 0) and (c % 100 != 0) or (c % 400 == 0):
            if a == 27:
                print("29 2",str(c))
            elif a == 28:
                print("1 3",str(c))
            elif a == 29:
                print("2 3",str(c))
        else:
            if a == 27:
                print("1 3",str(c))
            if a == 28:
                print("2 3",str(c))
    elif b==12:
        if a == 27:
            print("29 12",str(c))
        if a == 28:
            print("30 12",str(c))
        if a == 29:
            print("31 12",str(c))
        if a == 30:
            c=c+1
            print("1 1",str(c))
        if a == 31:
            c=c+1
            print("1 2",str(c))
    else:
        if a == 27:
            print("29",str(b),str(c))
        if a == 28:
            print("30",str(b),str(c))
        if a == 29:
            print("31",str(b),str(c))
        if a == 30:
            b=b+1
            print("1",str(b),str(c))
        if a == 31:
            b=b+1
            print("2",str(b),str(c))
Где-то ошибка, подскажите где
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2019, 19:22
Ответы с готовыми решениями:

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

Какое число будет послезавтра?
Привет, форумчане! В программе нужно вывести какое число будет послезавтра. Формат ввода данных: ДД/ММ/ГГГГ, причем 10000 &gt;= год...

Вычислить какое число будет послезавтра
По заданной дате требуется определить какое число будет послезавтра. Input - 1 8 2009 Output 3 8 2009 Мой код прохожит 53%, где...

7
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.03.2019, 19:26
Вам нужно в Python?
1
-15 / 1 / 0
Регистрация: 26.01.2019
Сообщений: 34
01.03.2019, 20:16  [ТС]
В питон или паскаль
0
Модератор
10430 / 5718 / 3404
Регистрация: 17.08.2012
Сообщений: 17,389
01.03.2019, 23:08
Лучший ответ Сообщение было отмечено Егор Андреянов как решение

Решение

На паскале:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const
  c: array[1..12] of integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
 
var
  d, m, y: integer;
 
begin
  readln(d, m, y);
  if (y mod 4 = 0) and (y mod 100 <> 0) or (y mod 400 = 0) then c[2] := 29; 
  inc(d, 2);
  if d > c[m] then
    begin
      dec(d, c[m]);
      inc(m)
    end;
  if m > 12 then
    begin
      m := 1;
      inc(y)
    end;
  write(d, ' ', m, ' ', y)
end.
То же самое на питоне:
Python
1
2
3
4
5
6
7
8
9
10
11
c = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
d, m, y = map(int, input().split())
if (y % 4 == 0) and (y % 100 != 0) or (y % 400 == 0): c[1] = 29
d = d + 2
if d > c[m - 1]:
    d = d - c[m - 1]
    m = m + 1
if m > 12:
    m = 1
    y = y + 1
print(d, m, y)
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
02.03.2019, 09:04
Кроме как во Фрее Паскаль, в остальных не разрешает изменять значение константного массива.
0
Модератор
10430 / 5718 / 3404
Регистрация: 17.08.2012
Сообщений: 17,389
02.03.2019, 13:08
Насколько я знаю, типизированные константы позволительно менять в любых диалектах. Насчёт ABC не уверен. Поскольку типизированные константы по сути есть переменные. А вот не типизированные константы действительно менять нельзя, потому что они - макроподстановка.

Для гипотетического паскаля, в котором нельзя изменять типизированные константы и (возможно) присваивать массивы:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
type
  arr = array[1..12] of integer;
 
const
  t: arr = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
 
var
  d, m, y: integer;
  c: arr;
 
begin
  for m := 1 to 12 do c[m] := t[m]; //или просто c := t;
  readln(d, m, y);
  if (y mod 4 = 0) and (y mod 100 <> 0) or (y mod 400 = 0) then c[2] := 29;
  inc(d, 2);
  if d > c[m] then
    begin
      dec(d, c[m]);
      inc(m)
    end;
  if m > 12 then
    begin
      m := 1;
      inc(y)
    end;
  write(d, ' ', m, ' ', y)
end.
Добавлено через 9 минут
Или так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var
  d, m, y: integer;
  c: array[1..12] of integer;
 
begin
  c[1] := 30;
  c[2] := 28;
  for m := 3 to 7 do
    begin
      c[m] := 30 + m mod 2;
      c[m + 5] := c[m]
    end;
  readln(d, m, y);
  if (y mod 4 = 0) and (y mod 100 <> 0) or (y mod 400 = 0) then c[2] := 29;
  inc(d, 2);
  if d > c[m] then
    begin
      dec(d, c[m]);
      inc(m)
    end;
  if m > 12 then
    begin
      m := 1;
      inc(y)
    end;
  write(d, ' ', m, ' ', y)
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
02.03.2019, 13:26
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
типизированные константы позволительно менять в любых диалектах
У меня не запустился твой код ни в простом АВС, ни в АВС.net. Во Фрее запустился, Турбо у меня нет.
0
Модератор
10430 / 5718 / 3404
Регистрация: 17.08.2012
Сообщений: 17,389
02.03.2019, 14:10
Или можно количество дней в месяце "запросто" вычислить:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
  d, m, y: integer;
  c: array[1..12] of integer;
 
begin
  for m := 1 to 12 do c[m] := 28 + (m + m div 8) mod 2 + 2 mod m + 1 div m * 2;
  readln(d, m, y);
  if (y mod 4 = 0) and (y mod 100 <> 0) or (y mod 400 = 0) then c[2] := 29;
  inc(d, 2);
  if d > c[m] then
    begin
      dec(d, c[m]);
      inc(m)
    end;
  if m > 12 then
    begin
      m := 1;
      inc(y)
    end;
  write(d, ' ', m, ' ', y)
end.
Добавлено через 2 минуты
В Турбо и в Делфи типизированные константы менять можно.

Не по теме:

ABC и ABC.NET всё как-то руки не доходят поставить...



Добавлено через 19 минут
Ещё вот так можно количество дней в месяце вычислить:
Pascal
6
  for m := 1 to 12 do c[m] := 28 + (62648012 shr (m shl 1)) and 3;
Добавлено через 11 минут
Для Pascal ABC.NET можно так:
Pascal
6
  for var i := 1 to 12 do c[i] := i = 2 ? 28 : 30 + (i + (i shr 3)) and 1;
Добавлено через 10 минут
Ещё вариант, для любого паскаля:
Pascal
6
  for m := 1 to 12 do c[m] := 30 + (m + (m div 8)) mod 2 - 2 div m mod 2 * 2;

Не по теме:

Что-то я разошёлся...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2019, 14:10
Помогаю со студенческими работами здесь

Нужно рассчитать день, который будет "послезавтра", по заданной дате
Нужно рассчитать день который будет послезавтра из заданной даты. Без использования &quot;всяческих кодов&quot;

Определить какое число будет в позиции №10168
Всем привет, пожалуйста,помогите решить задачу Из последовательности натуральных десятичных чисел вычеркиваются все числа, содержащие 0 в...

Определить, какое число будет через 52 недели
Напишите программу ,которая ничего у вас не спрашивая ,печатает, какое число будет через 52 недели ? и еще одна !!!! Напишите...

Определить какое число будет стоять на 135424 месте
В ряд в порядке возрастания выписали все семизначные числа.Потом те из них,в записи которых встречаются цифры 0,7,8 или 9 вычеркнули. Какое...

Определить, какое число будет напечатано в результате работы следующей программы
Помогите с заданием по ОГЭ Садовник, работая в оранжерее ботанического сада, записывал в таблицу Flow количество видов растений,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru