Практика по алгоритмам 2

Вміння складати алгоритми - ключова база для того, щоб стати програмістом.

Отримане завдання, задачу потрібно проаналізувати, визначити вхідні дані та результат.

Далі потрібно задачу розкласти на крупні складові, щоб получилося не більше 5-7 дій.

Після цього - кожну отриману складову розбивають на більш дрібні складові.

Найпоширеніші помилки новачків:
- намагання вирішити складної задачі сходу;
- думки направлені на створення кода, а не алгоритма.

На сьогоднішньому занятті забудьте про всілякі змінні, var, for і тому подібне. Сьогодні будемо оперувати людською мовою і розв'язувати задачі на дошці.

Завдання.

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