Тематический план

    • Всем добрый день!

      При написании вопросов, пожалуйста,  на забывайте о двух вещах:

      1. Вместе с вопросом публикуйте код программы,  который вызывает у вас проблемы.
      2. Напишите мне в ВК просьбу посмотреть ваш вопрос на форуме.

      С уважением, Николай Ольховский.

  • Системы счисления

    • Выполнить упражнения. Убедиться, что всё понятно.

  • Представление чисел в ЭВМ

    • Прочитать главу 3. "Типы данных".

      Вопросы:

      • Какие переменные нельзя использовать?
      • Сколько бит занимает каждый целочисленный тип данных?
      • Примерные диапазоны значений целочисленных типов данных в Си?
      • Что такое целочисленные литералы? Как их использовать?
      • Зачем нужен квалификатор const?
      • Сколько бит занимает каждый вещественный тип данных?
      • Какова приблизительная точность вещественных типов данных в Си?
      • В каком порядке выполняются арифметические операции в Си?
      • В каком случае операция деления возвращает дробное значение, а в каком - округляет его до целого?
      • При переходе от каких типов к каким мы рискуем потерять данные? Можем перевести unsigned short в int? А double - в int? А double - во float?
    • Проанализировать презентацию. Ответить себе на вопросы:

      1. Как закодировать число в дополнительном коде?
      2. Как избежать ошибок из-за переполнения?
      3. Что такое экспоненциальная форма записи числа?
      4. Как закодировать число с плавающей точкой?
      5. Какие избежать ошибок округления при использовании чисел с плавающей точкой?
  • Введение в программирование

    • Что сделать: прочитать главы 1 и 2 из учебника Полякова.

      Вопросы для самоконтроля:

      1. Как происходит компиляция программ?
      2. Что такое переменная?
      3. Как считываются переменные из консоли?
      4. Как выводится информация в консоль?
      5. Каким образом мы может отформатировать данные, выводимые в консоль?
  • Вычисление выражений

    • Прочитать главу 3. "Типы данных".

      Да, вы это уже делали. Однако не поленитесь сделать это ещё раз. Это очень хорошая глава! Ответы на записанные ниже вопросы должны отлетать у вас от зубов.

      Вопросы:

      • Какие переменные нельзя использовать?
      • Сколько бит занимает каждый целочисленный тип данных?
      • Примерные диапазоны значений целочисленных типов данных в Си?
      • Что такое целочисленные литералы? Как их использовать?
      • Зачем нужен квалификатор const?
      • Сколько бит занимает каждый вещественный тип данных?
      • Какова приблизительная точность вещественных типов данных в Си?
      • В каком порядке выполняются арифметические операции в Си?
      • В каком случае операция деления возвращает дробное значение, а в каком - округляет его до целого?
      • При переходе от каких типов к каким мы рискуем потерять данные? Можем перевести unsigned short в int? А double - в int? А double - во float?
  • Условия

    • Прочитать главу 6. "Операторы ветвления и логические выражения".

      Страницы 257 - 282.

      Вопросы для самоконтроля:

      1. Как вычисляется логическое выражение?
      2. Что такое &&, || и !=?
      3. В каких случаях можно не ставить фигурные скобки { }?
      4. Если в теле оператора switch не ставить break; что будет?

    • Что сделать: прочитать прочитать тему 3 "Выбор варианта".

      Вопросы для самоконтроля:

      1. Как вычисляется логическое выражение?
      2. Что такое &&, || и !=?
      3. В каких случаях можно не ставить фигурные скобки { }?
      4. Если в теле оператора switch не ставить break; что будет?
  • Циклы

    • Что сделать: прочитать прочитать темы 4 и 5 "Циклы" и "Методы отладки программ".

      Вопросы для самоконтроля:

      1. Что такое тело цикла?
      2. Зачем в объявлении цикла for в круглых скобка обязательно должны быть две ; (точки с запятой)?
      3. Что такое бесконечный цикл? Придумайте пример бесконечного цикла.
      4. Где бывает полезен бесконечный цикл? (необязательный вопрос для самостоятельного поиска)
    • Прочитать следующие части главы 5. "Циклы и выражения отношений":

      Страницы 206 - 212

      Страницы 216 - 219

      Страницы 221 - 228

      Страницы 232 - 239

  • Указатели и Массивы

    • Прочитать из главы 4. "Составные типы данных" следующие части.

      Страницы 131 - 136.

      Страницы 166 - 184.

      Вопросы для самоконтроля:

      1. Как создать массив?
      2. Как заполнить массив значениями?
      3. Что такое указатель?
      4. Если к указателю типа double применить операцию инкремента, что произойдет?
      5. Как создать динамический массив?
      6. Для чего нужна операция delete?

  • Функции

    • Прочитать введение в функции: стр. 70 - 80

      Вопросы для самоконтроля:

      1. Что такое функция?
      2. Что такое параметры функции? Что такое возвращаемое значение функции?
      3. Как происходит вызов функции?
      4. Что такое прототип функции? Что такое определение функции?
  • Строки

    • Что сделать: прочитать прочитать тему 2. "Символьные строки".

      Вопросы для самоконтроля:

      1. Что такое символьная строка в языке Си?
      2. Как создать переменную для работы со строкой?
      3. Как считать в переменную строку из консоли?
      4. Как вывести строку на экран?
      5. Что такое ASCII-таблица? Как вывести на экран код символа?
      6. Чем в Си одинарные кавычки ' ' отличаются от двойных " "?
      7. Как обработать строку посимвольно с помощью цикла?
      8. Какие есть функции в библиотеке ctype.h? Напишите код, в котором используется какая-нибудь из функций ctype.h
      9. Какие есть функции в библиотеке string.h? Как их использовать?
  • Двумерные массивы

    • Прочитать из главы 5. "Циклы и выражения отношений" следующие части.

      Страницы 250 - 253.

  • Работа с файлами

    • Хорошая статья с примерами.

  • Зачет

  • Сортировки

    • Вам необходимо выучить следующие алгоритмы сортировок:

      1. Пузырьковая сортировка
      2. Сортировка вставками
      3. Сортировка выборкой
      4. Быстрая сортировка

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

      Как понять, достаточно ли хорошо вы знаете алгоритм? Если вы можете написать его с нуля на С/С++, не подглядывая в шпаргалки, вы хорошо знаете алгоритм.

    • Здесь можно и нужно задавать вопросы по непонятным моментам. Отвечать может не только преподаватель, но и все участники курса. Помогаем друг другу. Чтобы быстрее получить ответ, пожалуйста, прикладывайте к вопросу код программы, по которому вопрос. В идеале - указывайте номер строки в коде, которая вам непонятна или работает с ошибкой.

    • Задание:

      1. Создать массив из N случайных чисел.
      2. Отсортировать его всеми указанными алгоритмами.

      В ответе на это задание вам нужно прислать файл .pdf, в котором:

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

      Результат отправить в виде текста программ через кнопку "Послать решение".

      Внимание! 
      На проверку принимаются только файлы PDF. Откройте любой текстовый редактор (например, Word), выберите шрифт Courier New
       , вставьте текст ваших программ и сохраните файл в формате PDF. Главное - чтобы сохранились переходы на новую строку и отступы, иначе ваши программы будет невозможно читать.

  • Список, стек, очередь

    • Что читать: Глава 4. Темы: "Списки" и "Стеки, очереди, деки". Страницы 2 - 17.

      Что делать:

      1. Своими руками реализовать стек на основе списка
      2. Своими руками реализовать очередь на основе списка

    • Здесь можно и нужно задавать вопросы по непонятным моментам. Отвечать может не только преподаватель, но и все участники курса. Помогаем друг другу. Чтобы быстрее получить ответ, пожалуйста, прикладывайте к вопросу код программы, по которому вопрос. В идеале - указывайте номер строки в коде, которая вам непонятна или работает с ошибкой.

    • Шаги:

      1. Зайти на ipc.susu.ru
      2. В меню слева выбрать "Рабочее место участника"
      3. Найти нужную тему и справа от нее нажать кнопку "Выбрать".
      4. Перейти во вкладку "Задачи" и решить их.
      5. В каждой задаче при помощи ссылки "Послать решение" отправить на проверку ваш код.

      Примечание: кроме самописных стека и очереди разрешается использовать стандартные классы stack, queue из библиотеки контейнеров C++. Если, конечно, вы сможете их самостоятельно освоить.

  • Класс string

    • Здесь можно и нужно задавать вопросы по непонятным моментам. Отвечать может не только преподаватель, но и все участники курса. Помогаем друг другу. Чтобы быстрее получить ответ, пожалуйста, прикладывайте к вопросу код программы, по которому вопрос. В идеале - указывайте номер строки в коде, которая вам непонятна или работает с ошибкой.

    • Самостоятельно решить не менее 2 задач из темы Строковой тип string

      Дополнительное задание для "продвинутых" - решить более половины!

  • Алгоритмы на деревьях

    • Что читать: Глава 4. Тема: "Деревья". Страницы 18 - 30.

      Вопросы (ответы искать как в учебнике, так и самостоятельно - в Интенете):

      • Что такое дерево?
      • Что такое узел дерева? Корень? Лист?
      • Что такое поддерево?
      • Что такое бинарное дерево?
    • Здесь можно и нужно задавать вопросы по непонятным моментам. Отвечать может не только преподаватель, но и все участники курса. Помогаем друг другу. Чтобы быстрее получить ответ, пожалуйста, прикладывайте к вопросу код программы, по которому вопрос. В идеале - указывайте номер строки в коде, которая вам непонятна или работает с ошибкой.

    • Что делать:

      1. Своими руками реализовать Дерево
      2. Своими руками реализовать функцию добавления элемента в двоичное дерево поиска
      3. Реализовать функцию поиска в дереве
      4. Реализовать функции правого и левого обхода дерева

      Внимание! 
      На проверку принимаются только файлы PDF. Откройте любой текстовый редактор (например, Word), выберите шрифт Courier New , вставьте текст ваших программ и сохраните файл в формате PDF. Главное - чтобы сохранились переходы на новую строку и отступы, иначе ваши программы будет невозможно читать.

  • Алгоритмы на графах

  • Экзамен