Кафедра інформатики

Харківський національний педагогічний університет імені Г.С. Сковороди

Кафедра інформатики

Харківський національний педагогічний університет імені Г.С. Сковороди

Задача тижня 2011

Задача тижня 02.01.12 – 08.01.12

Zadacha_tyzhnya_khopka_zadacha_tyzhnyaZadacha_tyzhnya_khopka_2_analiz_rezultativZadacha_tyzhnya_khopka_3_reytyngZadacha_tyzhnya_khopka_4_arhiv

 

Вік

 

Дід Мороз щороку отримує багато листів із замовленнями подарунків на новий рік. Цілком зрозуміло, що всі замовлення виконати неможливо. Щоб нікого не образити, Дід Мороз діє у такий спосіб: вибирає довільний день у році і виконує побажання всіх, кому на цей день виповнилося стільки ж років, як номер вибраного дня.

1. Створіть програму, яка за заданими датами дня народження користувача й обраного Дідом Морозом дня визначає, чи одержить користувач подарунок у цей день.

Вхідні дані (вводяться з клавіатури)

Значення D1, M1, Y1 (число, номер місяця та рік народження користувача), D2, M2, Y2 (число, номер місяця та рік обраного Дідом Морозом дня), – натуральні числа.

Вихідні дані (виводяться на екран)

Значення S – рядок, що приймає значення «подарунок» або «треба почекати».

2. Заповніть тестову таблицю за результатами роботи програми

 

D1M1 Y1 D2 M2 Y2S
1112010112011подарунок
21120011052011подарунок
31120101052011треба почекати
4512006572011
55122006572011
6672006572011
7472006572011
8572006572011
9572001572011
105122005572011

 

 

Аналіз розв’язку задачі «Вік»

 

Вік користувача визначається як різниця номерів відповідних років, але, якщо в цьому році користувач ще не відсвяткував день народження, потрібно зменшити знайдену різницю на 1. Зменшення на 1 відбувається, якщо місяць народження ще не наступив або якщо місяць співпадає з поточним, але день народження ще попереду.

V = Y2 – Y1;

якщо (M1 > M2) or (M1 = M2) and (D1 > D2)

то V = V – 1;

якщо V = D2

то S = ‘подарунок’

інакше S := ‘треба почекати’;

Нагадаємо, що при обчисленні значення складного логічного виразу

(M1 > M2) or (M1 = M2) and (D1 > D2)

спочатку виконується операція and, а потім – or.

Тестова таблиця з результатами роботи програми:

 

D1M1Y1D2M2Y2S
1112010112011подарунок
21120011052011подарунок
31120101052011треба почекати
4512006572011подарунок
55122006572011треба почекати
6672006572011треба почекати
7472006572011подарунок
8572006572011подарунок
9572001572011треба почекати
105122005572011подарунок

 

 

Журі оцінило надіслані розв’язки наступним чином:

 

Учасник Кількість балів
1ALEX Z5 (4+1 за перевірку коректності дати)
2Kolgatin Andrey4
3RomaN4
4Макс Синкевич2
5forsh3@mail.ru4
6Юрий Дончик3 (помилка в алгоритмі, але тести проходять)