План лабораторных занятий на весенний семестр
Программирование
(процедурное на Delphi|Lazarus|PascalABC и C|C++)
Программрование только процедурное - без классов и ООП! ООП начинается в 3-4 семестре (в зависимости от специальности), там и продемонстрируете.
Первые несколько работ в весеннем семестре выполняются на языке Delphi|Lazarus|PascalABC в виде консольного приложения, как проходили на первой лабораторной работе первого семестра и закрепляли весь первый семестр. Файл с программным кодом, чтобы не тратить время на занятии, набирать надо дома, например, в стандартной программе Блокнот, спецификация также готовится дома в письменном виде, а отлаживается программа и защищается на лабораторном занятии.
Бесплатная официальная версия Delphi (Community Edition) доступна на сайте разработчика www.embarcadero.com
А также для отладки написанной программы можно использовать свободно распространяемые среды разработки с языками, похожими на язык Delphi (например, PascalABC, Free Pascal Lazarus. Есть небольшие отличия в языках и на экзамене надо рассказывать именно о языке Delphi!
Процедурное программирование на С/С++ изучаем на занятиях с 5 лабораторной работы в виде консольных приложений на C++ Builder в среде Borland Developer Studio 2006.
Бесплатная официальная версия C++ Builder (Community Edition) доступна на сайте разработчика www.embarcadero.com
А также можно использовать и Visual C++ из Visual Studio (Community Edition) или свободно распространяемые среды разработки с языками, похожими на изучаемую версию компилятора языка Си (например, Dev-C++ codeBlocks Falcon C++).
НО, пользуясь другими компиляторами и средами дома для отладки программ, не забывайте, что есть небольшие отличия в версиях языка и в именах подключаемых модулей иногда, поэтому при первом запуске первой программы на Си могут возникнут небольшие проблемы - обращайтесь к преподавателю или ко мне на консультацию (до или после лекции или в другое время - см по ссылке в моих письмах) приносите ноутбук - запустим.
Для быстрой отладки первых приложений можно воспользоваться онлайн компиляторами Pascal и С, например:
Оценка в БАРС обобщенная теперь, всего 5 КМ, по одной оценке раз в месяц и ТР отдельно:
№ |
лаб.1 |
лаб.2 |
КМ2-1 |
лаб.3 |
КМ2-2 |
лаб.4 |
лаб.5 |
лаб.6 |
лаб.7 |
лаб.8 |
КМ2-3 |
лаб.9 |
лаб.10 |
КМ2-4 |
ТР-2 |
КМ2-5 |
нед
|
1-2
|
2-3
|
3(4)
|
4-5
|
5(6)
|
6-7
|
7-8
|
(11)
|
8-9
|
9-10
|
11(12)
|
11-12
|
12-13
|
13(14)
|
14-16
|
15
|
оценка
|
мин(лаб1, лаб2)
|
защита лаб.3
|
КМ2-3=мин(лаб4, лаб5, лаб7, лаб8)
за лаб.6 по желанию "3"
без лаб.6 КМ2-3 не более 4
за лаб.6 на "4/5" +1 к одной из 4-х оценок при подсчете мин,
например, к лаб.8
КМ2-3=мин(лаб4, лаб5, лаб7, лаб8 +1)
т.е. для оценок 5,4,4,3 мин(5,4,4,3)=3,
но с правкой +1, мин(5,4,4,3+1)=4
но для оценок 5,4,3,3 мин(5,4,3,3)=3,
и с правкой +1, мин(5,4,3,3+1)=3
а для оценок 5,4,5,5 мин(5,4,5,5)=4,
но с правкой +1, мин(5,4+1,5,5)=5.
Для всех 5,5,5,5 мин(5,5,5,5)=4 без лаб.6,
мин(5,5,5,5)=5, если лаб.6 защищина на "4/5".
С "0/1/2" +1 не суммируется!
|
мин(лаб9, лаб10)
|
ТР-2
|
|
В комплексных лабораторных лучше делать разные программы, но можете сделать и общее меню с выбором, например,для 4,5,6,7,8 лабораторных.
В процессе правки на новые КМ план на 2 семестр:
№ недели |
Лабораторные работы |
Дополнительные материалы |
1
|
Семинаров во втором семестре нет - только лекции, лабораторные занятия и домашние работы по написанию и отладке программ. Не пропускайте лекции, при необходимости приходите на консультацию.
Лабораторная работа 1 (1-3 неделя КМ-15=КМ2-1=лаб.1+лаб.2). Delphi. Строки и множества, сортировка пузырьком
Ввод и вывод строк. Сортировка пузырьком со сложным условием сравнения
Это ПРОДОЛЖЕНИЕ предмета! Повторите из прошлого семестра: модули, процедуры/функции, множества, обменная сортировка пузырьком, логические операторы.
Задание и пример в файле Lab-1-StrSet2017-35.doc
|
ПОВТОРИТЕ: Осенний семестр
Символы и статические строки в конце второго семинара Sem-2.pdf из прошлого семестра
Сортировка обменом (пузырьком) в Sort.doc и Sem-4.pdf из прошлого семестра
Множества Set.pdf из прошлого семестра
Презентация с первой лекции про строки в Delphi Part-2-Lection-1.pdf
Язык Object Pascal - Delphi
|
2
|
3-4
|
Лабораторная работа 2 (1-3 неделя КМ-15=КМ2-1=лаб.1+лаб.2). Delphi. Типизированный файл, записи, перечисляемый тип
Ввод и вывод значений перечисляемого типа, строк и записей. Редактирование типизированного файла
Это ПРОДОЛЖЕНИЕ предмета! Повторите из прошлого семестра: модули, процедуры, параметры программы, обработка ошибок при работе с файлами, записи, перечисляемый тип.
Задание и пример в файле Lab-2-TypedFile2016-35.doc
Подсказка - не забудьте про тесты: где искомой записи нет; где вообще записей нет (файл пустой: из пустого текстового создается пустой типизированный); где есть искомая запись: в начале, в конце, несколько в середине, единственная(файл из одной записи); и т.д. Если вводится К, проверьте, что она от 1 до FileSize, и может быть перед, выше или ниже найденной, или даже совпадать. Помните, что ЧЕЛОВЕК СЧИТАЕТ С ЕДИНИЦЫ, даже если программист в файле(или массиве, строке, списке) отсчитывает записи с нуля!
|
Перечисляемый тип в файле Types1.doc из прошлого семестра
Записи Part-1-16-Records.pdf из прошлого семестра
Перевезенцева Е.С., Шамаева О.Ю.
ОБРАБОТКА ДАННЫХ СЛОЖНОЙ СТРУКТУРЫ В ЯЗЫКЕ - М.: Изд-во МЭИ,1999.
Файлы 
Презентация со второй лекции про файлы в Delphi Part-2-Lection-2.pdf
Использование стандартных диалоговых окон для выбора мени файла в конце файла RUS-2018.pdf
|
5-6
|
Лабораторная работа 3 (4-6 неделя КМ-16=КМ2-2=лаб.3+защита). Delphi. Динамические структуры: Списки односвязные и двусвязные
Задание и пример в файле Lab-3-DynList2017.doc
Подсказка - не забудьте про тесты: где искомого элемента в списке нет; где вообще элементов нет (список пустой); где есть искомый элемент: в начале, в конце, несколько в середине, единственный(список из одного элемента) и т.д. в зависимости от варианта. Не забудьте про вопросы перед примером файла с заданием. На экзамене вам может попасться как одно- так и дву- связный список.
|
Указатели и создание собственных динамических массивов в презентации с третьей лекции про указатели и списки в Delphi Part-2-Lection-3.pdf
Динамические массивы в Delphi Part-2-Lection-4-DynArray.pdf ).
Перевезенцева Е.С., Шамаева О.Ю.
ОБРАБОТКА ДАННЫХ СЛОЖНОЙ СТРУКТУРЫ В ЯЗЫКЕ - М.: Изд-во МЭИ,1999.
Работа с динамической памятью. Односвязный список 
Указатели в Delphi
Указатели в Паскале и динамические структуры, но размеры памяти и типов устаревшие
Указатели и ссылочные структуры
Абстрактные структуры данных
Динамические структуры данных
Динамические структуры (Список, стек, очередь, дек), виртуальная память в учебнике Программирование для математиков , он последний в списке на сайте https://www.niisi.ru/
|
7
|
Лабораторная работа 4(по старому 5) (5-6 неделя КМ-17=КМ2-3=лаб.4,5,7,8,(6)). Сумма бесконечного ряда и динамический массив на СИ
C++ Builder, консольное приложение
Задание и пример программы в файле Lab-5-Endless2016-35.doc
Порядок создания консольного приложения и пример ввода одномерного массива ConsoleC.doc 
Добавила информацию про измения в программе на СИ для разных сред программирования СЮДА
|
Книги-учебники-справочники:
Полный справочник по С.
Язык программирования Си
Про язык С++. Начала. Учебник-Справочник
по-английски C++ Language
Документация по Visual Studio и Visual C++
Примеры программ и таблицы из лекций:
Начало Part-2-Lection-7-2020 (исправлены опечатки 13.03.2020)
Не пропускайте лекции, в этом семестре не предусмотрены семинары!
Приходите на консультации с вопросами! Самим (без преподавателя) учиться ложнее!
Не откладывайте учебу на лето!
|
|
Господа студенты, если вы сегодня же не возьметесь за учебу, вы просто физически не успеете сдать все задачи и получить допуск. Лень и неусидчивость с программированием плохо совместимы. Помните, что преподаватель - один, а вас - откладывающих задачи до конца семестра - много... Кроме того, у вас есть и другие предметы... А в переди - ЛЕТО! Или хотите не отдыхать, а учиться летом? Вас стало меньше в этом семестре и, к сожалению, может стать и еще меньше...
|
8
|
Лабораторная работа 5 (по старому 6) (7-8 неделя КМ-17=КМ2-3=лаб.4,5,7,8,(6)). C++ Builder, многомодульное консольное приложение с функциями
С выделением функций для решения задачи и ввода/вывода массивов,
процедуры/функции расположить в отдельном(ых) файле(ах);
Задание в файле Lab-6-Matr-2020.pdf (исправлены опечатки 19.03.2020)
|
Матрицы и текстовые файлы Part-2-Lection-8 (перенесены описания функций для работы со строками из бывшей Лекции-13 07.05.2020)
Функции и модули, указатель на функцию в Part-2-Lection-9-2020 (добавлен пример с функциями 19.03.2020)
|
9
|
Лабораторная работа 7 (8-9 неделя КМ-17=КМ2-3=лаб.4,5,7,8,(6)). Бинарный(Двоичный) файл на Си
Задание и три примера в файле Lab-7-BinFile-2017.doc 
Задачи с файлами записей(структурами) будут на экзамене!
31-33 варианты ищите здесь
|
Структуры, объединения и двоичные файлы Part-2-Lection-10
|
10
|
Лабораторная работа 8 (9-10 неделя КМ-17=КМ2-3=лаб.4,5,7,8,(6)) Приближенные вычисления и указатель на функцию
Найти корень уравнения на отрезке [A,B]c(0,2) для N (1..10) значений точности E двумя методами.
N значений точности: E = 1/10i, i=1..N
1) Решение методом деления отрезка пополам (бисекции)
2) Решение другим методом (по варианту)
3) Решение этими двумя методами должно выполняться для двух разных функций из Lab-8-Koren2017-35.doc: свой № и (№+3).
Имя нужной функции должно являться параметром каждой функции поиска корня
Пример описания и использования такого параметра (указатель на функцию - экзаменационный вопрос!) в файле Lab8.cpp
(вместо функции doit нужны функции поиска корня (два метода),
вместо функции my_f нужны функции вычисления двух (№ и (№+3))математических функций)
Задание в файле Lab-8-Koren2018-35.doc 
|
Описание методов на лекции и в файле Part-2-Lection-Methods.pdf 
Информация из прошлого семестра:
Процедурный тип Part-1-15-ProcType.pdf 
Записи и Процедурный тип Part-1-16-Records.pdf
|
11
|
Дополнительная Лабораторная работа 6 (по старому 9) (11 неделя КМ-17=КМ2-3=лаб.4,5,7,8,(6)). Текстовый файл, строки на СИ (Для отличников и хорошо успевающих, всем желающим "3")
Выделение слов и предложений на СИ
и создание файла с результатами
Задание и ДВА примера на СИ в файле Lab-9-Slova-2020-Ex.PDF (перенесен пример решения из бывшей Лекции-13 07.05.2020)
|
Загляните в Лекцию-1 (выделение слов) и Лекцию-8 (строки в Си) этого семестра
|
12
|
Рекурсию в исскустве часто используют для того, чтобы поразить зрителя/слушателя. Рекомендую сделать поиск КАРТИНОК по теме рекурсия и эффект Дросте, рекурсия руки, чтобы ознакомиться с графическими примерами описания одних объектов через подобные им.
Есть так же примеры в фильмах, стихах и сказках - приходите на лекцию, расскажу вам русские народные рекурсивные сказки для развития вашего рекурсивного мышления прежде, чем перейти к определениям.
Вы должны научиться ВИДЕТЬ и УЗНАВАТЬ рекурсию.
Но в отличие от художественных приемов, пытающихся поразить БЕСконечностью, рекурсивный алгоритм должен быть КОНЕЧЕН и за КОНЕЧНОЕ количество шагов приводить к решению задачи!
Лабораторная работа 9 (по старому 4) (12 неделя КМ-18=КМ2-4=лаб.9,10). Рекурсия
Рекурсивная функция для вычисления суммы, произведения, количества, минимума, максимума, проверка условия в каждой из частей динамического одномерного массива
Задание в файле Lab-4-Recurse2017-35.doc
Лекции по теме:
Рекурсия: Part-2-Lection-5-2020.pdf ) и Part-2-Lection-6.pdf ).
ЛР по рекцрсии можно выполнять не только на Delphi, но и на Си, но по-прежнему с динамическим одномерным массивом. Пример работы с одномерным динамическим массивом на Си и Delphi есть в примере из лаб.5.
|
Про ряд Фибоначчи в журнале Энергетик МЭИ, стр.10-11
Заполнение СТЕКа вызовов при вызове процедур
из Википедии
По теме рекурсии в программировании:
Понятие рекурсии
В Википедии
В ВикиУчебнике. Задачи с рекурсией. Решение проблем и олимпиадных задач
Кратко с примерами на Pascal и Си
Рекурсия подробно
Тезаурус по рекурсии (информатика)
Тезаурус по рекурсии (математика)
Пропущенные или перенесенные из-за праздников лекции:
Рекурсия: Part-2-Lection-5-2020.pdf ) и Part-2-Lection-6.pdf ).
|
13
|
Лабораторная работа 10 (13 неделя КМ-18=КМ2-4=лаб.9,10). Си. Динамические абстрактные типы: Стек.
Задание и примеры в файле LabC10-DynStack-2018-30.doc 
Обратите внимание на тестовые примеры под условиями
|
Конспект лекций по презентации <Моделирование своего стека, очереди, дека> Part-2-Lection-14-2020 (добавлены сюда же очереди и деки 07.05.2020)
Сравнение разных структур Part-2-Lection-Last-2020 (добавлен 07.05.2020)
|
14-16
|
ТИПОВОЙ РАСЧЕТ (14-16 неделя КМ-19=КМ2-5=ТР-2сем). Моделирование типов.
Задание в файле TR2-2023.pdf (варианты для 2023 года - от25.04.2023)
Пример для ТР (моделирования СТЕКА) в файле TR2-primer-koda-2020.doc 
Комментарий к отчету по ТР - как описывать тип и базовые функции CommentsToTP2-2021.pdf 
Выполнение и Защита ТР
Допуск автоматически, если нет или исправлены ВСЕ 2(неуд) в БАРС, т.е.
при условии защиты ТР и лаб.работ (кроме 6):
по рекурсии (9), сортировке(1);
и на двух языках: типизир.(2) и бинарные(7) файлы, динамическим структуры (3,10);
и на Си: массивы (4 и 5) и указатель на функцию (8).
Контрольное мероприятие КМ-25:
Простановка в БАРСе оценок за сданные ДО 16 недели ТР, возможна ПОСЛЕДНЯЯ корректировка предыдущих 0-2(неуд).
После 16 недели для допуска оценки по КМ можно исправить, но не пересчитать средний балл
ЗА СЧЕТ НИЗКИХ И НЕСВОЕВРЕМЕННЫХ ОЦЕНОК ПО КМ БУДЕТ СНИЖЕНА ОЦЕНКА, ПОЛУЧЕННАЯ ЗА ОТВЕТ НА ЭКЗАМЕНЕ...
Оценка за 2 семестр идет в приложение к диплому бакалавра.
|
Пример ввода и вывода дерева с помощью рекурсивных процедур на Delphi и Си в файле Part-2-Lection-15-Trees (добавлен пример на Си 07.05.2020)
И тот же Пример на C++ для ДЕРЕВА >>тут<<
Конспект лекций по презентации <Моделирование длинного целого> Part-2-Lection-16-Longer
|
|
Господа студенты, за вас никто научиться не сможет. Самостоятельное выполнение ЛР готовит к выполнению задач на экзамене. Их надо не только принести или прислать, но и выполнить лично. Учиться не просто, но вы решились и поступили. Придерживайтесь своего решения. Высшее образование получают только те, кто сможет себя заставить каждые полгода сдавать сессию вовремя. К вашим услугам этот сайт, обширная библиотека МЭИ, февраль, март, апрель, май, июнь. В течение семестра вы можете задавать вопросы лектору и преподавателю, ведущему лабораторные занятия, а также одногруппникам. Кроме того, существует Интернет и форумы по Pascal/Delphi/C, на которых вам могут помочь решить задачи и ответить на вопросы.
Долги (пока не понятно как и можно ли) сдаются по расписанию преподавателя (будет висеть напротив двери М-704 и на сайте кафедры ПМ appmat.ru ). За один подход к преподавателю - не более одного-двух КМ, чтобы имеющие небольшие задолженности получили допуск раньше. Совпадения по времени с зачетами/допусками по другим предметам - ваша проблема. В дни экзаменов допуски не ставятся.
|
--
|
с 10 июня - экзамены (Вопросы к экзамену и примеры задач в файле examen2016.doc )
Теоретические вопросы по темам:
- рекурсия: рекурсивные и взаимнорекурсивные функции
- строки на Delphi и Си
- записи/структуры на Delphi и Си
- файлы на Delphi и Си: текстовый, типизированный, бестиповой/двоичный
- указатели на Delphi и Си: типизированные и нетипизированные
- информационно-логические структуры: список, очередь, дек, стек, дерево.
- типы данных в Си и управляющие структуры языка, синтаксис
Задачи по темам:
- процедуры, функции, модули
- сортировка любым методом (списка, стека, файла)
- строки (как часть записи/структуры)
- записи/структуры
- файлы: текстовый, типизированный, бестиповой/двоичный
- информационно-логические структуры - список, стек - на основе своей ссылочной структуры "линейного списка"
- работа с массивами в языке Си
|
Строки -->
Логическая структура файлов -->
Про указатели и динамические структуры ссылки есть выше
|
|
Гречкина Полина Викторовна
Обновлено: 01.02.2024
|