На главную страницу сайта

План лабораторных занятий на весенний семестр
Программирование
(процедурное на 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 Документ MS Word

ПОВТОРИТЕ: Осенний семестр

Символы и статические строки в конце второго семинара Sem-2.pdf Документ PDF из прошлого семестра

Сортировка обменом (пузырьком) в Sort.doc Документ MS Word и Sem-4.pdf Документ PDF из прошлого семестра

Множества Set.pdf Документ PDF из прошлого семестра

Презентация с первой лекции про строки в Delphi Part-2-Lection-1.pdf Документ PDF

Язык Object Pascal - Delphi

2
3-4 Лабораторная работа 2 (1-3 неделя КМ-15=КМ2-1=лаб.1+лаб.2). Delphi. Типизированный файл, записи, перечисляемый тип

Ввод и вывод значений перечисляемого типа, строк и записей. Редактирование типизированного файла


Это ПРОДОЛЖЕНИЕ предмета! Повторите из прошлого семестра: модули, процедуры, параметры программы, обработка ошибок при работе с файлами, записи, перечисляемый тип.

Задание и пример в файле Lab-2-TypedFile2016-35.doc Документ MS Word

Подсказка - не забудьте про тесты: где искомой записи нет; где вообще записей нет (файл пустой: из пустого текстового создается пустой типизированный); где есть искомая запись: в начале, в конце, несколько в середине, единственная(файл из одной записи); и т.д. Если вводится К, проверьте, что она от 1 до FileSize, и может быть перед, выше или ниже найденной, или даже совпадать. Помните, что ЧЕЛОВЕК СЧИТАЕТ С ЕДИНИЦЫ, даже если программист в файле(или массиве, строке, списке) отсчитывает записи с нуля!

Перечисляемый тип в файле Types1.doc Документ MS Word из прошлого семестра

Записи Part-1-16-Records.pdf PDF из прошлого семестра

Перевезенцева Е.С., Шамаева О.Ю.
ОБРАБОТКА ДАННЫХ СЛОЖНОЙ СТРУКТУРЫ В ЯЗЫКЕ - М.: Изд-во МЭИ,1999.
Файлы Документ MS Word

Презентация со второй лекции про файлы в Delphi Part-2-Lection-2.pdf Документ PDF

Использование стандартных диалоговых окон для выбора мени файла в конце файла RUS-2018.pdf PDF
5-6



Лабораторная работа 3 (4-6 неделя КМ-16=КМ2-2=лаб.3+защита). Delphi. Динамические структуры: Списки односвязные и двусвязные

Задание и пример в файле Lab-3-DynList2017.doc Документ MS Word

Подсказка - не забудьте про тесты: где искомого элемента в списке нет; где вообще элементов нет (список пустой); где есть искомый элемент: в начале, в конце, несколько в середине, единственный(список из одного элемента) и т.д. в зависимости от варианта. Не забудьте про вопросы перед примером файла с заданием. На экзамене вам может попасться как одно- так и дву- связный список.

Указатели и создание собственных динамических массивов в презентации с третьей лекции про указатели и списки в Delphi Part-2-Lection-3.pdf Документ PDF

Динамические массивы в Delphi Part-2-Lection-4-DynArray.pdf PDF).

Перевезенцева Е.С., Шамаева О.Ю.
ОБРАБОТКА ДАННЫХ СЛОЖНОЙ СТРУКТУРЫ В ЯЗЫКЕ - М.: Изд-во МЭИ,1999.
Работа с динамической памятью. Односвязный список Документ MS Word

Указатели в Delphi
Указатели в Паскале и динамические структуры, но размеры памяти и типов устаревшие
Указатели и ссылочные структуры
Абстрактные структуры данных
Динамические структуры данных

Динамические структуры (Список, стек, очередь, дек), виртуальная память в учебнике Программирование для математиков Документ PDF, он последний в списке на сайте https://www.niisi.ru/
7 Лабораторная работа 4(по старому 5) (5-6 неделя КМ-17=КМ2-3=лаб.4,5,7,8,(6)). Сумма бесконечного ряда и динамический массив на СИ

C++ Builder, консольное приложение

Задание и пример программы в файле Lab-5-Endless2016-35.doc Документ MS Word
Порядок создания консольного приложения и пример ввода одномерного массива ConsoleC.doc Документ MS Word
Добавила информацию про измения в программе на СИ для разных сред программирования СЮДА

Книги-учебники-справочники:
Полный справочник по С.
Язык программирования Си
Про язык С++. Начала. Учебник-Справочник
по-английски C++ Language
Документация по Visual Studio и Visual C++

Примеры программ и таблицы из лекций: Начало Part-2-Lection-7-2020 PDF (исправлены опечатки 13.03.2020)

