Практика по алгоритмам 2
Вміння складати алгоритми - ключова база для того, щоб стати програмістом.
Отримане завдання, задачу потрібно проаналізувати, визначити вхідні дані та результат.
Далі потрібно задачу розкласти на крупні складові, щоб получилося не більше 5-7 дій.
Після цього - кожну отриману складову розбивають на більш дрібні складові.
Найпоширеніші помилки новачків:
- намагання вирішити складної задачі сходу;
- думки направлені на створення кода, а не алгоритма.
На сьогоднішньому занятті забудьте про всілякі змінні, var, for і тому подібне. Сьогодні будемо оперувати людською мовою і розв'язувати задачі на дошці.
Завдання.
-
Дано деякий текст. Він починається з прізвища людини і містить в собі інформацію про вагу цієї людини (в кілограмах).
Яким чином можна дізнатися вагу людини? - Для платіжної системи потрібно написати програму, яка буде приймати від нових користувачів пароль. Програма повинна відстежувати, щоб пароль не був занадто простий (замовник несе значні фінансові втрати через недбалість користувачів і прості паролі).
- Відомий археолог знайшов у індійських джунглях старовинний храм, всі стіни якого розписані ієрогліфами невідомої мови. Археолог 15 років досліджував цей храм, розшифрував майже всі написи і вирішив створити словник-перекладач, і звернувся по допомогу до вас. Яким би чином ви сортували б давньоіндійські слова?
-
Як знайти факторіал числа n?
А прості числа з проміжку від x до y ? - Опишіть принцип роботи корзини в інтернет-магазині.
-
Як відбувається процес реєстрації нового користувача?
Як проходить логінація користувача?
Якщо користувач вводить невірний логін чи пароль - що відбувається?
А якщо користувач забув пароль? - На екрані намальовано кружечок. При натисканні стрілок на клавіатурі він повинен рухатися у відповідну сторону по екрану.
- А тепер зробіть, щоб цей кружечок можна було тягати мишкою по екрані.
- Створіть плагін "повзунок".
- Чи можна розставити на шаховій дошці 8 ферзей так, щоб вони не "били" одна одну?
- У замовника вистроюється віртуальна черга покупців. Але у замовника є друзі, знайомі, родичі, віп-клієнти. Яким чином можна оптимально керувати чергою?
-
Дано таблицю, потрібно зробити її "сортабельною" (добавити можливість сортувати по стовбчиках, можна подивитися на вікіпедії табличні дані чи відповідний плагін на JS).
Опишіть алгоритм створення подібної таблиці.