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

План лабораторных занятий на весенний семестр
Программирование (процедурное на Delphi и C)

Программрование только процедурное - без классов и ООП! ООП начинается в 3-4 семестре (в зависимости от специальности), там и продемонстрируете.

Первые несколько работ в весеннем семестре выполняются на языке Delphi в виде консольного приложения в среде Borland Developer Studio 2006, освоение запуска которой и написания простейшей программы происходили на первой лабораторной работе первого семестра. Файл с программным кодом, чтобы не тратить время на занятии, набирается дома, например, в стандартной программе Блокнот, спецификация также готовится дома в письменном виде, а отлаживается программа и защищается на лабораторном занятии.

Бесплатная официальная версия Delphi (Community Edition) доступна на сайте разработчика www.embarcadero.com

Для отладки написанной программы дома можно использовать свободно распространяемые среды разработки с языками, похожими на язык Delphi (например, PascalABC, Lazarus, Pascal XE и т.д.(ссылка)) или воспользовавшись DOSBox можно использовать предшественники всех этих языков (Turbo Pascal или Borland Pascal 7), написанные под операцинную систему DOS.

НО, пользуясь заменой Delphi дома для отладки программ, не забывайте, что есть отличия в языках и на экзамене надо рассказывать именно о языке Delphi!



Процедурное программирование на С/С++ изучаем на занятиях с 5 лабораторной работы в виде консольных приложений на C++ Builder в среде Borland Developer Studio 2006.

Бесплатная официальная версия C++ Builder (Community Edition) доступна на сайте разработчика www.embarcadero.com

Для отладки написанной программы дома можно использовать и Visual C++ из Visual Studio и свободно распространяемые среды разработки с языками, похожими на изучаемую версию компилятора языка Си (например, Dev-C++ Falcon C++ codeBlocks) или воспользовавшись DOSBox можно использовать предшественники всех этих языков (Turbo С или Borland С/С++), написанные под операцинную систему DOS.

НО, пользуясь другими компиляторами и средами дома для отладки программ, не забывайте, что есть отличия в версиях языка и именах модулей особенно, и на экзамене надо рассказывать именно об изучаемой и установленной в компьютерных классах версии Си (C++ Builder).



недели
Лабораторные работы Дополнительные материалы
1 Семинаров во втором семестре нет - только лекции, лабораторные занятия и домашние работы по написанию и отладке программ. Не пропускайте лекции, при необходимости приходите на консультацию.

Лабораторная работа 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 Лабораторная работа 2 (2-3 неделя). 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
4



Контрольное мероприятие КМ-1:
Простановка в БАРСе оценок за сданные ДО 4 недели ЛР1-2.
Сдавать ЛР надо ЗАРАНЕЕ, а НЕ НА 4 неделе!
На 4 неделе только последние правки ЛР1-2 и уже НОВАЯ ЛР к КМ-2!
Пересдать позже можно только 2 (неуд) по правилам БАРСа и только один раз!
За одну ЛР только неуд.: 2 = (5+0) div 2 = (4+0) div 2 .


Лабораторная работа 3 (4-5 неделя). Delphi. Динамические структуры: Списки односвязные и двусвязные

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

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



Контрольное мероприятие КМ-2:
Простановка в БАРСе оценок за сданную ДО 6 недели ЛР3.
Сдавать ЛР надо ЗАРАНЕЕ, а НЕ НА 6 неделе!
На 6 неделе только последние правки ЛР3 и уже НОВЫЕ ЛР к КМ-3!
Указатели и создание собственных динамических массивов в презентации с третьей лекции про указатели и списки в Delphi Part-2-Lection-3.pdf Документ PDF

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

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

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

Динамические структуры (Список, стек, очередь, дек), виртуальная память в учебнике Программирование для математиков Документ PDF, он последний в списке на сайте https://www.niisi.ru/
5
- В связи с тем, что могут пропасть из-за праздников две лекции или лабораторные, переношу Лаб.4 и лекции про рекурсию в конец семестра. Начнем Си пораньше. Можно будет выполнить на Си или Delphi.
6 Лабораторная работа 5 (6 неделя). Сумма бесконечного ряда и динамический массив на СИ

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

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

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

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

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


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


Контрольное мероприятие КМ-3:
Простановка в БАРСе оценок за сданные ДО 8 недели ЛР5-6.
Сдавать ЛР надо ЗАРАНЕЕ, а НЕ НА 8 неделе!
На 8 неделе только последние правки ЛР5-6 и уже НОВЫЕ ЛР к КМ-4!
Пересдать позже можно только 2 (неуд) по правилам БАРСа и только один раз!
За одну ЛР только неуд.: 2 = (5+0) div 2 = (4+0) div 2 .
Матрицы и текстовые файлы Part-2-Lection-8 PDF (перенесены описания функций для работы со строками из бывшей Лекции-13 07.05.2020)
Функции и модули, указатель на функцию в Part-2-Lection-9-2020 PDF (добавлен пример с функциями 19.03.2020)
8
9 Лабораторная работа 7 (9 неделя). Бинарный(Двоичный) файл на Си


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

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

