План занятий на осенний семестр
Программирование
на языке высокого уровня и основы алгоритмизации
(СТРАНИЦА В РАЗРАБОТКЕ - Примеры программ меняются с Паскаля на Си...)
Курс Программирования расссчитан на ДВА семестра, с осени 2026 в качетве эксперемента изучается только один язык высокого уровня - С - на уровне процедурного программирования. Объектно-ориентированное программирование изучается позже и в другом курсе и семестре. Никаких cin, cout, string, iostream, ifstream, vector, ...
В рамках первого семестра изучается язык С и базовые алгоритмы для работы с массивами. Для работы с языком в семестре можно использовать разные среды программирования разных разработчиков и версий, например:
Visual C++ из Visual Studio (Community Edition) ;
C++ Builder в среде Borland Developer Studio (Community Edition) на сайте разработчика www.embarcadero.com;
или свободно распространяемые среды разработки с языками, похожими на изучаемую версию компилятора языка Си (например, Dev-C++codeBlocksFalcon C++), Редактор кода с терминалом VS Code.
Пользуясь разными компиляторами и средами дома для отладки программ, не забывайте, что есть небольшие отличия в версиях языка и в именах подключаемых модулей иногда, поэтому при первом запуске первой программы на Си могут возникнут небольшие проблемы - обращайтесь к преподавателю за консультацией (приносите ноутбук - запустим, часть проблем описана ЗДЕСЬ
Освоение и запуск среды программирования и виртуальной машины, написания и запуска простейшей программы происходит на первой лабораторной работе семестра - не пропустите! В дальнейшем, чтобы не тратить время на занятии, набирайте программный код дома, например, в стандартной программе для работы с неформатированным тесктом - Блокнот. Спецификация также должна готовиться дома в письменном виде, а отлаживается программа тоже дома или на занятии, а вот защищается уже на лабораторном занятии. Для выполнения домашних работ в учебном плане курса выделено почти по 8 часов в неделю, не ленитесь.
Нашли орфографическую ошибку или битую ссылку?
Напишите мне об этом, постараюсь оперативно исправить. Спасибо!
№ недели
Семинары
Лабораторные работы
Дополнительные материалы и лекции
-
Рекомендуемая литература из библиотеки МЭИ
Про Си ищите во втором семестре литературу и выше ссылки
1
Студентам: Желательно знакомится с материалами для занятия заранее. а на первом занятии даже желательно иметь при себе пример спецификации из файла Lab2-4-ExampleC.PDF лучше в распечатанном виде, чтобы просто добавлять себе пояснения на полях, а не пытаться распознать написанное на доске! Преподаватель не переписывать все на доску приходит, а объяснять. У каждого семинара и лабораторной работы есть список файлов.
Практическое занятие №1 (1-2 неделя)
Данные - входные(исходные) и выходные(результаты). Типы данных - целые и вещественные (размер, диапазон, операции). Структуры данных - простые переменные и одномерные статические массивы. Описание констант, простых переменных и статических одномерных массивов.
Спецификация на примере задачи из Лабораторной работы №2 (Файл НОВЫЙ Lab2-3ExampleC4.doc или ) Программы на C для этого примера лаб.2-3 Example2-3CCode.doc Домашнее задание: Подготовится к Лабораторной работе №2. Начать составлять спецификацию по разобранному примеру из выше указанного файла до функциональных тестов пока что (уточните условие, определите исходные и выходные данные, их имена, типы и диапазоны, проанализируйте необходимость альтернаивных ответом).
ВАРИАНТ задания выдаётся на первом Лабораторном занятии преподавателем. Спецификация пишется вручную или, если есть возможность, можете исправить электронную версию и распечатать. Не бойтесь написать первую версию не полностью и спросить/уточнить у преподавателя! - это часть процесса обучения в ПЕРВЫЙ МЕСЯЦ ПЕРВОГО СЕМЕСТРА, надо успеть исправить спецификацию.
Не затягивайте: есть сроки выполнения всех работ в семестре. За несвоевременное выполнение работ в семесте будет понижатся средний балл, что может привести к понижению на балл экзаменационной оценки. И наоборот - за своевременное выполнение оценка может быть повышена на балл - будет "право на ошибку" на экзамене!
О пунктах из спецификации есть информация в файле Sem-1.pdf), но лучше не пропускайте занятия, файлам вопрос не сможете задать и получить ответ.
Пример создания функциональных тестов есть в файле Tests.pdf
Лабораторная работа №1
Задание 1: Ознакомьтесь с правилами по Технике безопасности в компьютерных классах, запишите пароли. Преподаватель ознакомит вас со средой программирования, порядком запуска виртуальной машины, сетевыми дисками, со средой программирования, поможет создать и выполнить первую программу, расскажет о форматировании при выводе. Присвоит вам ВАРИАНТ для выполнения заданий в семестре.
Задание 2: Откройте среду программирования и создайте консольное приложение на C(на языке Си) для вычисления значения функции для введённого значения вещественного аргумента.
Задание по вариантам находится в файле Lab-1C.pdf НОВЫЙ
По результатам работы будет проставляется первая оценка по Программированию в БАРС по КМ-1 (Контрольное мероприятие-1). Крайний срок - 3-я неделя.
Лекция: Алгоритм. Свойства алгоритмов.
Использование блок-схем для описания алгоритма.
В лекции AlgorithmC.pdf НОВЫЙ
Задание 1: Выполнить ввод-вывод простых переменных и массивов для задачи из файла Lab2-3-ExampleC4 (ссылки слева), рассмотренному на Практике(Семинаре) #1.
Задание 2: Выполнить ввод-вывод для своего варианта (Файл с заданием Lab-2.pdf) и написать свой отчет (легче не заново, а исправив свою копию файла Lab2-4ExampleC4 и распечатать, а если нет такой возможности, то пишите вручную на тетрадных листах или листах формата A4).
По ввод и вывод простых переменных и массивов см. справа - в файле Algorithm-coding.pdf
Пример - см в спецификации из файла слева Lab2-4ExampleC4.
ВЫУЧИТЬ к концу семестра:Кодирование алгоритмов, описанных в виде блок-схем, на языке C Algorithm-codingC.pdf НОВЫЙ, а также ввод и вывод простых данных и массивов, в строчку и в столбик.
НЕ НАДО БОЯТЬСЯ ДЕЛАТЬ ОШИБКИ! ОНИ НЕИЗБЕЖНЫ! ЭТО ЧАСТЬ ОБУЧЕНИЯ!
Глаза боятся - руки делают! Начните с постановки задачи - перепишите ее, нарисуйте пустые таблицы данных, формы ввода и вывода, таблицы для тестов, "начало" и "ввод" в блок-схеме (первая блок-схема почти такая же во всех вариантах - отделите ввод и вывод от обработки, программа тоже будет похожа, особенно без решения (с заглушкой)). ЗАПОЛНИТЕ ЧТО И КАК СМОЖЕТЕ И ПРИНОСИТЕ! Это нормально!!! в начале обучения. Если бы Вы все знали, Вы бы не пришли учиться. Зато к экзамену постепенно научитесь, ЕСЛИ НАЧНЕТЕ. Чем раньше, тем лучше. ДОРОГУ ОСИЛИТ ИДУЩИЙ
ОШИБКИ - это не только часть обучения, но и часть процесса создания программных продуктов: ОБЯЗАТЕЛЬНОЙ частью создания программных продуктов является отладка и тестирование с целью их (ошибок) обнаружения. Ошибка есть в каждой программе! - и, если в это не верить, вы ее не найдете, потому что не будете даже искать. Специально ошибки делать не надо, они и так там будут. Если Вы не нашли ошибку, это НЕ значит, что ее там нет. А если нашли, то значит - там еще есть хотя бы одна. Если преподаватель тоже не нашел, значит, он устал и не заметил :)
Допуск к экзамену = отсутвие двоек(0,1,2) за все КМ в БАРС (может быть ОДНА пересдача каждой двойки в период ДО зачетной/экзаменационной сессии и затем после еще несколько попыток). Заработанный балл может повысить или понизить вашу оценку за ответ на экзамене! Удобно при высоком среднем балле получить на экзамене "право на ошибку": ответил с ошибкой, но из-за высокого среднего балла в БАРС итоговая оценка станет на балл выше! И обидно при низком среднем балле в БАРС вместо 4-5 получить 3-4. Двойка остается двойкой и не корректируется по среднему баллу. Сдавайте свои работы и вовремя: плохо выучив материал за первый семестр, со вторым семестром не справитесь!
3
Студентам: не забудьте ознакомится с файлами ДО занятия и подготовить вопросы, чтобы обсудить, что не понятно, с преподавателем на семинаре! Объяснение пройдет быстрее и эффективнее
Практическое занятие №2
1) Спецификация (Метод-Алгоритм-Код) на примере задач из лабораторных работ №2-5.
2) Поиск экстремума в одномерном массиве
3) Ввод и вывод с использованием нестандартных текстовых файлов.
4) Передача имен файлов через параметры программы (изучить самостоятельно)
5) Символьный тип (ознакомиться самостоятельно, будет на лекции, будет в работал.7 и 9, КР-2, на экзамене)
Домашнее задание: подготовится к выполнению лабораторных работ №3-5.
Информация к занятию и указания для составления отчета по Лаб.работе №5 в файле Sem-2.pdf)
БАРС - КМ-2 - надо сдать лаб.2-4 (лаб.4 = лаб.3 с файлами) и уже надо начать делать лаб.5 (со спецификацией и с файлами)!
Пересдать можно только ДВОЙКУ и только ОДИН раз до начала экзаменационной сессии (после - уже без пересчета итогового балла в БАРС до повторного экзамена)
Лабораторная работа №3-5
Выполнение и защита лабораторных работ №3-5
по вариантам
Лаб №3 = Лаб №2 + раскрытие абстракции А02. Задание в файле Lab-3C.pdf НОВЫЙ
Лаб №4 = Лаб №3 + использование нестандартных текстовых файлов. Задание в файле Lab-4.pdf
Текстовые файлы можно создавать/открывать/редактировать как в Блокноте, так и в самой среде программирования.
Лаб №5 Поиск экстремума Lab-5C.pdf - разрабатывается аналогично предыдущей задаче (Лаб №2-4), но как и почти все задачи далее за одну неделю, а не за три. Не копите задания, делайте их в срок!
Бесплатные индивидуальные КОНСУЛЬТАЦИИ лектора по вопросам составления функциональных тестов на примере ВАШЕЙ конктретной задачи и написания программ, спецификаций.
Для примера понадобятся файлы: спецификация (Файл Lab2-4ExampleC.pdf), и кодирование ввода-вывода Algorithm-codingC.pdf и базовых алгоритмов Base-algorithmesC.pdf и свой черновик спецификации (условие в пункт 1 переписали?).
Расписание очных консультаций c конца сентября в таблице по ссылке https://disk.yandex.ru/i/LqOH9Z8btp-pkw . Приносите программы или ноутбук, чтобы общение было предметным и конкретным, а не абстрактным.
ЧУЖИЕ программы обсуждать не готова, надо каждому делать СВОИ ошибки. Обсуждаем либо ВАШИ программы и разбираемся с ВАШИМИ ошибками, либо МОИ примеры с этого сайта.
Приходите! Не стыдно не знать, стыдно - не пытаться узнать. Составление тестов - не тривиальная задача и требует ТРЕНИРОВКИ на как можно большем числе задач, так же как и само программирование: чем БОЛЬШЕ вы программ напишите, тем БОЛЬШЕ вы ошибок сделаете, тем БОЛЬШЕ возможностей их найти и исправить получите - как и возможностей их запомнить и не повторять (часто совершаются одни и те же ошибки из программы в программу). Давайте начнем их делать и искать как можно раньше!
ВЫУЧИТЬ к концу семестра:Простейшие базовые алгоритмы: поиск суммы, произведения, количества, минимума, максимума. Base-algorithmesC.pdf НОВЫЙ
4
Лекция 2-4:
Языки высокого уровня, C: простые типы и в разработке про статические массивы TypesC1-3+.pdf ПОЧТИ ВЕСЬ НОВЫЙ
Практическое занятие №3
Поиск на множестве элемента, удовлетворяющего заданному условию, и его номера (Файл Sem-3-2020.pdf исправлена опечатка 13.11.2020)
Задача Cond2 "Поиск по двум условиям"
Домашнее задание: Подготовится к лабораторной работе №6
Лабораторная работа №6
достаточно сложная, если не успеваете, то можно делать дольше (к 11 неделе) или даже сразу в виде лаб.10. Пример рассматривается и обсуждается на Практике-3.
Лаб №6 Cond2 Поиск экстремума с двумя условиями. Нисходящая разработка
Файл Lab-6C.pdf
.
7
Практическое занятие №4
(Файл Sem-4.pdf)
1) Упорядочение одномерного массива методом простого выбора
2) Упорядочение одномерного массива методом пузырька (простым обменом)
3) Упорядочение одномерного массива методом простой вставки
4) Логические выражения
5) Контрольная работа на 1 ак.час
Домашнее задание: Подготовится к выполнению Лаб.работы №7
БАРС - КМ-4 - надо защитить лаб.5,7,8
БАРС - КМ-3 (контрольное мероприятие 3 на 7-8 неделе) - оценка за Первую контрольную работу
Лабораторная работа №7
Лаб №7 Сортировка выбором и пузырьковая. Файл Lab-7C.pdf
Описание сортировок в конспекте лекции: Файл Sort.doc
Описание сортировок в конспекте лекции: Файл Sort.doc
Господа студенты, полученные вами двойки по контрольным неделям расцениваются как нежелание учиться в нашем институте и в университете в целом. Избавить вас от бремени обучения смогу только на экзамене, если вы на него попадете. Так что у вас есть еще время передумать, победить свою лень и страхи ошибок, взрастить силу воли. Но, если вы сегодня же не возьметесь за учебу, вы просто физически не успеете сдать все задачи и получить допуск к экзамену. Помните, что преподаватель - один, а вас - откладывающих задачи до конца семестра - много... Кроме того, у вас есть и другие предметы... Напоминаю, что с сентября по декабрь ждала вас на бесплатную личную консультацию каждую неделю.
Читайте выложенные материалы, консультируйтесь со своим преподавателем на семинарах и лабораторных, со своими одногруппниками общайтесь (у нас групповые занятия). За вас никто не научится и не поймет - это придется вам сделать самим с первых работ (чем дальше, тем сложнее), а преподаватели могут только помочь и направить, предоставив возможность научиться, а затем и оценить результат ваших усилий.
9
Практическое занятие №5
Работа с матрицами: ввод/вывод, проверка условия для строк/столбцов и элементов (файл Sem-5.pdf )
Домашнее задание: Подготовится к лабораторным работам №8 и №9
Лабораторная работа №8
Обработка матрицы (двухмерного массива)
Файл Lab-8C.pdf (заменены почти все имена C на D 13.11.2020 для лучшей совместимости с именами лаб.11)
Ввод/вывод матрицы есть в файлах Algorithm-coding.pdf и Sem-5.pdf, алгоритмы суммирования разных элементов разных частей матриц в файле Base-algorithmes.pdf(ищите соответствующие ссылки в левом и в правом столбце)
Delphi: Текстовые файлы, обработка исключений Files-Exception.doc СТАРЫЙ
10
Если занятия 04 ноября пропадают, то программа курса от этого не сокращается! Готовьтесь к следующим лабораторным работам, и доделывайте предыдущие, иначе к Новому году обрастете хвостами, и будете не праздновать и отдыхать, а думать о возможном отчислении...
Пропавшие занятия от 01-сен и 04-ноя будут компенсированы в конце декабря
Лабораторная работа №9
Поиск подходящей по условию строки/столбца в матрице ДВЕ версии программы требуется: с двумя for и флагами, while/do while и флагами.
Файл Lab-9C.pdf (обновлен 17.10.2020)
Ввод/вывод матрицы есть в файлах Algorithm-codingC.pdf и Sem-5.pdf, алгоритмы проверки ВСЕ ЛИ и ХОТЯ БЫ 1 в файлах Base-algorithmesC.pdf и Sem-3.pdf(ищите соответствующие файлы в почте или на сайте)
Домашнее задание: Подготовится к лабораторным работам №10 и №11, начать выполнять ТР
Лабораторная работа №10
Решение задачи Cond2 (лаб.6) с процедурами
КАЖДУЮ подзадачу надо оформить в виде функции, а не ВСЕ подзадачи для решения в ОДНУ функцию.
Файл Lab-10.pdf
После этой недели ВСЕ (1-9) несданные еще задачи сдаются ТОЛЬКО С ФУНКЦИЯМИ(с папраметрами)!!!!! Сделайте хотя бы ОДНУ функцию в еще НЕсданных лаб.5,7,8,9
Процедуры в Delphi - теория - ProcTheory.pdf СТАРЫЙ
Функции и параметры - практика - пример из лекции Lection-Function-Parameters-2026C-1.pdf НОВЫЙ 19.10.26
Функции и результат и параметры - практика - пример из лекции Lection-Function-Parameters-2026C-2.pdf НОВЫЙ 26.10.26
12
Лабораторная работа №11
- укрупнение задачи из Лаб.работы №8 - восходящая разработка и тестирование.
Решение задачи "3 массива" в двух вариантах: 1) только с функциями без результата с параметрами и
2) с функцией с результатом и параметрами для решения лаб.8 (ВСЕЙ(не ввод-вывод, а решение)) как минимум, лучше - все с результатом
Файл Lab-11-2021.pdf
Тестирование призвано указывать на наличие, а не на отсутствие ошибок.
Дейкстра
15
Практическое занятие №7 или 8
Итоговая контрольная работа - тренируемся решать экзаменационную задачу на время Домашнее задание: Выполнение Типового расчета с размещением ВСЕХ функции (кроме main) в отдельном(ых) файле(ях), плюс заголовочный(ые) файл(ы) к нему(им).
БАРС - КМ-7 (контрольное мероприятие 7) - Оценка за Итоговую контрольную работу! на практическом занятии
БАРС - КМ-8 (контрольное мероприятие 8) - Оценка за Типовой расчет! Отчет (полная спецификация по основной и подзадачам) в бумажном виде - от руки или напечатанный.
Пересдать можно только ДВОЙКУ и только ОДИН раз до начала экзаменационной сессии (после - уже без пересчета итогового балла в БАРС)
Последние лекции:
Процедурный тип, области видимости и нисходящее тестирование ProcType-.pdf СТАРЫЙ
16
Господа студенты, преподаватель вовсе не обязан обеспечить всех положительными оценками и допуком. Он просто должен адекватно оценить полученные вами знания. К вашим услугам были материалы с этого сайта, библиотека, вы могли задавать вопросы лектору и другим своим преподавателям В ТЕЧЕНИЕ УЧЕБНОГО СЕМЕСТРА на занятиях и консультациях, а также одногруппникам. Кроме того, существует Интернет и форумы по языкам программирования, электронные книги (пара ссылок на учебники есть на этой странице).
Долги сдаются по расписанию преподавателя (будет на сайте МЭИ, в БАРС, и мое на этом сайте тоже и таблица для записи). Совпадения по времени с приемом долгов по другим предметам - ваша проблема. За один подход к преподавателю - не более двух-трех задач, чтобы имеющие меньшие долги получили допуск первыми.
17
Пропавшие занятия от 01-сен будут компенсированы _23_-дек
Пропавшие занятия от 04-ноя будут компенсированы _22_-дек
Учебные занятия до _23_ декабря, и средний балл в БАРС фиксируется и не пересчитывается больше,
с _24_-дек до __-дек - зачетная неделя,
Даты требуют уточнения...
в январе экзамены(па), в феврале и марте - переэкзаменовки (ппа1 и ппа2)
Допуск при отсутвии двоек(0,1,2) за КМ в БАРС (может быть ОДНА пересдача каждой двойки в период ДО экзаменационной сессии и потом только после). Заработанный балл может повысить или понизить вашу оценку за ответ на экзамене! Удобно при высоком среднем балле получить на экзамене право на ошибку: ответил с ошибкой, но из-за высокого среднего балла в БАРС оцентку получил на балл выше! И обидно при низком среднем балле в БАРС вместо 4-5 получить 3-4. Двойка остается двойкой и не корректируется по среднему баллу. Сдавайте свои работы и вовремя: плохо выучив материал за первый семестр, со вторым семестром не справитесь, не доучив как следует первый!