Гілка гілки дерево рішення ребус. Запитання для повторення
Назвемо такий метод – контрольований перебір.
program zadacha3_8c;
for k:=1 to 4 do
for t:=2 to 9 do
if k<>t then
for o:=0 to 9 do
if (k<>o) and (t<>o) then
kto:=k*100+t*10+o;
kot:=k*100+o*10+t;
tok:=t*100+o*10+k;
if kto+kot=tok then writeln(kto,"+",kot,"=",tok);
Такий алгоритм навіть за 8-10 вкладених циклів працює дуже швидко.
Запитання для повторення:
1. Чи може у вкладених циклах використовуватися та сама змінна, наприклад i?
2. Чи можна вкладати один в одного різні цикли: FOR у WHILE чи REPEAT у FOR?
Завдання для самостійної роботи:
1. Старовинне завдання.Скільки можна купити бугаїв, корів і телят, якщо бик коштує 10 рублів, корова – 5 рублів, теля – півтинник (0,5 рубля), за умови, що на 100 рублів треба купити 100 голів худоби.
2. Встановлено натуральне n. Для всіх чисел від 1 до n знайти:
a) кількість дільників; b) суму парних дільників.
3. Знайти всі рішення наступних числових ребусів:
a) БАБКА+ДІДКА+РІПКА=КАЗКА (4 рішення)
b) КОРОВА+ТРАВА+ДОЯРКА=МОЛОКО (2 рішення)
c) АЛОНКА+ІВАН+КОЗЛИК=КАЗКА (1 рішення)
d) Гілка+Гілка+СТВОЛ=ДЕРЕВО (3 рішення)
e) ВОРОТА+ТРАВА=ФУТБОЛ (3 рішення)
Вивчаємо "Цикли"
М4_Блок №3
Тема урока :
Вкладені цикли.
Мета заняття:
1. Закріпити знання щодо використання різних типів циклів;
2. Отримати навички розв'язання алгоритмів із вкладеними циклами.
ЗОШ №1 м. Ліда
Для вирішення завдання досить часто потрібно використовувати кілька вкладених один в одного циклічних конструкцій. Такі конструкції називають вкладеними циклами.
Розглянемо кілька прикладів:
Дано натуральне числоS. Потрібно написати програму для знаходження всіх прямокутників, площа яких дорівнюєSта сторони виражені натуральними числами.
program zadacha3_6;
var s, a, b: longint;
writeln("Введіть s"); readln(s);
for a:=1 to s do
for b:=1 to s do
if a*b=s then writeln ("сторони ",a," та ",b);
Це завдання можна було вирішити, використовуючи лише один цикл. Подумайте, як це зробити.
Дано натуральні числаn, m. Отримати всі натуральні числа, меншіnсума квадратів цифр яких дорівнюєm.
program zadacha3_7;
var n, m, i, a, sum, cif: longint;
writeln("введіть n та m");readln(n, m);
for i:=1 to n do
sum:=sum+sqr(cif);
if sum=m then write(i," ");
Знайти всі рішення заданого числового ребуса. Кожній літері відповідає певна цифра. Причому однаковим буквам відповідають однакові цифри, різним буквам – різні цифри.
Оскільки тут всього три літери, то для вирішення достатньо написати три вкладені цикли, і перебрати всі варіанти складання трицифрових чисел.
program zadacha3_8a;
var k, t, o, kto, kot, tok:longint;
for k:=0 to 9 do
for t:=0 to 9 do
for o:=0 to 9 do
kto:=k*100+t*10+o;
kot:=k*100+o*10+t;
tok:=t*100+o*10+k;
if (k<>t) and (k<>o) and (t<>o) and (kto+kot=tok) then
writeln(kto,"+",kot,"=",tok);
У цьому алгоритмі тіло циклу виконувалося 10∙10∙10=1000 раз. (будемо говорити складність алгоритму =1000)
Якщо для вирішення більш складних ребусів потрібно написати 8-10 вкладених циклів, то такий повний перебір буде працювати досить довго.
Можна спростити цей алгоритм, якщо побачити що 1≤k≤4, t≥2.
for k:=1 to 4 do
for t:=2 to 9 do
for o:=0 to 9 do
Тепер складність алгоритму 4∙8∙10=320. Просте косметичне виправлення дало збільшення швидкості у 3 рази.
Але й цей алгоритм не є оптимальним. Подивіться, при k=2 і t=2 програма перебере всі 10 варіантів o. У таких випадках коли k=tцикл по oвзагалі необхідно не виконувати.
Хто з нас не знайомий із ребусами? Ці цікаві шифрування знайомі всім від малого до великого. У ребусах слова зашифровані за допомогою послідовності картинок та різних символів, у тому числі букв та цифр. Слово "ребус" перекладається з латинської як "за допомогою речей". Зародився ребус у Франції в XV столітті, а перша друкована збірка ребусів, видана в цій країні в 1582, була складена Етьєном Табуро. За час, що минув з того часу, техніка складання ребусних завдань збагатилася безліччю різноманітних прийомів. Щоб розгадати ребус, важливо не лише знати, що намальовано, а й врахувати розташування малюнків та символів один щодо одного, і це досягається практикою. Є деякі негласні правила, за якими складають ребуси, і розгадувати їх легше теж за тими самими правилами, а такі правила:
Загальні правила розгадування ребусів
Слово чи речення у ребусі ділиться на частини, які зображують у вигляді малюнка чи символу. Читають ребус завжди ліворуч, рідше зверху вниз. Прогалини та розділові знаки не читають. Те, що в ребусі намальовано на картинках, читається в називному відмінку, зазвичай в однині, але бувають винятки. Якщо намальовано кілька предметів, стрілкою вказують, яку саме частину зображення використовують у цьому ребусі. Якщо загадується не одне слово, а пропозиція (прислів'я, крилатий вираз, загадка), то в ньому крім іменників є дієслова та інші частини мови. Зазвичай це обумовлюється у завданні (наприклад: "Відгадай загадку"). Ребус повинен мати рішення, причому одне. Неоднозначність відповіді має обумовлюватися за умов ребуса. Наприклад: "Знайди два рішення цієї ребуса". Кількість прийомів, що використовуються в одному ребусі, та їх поєднань не обмежується.
Як розгадувати ребуси з картинок
Називають послідовно всі предмети зліва направо в називному відмінку однині.
Відповідь: слід досвід = слідопит
Відповідь: віл вікно = волокно
Відповідь: око обличчя = околиця
Якщо предмет намальований у перевернутому вигляді, назву його треба читати праворуч наліво. Наприклад, намальовано «кіт», читати треба «струм», намальовано «ніс», читати треба «сон». Іноді напрямки читання показують стрілкою.
Відповідь: сон
Часто предмет, намальований у ребусі, можна назвати по-різному, наприклад «луг» і «поле», «нога» та «лапа», «дерево» та «дуб» або «береза», «нота» та «мі», у таких випадках потрібно підбирати підходяще слово, таке, щоб ребус мав рішення. Це одна з найголовніших труднощів у розгадуванні ребусів.
Відповідь: дуб рава = діброва
Як розгадувати ребуси із комами
Іноді назва зображеного предмета не може бути використана цілком і необхідно відкинути одну або кілька літер на початку або наприкінці слова. Тоді використовується кома. Якщо кома стоїть ліворуч від малюнка, від його назви відкидають першу букву, якщо справа – останню. Скільки ком коштує, стільки букв відкидають.
Відповідь: хо м'яч до = хом'як
Наприклад, намальовані 3 коми та «годівниця», треба прочитати тільки «мушка»; намальовано «вітрило» і 2 коми, треба прочитати тільки «пар».
Відповідь: у парасольку р = візерунок
Відповідь: чи са то пор гі = чоботи
Як розгадувати ребуси з літерами
Такі буквосполучення як перед, над, на, під, за, при, у, як правило, в ребусах малюнком не зображуються, але виявляються з відповідного положення букв і малюнків. Букви та буквосполучення з, до, з, від, по, і не показуються, а показуються відносини букв або предметів, або напрямок.
Якщо два предмети або дві літери, або літери та цифри намальовані одна в іншій, їх назви читаються з додаванням прийменника «в». Наприклад: "в-о-так", або "в-о-сім", або "не-в-а". Можливо різне прочитання, наприклад, замість "вісім" можна прочитати "сім-в-о", а замість "вода" - "так-в-о". Але таких слів немає, тому такі слова є рішенням ребуса.
Відповіді: в-о-так, о-сім, в-о-лк, в-о-ро-н, в-о-рот-а
Якщо один предмет або символ намальований під іншим, то розшифровуємо з додаванням "на", "над" або "під", потрібно вибрати привід за змістом. Приклад: "фо-на-рі", "під-у-шка", "над-е-жда".
Відповіді: фо-на-рі, під-у-шка, над-е-жда
Якщо за якоюсь літерою чи предметом знаходиться інша літера чи предмет, то читати потрібно з додаванням «за». Наприклад: "Ка-за-нь", "за-я-ц".
Відповідь: за-я-ц
Якщо одна літера лежить в іншої або притулена до неї, то читають з додаванням "у" або "к". Наприклад: "Л-у-к", "д-у-б", "о-к-о".
Відповіді: цибуля, дуб
Якщо літера чи склад складається з іншої літери чи стилю, то читають із додатком «із». Наприклад: "із-б-а", "б-із-він", "вн-із-у", "ф-із-ік".
Відповіді: хата, бізон
Якщо по всій літері написано іншу літеру або склад, читають з додатком «по». Наприклад: "по-р-т", "по-л-е", "по-я-с". Також "по" може використовуватися, коли одна буква з ніжками біжить по іншій букві, цифрі або предмету.
Відповідь: Польща
Відповіді: пояс, поле
Якщо намальовано предмет, а біля нього написано, а потім закреслено букву, то це означає, що букву цю треба викинути зі слова. Якщо ж над закресленою літерою стоїть інша, це означає, що треба нею замінити закреслену. Іноді у разі між літерами ставиться знак рівності.
Відповідь: лаз
Відповідь: ма лина з Монт = лимон
Як розгадувати ребуси з цифрами
Якщо над малюнком стоять цифри, це підказка, у порядку потрібно читати букви з назви предмета. Наприклад, 4, 2, 3, 1 означає, що спочатку читається четверта буква назви, потім – друга, за нею – третя та перша.
Відповідь: бриг
Цифри можуть бути перекреслені, отже потрібно відкинути літеру зі слова, що відповідає цьому порядку.
Відповідь: коник ак ЛУа бо мба = Колумб
Досить рідко в ребусах використовується дія літери - біжить, летить, лежить, у таких випадках до назви цієї літери треба додати відповідне дієслово в третій особі теперішнього часу, наприклад, «утікає».
Як розгадувати ребуси з нотами
Часто в ребусах окремі склади, що відповідають назвам нот - "до", "ре", "мі", "фа"... зображують відповідними нотами. Іноді використовується узагальнююче слово "нота".
Переклад: Ноти, що використовуються при складанні ребусів
Відповіді: квасоля, мінус
Ознайомившись з правилами як розгадувати ребуси, ви зможете без особливих зусиль не тільки розгадати будь-який ребус, але й дізнаєтеся як скласти ребус самому.
- Назва всього, що зображено на картинках у ребусі, читається лише в називному відмінку.
- Картинка в ребусі може мати не одну назву. Приклад: нога та лапа, око та око; або зображення може мати спільну або приватну назву (птах – загальна назва; півень, голуб, чайка – приватна назва).
- Коми (не має значення, перевернуті чи ні) вказують, що з слова слід прибрати крайні літери. Спочатку слова, якщо коми стоять перед картинкою, або з кінця слова, якщо коми після картинки. Кількість букв, які потрібно прибрати, відповідає кількості ком.ЛІС
- Закреслені літери – такі літери слід забрати зі слова. Якщо закреслені літери повторюються, вони забираються все. КАСА
- Закреслені цифри вказують, що в слові таку букву треба прибрати.
- Знак рівності між літерами (А=Е) вказує на те, що потрібно замінити всі літери А на Е. Рівність 1=Е вказує на заміну тільки першої літери в слові. СИЛА
- Стрілка між літерами (Е -> У) теж свідчить про відповідну заміну букв.
- Цифри 1,2,7,5 над картинкою вказують, що з слова потрібно взяти літери під номерами 1,2,7,5 і скласти в тому порядку, де розташовані цифри. ТАНК
- Перегорнутий нагору ногами малюнок вказує, що слово слід читати праворуч наліво. (КІТ - СТРУМ)
- Стрілка, вістрям вліво, зображена над картинкою вказує, що після того, як слово розшифроване, його потрібно прочитати задом наперед. КІТ
- Коли ребус використовується дріб, це розгадується як " НА " (розділити НА). Якщо ж у ребусі використовується дріб із знаменником 2, це розгадується як " ПОЛ " (половина). ПОЛИЦЯ Ліхтар
- Під час складання ребусів використовують ноти. Для визначення ноти має значення тільки те, на якій межі розташована чорна точка(Нота).
- Усередині букви "О" розташований склад "ТАК", виходить В-О-ТАК, тобто. "ВОДА". Також це можна прочитати як "ТАК-В-О". Вибирається варіант, відповідний за змістом. ВОЛЯ
- Коли картинки розташовані один над одним, це читається як "НАД", "НА", "ПІД" (залежно від того, що підходить за змістом). ПОДАРУНОК АНАНАС
- Літера, що складається з інших букв, читається як прийменник "З". Наприклад з літери "Б" складемо літеру "А", то отримаємо: з "Б" "А" (ІЗБА).ІЗБА
- Літера, розташована поверх іншої літери, читається як "ПЗ".ПОЛЕ
- Літера, зображена за іншою літерою, читається як прийменник "ЗА" або "ПЕРЕД". Вибирається варіант, відповідний за змістом. ЗАЄЦЬ
- Знак "+" означає прийменник "К" (Прим. 2+3 можна прочитати: До Двох додати Три або Три додати До Двох). Слід вибирати варіант, що підходить за змістом. ВІКНО кокон
- Подвійна стрілка між цифрами означає, що букви під цими номерами потрібно поміняти місцями одне з одним. Лапка
- Перекреслений знак "=" між картинками слід читати як "НЕ" (Приклад: "С" НЕ дорівнює "Г"). Сніг
Ну, що тепер ви готові вирішити будь-який ребус?
PS: Якщо ви знаєте ще якісь правила для розгадування ребусів або помітили якусь неточність в описі наявних правил, то напишіть, будь ласка, про це в коментарях нижче.
(jcomments on)