Тематический план
-
-
Всем добрый день!
При написании вопросов, пожалуйста, на забывайте о двух вещах:- Вместе с вопросом публикуйте код программы, который вызывает у вас проблемы.
- Напишите мне в ВК просьбу посмотреть ваш вопрос на форуме.
С уважением, Николай Ольховский.
-
-
-
Прочитать разделы 3.1 и 3.2
Что нужно освоить:
- Перевод чисел из произвольной системы счисления в десятичную (в том числе - дробных)
- Перевод чисел из десятичной системы счисления в произвольную
- Арифметические операции в произвольной системе счисления (в том числе - умножение)
- Быстрый способ перевода между двоичной, восмеричной и шестнадцатеричной системами счисления.
-
-
-
Прочитать главу 3. "Типы данных".
Вопросы:
- Какие переменные нельзя использовать?
- Сколько бит занимает каждый целочисленный тип данных?
- Примерные диапазоны значений целочисленных типов данных в Си?
- Что такое целочисленные литералы? Как их использовать?
- Зачем нужен квалификатор const?
- Сколько бит занимает каждый вещественный тип данных?
- Какова приблизительная точность вещественных типов данных в Си?
- В каком порядке выполняются арифметические операции в Си?
- В каком случае операция деления возвращает дробное значение, а в каком - округляет его до целого?
- При переходе от каких типов к каким мы рискуем потерять данные? Можем перевести unsigned short в int? А double - в int? А double - во float?
-
Проанализировать презентацию. Ответить себе на вопросы:
- Как закодировать число в дополнительном коде?
- Как избежать ошибок из-за переполнения?
- Что такое экспоненциальная форма записи числа?
- Как закодировать число с плавающей точкой?
- Какие избежать ошибок округления при использовании чисел с плавающей точкой?
-
-
-
Что сделать: прочитать главы 1 и 2 из учебника Полякова.
Вопросы для самоконтроля:
- Как происходит компиляция программ?
- Что такое переменная?
- Как считываются переменные из консоли?
- Как выводится информация в консоль?
- Каким образом мы может отформатировать данные, выводимые в консоль?
-
-
-
Прочитать главу 3. "Типы данных".
Да, вы это уже делали. Однако не поленитесь сделать это ещё раз. Это очень хорошая глава! Ответы на записанные ниже вопросы должны отлетать у вас от зубов.
Вопросы:
- Какие переменные нельзя использовать?
- Сколько бит занимает каждый целочисленный тип данных?
- Примерные диапазоны значений целочисленных типов данных в Си?
- Что такое целочисленные литералы? Как их использовать?
- Зачем нужен квалификатор const?
- Сколько бит занимает каждый вещественный тип данных?
- Какова приблизительная точность вещественных типов данных в Си?
- В каком порядке выполняются арифметические операции в Си?
- В каком случае операция деления возвращает дробное значение, а в каком - округляет его до целого?
- При переходе от каких типов к каким мы рискуем потерять данные? Можем перевести unsigned short в int? А double - в int? А double - во float?
-
Практическое задание
Что сделать: решить не менее 3 задач из каждого раздела.
-
-
-
Прочитать главу 6. "Операторы ветвления и логические выражения".
Страницы 257 - 282.
Вопросы для самоконтроля:
- Как вычисляется логическое выражение?
- Что такое &&, || и !=?
- В каких случаях можно не ставить фигурные скобки { }?
- Если в теле оператора switch не ставить break; что будет?
-
Что сделать: прочитать прочитать тему 3 "Выбор варианта".
Вопросы для самоконтроля:
- Как вычисляется логическое выражение?
- Что такое &&, || и !=?
- В каких случаях можно не ставить фигурные скобки { }?
- Если в теле оператора switch не ставить break; что будет?
-
Практическое задание
Что сделать: решить не менее 3 задач на acmp.ru из каждой темы:
-
-
-
Что сделать: прочитать прочитать темы 4 и 5 "Циклы" и "Методы отладки программ".
Вопросы для самоконтроля:
- Что такое тело цикла?
- Зачем в объявлении цикла for в круглых скобка обязательно должны быть две ; (точки с запятой)?
- Что такое бесконечный цикл? Придумайте пример бесконечного цикла.
- Где бывает полезен бесконечный цикл? (необязательный вопрос для самостоятельного поиска)
-
Прочитать следующие части главы 5. "Циклы и выражения отношений":
Страницы 206 - 212
Страницы 216 - 219
Страницы 221 - 228
Страницы 232 - 239
-
Практическое задание
Что сделать: решить не менее 5 задач на acmp.ru из каждой темы:
-
-
-
Прочитать из главы 4. "Составные типы данных" следующие части.
Страницы 131 - 136.
Страницы 166 - 184.
Вопросы для самоконтроля:
- Как создать массив?
- Как заполнить массив значениями?
- Что такое указатель?
- Если к указателю типа double применить операцию инкремента, что произойдет?
- Как создать динамический массив?
- Для чего нужна операция delete?
-
Практическое задание
Что сделать: решить не менее 50% задач на массивы на acmp.ru из следующих тем. Не менее 25% задач должны быть решены с использованием динамических массивов.
-
-
-
Прочитать введение в функции: стр. 70 - 80
Вопросы для самоконтроля:
- Что такое функция?
- Что такое параметры функции? Что такое возвращаемое значение функции?
- Как происходит вызов функции?
- Что такое прототип функции? Что такое определение функции?
-
Практическое задание
Что сделать: решить не менее 3 задач из каждого раздела:
-
-
-
Что сделать: прочитать прочитать тему 2. "Символьные строки".
Вопросы для самоконтроля:
- Что такое символьная строка в языке Си?
- Как создать переменную для работы со строкой?
- Как считать в переменную строку из консоли?
- Как вывести строку на экран?
- Что такое ASCII-таблица? Как вывести на экран код символа?
- Чем в Си одинарные кавычки ' ' отличаются от двойных " "?
- Как обработать строку посимвольно с помощью цикла?
- Какие есть функции в библиотеке ctype.h? Напишите код, в котором используется какая-нибудь из функций ctype.h
- Какие есть функции в библиотеке string.h? Как их использовать?
-
Практическое задание
Что сделать: решить не менее 50% задач на acmp.ru из следующих тем:
-
-
-
Что сделать: прочитать прочитать темы 3 и 4. "Матрицы" и "Массивы символьных строк".
Вопросы для самоконтроля:
- Что такое матрица?
- Как ее объявить?
- Как задать начальные значения элементов?
- Как считать данные в матрицу и вывести данные из матрицы на экран?
- Как создать массив символьных строк?
- Как считать в него данные из консоли?
-
Прочитать из главы 5. "Циклы и выражения отношений" следующие части.
Страницы 250 - 253.
-
Задания на простейшие действия с матрицами для самостоятельной тренировки:
- Создать небольшую матрицу (2х3 или 3х4 и т.п), считать в нее данные из консоли и вывести из нее данные в консоль.
- Заполнить всю матрицу числами 99.
- Заполнить матрицу случайными числами от 0 до 99 при помощи выражения (rand() % 100)
- Заполнить матрицу нулями, а главную диагональ - единицами
- Вывести 2 строку матрицы. Вывести 1 столбец матрицы.
- Вывести максимальные элементы для каждого столбца.
- Посчитать сумму элементов в каждой строке матрицы. Вывести в консоль наибольшую сумму.
Эти упражнения имеет смысл выполнить, если вы плохо понимаете тему. Если вы с первого взгляда примерно представляете код решения на Си, сразу переходите к задачам на acmp.ru.
-
Практическое задание
Что сделать: решить все задачи из раздела:
Решить любую задачу из раздела:
Решить любую задачу из раздела:
-
-
-
Что сделать: прочитать еще раз тему 2. "Символьные строки"
Вопросы для самоконтроля:
- Как открыть файл для чтения/записи?
- Как прочитать число из файла? Как прочитать строку?
- Как записать в файл число?
-
Выполнить 4 любых задания из File1 - File15.
Каждую задачу оформить в отдельный файл с кодом в pdf формате. Файлы выслать в ответе на это задание.
При работе с файлами в языке программирования использовать текстовый режим!
Код программы сохранить
-
Выполнить 4 любых задания из File1 - File15, которые вы ещё не решали, с использованием ДВОИЧНОГО режима чтения из файла/записи в файл.
Каждую задачу оформить в отдельный файл с кодом в pdf формате. Файлы выслать в ответе на это задание.
-
-
-
Зачет по технологии программирования выставляется после подсчета промежуточных баллов.
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% правильных ответов в тесте и решить задачу.
Автомат могут получить те, кто выполнит специальные задания, согласованные с преподавателем.
-
-
Вопросы по технологии программирования:
- Какие переменные нельзя использовать?
- Сколько бит занимает каждый целочисленный тип данных?
- Примерные диапазоны значений целочисленных типов данных в Си?
- Что такое целочисленные литералы? Как их использовать?
- Зачем нужен квалификатор const?
- Сколько бит занимает каждый вещественный тип данных?
- Какова приблизительная точность вещественных типов данных в Си?
- В каком порядке выполняются арифметические операции в Си?
- В каком случае операция деления возвращает дробное значение, а в каком - округляет его до целого?
- При переходе от каких типов к каким мы рискуем потерять данные? Можем перевести unsigned short в int? А double - в int? А double - во float?
- Как вычисляется логическое выражение?
- Что такое &&, || и !=?
- В каких случаях можно не ставить фигурные скобки { }?
- Если в теле оператора switch не ставить break; что будет?
- Что такое тело цикла?
- Зачем в объявлении цикла for в круглых скобка обязательно должны быть две ; (точки с запятой)?
- Что такое бесконечный цикл? Придумайте пример бесконечного цикла.
- Где бывает полезен бесконечный цикл? (необязательный вопрос для самостоятельного поиска)
- Как создать массив?
- Как заполнить массив значениями?
- Что такое указатель?
- Если к указателю типа double применить операцию инкремента, что произойдет?
- Как создать динамический массив?
- Для чего нужна операция delete?
- Что такое функция?
- Что такое параметры функции? Что такое возвращаемое значение функции?
- Как происходит вызов функции?
- Что такое прототип функции? Что такое определение функции?
- Что такое символьная строка в языке Си?
- Как создать переменную для работы со строкой?
- Как считать в переменную строку из консоли?
- Как вывести строку на экран?
- Что такое ASCII-таблица? Как вывести на экран код символа?
- Чем в Си одинарные кавычки ' ' отличаются от двойных " "?
- Как обработать строку посимвольно с помощью цикла?
- Какие есть функции в библиотеке ctype.h? Напишите код, в котором используется какая-нибудь из функций ctype.h
- Какие есть функции в библиотеке string.h? Как их использовать?
- Что такое матрица? Как ее объявить? Как задать начальные значения элементов?
- Как считать данные в матрицу и вывести данные из матрицы на экран?
- Как создать массив символьных строк? Как считать в него данные из консоли?
- Как открыть файл для чтения/записи?
- Как прочитать число из файла? Как прочитать строку?
- Как записать в файл число?
- Как открыть файл для чтения/записи в двоичном режиме? Как записать в файл число?
-
-
-
Вам необходимо выучить следующие алгоритмы сортировок:
- Пузырьковая сортировка
- Сортировка вставками
- Сортировка выборкой
- Быстрая сортировка
Для тех, кто хорошо понимает программирование - дополнительно изучить алгоритм поразрядной сортировки.
Как понять, достаточно ли хорошо вы знаете алгоритм? Если вы можете написать его с нуля на С/С++, не подглядывая в шпаргалки, вы хорошо знаете алгоритм.
-
Здесь можно и нужно задавать вопросы по непонятным моментам. Отвечать может не только преподаватель, но и все участники курса. Помогаем друг другу. Чтобы быстрее получить ответ, пожалуйста, прикладывайте к вопросу код программы, по которому вопрос. В идеале - указывайте номер строки в коде, которая вам непонятна или работает с ошибкой.
-
Задание:
- Создать массив из N случайных чисел.
- Отсортировать его всеми указанными алгоритмами.
В ответе на это задание вам нужно прислать файл .pdf, в котором:
- в функции main создается массив, заполняется случайными числами, выводится на экран результат
- помимо функции main реализуются 5 функций сортировок (по одной на каждый изученный алгоритм сортировки); каждая функция принимает массив и сортирует его.
Результат отправить в виде текста программ через кнопку "Послать решение".
Внимание!
На проверку принимаются только файлы PDF. Откройте любой текстовый редактор (например, Word), выберите шрифт Courier New , вставьте текст ваших программ и сохраните файл в формате PDF. Главное - чтобы сохранились переходы на новую строку и отступы, иначе ваши программы будет невозможно читать.
-
-
-
Что читать: Глава 4. Темы: "Списки" и "Стеки, очереди, деки". Страницы 2 - 17.
Что делать:
- Своими руками реализовать стек на основе списка
- Своими руками реализовать очередь на основе списка
-
Здесь можно и нужно задавать вопросы по непонятным моментам. Отвечать может не только преподаватель, но и все участники курса. Помогаем друг другу. Чтобы быстрее получить ответ, пожалуйста, прикладывайте к вопросу код программы, по которому вопрос. В идеале - указывайте номер строки в коде, которая вам непонятна или работает с ошибкой.
-
Шаги:
- Зайти на ipc.susu.ru
- В меню слева выбрать "Рабочее место участника"
- Найти нужную тему и справа от нее нажать кнопку "Выбрать".
- Перейти во вкладку "Задачи" и решить их.
- В каждой задаче при помощи ссылки "Послать решение" отправить на проверку ваш код.
Примечание: кроме самописных стека и очереди разрешается использовать стандартные классы stack, queue из библиотеки контейнеров C++. Если, конечно, вы сможете их самостоятельно освоить.
-
-
-
Вопросы для самоконтроля:
- Как создать переменную типа string, и присвоить ей строку?
- Как объединить две строки?
- Как определить размер строки?
- Как найти позицию, на которой стоит некоторый символ в строке?
-
Здесь можно и нужно задавать вопросы по непонятным моментам. Отвечать может не только преподаватель, но и все участники курса. Помогаем друг другу. Чтобы быстрее получить ответ, пожалуйста, прикладывайте к вопросу код программы, по которому вопрос. В идеале - указывайте номер строки в коде, которая вам непонятна или работает с ошибкой.
-
Самостоятельно решить не менее 2 задач из темы Строковой тип string
Дополнительное задание для "продвинутых" - решить более половины!
-
-
Что читать: Глава 4. Тема: "Деревья". Страницы 18 - 30.
Вопросы (ответы искать как в учебнике, так и самостоятельно - в Интенете):
- Что такое дерево?
- Что такое узел дерева? Корень? Лист?
- Что такое поддерево?
- Что такое бинарное дерево?
-
Здесь можно и нужно задавать вопросы по непонятным моментам. Отвечать может не только преподаватель, но и все участники курса. Помогаем друг другу. Чтобы быстрее получить ответ, пожалуйста, прикладывайте к вопросу код программы, по которому вопрос. В идеале - указывайте номер строки в коде, которая вам непонятна или работает с ошибкой.
-
Что делать:
- Своими руками реализовать Дерево
- Своими руками реализовать функцию добавления элемента в двоичное дерево поиска
- Реализовать функцию поиска в дереве
- Реализовать функции правого и левого обхода дерева
Внимание!
На проверку принимаются только файлы PDF. Откройте любой текстовый редактор (например, Word), выберите шрифт Courier New , вставьте текст ваших программ и сохраните файл в формате PDF. Главное - чтобы сохранились переходы на новую строку и отступы, иначе ваши программы будет невозможно читать.
-
-
-
Список алгоритмов, которые нужно реализовать:
- Нахождение циклов в графе
- Построение минимального остовного дерева (алгоритм Прима-Краскала)
- Нахождение минимального пути из заданной вершины в произвольную (алгоритм Дейкстры)
- Нахождение минимальных расстояний между всеми вершинами графа (алгоритм Флойда-Уоршелла)
-
Сайт, где фактически все задачи для вас уже решены. Нужно разобраться, как эти решения применить к вашим задачам.
-
- Базовые понятия - не менее 2 задач
- Представления графа - не менее 4 задач
- Алгоритм Флойда - не менее 3 задач
- Алгоритм Форда-Беллмана - не менее 3 задач
- Алгоритм Дейкстры - не менее 3 задач
- Минимальный каркас - не менее 2 задач
-
-
Оценка на экзаменах выставляется после подсчета промежуточных баллов.
50 баллов
Полностью выполненные задания из курса в Moodle
http://moodle.uio.csu.ru/course/view.php?id=1441
50 баллов
Две решенные задачи в аудитории во время зачета.
Задачи берутся из тех же сборников упражнений, что и
самостоятельная работа.Если какой-либо пункт выполнен частично, засчитывается пропорционально количество баллов.
"УДОВЛЕТВОРИТЕЛЬНО" - 50 баллов
"ХОРОШО" - 50 баллов + ответ на экзаменационный вопрос с дополнительными вопросами преподавателя.
"ОТЛИЧНО" - 50 баллов + качественный ответ на экзаменационный вопрос.Примечание: данная система относится и к экзамену по информатике, и к экзамену по технологиям программирования. То есть полностью и самостоятельно выполненная домашняя работы гарантирует вам "3" на обоих экзаменах.
-
Список вопросов по Технологии программирования
- Типы данных в Си. Приведение типов.
- Операторы Си. Порядок выполнения операций, приоритет. Области видимости переменных.
- Форматированный ввод-вывод при работе с консолью. Синтаксис строки форматирования функции printf. (Примечание: здесь могут быть вопросы из разряда “как вывести число со знаком +/- перед ним и 8 цифрами после запятой?”)
- Логические операции в Си. Оператор ветвления if-else. Оператор switch.
- Циклы в Си. Цикл For. Цикл While. Цикл Do-While.
- Адреса и указатели. Операции взятия адреса и разыменования.
- Понятие статической и динамической памяти. Функции динамического выделения памяти в Си.
- Массивы в Си. Объявление, инициализация, использование.
- Матрицы. Многомерные массивы в Си. Создание и использование.
- Строки в Си. Представление строк в памяти. Основные функции работы со строками.
- Функции. Передача параметров через стек. Передача параметров через указатели. Возвращаемые значения.
- Работа с файлами в СИ.
- Структуры в Си. Объявление, использование.
- Стек но основе списка. Пример реализации и использования.
- Очередь на основе списка. Пример реализации и использования.
- Обработка строк при помощи класса string. Основные функции и примеры их использования.
-
Список вопросов по Информатике
- Общая архитектура ЭВМ. Основные составные части.
- Шина. Определение. Примеры шин в компьютере.
- Архитектура Фон-Неймана. Принципы. Устройство процессора.
- Гарвардская архитектура. Достоинства и недостатки в сравнении с архитектурой Фон-Неймана.
- Конвейерная организация выполнения команд в ЭВМ. Основная идея. Конфликты.
- Классификация вычислительных систем систем по Флинну.
- Системы счисления. Определение. Перевод из произвольной системы счисления в десятичную и обратно.
- Системы счисления: двоичная, троичная, восьмеричная и шестнадцатеричная. Области применения. Техника “быстрого” перевода между двоичной, восьмеричной и шестнадцатеричной СС.
- Представление целых чисел в ЭВМ. Прямой код. Дополнительный код. Переполнение.
- Представление дробных чисел в ЭВМ. Смещенный порядок. Представление мантиссы и точность - одиночная (float) и удвоенная (double).
- Представление нечисловых данных в ЭВМ. Способы представления текста, графики, аудио- и видеосигнала. Форматы bmp, jpeg, mpeg, mkv, avi, mp3.
- Алгоритмы сортировки вставкой и выбором.
- Алгоритм сортировки обменом (“пузырьковая”).
- Алгоритм быстрой сортировки.
- Структуры данных: стек, очередь и дек.
- Структуры данных: дерево, бинарное дерево. Пример реализации бинарного дерева.
- Графы. Представления графов: матрица смежности, список смежности.
- Нахождение минимальных путей в графе. Алгоритмы Дейкстры, Флойда-Уоршелла.
- Нахождение минимального остовного дерева в графе. Алгоритм Прима-Краскала.
-