Не пропускайте лекции, в этом семестре не предусмотрены семинары!
Приходите на консультации с вопросами! Самим (без преподавателя) учиться ложнее!
Не откладывайте учебу на лето!
Господа студенты, если вы сегодня же не возьметесь за учебу, вы просто физически не успеете сдать все задачи и получить допуск. Лень и неусидчивость с программированием плохо совместимы. Помните, что преподаватель - один, а вас - откладывающих задачи до конца семестра - много... Кроме того, у вас есть и другие предметы... А в переди - ЛЕТО! Или хотите не отдыхать, а учиться летом? Вас стало меньше в этом семестре и, к сожалению, может стать и еще меньше...
8 Лабораторная работа 5 (по старому 6) (7-8 неделя КМ-17=КМ2-3=лаб.4,5,7,8,(6)). C++ Builder, многомодульное консольное приложение с функциями


С выделением функций для решения задачи и ввода/вывода массивов,
процедуры/функции расположить в отдельном(ых) файле(ах);
Задание в файле Lab-6-Matr-2020.pdf Документ PDF (исправлены опечатки 19.03.2020)


Матрицы и текстовые файлы Part-2-Lection-8 PDF (перенесены описания функций для работы со строками из бывшей Лекции-13 07.05.2020)
Функции и модули, указатель на функцию в Part-2-Lection-9-2020 PDF (добавлен пример с функциями 19.03.2020)
9 Лабораторная работа 7 (8-9 неделя КМ-17=КМ2-3=лаб.4,5,7,8,(6)). Бинарный(Двоичный) файл на Си


Задание и три примера в файле Lab-7-BinFile-2017.doc Документ MS Word

Задачи с файлами записей(структурами) будут на экзамене!

31-33 варианты ищите здесь
Структуры, объединения и двоичные файлы Part-2-Lection-10 PDF
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 Документ MS Word


Описание методов на лекции и в файле Part-2-Lection-Methods.pdf PDF

Информация из прошлого семестра:
Процедурный тип Part-1-15-ProcType.pdf PDF
Записи и Процедурный тип Part-1-16-Records.pdf PDF
11

Дополнительная Лабораторная работа 6 (по старому 9) (11 неделя КМ-17=КМ2-3=лаб.4,5,7,8,(6)). Текстовый файл, строки на СИ
(Для отличников и хорошо успевающих, всем желающим "3")

Выделение слов и предложений на СИ
и создание файла с результатами

Задание и ДВА примера на СИ в файле Lab-9-Slova-2020-Ex.PDF Документ PDF (перенесен пример решения из бывшей Лекции-13 07.05.2020)
Загляните в Лекцию-1 (выделение слов) и Лекцию-8 (строки в Си) этого семестра
12 Рекурсию в исскустве часто используют для того, чтобы поразить зрителя/слушателя. Рекомендую сделать поиск КАРТИНОК по теме рекурсия и эффект Дросте, рекурсия руки, чтобы ознакомиться с графическими примерами описания одних объектов через подобные им.
Есть так же примеры в фильмах, стихах и сказках - приходите на лекцию, расскажу вам русские народные рекурсивные сказки для развития вашего рекурсивного мышления прежде, чем перейти к определениям.
Вы должны научиться ВИДЕТЬ и УЗНАВАТЬ рекурсию.
Но в отличие от художественных приемов, пытающихся поразить БЕСконечностью, рекурсивный алгоритм должен быть КОНЕЧЕН и за КОНЕЧНОЕ количество шагов приводить к решению задачи!

Лабораторная работа 9 (по старому 4) (12 неделя КМ-18=КМ2-4=лаб.9,10). Рекурсия

Рекурсивная функция для вычисления суммы, произведения, количества, минимума, максимума, проверка условия в каждой из частей динамического одномерного массива
Задание в файле Lab-4-Recurse2017-35.doc Документ MS Word

Лекции по теме:
Рекурсия: Part-2-Lection-5-2020.pdf PDF) и Part-2-Lection-6.pdf PDF).

ЛР по рекцрсии можно выполнять не только на Delphi, но и на Си, но по-прежнему с динамическим одномерным массивом. Пример работы с одномерным динамическим массивом на Си и Delphi есть в примере из лаб.5.
Про ряд Фибоначчи в журнале Энергетик МЭИ, стр.10-11

Заполнение СТЕКа вызовов при вызове процедур из Википедии

По теме рекурсии в программировании:

Понятие рекурсии

В Википедии

В ВикиУчебнике. Задачи с рекурсией. Решение проблем и олимпиадных задач

Кратко с примерами на Pascal и Си

Рекурсия подробно

Тезаурус по рекурсии (информатика)

Тезаурус по рекурсии (математика)

Пропущенные или перенесенные из-за праздников лекции:
Рекурсия: Part-2-Lection-5-2020.pdf PDF) и Part-2-Lection-6.pdf PDF).
13 Лабораторная работа 10 (13 неделя КМ-18=КМ2-4=лаб.9,10). Си. Динамические абстрактные типы: Стек.

