Оглавление:
Задача — Принадлежит ли дата диапазону времени
— программирование на Pascal, Си, Кумир, Basic-256, Python
В программе заданы месяц и год двух дат. Пользователь вводит еще одну дату (только месяц и год). Определить, принадлежит ли третья дата диапазону от первой даты до второй включительно. Задачу решить с использованием структуры данных.
- Если значение поля года введенной даты больше значения поля года первой даты и меньше поля года второй, то дата принадлежит диапазону.
- Иначе если год введенной даты совпадает с годом первой даты, то надо сравнить месяцы. Если месяц введенной даты больше или равен первой, то она принадлежит диапазону, иначе — нет.
- Если же год введенной даты совпадает с годом второй даты, то также надо сравнить месяцы. Дата будет принадлежать диапазону, если месяц введенной даты меньше или равен месяцу второй даты.
- Во всех остальных случаях введенная дата не будет принадлежать диапазону.
Pascal
type date = record
year: word;
month: 1..12;
end;
var d1, d2, du: date;
begin
d1.year := 1965;
d1.month := 6;
d2.year := 2014;
d2.month := 7;
write(‘Год: ‘);
readln(du.year);
write(‘Месяц: ‘);
readln(du.month);
if (du.year > d1.year) and (du.year < d2.year) then
writeln(‘Да’)
else if du.year = d1.year then
if du.month >= d1.month then
writeln(‘Да’)
else
writeln(‘Нет’)
else if du.year = d2.year then
if du.month <= d2.month then
writeln(‘Да’)
else
writeln(‘Нет’)
else
writeln(‘Нет’);
end. Год: 2014
Месяц: 7
Да
Язык Си
#include <stdio.h>
struct data {
int year;
int month;
};
main() {
struct data d1, d2, du;
d1.year = 1995;
d1.month = 3;
d2.year = 2015;
d2.month = 11;
printf(«Год: «);
scanf(«%d», &du.year);
printf(«Месяц: «);
scanf(«%d», &du.month);
if (du.year > d1.year && du.year < d2.year)
printf(«Да»);
else if (du.year == d1.year)
if (du.month >= d1.month)
printf(«Да»);
else
printf(«Нет»);
else if (du.year == d2.year)
if (du.month <= d2.month)
printf(«Да»);
else
printf(«Нет»);
else
printf(«Нет»);
printf(«n»);
}
Python
d1 = {‘year’: 2003, ‘month’: 12}
d2 = {‘year’: 2014, ‘month’: 6}
du = {}
du[‘year’] = int(input(‘Год: ‘))
du[‘month’] = int(input(‘Месяц: ‘))
if d1[‘year’] < du[‘year’] < d2[‘year’]:
print(‘Да’)
elif du[‘year’] == d1[‘year’]:
if du[‘month’] >= d1[‘month’]:
print(‘Да’)
else:
print(‘Нет’)
elif du[‘year’] == d2[‘year’]:
if du[‘month’] <= d2[‘month’]:
print(‘Да’)
else:
print(‘Нет’)
else:
print(‘Нет’) Год: 2003
Месяц: 8
Нет