Перейти к содержимому

Макет аттестации 1

Написать шаги алгоритма для решения задачи, максимально разъясняя всю логику принимаемых решений.

Примеры задач:

  • Вычисление суммы элементов списка;
  • Нахождение максимума;
  • Поиск количества чисел, кратных 5;
  • Попарные действия с 2 списками;
  • Поиск позиции элемента по правилу;
  • Похожая простая задача.

Шаги решения:

  1. (2 балла) Выявляется интерфейс. В дальнейшем предполагается, что все входные данные уже доступны (их не надо запрашивать у пользователя).

  2. (30 баллов) Выполняется анализ задачи. Задача разбивается на подзадачи. Эти разбиваются еще на подзадачи или подъидеи, пока не достигаете примитивных операций (перечислены далее).

    Все подъидеи и подзадачи и их логическая связь максимально расписываются.
    Интуитивный прыжок через один уровень логики считается ошибкой - интуиция должна быть впоследствии обоснована логикой, чтобы это засчиталось.

  3. (10 баллов) Примитивные операции расставляются в правильном порядке, с возможным добавлением промежуточных примитивных операций, с целью получения финального алгоритма.

  4. (4 балла) Полученный алгоритм выполняется на нескольких заданных примерах. На выполнении каждого из шагов указывается текущее состояние выделенных ячеек памяти (можно не писать списки, записывайте их только когда что-то меняется).

  5. (2 балла) Алгоритм записывается как функция в C++, используя цикл while.

Примитивные операции:

  1. Создание ячейки памяти (переменной) с каким-либо именем.

  2. Считывание из ячейки памяти по имени.

  3. Считывание из списка по индексу. (Можно записать как A[i].)

  4. Считывание параметра (например, длины списка).

  5. Вписывание значения в ячейку памяти.

  6. Вычисление выражения для его последующего вписывания в ячейку памяти, либо использовании в условии. Например, в “в ячейку a записывается то что в a + 1”, или “в ячейку b записывается то что в a + то что в c”.

    Разрешается подобное записывать как a = a + 1 и b = a + c, или как a + 1 --> a и a + c --> b.

  7. Проверка условия, и выполнение действий только при соблюдении этого условия. Если действий несколько, создайте подсписок шагов для них.

    Например:

    5. Если а > b
    1. a = 5
    2. b = 6
    6. Следующий шаг.

    Разрешается использовать запись if (a > b).

  8. Конец алгоритма, вывод результата (можно записать как return result).

  9. Переход на определенный шаг алгоритма.

  10. Ошибка и преждевременное завершение алгоритма.

Операции можно комбинировать, например в “Если a > b, считать из a, и вписать в b” включено 3 примитивные операции, но такое допустимо (в пределах разумного).

  • Случайный вопрос на понимание из 1-й лабы, исключая продвинутые, по подтемам (переменные, указатели, арифметика указателей).

    Оценивание (18 баллов):

    • По 1 балл за каждый правильный ответ;
    • По 5 баллов за каждый за аргументацию.
  • Случайный вопрос на понимание из лабы по структурам, исключая продвинутые. (Не по функциям!!)

    Оценивание (6 баллов):

    • 1 балл за правильный ответ;
    • 5 баллов за аргументацию.