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

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

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

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

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

Задача тижня 19.11.12 – 25.11.12

Zadacha_tyzhnya_khopka_zadacha_tyzhnyaZadacha_tyzhnya_khopka_2_analiz_rezultativZadacha_tyzhnya_khopka_3_reytyngZadacha_tyzhnya_khopka_4_arhiv

 

Вантажні перевезення

 

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

Вхідні дані

Значення a, b, c (лінійні розміри вантажу), d, f (лінійні розміри кузова) – додатні числа, вводяться з клавіатури.

Вихідні дані

Значення S – рядок, що містить повідомлення «так» або «ні», виводиться на екран.

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

 

Номер

тесту

abcdfS
13.02.04.02.13.1так
23.03.03.03.12.1
31.92.91.41.74.0
41.42.91.91.74.0
55.01.41.41.53.0
61.45.05.02.02.0
71.53.53.54.01.7
81.53.51.54.01.7

 

 

 

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

 

Звернемо увагу на те, що порівняння площ основи кузова й найменшої основи вантажу (а саме таким порівнянням скористались деякі учасники нашого марафону) не веде до правильного розв’язку задачі. Наприклад, якщо a=100, b=100, c=0.01, d=10, f=10, вантаж не можна розмістити в кузові, хоча площа основи кузова перевищує площу найменшої основи вантажу.

Правильний розв’язок задачі потребує порівнянь габаритів кузова і вантажу.

Позначимо менший розмір основи кузова через Mk, більший через Bk; а найменшіі лінійні розміри вантажу через Mv і Bv, де Mv ≤ Bv. Зрозуміло, що вантаж не можна розмістити в кузові, якщо Mk < Mv або Bk < Bv. Отже, найбільш прозорим нам здається трьохетапний підхід до розв’язання задачі: знайти Mk і Bk; знайти Mv і Bv; за результатами порівняння знайдених значень зробити висновок.

Такий підхід можна реалізувати декількома способами. Наприклад:

1. Знайдемо Mk і Bk:

Mk = d; Bk = f;
якщо Mk > Bk

то початок Mk = f; Bk = d; кінець;

2. Знайдемо Mv і Bv:

Mv = a; якщо b < c то Bv = b інакше Bv = c;
якщо b < Mv
то початок Mv = b; якщо a < c то Bv = a інакше Bv = c; кінець;
якщо c < Mv

то початок Mv = с; якщо a < b то Bv = a інакше Bv = b; кінець;

3. Порівнюємо відповідні габарити вантажу й кузова:

якщо (Mk < Mv) or (Bk < Bv)
то
S = ‘ні’
інакше

S = ‘так’;

 

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

 

Номер

тесту

abcdfS
13.02.04.02.13.1так
23.03.03.03.12.1ні
31.92.91.41.74.0так
41.42.91.91.74.0так
55.01.41.41.53.0так
61.45.05.02.02.0ні
71.53.53.54.01.7так
81.53.51.54.01.7так

 

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

 

УчасникКількість балів
1Антон Мишенин3
2Ваня Попович4
3Артем Пайван4
4Sergey Shablenko3
5Ивахненко Олег
4
6Никита Ажажа *3
7Сергій Сальніков
4
8Юрий Дончик4
9Михаил Божко3
10RomaN *3

 

* До уваги учасників. Ви можете самостійно знайти помилку у надісланому Вами розв’язку, виконавши обчислення для a=100, b=40, c=5, d=50, f=10 (правильна відповідь – «так»).