Задание и примеры в файле LabC10-DynStack-2018-30.doc Документ MS Word
Обратите внимание на тестовые примеры под условиями

Конспект лекций по презентации <Моделирование своего стека, очереди, дека> Part-2-Lection-14-2020 PDF (добавлены сюда же очереди и деки 07.05.2020)

Сравнение разных структур Part-2-Lection-Last-2020 PDF (добавлен 07.05.2020)
14-16 ТИПОВОЙ РАСЧЕТ (14-16 неделя КМ-19=КМ2-5=ТР-2сем). Моделирование типов. Задание в файле TR2-2023.pdf Документ PDF (варианты для 2023 года - от25.04.2023)

Пример для ТР (моделирования СТЕКА) в файле TR2-primer-koda-2020.doc Документ MS Word
Комментарий к отчету по ТР - как описывать тип и базовые функции CommentsToTP2-2021.pdf PDF

Выполнение и Защита ТР

Допуск автоматически, если нет или исправлены ВСЕ 2(неуд) в БАРС, т.е.
при условии защиты ТР и лаб.работ (кроме 6):
по рекурсии (9), сортировке(1);
и на двух языках: типизир.(2) и бинарные(7) файлы, динамическим структуры (3,10);
и на Си: массивы (4 и 5) и указатель на функцию (8).



Контрольное мероприятие КМ-25:
Простановка в БАРСе оценок за сданные ДО 16 недели ТР, возможна ПОСЛЕДНЯЯ корректировка предыдущих 0-2(неуд).
После 16 недели для допуска оценки по КМ можно исправить, но не пересчитать средний балл
ЗА СЧЕТ НИЗКИХ И НЕСВОЕВРЕМЕННЫХ ОЦЕНОК ПО КМ БУДЕТ СНИЖЕНА ОЦЕНКА, ПОЛУЧЕННАЯ ЗА ОТВЕТ НА ЭКЗАМЕНЕ...
Оценка за 2 семестр идет в приложение к диплому бакалавра.
Пример ввода и вывода дерева с помощью рекурсивных процедур на Delphi и Си в файле Part-2-Lection-15-Trees PDF (добавлен пример на Си 07.05.2020)
И тот же Пример на C++ для ДЕРЕВА >>тут<<

Конспект лекций по презентации <Моделирование длинного целого> Part-2-Lection-16-Longer PDF



Господа студенты, за вас никто научиться не сможет. Самостоятельное выполнение ЛР готовит к выполнению задач на экзамене. Их надо не только принести или прислать, но и выполнить лично. Учиться не просто, но вы решились и поступили. Придерживайтесь своего решения. Высшее образование получают только те, кто сможет себя заставить каждые полгода сдавать сессию вовремя. К вашим услугам этот сайт, обширная библиотека МЭИ, февраль, март, апрель, май, июнь. В течение семестра вы можете задавать вопросы лектору и преподавателю, ведущему лабораторные занятия, а также одногруппникам. Кроме того, существует Интернет и форумы по Pascal/Delphi/C, на которых вам могут помочь решить задачи и ответить на вопросы.
Долги (пока не понятно как и можно ли) сдаются по расписанию преподавателя (будет висеть напротив двери М-704 и на сайте кафедры ПМ appmat.ru ). За один подход к преподавателю - не более одного-двух КМ, чтобы имеющие небольшие задолженности получили допуск раньше. Совпадения по времени с зачетами/допусками по другим предметам - ваша проблема. В дни экзаменов допуски не ставятся.
-- с 10 июня - экзамены (Вопросы к экзамену и примеры задач в файле examen2016.doc Документ MS Word)

Теоретические вопросы по темам:
- рекурсия: рекурсивные и взаимнорекурсивные функции
- строки на Delphi и Си
- записи/структуры на Delphi и Си
- файлы на Delphi и Си: текстовый, типизированный, бестиповой/двоичный
- указатели на Delphi и Си: типизированные и нетипизированные
- информационно-логические структуры: список, очередь, дек, стек, дерево.
- типы данных в Си и управляющие структуры языка, синтаксис

Задачи по темам:
- процедуры, функции, модули
- сортировка любым методом (списка, стека, файла)
- строки (как часть записи/структуры)
- записи/структуры
- файлы: текстовый, типизированный, бестиповой/двоичный
- информационно-логические структуры - список, стек - на основе своей ссылочной структуры "линейного списка"
- работа с массивами в языке Си

Строки -->
Логическая структура файлов -->
Про указатели и динамические структуры ссылки есть выше

 Гречкина Полина ВикторовнаНаписать сообщение и отправить прямо с сайта


 Обновлено: 01.02.2024







На главную страницу сайта