31-33 варианты ищите здесь
Структуры, объединения и двоичные файлы Part-2-Lection-10 PDF
10 Лабораторные работы №8 (10 неделя) Приближенные вычисления и указатель на функцию

Найти корень уравнения на отрезке [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


Контрольное мероприятие КМ-4:
Простановка в БАРСе оценок за сданные ДО 10(11) недели ЛР7-8, возможна корректировка предыдущих 2(неуд).
Сдавать ЛР надо ЗАРАНЕЕ, а НЕ НА 10 неделе!
На 10-11 неделе только последние правки ЛР7-8 и уже НОВЫЕ ЛР к КМ-5!
Пересдать позже можно только 2 (неуд) по правилам БАРСа и только один раз!
За одну ЛР только неуд.: 2 = (5+0) div 2 = (4+0) div 2 .
Описание методов на лекции и в файле Part-2-Lection-Methods.pdf PDF

Информация из прошлого семестра:
Процедурный тип Part-1-15-ProcType.pdf PDF
Записи и Процедурный тип Part-1-16-Records.pdf PDF
11 Рекурсию в исскустве часто используют для того, чтобы поразить зрителя/слушателя. Рекомендую сделать поиск КАРТИНОК по теме рекурсия и эффект Дросте, рекурсия руки, чтобы ознакомиться с графическими примерами описания одних объектов через подобные им.
Есть так же примеры в фильмах, стихах и сказках - приходите на лекцию, расскажу вам русские народные рекурсивные сказки для развития вашего рекурсивного мышления прежде, чем перейти к определениям.
Вы должны научиться ВИДЕТЬ и УЗНАВАТЬ рекурсию.
Но в отличие от художественных приемов, пытающихся поразить БЕСконечностью, рекурсивный алгоритм должен быть КОНЕЧЕН и за КОНЕЧНОЕ количество шагов приводить к решению задачи!

Лабораторная работа 4 (12 неделя). Рекурсия

Рекурсивная функция для вычисления суммы, произведения, количества, минимума, максимума, проверка условия в каждой из частей динамического одномерного массива
Задание в файле 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).
12

Лабораторная работа 9 (11 неделя). Текстовый файл, строки на СИ
(Для отличников и хорошо успевающих)

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

Задание и ДВА примера на СИ в файле Lab-9-Slova-2020-Ex.PDF Документ PDF (перенесен пример решения из бывшей Лекции-13 07.05.2020)
Загляните в Лекцию-1 (выделение слов) и Лекцию-8 (строки в Си) этого семестра
13 Лабораторная работа 10 (13-14 неделя). Си. Динамические абстрактные типы: Стек.

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

Контрольное мероприятие КМ-5:
Простановка в БАРСе оценок за сданные ДО 13(14) недели ЛР4,(9),10, возможна корректировка предыдущих 2(неуд).
Сдавать ЛР надо ЗАРАНЕЕ, а НЕ НА 13 неделе!
На 13-14 неделе только последние правки ЛР4,(9),10 и уже выполнение ТР к КМ-6!
Пересдать можно только 2 (неуд) по правилам БАРСа и только один раз!
За одну ЛР только неуд.: ЛР4 + ЛР10 + ЛР9 = 2 + 2 + 1. За отсутствие ЛР9 двойка не ставится.
Конспект лекций по презентации <Моделирование своего стека, очереди, дека> Part-2-Lection-14-2020 PDF (добавлены сюда же очереди и деки 07.05.2020)

Сравнение разных структур Part-2-Lection-Last-2020 PDF (добавлен 07.05.2020)
14
15-17 ТИПОВОЙ РАСЧЕТ. Моделирование типов. Задание в файле TR2-2021.doc Документ Doc

Пример для ТР (моделирования СТЕКА) в файле TR2-primer-koda-2018.doc Документ MS Word

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

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



Контрольное мероприятие КМ-6:
Простановка в БАРСе оценок за сданные ДО 16 недели ТР, возможна ПОСЛЕДНЯЯ корректировка предыдущих 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 и Си: типизированные и нетипизированные
- информационно-логические структуры: список, очередь, дек, стек, дерево.
- типы данных в Си и управляющие структуры языка, синтаксис

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

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

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


 Обновлено: 07.05.2020







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