kafinfo КАФЕДРА ІНФОРМАТИКИ

Baner_abiturient_5_prichin

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. Заповніть тестову таблицю за результатами роботи програми:

 

Номер

тесту

a b c d f S
1 3.0 2.0 4.0 2.1 3.1 так
2 3.0 3.0 3.0 3.1 2.1
3 1.9 2.9 1.4 1.7 4.0
4 1.4 2.9 1.9 1.7 4.0
5 5.0 1.4 1.4 1.5 3.0
6 1.4 5.0 5.0 2.0 2.0
7 1.5 3.5 3.5 4.0 1.7
8 1.5 3.5 1.5 4.0 1.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 = ‘так';

 

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

 

Номер

тесту

a b c d f S
1 3.0 2.0 4.0 2.1 3.1 так
2 3.0 3.0 3.0 3.1 2.1 ні
3 1.9 2.9 1.4 1.7 4.0 так
4 1.4 2.9 1.9 1.7 4.0 так
5 5.0 1.4 1.4 1.5 3.0 так
6 1.4 5.0 5.0 2.0 2.0 ні
7 1.5 3.5 3.5 4.0 1.7 так
8 1.5 3.5 1.5 4.0 1.7 так

 

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

 

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

 

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