主题目录

  • 常规

    • 讨论区 icon

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

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

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

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

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

    • 网页地址 icon
    • 文件 icon

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

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

    • 网页地址 icon

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

      Вопросы:

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

      Проанализировать презентацию. Ответить себе на вопросы:

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

    • 网页地址 icon

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

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

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

    • 网页地址 icon

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

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

      Вопросы:

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

      Что сделать: решить не менее 3 задач из каждого раздела.

  • Условия

    • 网页地址 icon

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

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

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

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

    • 网页地址 icon

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

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

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

      Что сделать: решить не менее 3 задач на acmp.ru из каждой темы:

  • Циклы

    • 网页地址 icon

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

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

      1. Что такое тело цикла?
      2. Зачем в объявлении цикла for в круглых скобка обязательно должны быть две ; (точки с запятой)?
      3. Что такое бесконечный цикл? Придумайте пример бесконечного цикла.
      4. Где бывает полезен бесконечный цикл? (необязательный вопрос для самостоятельного поиска)
    • 网页地址 icon

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

      Страницы 206 - 212

      Страницы 216 - 219

      Страницы 221 - 228

      Страницы 232 - 239

    • Практическое задание

      Что сделать: решить не менее 5 задач на acmp.ru из каждой темы:

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

    • 网页地址 icon

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

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

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

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

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

    • Практическое задание

      Что сделать: решить не менее 50% задач на массивы на acmp.ru из следующих тем. Не менее 25% задач должны быть решены с использованием динамических массивов.

  • Функции

    • 网页地址 icon

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

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

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

      Что сделать: решить не менее 3 задач из каждого раздела:

  • Строки

    • 网页地址 icon

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

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

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

      Что сделать: решить не менее 50% задач на acmp.ru из следующих тем: 

  • Двумерные массивы

    • 网页地址 icon
    • 网页地址 icon

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

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

    • Практическое задание

      Что сделать: решить все задачи из раздела:

      Решить любую задачу из раздела:

      Решить любую задачу из раздела:

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

    • 网页地址 icon
    • 网页地址 icon

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

    • 作业 icon
    • 作业 icon
  • Зачет

    • Зачет по технологии программирования выставляется после подсчета промежуточных баллов.

      45 баллов

      Полностью выполненные задания из курса в Moodle

      http://moodle.uio.csu.ru/course/view.php?id=1441

      20 баллов

      Решенная задача в аудитории во время зачета.
      Задача выбирается преподавателем из любого пройденного
      раздела на ACMP. Из выбора исключаются 30% наиболее
      сложных задач(они располагаются в каждом разделе в конце,
      т.е. если в разделе дано 10 задач, 3 последних на зачет
      точно не попадут).

      5 баллов

      Один правильный ответ на дополнительные вопросы.
      Вопросы берутся из курса Moodle
      http://moodle.uio.csu.ru/course/view.php?id=1441

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

      Если какой-либо пункт выполнен частично, засчитывается пропорционально количество баллов. Например, вы выполнили половину задач на самостоятельную работу, решили в классе две задачи и ответили на один вопрос из трех. Ваш результат будет - 20 + 30 + 5 = 55 баллов, зачет.

    • Зачет по информатике состоит из теста и решения задачи:

      • Тест по темам “Системы счисления” и “Представление данных в ЭВМ” из 8 заданий.

      • Задача по выбору преподавателя из задач с acmp.ru, которые давались на самостоятельную работу (темы “Массивы” и “Двумерные массивы”).

      Для получения зачета необходимо получить не менее 50% правильных ответов в тесте и решить задачу.

      Автомат могут получить те, кто выполнит специальные задания, согласованные с преподавателем.

    • Вопросы по технологии программирования: 

      1. Какие переменные нельзя использовать?
      2. Сколько бит занимает каждый целочисленный тип данных?
      3. Примерные диапазоны значений целочисленных типов данных в Си?
      4. Что такое целочисленные литералы? Как их использовать?
      5. Зачем нужен квалификатор const?
      6. Сколько бит занимает каждый вещественный тип данных?
      7. Какова приблизительная точность вещественных типов данных в Си?
      8. В каком порядке выполняются арифметические операции в Си?
      9. В каком случае операция деления возвращает дробное значение, а в каком - округляет его до целого?
      10. При переходе от каких типов к каким мы рискуем потерять данные? Можем перевести unsigned short в int? А double - в int? А double - во float?
      11. Как вычисляется логическое выражение?
      12. Что такое &&, || и !=?
      13. В каких случаях можно не ставить фигурные скобки { }?
      14. Если в теле оператора switch не ставить break; что будет?
      15. Что такое тело цикла?
      16. Зачем в объявлении цикла for в круглых скобка обязательно должны быть две ; (точки с запятой)?
      17. Что такое бесконечный цикл? Придумайте пример бесконечного цикла.
      18. Где бывает полезен бесконечный цикл? (необязательный вопрос для самостоятельного поиска)
      19. Как создать массив?
      20. Как заполнить массив значениями?
      21. Что такое указатель?
      22. Если к указателю типа double применить операцию инкремента, что произойдет?
      23. Как создать динамический массив?
      24. Для чего нужна операция delete?
      25. Что такое функция?
      26. Что такое параметры функции? Что такое возвращаемое значение функции?
      27. Как происходит вызов функции?
      28. Что такое прототип функции? Что такое определение функции?
      29. Что такое символьная строка в языке Си?
      30. Как создать переменную для работы со строкой?
      31. Как считать в переменную строку из консоли?
      32. Как вывести строку на экран?
      33. Что такое ASCII-таблица? Как вывести на экран код символа?
      34. Чем в Си одинарные кавычки ' ' отличаются от двойных " "?
      35. Как обработать строку посимвольно с помощью цикла?
      36. Какие есть функции в библиотеке ctype.h? Напишите код, в котором используется какая-нибудь из функций ctype.h
      37. Какие есть функции в библиотеке string.h? Как их использовать?
      38. Что такое матрица? Как ее объявить? Как задать начальные значения элементов?
      39. Как считать данные в матрицу и вывести данные из матрицы на экран?
      40. Как создать массив символьных строк? Как считать в него данные из консоли?
      41. Как открыть файл для чтения/записи?
      42. Как прочитать число из файла? Как прочитать строку?
      43. Как записать в файл число?
      44. Как открыть файл для чтения/записи в двоичном режиме? Как записать в файл число?
  • Сортировки

    • 文件 icon

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

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

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

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

    • 讨论区 icon

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

    • 作业 icon

      Задание:

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

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

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

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

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

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

    • 文件 icon

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

      Что делать:

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

    • 讨论区 icon

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

    • 作业 icon

      Шаги:

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

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

  • Класс string

    • 网页地址 icon
    • Вопросы для самоконтроля:

      1. Как создать переменную типа string, и присвоить ей строку?
      2. Как объединить две строки?
      3. Как определить размер строки?
      4. Как найти позицию, на которой стоит некоторый символ в строке?
    • 讨论区 icon

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

    • 作业 icon

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

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

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

    • 文件 icon

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

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

      • Что такое дерево?
      • Что такое узел дерева? Корень? Лист?
      • Что такое поддерево?
      • Что такое бинарное дерево?
    • 讨论区 icon

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

    • 作业 icon

      Что делать:

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

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

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

  • Экзамен

    • Оценка на экзаменах выставляется после подсчета промежуточных баллов.

      50 баллов

      Полностью выполненные задания из курса в Moodle

      http://moodle.uio.csu.ru/course/view.php?id=1441

      50 баллов

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

      Если какой-либо пункт выполнен частично, засчитывается пропорционально количество баллов.

      "УДОВЛЕТВОРИТЕЛЬНО" - 50 баллов
      "ХОРОШО" - 50 баллов + ответ на экзаменационный вопрос с дополнительными вопросами преподавателя.
      "ОТЛИЧНО" - 50 баллов + качественный ответ на экзаменационный вопрос.

      Примечание: данная система относится и к экзамену по информатике, и к экзамену по технологиям программирования. То есть полностью и самостоятельно выполненная домашняя работы гарантирует вам "3" на обоих экзаменах.

    • Список вопросов по Технологии программирования

      1. Типы данных в Си. Приведение типов.
      2. Операторы Си. Порядок выполнения операций, приоритет. Области видимости переменных.
      3. Форматированный ввод-вывод при работе с консолью. Синтаксис строки форматирования функции printf. (Примечание: здесь могут быть вопросы из разряда “как вывести число со знаком +/- перед ним и 8 цифрами после запятой?”)
      4. Логические операции в Си. Оператор ветвления if-else. Оператор switch.
      5. Циклы в Си. Цикл For. Цикл While. Цикл Do-While.
      6. Адреса и указатели. Операции взятия адреса и разыменования.
      7. Понятие статической и динамической памяти. Функции динамического выделения памяти в Си.
      8. Массивы в Си. Объявление, инициализация, использование.
      9. Матрицы. Многомерные массивы в Си. Создание и использование.
      10. Строки в Си. Представление строк в памяти. Основные функции работы со строками.
      11. Функции. Передача параметров через стек. Передача параметров через указатели. Возвращаемые значения.
      12. Работа с файлами в СИ.
      13. Структуры в Си. Объявление, использование.
      14. Стек но основе списка. Пример реализации и использования.
      15. Очередь на основе списка. Пример реализации и использования.
      16. Обработка строк при помощи класса string. Основные функции и примеры их использования.
    • Список вопросов по Информатике

      1. Общая архитектура ЭВМ. Основные составные части.
      2. Шина. Определение. Примеры шин в компьютере.
      3. Архитектура Фон-Неймана. Принципы. Устройство процессора.
      4. Гарвардская архитектура. Достоинства и недостатки в сравнении с архитектурой Фон-Неймана.
      5. Конвейерная организация выполнения команд в ЭВМ. Основная идея. Конфликты.
      6. Классификация вычислительных систем систем по Флинну.
      7. Системы счисления. Определение. Перевод из произвольной системы счисления в десятичную и обратно.
      8. Системы счисления: двоичная, троичная, восьмеричная и шестнадцатеричная. Области применения. Техника “быстрого” перевода между двоичной, восьмеричной и шестнадцатеричной СС.
      9. Представление целых чисел в ЭВМ. Прямой код. Дополнительный код. Переполнение.
      10. Представление дробных чисел в ЭВМ. Смещенный порядок. Представление мантиссы и точность - одиночная (float) и удвоенная (double).
      11. Представление нечисловых данных в ЭВМ. Способы представления текста, графики, аудио- и видеосигнала. Форматы bmp, jpeg, mpeg, mkv, avi, mp3.
      12. Алгоритмы сортировки вставкой и выбором.
      13. Алгоритм сортировки обменом (“пузырьковая”).
      14. Алгоритм быстрой сортировки.
      15. Структуры данных: стек, очередь и дек.
      16. Структуры данных: дерево, бинарное дерево. Пример реализации бинарного дерева.
      17. Графы. Представления графов: матрица смежности, список смежности.
      18. Нахождение минимальных путей в графе. Алгоритмы Дейкстры, Флойда-Уоршелла.
      19. Нахождение минимального остовного дерева в графе. Алгоритм Прима-Краскала.