extracted_text:
Департамент образования, науки и молодежной политики
Воронежской области
Государственное
бюджетное профессиональное
образовательное учреждение Воронежской области
«Лискинский промышленно-транспортный техникум имени А.К. Лысенко»
(ГБПОУ ВО «ЛПТТ
имени А.К. Лысенко»)

Комплект
контрольно-оценочных средств
по ПРОГРАММе профессионального модуля
ПМ.01. Разработка программных модулей программного
обеспечения для компьютерных систем
название профессионального модуля
по специальности СПО
09.02.03
«Программирование в компьютерных системах»

Лиски
2016

Комплект контрольно-оценочных
средств по программе профессионального модуля ПМ.01.
Разработка программных модулей программного обеспечения для компьютерных систем
разработан на основе Федерального государственного образовательного
стандарта (ФГОС) среднего профессионального образования (далее – СПО) по
специальности 09.02.03 «Программирование в компьютерных системах»

Организация-разработчик:
Государственное
бюджетное профессиональное образовательное учреждение Воронежской области «Лискинский
промышленно-транспортный техникум имени А.К. Лысенко» (ГБПОУ ВО «ЛПТТ имени
А.К. Лысенко»)

Разработчики:

Петрова Ольга Николаевна,
преподаватель
Ф.И.О., ученая степень,
звание, должность.

Плотникова Светлана Сергеевна,
преподаватель
Ф.И.О., ученая степень,
звание, должность.

Содержание

1. Общие положения……………………………………………………………………4
2. Формы
промежуточной аттестации по ПМ.01 ……………………………….…..5
3.
Результаты освоения  профессионального модуля, подлежащие проверке ……5
4. Типовые
задания для оценки освоения ПМ.01 ……..…………………………….9
5. Перечень рекомендуемых учебных
изданий, Интернет-ресурсов,
дополнительной
литературы………………………………………………..………..61

1. Общие положения
Результатом
освоения профессионального модуля является овладение
обучающимися видом профессиональной деятельности: разработкой
программных модулей программного обеспечения для компьютерных систем, в том числе профессиональными (ПК) и общими (ОК)
компетенциями:

Код

Наименование
  результата обучения

ПК 1.1

Выполнять
  разработку спецификаций отдельных компонент

ПК 1.2

Осуществлять разработку кода программного продукта на
  основе готовых спецификаций на уровне модуля

ПК
  1.3

Выполнять отладку
  программных модулей с использованием специализированных программных
  средств

ПК
  1.4

Выполнять тестирование
  программных модулей

ПК
  1.5

Осуществлять оптимизацию
  программного кода модуля

ПК 1.6

Разрабатывать компоненты проектной и технической
  документации с использованием графических языков спецификаций

ОК 1

Понимать
  сущность и социальную значимость своей будущей профессии, проявлять к ней
  устойчивый интерес.

ОК 2

Организовывать собственную деятельность, определять методы
  и способы выполнения профессиональных задач, оценивать их эффективность и
  качество.

ОК 3

Решать проблемы, оценивать риски и принимать решения в
  нестандартных ситуациях.

ОК 4

Осуществлять поиск, анализ и оценку информации,
  необходимой для постановки и решения профессиональных задач,
  профессионального и личностного развития.

ОК 5

Использовать
  информационно-коммуникационные технологии для совершенствования
  профессиональной деятельности.

ОК 6

Работать в коллективе и команде, обеспечивать ее сплочение,
  эффективно общаться с коллегами, руководством, потребителями.

ОК 7

Ставить цели, мотивировать деятельность подчиненных,
  организовывать и контролировать их работу с принятием на себя ответственности
  за результат выполнения заданий.

ОК 8

Самостоятельно определять задачи профессионального и
  личностного развития, заниматься самообразованием, осознанно планировать
  повышение квалификации.

ОК 9

Быть готовым к смене технологий в профессиональной
  деятельности

2. Формы промежуточной аттестации по
ПМ. 01

Таблица 1

Наименование
МДК

Форма контроля и оценивания

Промежуточная
  аттестация

МДК
  01.01. Системное программирование

4
  семестр/ 2 курс – контрольная
  работа
5
  семестр/3 курс - экзамен

МДК
  01.02. Прикладное программирование

5 семестр/3 курс дифференцированный
  зачет
6
  семестр/3 курс - экзамен

Производственная
  практика (по профилю специальности)

6семестр/
  3 курс – дифференцированный зачет

ПМ.1.ЭК

6семестр/
  3 курс – экзамен квалификационный

3. Результаты освоения профессионального модуля, подлежащие проверке

  Таблица 2

Требования
  к результатам
освоения

(должен
  иметь практический опыт, уметь, знать)

Функциональная
  принадлежность оценочного средства

Иметь
  практический опыт

-
  разработки алгоритма поставленной
  задачи и реализаций его средствами
  автоматизированного проектирования;

Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК Экзамен
  квалификационный по производственной практике (по профилю специальности).

-   разработки кода программного продукта на основе
  готовой спецификации на уровне модуля;

Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-
  использования инструментальных
  средств на этапе отладки программного продукта;

Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК Экзамен
  квалификационный по производственной практике (по профилю специальности).

-
  проведения тестирования
  программного модуля по определенному сценарию;

Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю специальности).

-   в умении
  работы с регистром;

Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК Экзамен
  квалификационный по производственной практике (по профилю специальности).

-   в умении
  учитывать систему прерываний при работе с вычислительной системой;

Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-   в
  осуществлении потокового ввода-вывода данных;

Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК Экзамен
  квалификационный по производственной практике (по профилю специальности).

-   в разработке
  программных модулей с использованием динамических структур данных;

Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК Экзамен
  квалификационный по производственной практике (по профилю специальности).

-   в создании
  файла, чтении из файла, умении производить изменения в файле.

Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК Экзамен
  квалификационный по производственной практике (по профилю специальности).

Уметь

-
  осуществлять разработку кода
  программного модуля на современных
  языках программирования;

Практические
  занятия по МДК 01.01:  «Подпрограмма – процедура», «Подпрограмма –
  функция», «Рекурсивная подпрограмма», «Разработка программы с использованием
  модуля», «Организация списка»,
  «Реализация процедур и функций работы со списком», «Решение задач с
  использованием стека», «Решение задач с использованием очереди», «Реализация
  процедур и функций работы с бинарным деревом», «Создание и заполнение
  внешнего фала. Изменение данных файла», «Разработка программного
  продукта с использованием модуля. Динамические структуры  данных. Файлы».
Практические
  занятия по МДК 01.02: «Средства и инструменты разработки
  программного обеспечения», «Организация разработки программного обеспечения
  группой программистов».
Лабораторные работы по МДК 01.01: «Разработка программного продукта с
  использованием подпрограммы-процедуры», «Разработка программного продукта с
  использованием подпрограммы – функции», «Разработка программного продукта с
  использованием рекурсивной подпрограммы», «Осуществление
  разработки кода программного модуля
  на современных языках программирования», «Подсчет количества динамической памяти до реализации программного
  продукта модульной структуры с использованием динамических структур, и после
  выполнения программы», «Работа с файлом, как с переменной».
Лабораторные
  работы по МДК 01.02: «Настройка приложения и установка
  среды программирования Delphi», «Запуск программы Delphi, обработка исключений».
Экзамен
  по МДК.01.01 Системное программирование.
Экзамен
  по МДК.01.02 Прикладное программирование.
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-
  создавать программу по
  разработанному алгоритму как отдельный модуль;

Практические
  занятия по МДК.01.01:  «Регистры»,
  «Система прерываний», «Виртуальная память», «Жизненный цикл ПО», «Потоковый
  ввод-вывод данных», «Управление символьным выводом на экран», «Вычисление
  логических операций», «Вычислительная система. Система программирования».
Практические занятия
  по МДК.01.02: «Создать модуль компонента и провести его тестирование», «Охарактеризовать технологию тестирования программных
  продуктов», «Разработать тестирующую программу на языке программирования
  высокого уровня и оформить соответствующую документацию».
Лабораторные работы по
  МДК.01.01: «Потоковый ввод данных. Вычисление логических
  операций. Символьный вывод данных».

Лабораторные
  работы по МДК.01.02: «Охарактеризовать инструментальные средства на этапе отладки программного продукта», «Разработать программный продукт, с применением языка
  программирования», «Разработать программный продукт, с применением
  среды программирования Delphi».
Экзамен по МДК.01.01 Системное программирование.
Экзамен по МДК.01.02 «Прикладное программирование».
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК Экзамен квалификационный по производственной практике (по
  профилю специальности).

-
  выполнять отладку и тестирование
  программы на уровне модуля;

Практические
  занятия: «Проанализировать задачи и особенности прикладного
  программирования», «Провести анализ языков программирования», «Провести
  анализ алгоритмической и объектно-ориентированной декомпозиции», «Выполнить
  отладку модуля программы», «Компиляция программы и сборка исполняемого
  модуля», «Размещение программы и данных в памяти», «Разработка и
  использование шаблонов», «Дать характеристику объектно-ориентированному
  программированию»,«Осуществить перегрузку
  функций и перегрузку операторов», «Охарактеризовать виртуальные функции и
  абстрактные базовые классы», «Проанализировать множественное наследование»,
Лабораторные работы: «Создать  программу с
  применением очереди на языке С++», «Создать  программу с применением стека на
  языке С++», «Создать  программу с применением списка на языке С++»,
  «Осуществить тестирование программ на языке С++».
Экзамен по
  МДК.01.02 «Прикладное программирование»
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК Экзамен
  квалификационный по производственной практике (по профилю специальности).

-
  оформлять документацию на
  программные средства;

Практические
  занятия: «Создать модуль компонента и провести его тестирование», «Охарактеризовать технологию тестирования программных
  продуктов».
Лабораторные
  работы: «Разработать
  тестирующую программу на языке программирования высокого уровня и оформить
  соответствующую документацию».
Экзамен по МДК.01.02 «Прикладное программирование»
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК Экзамен квалификационный по производственной практике (по
  профилю специальности).

-
  использовать инструментальные
  средства для автоматизации
  оформления документации;

Лабораторные
  работы: «Охарактеризовать инструментальные средства на этапе отладки программного продукта», «Разработать программный продукт, с применением языка
  программирования», «Разработать программный продукт, с применением
  среды программирования Delphi».
Экзамен
  по МДК.01.02 «Прикладное программирование»
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-
  работать с регистром;

Практические
  занятия:  «Регистры».
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-
  учитывать систему прерываний при работе с вычислительной системой;

Практические
  занятия:  «Система прерываний».
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-       осуществлять
  потоковый ввод - вывод данных;

Практические
  занятия: «Потоковый ввод-вывод данных»,
  «Управление символьным выводом на экран».
Лабораторная работа: «Потоковый
  ввод данных. Вычисление логических операций. Символьный вывод данных».
Экзамен по МДК.01.01 «Системное программирование».
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК Экзамен квалификационный по производственной практике (по
  профилю специальности).

-
  разрабатывать библиотеки подпрограмм;

Практические
  занятия по МДК 01.01:  «Подпрограмма – процедура», «Подпрограмма –
  функция», «Рекурсивная подпрограмма», «Разработка программы с использованием
  модуля», «Организация списка»,
  «Реализация процедур и функций работы со списком», «Решение задач с
  использованием стека», «Решение задач с использованием очереди», «Реализация
  процедур и функций работы с бинарным деревом».
Экзамен
  по МДК.01.01 «Системное программирование».
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-       разрабатывать
  программные модули с использованием динамических структур данных;

Практические
  занятия: «Создание и заполнение
  внешнего фала. Изменение данных файла», «Динамические структуры
  данных. Файлы».
Экзамен
  по МДК.01.01 «Системное программирование»
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-
  создавать файл, читать из файла, производить изменения в файле.

Лабораторные работы: «Работа с файлом, как с переменной».
Экзамен по
  МДК.01.01 «Системное программирование»
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

Знать

-
  основные этапы разработки
  программного обеспечения;

Контрольная
  работа по МДК.01.01: «Выполнение
  разработки спецификаций отдельных компонент».
Экзамен
  по МДК.01.01 Системное программирование.
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-
  основные принципы технологии
  структурного и объектно-ориентированного
  программирования;

Контрольная
  работа по МДК.01.01: «Осуществление разработки кода
  программного продукта на основе готовых спецификаций на уровне модуля».
Дифференцированный
  зачет по МДК.01.02.
Экзамен
  по МДК.01.01 Системное программирование.
Экзамен
  по МДК.01.02 Прикладное программирование.
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-
  основные принципы отладки и
  тестирования программных продуктов;

Контрольная
  работа по МДК.01.02: «Выполнение отладки программных
  модулей с использованием специализированных программных средств».
Дифференцированный
  зачет по МДК.01.02 Прикладное программирование.

-
  методы и средства разработки
  технической документации;

Экзамен по
  МДК.01.02 Прикладное программирование.
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК Экзамен
  квалификационный по производственной практике (по профилю специальности).

-
  структуру и основные компоненты вычислительной системы;

Контрольная
  работа по МДК.01.01: «Выполнение
  разработки спецификаций отдельных компонент»
Экзамен по МДК.01.01 Системное
  программирование.
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-
  основные компоненты системы программирования;

Контрольная
  работа по МДК.01.01:  «Осуществление разработки кода
  программного продукта на основе готовых спецификаций на уровне модуля».
Контрольная
  работа по МДК.01.02: «Осуществление оптимизации
  программного кода модуля».
Дифференцированный
  зачет по МДК.01.02.
Экзамен
  по МДК.01.01 Системное программирование.
Экзамен
  по МДК.01.02 Прикладное программирование.
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-
  структуру и способы описания языков программирования высокого уровня;

Контрольная
  работа по МДК.01.01: «Выполнение
  разработки спецификаций отдельных компонент».
Контрольная
  работа по МДК.01.02: «Осуществление оптимизации
  программного кода модуля».
Дифференцированный
  зачет по МДК.01.02.
Экзамен
  по МДК.01.01 Системное программирование.
Экзамен
  по МДК.01.02 Прикладное программирование.
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-
  правила использования библиотеки подпрограмм для проектирования
  программного модуля;

Контрольная
  работа по МДК.01.01: «Осуществление разработки кода
  программного продукта на основе готовых спецификаций на уровне модуля».
Дифференцированный
  зачет по МДК.01.02.
Экзамен
  по МДК.01.01 Системное программирование.
Экзамен
  по МДК.01.02 Прикладное программирование.
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-
  устройство  и принцип работы динамических структур данных;

Контрольная
  работа по МДК.01.01: «Осуществление разработки кода
  программного продукта на основе готовых спецификаций на уровне модуля».
Экзамен
  по МДК.01.01 Системное программирование.
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

-       принцип
  организации файла и специфику работы с файлом.

Контрольная
  работа по МДК.01.01: «Осуществление разработки кода программного
  продукта на основе готовых спецификаций на уровне модуля».
Экзамен
  по МДК.01.01 Системное программирование.
Дифференцированный зачет по
  производственной практике (по профилю специальности).
ПМ.1.ЭК
  Экзамен квалификационный по производственной практике (по профилю
  специальности).

Формы и
методы контроля и оценки результатов обучения должны позволять проверять у
обучающихся не только сформированность профессиональных компетенций, но и
развитие общих компетенций и обеспечивающих их умений.
Таблица 3

Требования к
  результатам
освоения
(профессиональные
  компетенции)

Функциональная
  принадлежность оценочного средства

ПК
  1.1 Выполнять разработку спецификаций
  отдельных компонент

Зачет по производственной
  практике (по профилю специальности).
Экзамен квалификационный по
  производственной практике (по профилю специальности).

ПК 1.2 Осуществлять
  разработку кода программного продукта на основе готовых спецификаций на
  уровне модуля

Зачет по производственной
  практике (по профилю специальности).
Экзамен квалификационный по
  производственной практике (по профилю специальности).

ПК 1.3 Выполнять отладку программных модулей с
  использованием специализированных программных средств

Зачет по производственной
  практике (по профилю специальности).
Экзамен квалификационный по
  производственной практике (по профилю специальности).

ПК 1.4 Выполнять
  тестирование программных модулей

Зачет по производственной
  практике (по профилю специальности).
Экзамен квалификационный по
  производственной практике (по профилю специальности).

ПК 1.5 Осуществлять
  оптимизацию программного кода модуля

Зачет по производственной
  практике (по профилю специальности).
Экзамен квалификационный по
  производственной практике (по профилю специальности).

ПК 1.6 Разрабатывать
  компоненты проектной и технической документации с использованием графических
  языков спецификаций.

Зачет по производственной
  практике (по профилю специальности).
Экзамен квалификационный по
  производственной практике (по профилю специальности).

Таблица 4

Требования к
  результатам
освоения
(общие
  компетенции)

Формы и методы
  сформированности компетенций

ОК 1. Понимать сущность и социальную значимость своей
  будущей профессии, проявлять к ней устойчивый интерес.

Оценка преподавателя в участии студента в учебных,
  образовательных, воспитательных мероприятиях  в рамках специальности.

ОК 2. Организовывать собственную деятельность, выбирать типовые
  методы и способы выполнения профессиональных задач, оценивать их
  эффективность и качество

Наблюдение за соблюдением
  технологии изготовления программного продукта.

ОК 3. Принимать решения в стандартных и нестандартных
  ситуациях и нести за них ответственность.

Наблюдение за поведением в нестандартных и нештатных
  ситуациях.

ОК 4. Осуществлять поиск, анализ и оценку информации,
  необходимой для постановки и решения профессиональных задач,
  профессионального и личностного развития.

Наблюдение, оценка преподавателем  решения
  профессиональных задач,  практического задания.

ОК 5. Использовать информационно-коммуникационные
  технологии в профессиональной деятельности.

Оценка преподавателем выполнения заданий   самостоятельной
  работы в поиске и использовании информации.

ОК 6. Работать в коллективе и в команде, обеспечивать ее
  сплочение, эффективно общаться с коллегами, руководством, потребителями.

Определение
  преподавателем лидерских качеств, наблюдение за отношениями внутри группы.
  Наблюдение за организацией коллективной деятельности, общением с
  преподавателем и руководителями.

ОК 7. Брать на себя ответственность за работу членов
  команды (подчиненных), за результат выполнения заданий.

Наблюдение за проявлением
  лидерских качеств, за самостоятельной организацией работы и качеством его
  выполнения.

ОК 8. Самостоятельно определять задачи профессионального и
  личностного развития, заниматься самообразованием, осознанно планировать
  повышение квалификации.

Наблюдение преподавателем за процессом
  самообразования (использование дополнительных информационных источников), за планированием
  студентом повышения квалификации (выполнение работы повышенной сложности).

ОК 9. Ориентироваться в условиях частой смены технологий в
  профессиональной деятельности

Наблюдение за соблюдением действующего законодательства и
  обязательных требований нормативных документов, а также требований
  стандартов, технических условий, обновлением программного обеспечения.

4. Типовые задания для оценки освоения профессионального модуля

Текущий контроль
МДК.01.01 Системное программирование.
 4 семестр
Практическое занятие
форма текущего контроля

по теме: «Регистры. Система прерываний»

Цель:
Изучить особенности регистров и системы
прерываний микроконтроллеров; осуществить систему прерываний.
 По
завершению практического  занятия студент должен уметь: осуществить систему прерываний.

Продолжительность: 1 аудиторный час (45 минут)

Необходимые принадлежности
1.  ПК, программа Electronics Workbench.
Краткие теоретические сведения
Основой современных цифровых устройств, например ЦП,
являются логические элементы.
Логический элемент – это устройство, преобразующее
входные сигналы в сигналы на выходе в соответствии с реализуемой им логической
функцией. Соответствие между входными и выходными сигналами задается в виде
таблицы истинности.
Чаще всего используются логические функции (и
элементы, их реализующие) «И», «ИЛИ», «НЕ» и «ИСКЛЮЧАЮЩЕЕ ИЛИ».
Более сложные узлы, такие как сумматор, триггер,
регистр и т. д. построены из нескольких логических элементов.
Все
узлы можно условно разделить на две категории. Первый тип узлов предназначен
для преобразования (обработки) сигналов. Второй тип – для хранения информации в
процессе ее обработки.
Элемент «И». Условно
графическое обозначение (отечественное и зарубежное) представлено на рис. 2.1.

Рис. 2.1. Условно графическое обозначение
логического элемента «И».
Таблица 2.1
Таблица истинности элемента
«И»

X1

X2

Y

0

0

0

0

1

0

1

0

0

1

1

1

Элемент «ИЛИ». Условно
графическое обозначение (отечественное и зарубежное) представлено на рис. 2.2.

Рис. 2.2. Условно графическое обозначение
логического элемента «ИЛИ».
Таблица 2.2
Таблица истинности элемента
«ИЛИ»

X1

X2

Y

0

0

0

0

1

1

1

0

1

1

1

1

Элемент «НЕ». Условно графическое обозначение (отечественное и
зарубежное) представлено на рис. 2.3.
Рис. 2.3. Условно графическое обозначение
логического элемента «НЕ».
Таблица 2.3
Таблица истинности элемента
«НЕ»

X

Y

0

1

1

0

Элемент «ИСКЛЮЧАЮЩЕЕ ИЛИ». Условно графическое обозначение (отечественное и
зарубежное) представлено на рис. 2.4

Рис. 2.4. Условно графическое обозначение
логического элемента «Исключающее ИЛИ».
Таблица 2.4
Таблица истинности элемента
«ИСКЛЮЧАЮЩЕЕ ИЛИ»

X1

X2

Y

0

0

0

0

1

1

1

0

1

1

1

0

Элемент «2И-НЕ». Этот элемент называют универсальным потому, что на его основе
можно реализовать любую логическую функцию. Кроме того, технологически выгоднее
изготовить десять однотипных элементов, чем два разного типа. Поэтому во всех
реальных цифровых приборах используют этот элемент.
Условно графическое обозначение (отечественное и
зарубежное) представлено на рис. 2.5.

Рис. 2.5. Условно графическое обозначение
логического элемента «2И-НЕ».
Таблица 2.5
Таблица истинности элемента «2И-НЕ»

X1

X2

Y

0

0

1

0

1

1

1

0

1

1

1

0

Триггер –
это устройство с двумя устойчивыми состояниями предназначенное для хранения
информации. Под действием сигналов на входах триггер может переходить из одного
состояния в другое. Для удобства в использовании триггеры имеют два выхода:
прямой Q и инверсный .
Существуют триггеры нескольких типов RS, JK, D, T.
Рассмотрим принцип действия RS-триггера. Вход S (set)
предназначен для установки 1 на прямом выходе триггера, вход R (reset)
предназначен для установки 0 на прямом выходе триггера. Условно графическое
обозначение триггера представлено на рис. 2.6.

Рис. 2.6. Условно графическое обозначение
триггера.

Таблица 2.6
Таблица переходов RS-триггера

R

S

Q

Примечание

0

0

Q

Режим хранения

0

1

1

0

Установка 1

1

0

0

1

Установка 0

1

1

-

-

Запрещенное состояние

JK-триггер
является универсальным, то есть на его основе можно построить любой другой
триггер.
Для сложения двух одноразрядных двоичных чисел без
учета переноса можно использовать полусумматор. Если необходимо учитывать
перенос из предыдущих разрядов, используют сумматор. Условно графическое
обозначение сумматора представлено на рис. 2.7.

Рис. 2.7. Условно графическое обозначение
сумматора.
Слагаемые подаются на входы A и B. На
вход Pi-1
подается перенос из предыдущего разряда (если он есть). На выходе S
формируется сумма поданных на входы чисел, на выходе P – перенос в
следующий разряд.
Из нескольких параллельно соединенных сумматоров можно
составить сумматор для сложения двоичных чисел заданной разрядности.
Задания
1.
С помощью этой цепи составьте
таблицу истинности для логических элементов «И», «ИЛИ» и «НЕ». Результаты
запишите.
2.
С помощью этой цепи составьте
таблицу истинности для универсального логического элемента «2И-НЕ». Результаты
запишите.
3.
Составьте элементы «И», «ИЛИ»,
«НЕ» и «ИСКЛЮЧАЮЩЕЕ ИЛИ» используя универсальный логический элемент «2И-НЕ» и
нарисуйте полученные схемы в тетрадь. Проверьте правильность с помощью
генератора цифровых сигналов. Результаты запишите.
4.
Ответьте на вопросы к практической
работе.
Оформление отчета
В
тетради для практических и лабораторных работ запишите тему практического
занятия, цель и задания, не нарушая нумерации. Сделайте выводы по проделанной
работе.

Контрольные вопросы:
1.       Что
такое регистр, какие функции он может выполнять?
2.       Назовите
типы регистров и их возможные применения.
3.       Начеpтить
схему сдвигового pегистpа и пояснить его pаботу.
4.       Начеpтить
схему цепи сдвига реверсивного регистра и пояснить его работу.
5.       На
каких триггерах могут быть реализованы pегистpы?
6.       Как
работает последовательный регистр?
7.       Как
работает кольцевой регистр?
8.       Как
работает параллельный регистр?
9.
Как
осуществляется сдвиг информации в одном регистре вправо и влево ?
10.
Перечислите основные элементы,
предназначенные для преобразования информации.
11.
Перечислите основные элементы,
предназначенные для запоминания информации.
12.
В чем заключается универсальность
элемента «2И-НЕ»?
13.
Какие значения будут получены на
выходах RS-триггера, если на его входы R и S
подать сигнал одновременно?
14.
Для чего предназначены выходы
сумматора?
Литература
Основные
источники:

[1]
     И.Г. Семакин, А. П. Шестаков. Основы алгоритмизации и программирования.
     М.: Издательский центр «Академия», 2010.-432с.
[2]
     А. Ю. Молчанов, Системное программное обеспечение: Учебник для вызов, 3-е
     изд., СПБ.: Питер, 2010. – 400 с.

Дополнительные
источники:

[3]
     Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4]
     Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5]
     Маклафлин Б, «PHP и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.: Питер,
     2015. – 544 с
[6]
     Антамошкин О. А. Программная
     инженерия. Теория и практика: учебник. - Красноярск: Сиб. федер. ун-т,
     2012.
[7]
     Биллиг, В.A. Основы объектного
     программирования на С# (C# 3.0, Visual Studio 2008). - М.: БИНОМ.
     Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8]
     Павловская, Т. C/C++. Структурное и
     объектно-ориентированное программирование: практикум /Т.Павловская,
     Ю.Щупак.- СПб.: Питер, 2011.
[9]
     Смирнов, А.А. Прикладное программное
     обеспечение: учебное пособие. - М.: Евразийский открытый институт, 2011.
[10]
     Снетков, В.М. Практикум прикладного
     программирования на C# в среде VS.NET 2008. - М.: Интернет-Университет
     Информационных Технологий (ИНТУИТ), 2010.
[11]
     Федотова, С.В. Создание
     Windows-приложений в среде Delphi: учебное пособие. - М.: СОЛОН-ПРЕСС,
     2010.

Интернет-ресурсы
1.
 http://aco.ifmo.ru/el_books/applied_programming/.
2.
CIT-Forum: Центр информационных
технологий: материалы сайта [Электронный ресурс]. - Режим доступа:
http://citforum.ru/, свободный.
3.
CodeNet - все для программиста
[Электронный ресурс]. - Режим доступа: http://www.codenet.ru/, свободный.
4.
Coding Lessons.ru [Электронный
ресурс]. - Режим доступа: http://codinglessons.ru/, свободный.
5.
Видео-курс «Уроки Visual Studio
С++» [Электронный ресурс]. - Режим
доступа:http://www.youtube.com/user/visvivatutorials, свободный.
6.
Духанов, А.В.
Системное и прикладное программное обеспечение [Электронный ресурс]: конспект
лекций / С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во
Владим. гос. ун-та, 2010. - Режим доступа:
http://window.edu.ru/resource/359/77359, свободный.
7.
 Информация для
студентов и преподавателей [Электронный ресурс].- Режим доступа:
www.4stud.info, свободный.

Текущий контроль
МДК.01.01 Системное программирование.
 4 семестр
Практическое  занятие
форма текущего контроля

по теме: «Виртуальная память»
Цель:
Научиться осуществлять
настройку файла подкачки.
 По
завершению практического  занятия студент должен уметь: осуществлять настройку файла подкачки.
Продолжительность: 1 аудиторный час (45 минут)

Необходимые принадлежности
1.  Персональный компьютер.
Краткие теоретические
сведения
 Файл
подкачки
ОС Windows использует не только оперативную память для своей
работы. Чтобы немного разгрузить ресурсы оперативной памяти, на жестком диске
создается специальный файл, в котором ОС также хранит текущие данные.
Называется он swap – файлом, или файлом подкачки, а также виртуальной
памятью компьютера. Оперативную память называют физической, т.к. она создана из
конкретного материала, т.е. ее можно взять в руки и рассмотреть. Виртуальная
память – ненастоящая, это область дискового пространства, которую ОС тоже
считает памятью. Слово «виртуальный» в данном случае подразумевает «созданный
на компьютере»
Файл подкачки автоматически создается ОС в корневой
папке того диска, где расположена сама система. Его размер определяется исходя
из объема физической(оперативной) памяти компьютера. По умолчанию минимальный
размер файла подкачки соответствует полутора размерам физической памяти, а
максимальный размер обычно превышает ее в 3 раза.
Размер файла подкачки и его расположение можно
изменять. Для этого откройте вкладку Дополнительно в окне параметры
быстродействия и в области Виртуальная память нажмите кнопку изменить.
Откроется окно Виртуальная память.

Рисунок 1 – Параметры быстродействия
Текущая информация о размере файла подкачки
отображается в нижней части данного окна в области Общий объем файла
подкачки на всех дисках.
Обратите внимание на то, что:
-
Если у вас установлено несколько жестких дисков(не логических разделов,  именно
жестких дисков), логично установить файл подкачки на самый быстрый из них. При
этом лучше, чтобы ОС находилась на другом диске.
-
Можно разместить файл подкачки на нескольких жестких дисках одновременно.
-
Если у вас только один жесткий диск, разбитый на разделы, лучше всего
установить файл подкачки на самом первом из них, физически расположенном  ближе
к краю диска.
-
не нужно устанавливать файл подкачки сразу на нескольких логических дисков
одного жесткого. Это только замедлит работу системы, т.к. магнитным головкам
жесткого диска придется постоянно перепрыгивать с места на место.
-
если у вас много оперативной памяти(512 Мбайт и выше), то размеры файла
подкачки по умолчанию(от 1 Гбайт до 1,5 Гбайт) будут неоправданно занимать
пространство жесткого диска. Однако, как вы знаете, полностью отключать файл
подкачки нельзя. Поэтому поступите так: установите переключатель в положение особый
размер. Далее в зависимости от ресурсов вашего жесткого диска возможно
несколько вариантов:
1) если объем жесткого диска достаточно большой, то в
поле Исходный размер введите значение 512 Мбайт. Максимальный размер
зависит от приложений, с которыми вы работаете.(не более 1 Гбайт)
2) если свободного места на диске маловато, то
установите исходный размер 2 Мбайт. Максимальный размер при этом
должен быть не меньше, чем размер физической памяти. Установите его равным ей.

Рисунок 2 – Виртуальная память
-
если оперативной памяти не так уж много(менее 256 Мбайт), то нужно оставить
параметры, принятые по умолчанию, либо выбрать режим Размер по выбору системы,
при котором WindowsXP, собирая информацию об использовании файла подкачки в
процессе работы, при необходимости сможет корректировать (увеличивать) его
размеры.
После внесения изменений в настройки файла подкачки
компьютер нужно перезагрузить(при уменьшении его размеров либо при создании
нового файла подкачки система сама предложит вам это). Затем для оптимизации
файла подкачки следует запустить программу дефрагментации.
Распределение
работы памяти и процессора.
Windows XP  позволяет настроить некоторые дополнительные
параметры управления быстродействием системы.
Для
знакомства с ним перейдите на  вкладку Дополнительно окна параметры
быстродействия.
Обратите внимание на область Распределение времени
процессор. По умолчанию переключатель Оптимизировать работу
находится в положении программ. Однако если вы работаете с большим
количеством программ одновременно, то для увеличения стабильности работы
специалисты рекомендуют установить переключатель в положении служб
работающих в фоновом режиме. Однако, при этом стабильность работы
повысится, скорость выполнения текущего активного приложения немного снизится.
В области Использование памяти по умолчанию ресурсы
памяти также оптимизируют работу программ. Если вами программы работают с
файлами больших объемов, то стоит установить переключатель оптимизировать
работу в положение системного КЭШа.
Уменьшение
дискового пространства, занимаемого Windows XP
Для уменьшения дискового пространства нужно удалить
все неиспользуемые программные компоненты Windows
XP(MSN Explorer, Paint)
Очистка
дисков.
Для очистки дисков в Windows
XP встроены специальные служебные программы, найти
которые можно в программной группе пуск- все программы - стандартные –
служебные - очистка диска. После запуска программа очистка диска
оценит, сколько мусора поднакопилось в ваших закромах. Затем выдаст результаты
проверки.

 Рисунок 3 –
Выбор диска
Диспетчер
задач.
Для каждого запущенного приложения ОС отводит
определенный объем оперативной памяти, или другими словами, задачу. Каждая
задача, в свою очередь, создает один или несколько процессов – отдельных
процедур выполняющих конкретную функцию задачи и занимающих строго определенное
место в адресном пространстве памяти. Для управления задачами и процессами в Windows XP предназначена специальная служебная программа –
Диспетчер задач. Вызвать его можно  либо с помощью контекстного меню панели
задач, либо нажав комбинации клавиш Ctrl-Shift-Esc.

Рисунок 4 - Диспетчер задач
В строке состояния располагается информация об общем
количестве процессов в памяти, загрузке процессора и общем количестве
физической и виртуальной памяти, используемой этими процессами.
Диспетчер задач является отличным инструментом борьбы
с зависшими приложениями. Если в поле состояние напротив той или иной задачи
появилось значение не отвечает, то нужно только выделить такую задачу и нажать
кнопку снять задачу, после чего спокойно продолжить работу. чтобы переключить
на какую-либо задачу, нужно выделить мышью ее название в поле Задача и нажать
кнопку Переключиться. Для запуска новой задачи – кнопка новая задача и
т.д.
Назначенные
задания
Не только ОС может назначить выполнение тех или иных
программ. Пользователям это также под силу, а помогает им Мастер Назначенные
задания. С его помощью  можно без вашего участия ежедневно проверять почту,
еженедельно сканировать диск, и т.д.
найти
этот мастер легко: пуск -  все программы -  стандартные -  служебные –
назначенные задания, а управлять им просто.

Рисунок 5 – Мастер планирования заданий
 Программы
автозагрузки (для экономии времени)
Главное меню – пуск - все программы – автозагрузка.
Задание
Быстродействие
системы:
1. Вызовите окно Свойства
системы и перейти в нем на вкладку       Дополнительно.
2. Здесь нажмите в области
быстродействие на кнопку параметры.
3. Откроется окно Параметры
быстродействия.
4. Положение Обеспечить
наилучшее быстродействие сделает картинку намного скромнее, зато
производительность системы при этом резко возрастет.
5. С помощью меню особые
эффекты вы можете в индивидуальном             порядке решить судьбу того
или иного визуального эффекта.
6. Если же вы ни в чем не
уверены, то поручите принятие решения операционной системе, установив
переключатель в положение Восстановить значения по умолчанию.

Рисунок  6 – Параметры быстродействия
Очистка
дисков:
Вызовите диалоговое окно свойств диска и прейдите на
вкладку сервис. Здесь находятся кнопки запуска двух полезных команд:
1.
проверка диска на наличие ошибок
2. программа дефрагментации (способствует
повышению производительности системы).Чтобы найти все фрагментированные файлы и
собрать их части в единое целое необходима дефрагментация.

Рисунок 7 - Свойства

Файл подкачки:
Для изменения параметров файла подкачки выполняются
следующие действия:
1.Выберите
нужный диск в верхней части окна.
2.Если
на данном диске вам не нужен файл подкачки, то установите переключатель в
области Размер файла подкачки для выбранного диска в положение Без
файла подкачки
если
компьютер оснащен большим количеством оперативной памяти, то может возникнуть
соблазн убрать файлы подкачки со всех дисков. Нивкоем  случае не делайте этого!
В WindowsXP файл подкачки используется для выполнения некоторых
задач, и подобные действия неизбежно приведут к сбоям работы системы.
3.Параметр
размер по выбору системы включает динамическое(т.е. изменяемое со
временем) управление размером файла подкачки ОС
4.Установив
переключатель в положение Особый размер, вы сможете вручную установить
значения файла подкачки.
5.После
внесения всех изменений нажмите кнопку Задать.

Рисунок 8 –Виртуальная память
При необходимости повторите
эти же действия для остальных жестких дисков

Оформление отчета
В тетради для практических и
лабораторных работ записать тему практического занятия, цель, краткий конспект
теоретической части; ответы на контрольные вопросы.

Контрольные вопросы
1.
Понятие
о виртуальной памяти
2.
Назначение
файла подкачки
3.
Какой
размер файла подкачки?
4.
Где
хранится информация о размере файла подкачки?
5.
Назначение
диспетчера задач
Литература
Основные
источники:

[1]
     И.Г. Семакин, А. П. Шестаков. Основы алгоритмизации и программирования.
     М.: Издательский центр «Академия», 2010.-432с.
[2]
     А. Ю. Молчанов, Системное программное обеспечение: Учебник для вызов, 3-е
     изд., СПБ.: Питер, 2010. – 400 с.

Дополнительные
источники:

[3]
     Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4]
     Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5]
     Маклафлин Б, «PHP и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.: Питер,
     2015. – 544 с
[6]
     Антамошкин О. А. Программная
     инженерия. Теория и практика: учебник. - Красноярск: Сиб. федер. ун-т,
     2012.
[7]
     Биллиг, В.A. Основы объектного
     программирования на С# (C# 3.0, Visual Studio 2008). - М.: БИНОМ.
     Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8]
     Павловская, Т. C/C++. Структурное и
     объектно-ориентированное программирование: практикум /Т.Павловская,
     Ю.Щупак.- СПб.: Питер, 2011.
[9]
     Смирнов, А.А. Прикладное программное
     обеспечение: учебное пособие. - М.: Евразийский открытый институт, 2011.
[10]
     Снетков, В.М. Практикум прикладного
     программирования на C# в среде VS.NET 2008. - М.: Интернет-Университет
     Информационных Технологий (ИНТУИТ), 2010.
[11]
     Федотова, С.В. Создание
     Windows-приложений в среде Delphi: учебное пособие. - М.: СОЛОН-ПРЕСС,
     2010.

Интернет-ресурсы
8.
 http://aco.ifmo.ru/el_books/applied_programming/.
9.
CIT-Forum: Центр информационных
технологий: материалы сайта [Электронный ресурс]. - Режим доступа:
http://citforum.ru/, свободный.
10.
CodeNet - все для программиста
[Электронный ресурс]. - Режим доступа: http://www.codenet.ru/, свободный.
11.
Coding Lessons.ru [Электронный
ресурс]. - Режим доступа: http://codinglessons.ru/, свободный.
12.
Видео-курс «Уроки Visual Studio
С++» [Электронный ресурс]. - Режим
доступа:http://www.youtube.com/user/visvivatutorials, свободный.
13.
Духанов, А.В.
Системное и прикладное программное обеспечение [Электронный ресурс]: конспект
лекций / С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во
Владим. гос. ун-та, 2010. - Режим доступа:
http://window.edu.ru/resource/359/77359, свободный.
14.
 Информация для
студентов и преподавателей [Электронный ресурс].- Режим доступа:
www.4stud.info, свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Жизненный цикл ПО»
Цель:
ознакомится с жизненным
циклом программного обеспечения и научиться осуществлять анализ существующих
моделей жизненного цикла ПО.

 По
завершению практического  занятия студент должен уметь: осуществлять анализ существующих моделей жизненного
цикла ПО.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер.

Задание
1. Ответить на вопросы:
1)
Что
такое жизненный цикл ПО?
2)
Что
такое каскадная модель ЖЦ?
3)
Какие
существуют модели ЖЦ?
2. Записать в тетрадь для
практических и лабораторных работ записать краткое описание фаз  каскадной
модели и перечертить схему классической каскадной модели с обратной связью.

3. Провести анализ
существующих моделей жизненного цикла.

Оформление отчета
В тетради для практических и
лабораторных работ записать тему практического занятия, цель. Ответить на
вопросы, не нарушая нумерации. Провести анализ существующих моделей жизненного
цикла, который должен содержать преимущества и недостатки каждой модели.

Контрольные вопросы
1.
Что
такое жизненный цикл ПО?
2.
Какие
модели ЖЦ существуют?
3.
Какие
преимущества и недостатки каждой модели ЖЦ?
Литература
Основные
источники:

[1]
     И.Г. Семакин, А. П. Шестаков. Основы алгоритмизации и программирования.
     М.: Издательский центр «Академия», 2010.-432с.
[2]
     А. Ю. Молчанов, Системное программное обеспечение: Учебник для вызов, 3-е
     изд., СПБ.: Питер, 2010. – 400 с.

Дополнительные
источники:

[3]
     Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4]
     Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5]
     Маклафлин Б, «PHP и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.: Питер,
     2015. – 544 с
[6]
     Антамошкин О. А. Программная
     инженерия. Теория и практика: учебник. - Красноярск: Сиб. федер. ун-т,
     2012.
[7]
     Биллиг, В.A. Основы объектного
     программирования на С# (C# 3.0, Visual Studio 2008). - М.: БИНОМ.
     Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8]
     Павловская, Т. C/C++. Структурное и
     объектно-ориентированное программирование: практикум /Т.Павловская,
     Ю.Щупак.- СПб.: Питер, 2011.
[9]
     Смирнов, А.А. Прикладное программное
     обеспечение: учебное пособие. - М.: Евразийский открытый институт, 2011.
[10]
     Снетков, В.М. Практикум прикладного
     программирования на C# в среде VS.NET 2008. - М.: Интернет-Университет
     Информационных Технологий (ИНТУИТ), 2010.
[11]
     Федотова, С.В. Создание
     Windows-приложений в среде Delphi: учебное пособие. - М.: СОЛОН-ПРЕСС,
     2010.

Интернет-ресурсы
1.        http://aco.ifmo.ru/el_books/applied_programming/.
2.
CIT-Forum: Центр информационных
технологий: материалы сайта [Электронный ресурс]. - Режим доступа:
http://citforum.ru/, свободный.
3.
CodeNet - все для программиста
[Электронный ресурс]. - Режим доступа: http://www.codenet.ru/, свободный.
4.
Coding Lessons.ru [Электронный
ресурс]. - Режим доступа: http://codinglessons.ru/, свободный.
5.
Видео-курс «Уроки Visual Studio
С++» [Электронный ресурс]. - Режим
доступа:http://www.youtube.com/user/visvivatutorials, свободный.
6.
Духанов, А.В.
Системное и прикладное программное обеспечение [Электронный ресурс]: конспект
лекций / С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во
Владим. гос. ун-та, 2010. - Режим доступа:
http://window.edu.ru/resource/359/77359, свободный.
7.
 Информация для
студентов и преподавателей [Электронный ресурс].- Режим доступа:
www.4stud.info, свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Потоковый ввод-вывод данных»
Цель:
научиться осуществлять потоковый
ввод-вывод данных.

 По
завершению практического  занятия студент должен уметь: осуществлять потоковый ввод-вывод данных.
Продолжительность: 4 аудиторных часа (180 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Общие сведения
Линейным называется алгоритм, в котором результат
получается путем однократного выполнения заданной последовательности действий
при любых значениях исходных данных. Операторы программы выполняются
последовательно, один за другим, в соответствии с их расположением в программе.
Перед выполнением работы необходимо ознакомиться с теоретическим
материалом по темам «Описание языка Паскаль», «Простые операторы. Ввод/вывод
данных».
Пример.
Определить расстояние на плоскости между двумя точками с заданными координатами
M1(x1,y1) и M2(x2,y2).
Решение задачи.
В этом примере проведем полный разбор решения задачи.
Математическая модель: расстояние на плоскости между двумя
точками M1(x1,y1) и M2(x2,y2)
высчитывается по формуле:

Составим блок-схему алгоритма, а затем уточним содержимое
блоков  "Вычисление расстояния" и  "Вывод расстояния" (см.
рис.1):

Рис. 1.
Блок-схема алгоритма
Дальнейшая детализация не требуется.
Переводим блок-схему на язык Паскаль, доработав программу, чтобы улучшить ее
интерфейс:
program example1;var x1, x2, y1, y2: Integer;    d:Real; begin     Writeln('Эта программа вычисляет расстояние между двумя точками на плоскости');     Writeln('Введите координаты двух точек:');    Write('x1= '); Readln(x1);     Write('y1= '); Readln(y1);     Write('x2= '); Readln(x2);     Write('y2 ='); Readln(y2);     d:=sqrt(sqr(x2-x1)+sqr(y2-y1));     Writeln('d= ',d:6:2);     Writeln('нажмите Enter для завершения работы программы');     Readln; end.
Задание
Задание 1. Даны x, y.
Составить программу вычисления значения выражения:

a)

b)

c)

d)

Задание 2. Составить программу для решения следующей задачи:
a)       Дана длина ребра
куба. Найти объем куба и площадь его боковой поверхности.
b)       Известна длина
окружности. Найти площадь круга, ограниченного этой окружностью.
c)       Вычислить высоту
треугольника, опущенную на сторону а, по известным значениям длин его
сторон a, b, c.
d)       По данным сторонам
прямоугольника вычислить его периметр, площадь и длину диагонали.

Задание 3. Вывести значение true, если приведенное высказывание для
предложенных исходных данных является истинным, и значение false в
противном случае (все числа, для которых не указано иное, являются
действительными):
a)
данное число x
принадлежит отрезку [-a, a];
b)
данное число x
не принадлежит интервалу (a, b);
c)
данное целое число x
является нечетным;
d)
данное число x является
корнем уравнения: ax2+bx+c=0;

Оформление отчета
В тетради для практических и
лабораторных работ записать тему практического занятия, цель. Записать примеры.
Решить задачи на компьютере, записать в тетрадь для практических и лабораторных
работ блок-схемы и код программ.

Контрольные вопросы
1.
Каковы назначение и возможности
системы программирования?
2.
Как запустить программу на
трансляцию и выполнение?
3.
Как обозначается начало и конец
программы?
4.
Из каких разделов состоит
программа на языке Паскаль?
5.
Как в языке Паскаль осуществляется
вывод на экран?
6.
Для чего предназначен оператор
присваивания?
7.
Как вывести на экран значение
переменной?
Литература
Основные
источники:

[1]
     И.Г. Семакин, А. П. Шестаков. Основы алгоритмизации и программирования.
     М.: Издательский центр «Академия», 2010.-432с.
[2]
     А. Ю. Молчанов, Системное программное обеспечение: Учебник для вызов, 3-е
     изд., СПБ.: Питер, 2010. – 400 с.

Дополнительные
источники:

[3]
     Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4]
     Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5]
     Маклафлин Б, «PHP и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.: Питер,
     2015. – 544 с
[6]
     Антамошкин О. А. Программная
     инженерия. Теория и практика: учебник. - Красноярск: Сиб. федер. ун-т,
     2012.
[7]
     Биллиг, В.A. Основы объектного
     программирования на С# (C# 3.0, Visual Studio 2008). - М.: БИНОМ.
     Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8]
     Павловская, Т. C/C++. Структурное и
     объектно-ориентированное программирование: практикум /Т.Павловская,
     Ю.Щупак.- СПб.: Питер, 2011.
[9]
     Смирнов, А.А. Прикладное программное
     обеспечение: учебное пособие. - М.: Евразийский открытый институт, 2011.
[10]
     Снетков, В.М. Практикум прикладного
     программирования на C# в среде VS.NET 2008. - М.: Интернет-Университет
     Информационных Технологий (ИНТУИТ), 2010.
[11]
     Федотова, С.В. Создание
     Windows-приложений в среде Delphi: учебное пособие. - М.: СОЛОН-ПРЕСС,
     2010.

Интернет-ресурсы
1.        http://aco.ifmo.ru/el_books/applied_programming/.
2.
CIT-Forum: Центр информационных
технологий: материалы сайта [Электронный ресурс]. - Режим доступа:
http://citforum.ru/, свободный.
3.
CodeNet - все для программиста
[Электронный ресурс]. - Режим доступа: http://www.codenet.ru/, свободный.
4.
Coding Lessons.ru [Электронный
ресурс]. - Режим доступа: http://codinglessons.ru/, свободный.
5.
Видео-курс «Уроки Visual Studio
С++» [Электронный ресурс]. - Режим
доступа:http://www.youtube.com/user/visvivatutorials, свободный.
6.
Духанов, А.В.
Системное и прикладное программное обеспечение [Электронный ресурс]: конспект
лекций / С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
гос. ун-та, 2010. - Режим доступа: http://window.edu.ru/resource/359/77359,
свободный.
7.
 Информация для
студентов и преподавателей [Электронный ресурс].- Режим доступа:
www.4stud.info, свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Управление символьным выводом на экран»
Цель:
научиться осуществлять управление
символьным выводом на экран.

 По
завершению практического  занятия студент должен уметь: осуществлять управление символьным выводом на экран.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Общие сведения
Процедура чтения Read
Процедура чтения Read обеспечивает ввод числовых
данных, символов, строк и т.д. для последующей их обработки программой.
Формат процедуры Read:
Read (x1,
x2, …, xn);
или
Read (fv, x1, x2, …, xn);
где x1, x2, …, xn- переменные допустимых типов данных; fv-
переменная, связанная с файлом, откуда будет выполняться чтение.
Значения x1, x2, …, xn
набираются минимум через один пробел на клавиатуре и высвечиваются на экране.
После набора данных для одной процедуры Read нажимается
клавиша ввода Enter.
Значения переменных должны вводится в строгом
соответствии с синтаксисом языка Паскаль. Если соответствие нарушено (например,
х1 имеет тип Integer, а при вводе набирается значение типа Char),
то возникают ошибки ввода-вывода. Сообщение об ошибке имеет вид: I/O error XX, где ХХ
-  код ошибки.
. . .
Var
I:Real;
J:Integer;
K:Char;
Begin
Read(I,J,K);
 . . .
Первый вариант ввода данных: 21,5   23     ’B’
Второй вариант ввода данных:  34     ’A’
12 ,4
Первый вариант обеспечивает правильный ввод данных,
так как набираемые значения 21,5  23  ’B’ соответствуют
типам переменных I, J, K в процедуре Read. Второй вариант ввода
вызовет ошибку, так как для переменной I типа Real
вводится значение типа Char.
Если в программе имеется несколько процедур Read,
данные для них вводятся потоком, т.е. после считывания значений переменных для
одной процедуры Read данные для следующей процедуры Read
набираются в той же строке, что и для предыдущей, до окончания строки, затем
происходит переход на следующую строку.
   .
. .
Var
A, B, Sum1: Integer;
C, D, Sum2: Real;
. . .
Begin
Read (A, B);
Sum1:=A+B;
Read (C, D);
Sum2:=C+D;
 . . .
End.
В результате на экране появятся те данные, которые
пользователь вводит с клавиатуры. Например:
12 34 12,5 34,5
Процедура чтения ReadLn
Процедура чтения ReadLn
аналогична процедуре Read, единственное отличие  заключается в том, что после
считывания последнего в списке значения для одной процедуры ReadLn  данные для следующей
процедуры ReadLn будут
считываться с начала новой строки.
 . .
.
ReadLn (A, B);
Sum1:=A+B;
ReadLn (C, D);
Sum2:=C+D;
 . . .
После набора на клавиатуре значений для A и B
курсор автоматически перейдет на новую строку, где будут набираться данные для C и D.
Например:
12 34
12,5 34,5

Процедуры вывода WRITE и WRITELN
Процедуры вывода WRITE и
WRITELN служат для вывода на экран констант (как числовых, так и текстовых),
значений переменных и выражений. Они вызываются с помощью одноименных
операторов вызова процедур, например:
WRITE ('программа', X, Y – Z * 3).
По этому оператору на
экран будет выведено в одной строке слово «программа» и далее без пробелов
значения переменной X и выражения Y – Z * 3. Например, если имеем X = -3, Y =
-5, Z = 12, то на экран будет выведено: программа-3-41.
Чтобы отделить элементы
вывода друг от друга, используется прием форматирования вывода. Так, WRITE
(А:20) – одиночное форматирование – показывает, что значению переменной А
отводится 20 позиций на экране монитора. Если в значение переменной А входит
менее 20 символов, то они сдвигаются вправо, а слева строка заполняется
пробелами.
Двойное форматирование
используется только для вывода вещественных значений. Например, WRITE (C:17:7)
означает, что для вывода значения переменной C отведено всего 17 позиций, из
них 7 позиций предназначены для представления дробной части. Если формат не
указан, то вещественные константы выводятся на экран в экспоненциальной форме.
Заметим также, что форматировать в операторах WRITE можно не только переменные,
но и выражения, например:
WRITE (cos (x + 4) : 5 : 2);

Работа оператора WRITE
отличается от работы оператора WRITELN тем, что по завершении вывода у WRITE
курсор остается в конце списка вывода, а у WRITELN он переходит на следующую
строку. Часто используют оператор WRITELN без списка вывода для вывода на экран
пустой строки.
Задание
Задание 1. Изучить
теоретические сведения и кратко законспектировать в тетрадь для практических и
лабораторных работ.
Задание 2. Ответить на
вопросы:

Чем
     команда ввода READ отличается от READLN?
Какая
     команда служит для вывода данных?
Какой
     формат записи имеет команда вывода?
Чем
     команда вывода WRITE отличается от WRITELN?

Задание 3. Введите следующую
программу:
program AVERAGE;
      var FIRST, SECOND, TROIS, SUM:
integer;
          begin
writeln ('Введите 3 числа ');
readln (FIRST, SECOND, TROIS);
SUM := FIRST + SECOND + TROIS;
writeln ('Среднее значение
', FIRST:4,',',SECOND:4,',');
write (TROIS:4,'  равно ';(SUM div 3):3)
end.
Результат вывода на экран запишите в тетрадь для практических
и лабораторных работ.

Оформление отчета
В тетради для практических и
лабораторных работ записать тему практического занятия, цель. Записать ответы
на вопросы и результат вывода на экран программы.
Контрольные вопросы
1.
Каковы назначение и возможности
системы программирования?
2.
Как запустить программу на
трансляцию и выполнение?
3.
Как обозначается начало и конец
программы?
4.
Из каких разделов состоит
программа на языке Паскаль?
5.
Как в языке Паскаль осуществляется
вывод на экран?
6.
Для чего предназначен оператор
присваивания?
7.
Как вывести на экран значение
переменной?
Литература
Основные
источники:

[1]
     И.Г. Семакин, А. П. Шестаков. Основы алгоритмизации и программирования.
     М.: Издательский центр «Академия», 2010.-432с.
[2]
     А. Ю. Молчанов, Системное программное обеспечение: Учебник для вызов, 3-е
     изд., СПБ.: Питер, 2010. – 400 с.

Дополнительные
источники:

[3]
     Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4]
     Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5]
     Маклафлин Б, «PHP и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.: Питер,
     2015. – 544 с
[6]
     Антамошкин О. А. Программная
     инженерия. Теория и практика: учебник. - Красноярск: Сиб. федер. ун-т,
     2012.
[7]
     Биллиг, В.A. Основы объектного
     программирования на С# (C# 3.0, Visual Studio 2008). - М.: БИНОМ.
     Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8]
     Павловская, Т. C/C++. Структурное и
     объектно-ориентированное программирование: практикум /Т.Павловская,
     Ю.Щупак.- СПб.: Питер, 2011.
[9]
     Смирнов, А.А. Прикладное программное
     обеспечение: учебное пособие. - М.: Евразийский открытый институт, 2011.
[10]
     Снетков, В.М. Практикум прикладного
     программирования на C# в среде VS.NET 2008. - М.: Интернет-Университет
     Информационных Технологий (ИНТУИТ), 2010.
[11]
     Федотова, С.В. Создание
     Windows-приложений в среде Delphi: учебное пособие. - М.: СОЛОН-ПРЕСС,
     2010.

Интернет-ресурсы
1.        http://aco.ifmo.ru/el_books/applied_programming/.
2.
CIT-Forum: Центр информационных
технологий: материалы сайта [Электронный ресурс]. - Режим доступа:
http://citforum.ru/, свободный.
3.
CodeNet - все для программиста
[Электронный ресурс]. - Режим доступа: http://www.codenet.ru/, свободный.
4.
Coding Lessons.ru [Электронный
ресурс]. - Режим доступа: http://codinglessons.ru/, свободный.
5.
Видео-курс «Уроки Visual Studio
С++» [Электронный ресурс]. - Режим
доступа:http://www.youtube.com/user/visvivatutorials, свободный.
6.
Духанов, А.В.
Системное и прикладное программное обеспечение [Электронный ресурс]: конспект
лекций / С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во
Владим. гос. ун-та, 2010. - Режим доступа:
http://window.edu.ru/resource/359/77359, свободный.
7.
 Информация для
студентов и преподавателей [Электронный ресурс].- Режим доступа:
www.4stud.info, свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Вычисление логических операций»
Цель:
научиться осуществлять вычисление
логических операций.

 По
завершению практического  занятия студент должен уметь: осуществлять вычисление логических операций.
Продолжительность: 4 аудиторных часа (180 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.

Общие сведения
Логические
выражения строятся из логических данных, логических операций и операций отношения.
В
операциях отношения могут участвовать арифметические и логические выражения, а также
символьные данные. Результатом логического выражения является значение TRUE или
FALSE . При вычислении логических выражений принят следующий приоритет операций
(по старшинству):
1)
арифметические операции;
2)
операции отношений;
3)
логические операции.
При
наличии скобок сначала выполняются действия в скобках (в первую очередь самые внутренние),
а затем вне скобок. В круглые скобки обязательно заключаются части выражения,
стоящие слева и справа от логических операций AND и OR.
Пример. Определить результат
логического выражения
(A > 3) AND (C = 5) OR NOT
(A + C < X) при A = 1, C = 3, X = 0.
10
C заданными значениями
переменных, входящих в логическое выражение, оно принимает
вид:
 (1 > 3) AND (3 = 5) OR
NOT (1 + 3 < 0)
Результат вычислений в
скобках:
(FALSE) AND (FALSE)
OR NOT (FALSE).
Логические операции
выполняются в следующей последовательности NOT - AND - OR:
1) NOT (FALSE) =
TRUE;
2) (FALSE) AND
(FALSE) = FALSE;
3) (FALSE) OR (TRUE) = TRUE;
Результат рассмотренного
логического выражения равен TRUE.

Задание
1. Записать в тетрадь для
практических и лабораторных работ  основные сведения по логическим выражениям и
пример.
2. Ответить письменно на
контрольные вопросы.
3. Вычислить значения
логических выражений при заданных значениях переменных:
а) x>0 AND y=3 OR x + y
> 5 AND x-y < 0 при х = 5 и у = 15;
б) a<0 AND b<0 AND
c<0 при а = 5, в = -3, с = -25.3;
в) x > 2 OR y < 3 OR z = y AND x + y + z > 0 при х =
12, у = -20, z = 0;
г) x > 0 AND y > 0 OR x
< 0 AND y < 0 при х = -2, у = 9;

Контрольные вопросы
1. Перечислите стандартные
типы данных в Паскале.
2. Укажите отличие данных
действительного и целого типов.
3. Какие переменные называют
логическими и какие значения они могут принимать?
4. Какие логические операции
вы знаете?

Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Вычислительная система. Система программирования»
Цель:
ознакомиться с вычислительной
системой и системой программирования и  осуществлять анализ вычислительных систем.
 По
завершению практического  занятия студент должен уметь: осуществлять анализ вычислительных систем.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.

Задание
1. Ответить на вопросы:
1)       Что
такое вычислительная система?
2)       Какие
существуют типы вычислительных систем?
3)       Что
такое система программирования?
4)       Какие
виды систем программирования существуют?
2.  Проведите анализ
существующих вычислительных систем.
3. Проведите анализ
существующих систем программирования.
4. Заполните таблицу основных
систем программирования:

Наиболее популярные языки
  программирования

Соответствующие им визуальные среды быстрого
  проектирования программ для Windows

Контрольные вопросы
1. Какие средства систем
программирования вы знаете?
2. Что такое интегрированные
системы программирования?
3. Что такое системное
программирование?
4. Какие существуют основные
системы программирования?
Оформление отчета
В тетрадь для практических и
лабораторных работ записать тему практического занятия и цель. Ответить на
вопросы, не нарушая нумерации. Перечертить в тетрадь для практических и
лабораторных работ таблицу основных систем программирования и заполнить ее.
Например:

Наиболее популярные
  языки программирования

Соответствующие им
  визуальные среды быстрого проектирования программ для Windows

Бейсик (Basic) –
  для освоения требует начальной подготовки (общеобразовательная школа)

Microsoft
  Visual Basic

Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Лабораторное  занятие
форма текущего контроля

по теме: «Потоковый ввод данных. Вычисление логических операций.
Символьный вывод данных»
Цель:
формирование знаний и  умений по
работе с простейшими операторами языка. Приобретение навыков написания программ
с использованием различных форматов вывода данных.
 По
завершению практического  занятия студент должен уметь: писать программы с использованием различных форматов
вывода данных.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Основные сведения
Пример. Вводится число от
0 до 21. Вывести сообщение: число меньше 10, число больше 10, число равно 10.
При вводе числа больше 20 или меньше 0 должно выводиться сообщение «Ошибка
ввода».

Program Project1;
//заголовок программы
var a: integer;
//раздел описания переменных
begin
                      //начало раздела операторов
write('Введите число а=');
//вывод текста на экран
readln(а);                                                                                //ввод
значения а
   case a of
0..9:
writeln(‘число меньше 10’);
               11..20:
writeln(‘число больше 10’);

     10: writeln(‘число равно 10’);
else
writeln(‘Ошибка ввода’)
    end;
readln;
end.
Ход работы.
1. Записать пример в основных
сведениях в тетрадь для практических и лабораторных работ.
2. Решить задания,
представленные ниже.
Задание
1.
Дано натуральное число N
(N<100), определяющее возраст человека в годах. Дать для этого числа
наименование: "год", "года", "лет".
2.
Вводится число от 1 до 12,
определяющее месяц года. Дать название этого месяца года (1 — январь, 2 —
февраль, ..., 12 — декабрь).
3.
Вводится число от 1 до 20. Дать
название этого числа (1 — один, 2 — два, ..., 20 — двадцать).
4.
Вводятся числа 3, 4, 5,
определяющие весенний месяц года. Дать название этого месяца года (3 — март, 4
— апрель, 5 — май).
5.
Вводится число от 1 до 10. Дать
название этого числа (1 — один, 2 — два, ..., 10 — десять).
6.
Вводится число от 2 до 10. Вывести
сообщение: четное или нечетное введенное число.
7.
Вводится число от – 10 до 10.
Вывести сообщение: введенное число больше 0, меньше 0 или равно 0.
8.
Написать программу, которая
запрашивает у пользователя номер дня недели и выводит одно из сообщений:
«Рабочий день», «Суббота», «Воскресенье».
9.
Вводится номер месяца (1, 2, …,
12). Вывести количество дней в указанном месяце.
10. Вводится значение года в укороченной форме (от 0 по
10). Вывести значение года текущего столетия в полном формате (0 – 2000, 1 –
2001 и т.д.).
Контрольные вопросы
1.       Перечислите
стандартные типы данных в Паскале.
2.       Укажите отличие
данных действительного и целого типов.
3.       Какие переменные
называют логическими и какие значения они могут принимать?
4.       Какие логические
операции вы знаете?
5.       Как запустить
программу на трансляцию и выполнение?
6.       Как обозначается
начало и конец программы?
7.       Из каких разделов
состоит программа на языке Паскаль?
8.       Как в языке
Паскаль осуществляется вывод на экран?
9.       Для чего
предназначен оператор присваивания?
10.    Как вывести на
экран значение переменной?
11.    Из каких разделов
состоит программа на языке Паскаль?
Оформление отчета
В тетрадь для практических и
лабораторных работ записать тему лабораторного  занятия и цель. Записать пример
в основных сведениях в тетрадь для практических и лабораторных работ. Решить
задачу, представленную в заданиях (одну на выбор).
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Подпрограмма – процедура»
Цель:
научиться осуществлять работу с подпрограммой
– процедурой.
 По
завершению практического  занятия студент должен уметь: осуществлять работу с подпрограммой – процедурой.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Основные сведения
Процедура – это часть программы (подпрограмма),
имеющая имя и предназначенная для решения некоторой частной задачи (подзадачи).
Процедуры делятся по способам описания и обращения к ним.
Примеры  встроенных процедур:
·
 CLRSCR – процедура очистки
экрана. Результатом работы является стирание всей информации с экрана. Данная
процедура является примером процедур без параметров.
·
 GOTOXY (A, B) – процедура
позиционирования курсора на экране дисплея в точку с координатами (A, B). A и B
являются входными данными, следовательно, это пример процедуры с
параметрами-значениями.
·
 WRITE (A, B, ..., Q) – процедура
вывода информации на экран дисплея. Данная процедура – процедура с
параметрами-значениями.
·
 READ (A, B, ..., Q) – процедура
ввода информации в ЭВМ. При выполнении данной процедуры переменным A, B, ..., Q
присваиваются конкретные значения, т.е. данные передаются в основную программу,
и, значит, процедура является примером процедур с параметрами-переменными.
Заголовок процедуры без параметров выглядит как:

PROCTDURE <Имя процедуры>;

Вызываются такие процедуры путем написания в основной
программе имени этой процедуры. В виде процедуры без параметров оформляются
такие подзадачи, у которых нет входных и выходных данных, или же эти данные
удобнее передавать с помощью операторов присваивания: READ и WRITE.

Задание
1. Нарисовать квадрат с произвольной длиной стороны в
левом верхнем углу (длина стороны задается с клавиатуры).
В этой программе также надо оформить рисование
квадрата в виде процедуры, но уже с входным параметром-значением – длиной
стороны квадрата.
program RISUNOK_2;
var I: integer;
procedure KVADRAT (N: integer);
var J, K: integer;
begin
for J := 1 to N do write ('*'); writeln;
for J := 1 to N - 2 do
begin
write ('*'); for K := 1 to N - 2 do write
(' ');
writeln ('*');
end;
for J := 1 to N do write ('*');
end;
begin { Основная программа }
write ('Введите длину стороны – ');
readln (I);  clrscr; KVADRAT (I);
end.
2.
Ввести программу в среду программирования Pascal:
program PLOCHAD_3;
var AB, BC, CD, AD, AC, S1, S2, a, b, c:
real;
procedure GERON_3 (var S: real);
var P: real;
begin
P := (a + b + c)/2; S := sqrt (P*(P - a)*(P
- b)*(P - c));
end;
begin { Основная программа }
read (AB, BC, CD, AD, AC);
a := AB; b := BC; c := AC; GERON_3 (S1);
a := AD; b := AC; c := CD; GERON_3 (S2);
write ('S = ', S1 + S2)
end.
Что вычисляет данная процедура?

Контрольные вопросы
1.       Что такое
программа-процедура?
2.       Какую структуру
имеет программа-процедура?
3.       Какие существуют
встроенные процедуры?
Оформление отчета
В
тетрадь для практических и лабораторных работ записать тему лабораторного
занятия и цель. Записать примеры решения программ-процедур и результаты
выполнения в тетрадь для практических и лабораторных работ.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.: Питер,
     2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В. Создание
     Windows-приложений в среде Delphi: учебное пособие. - М.: СОЛОН-ПРЕСС,
     2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Подпрограмма - функция. Рекурсивная подпрограмма»
Цель:
научиться осуществлять работу с подпрограммой
функцией и рекурсивной программой.
 По
завершению практического  занятия студент должен уметь: осуществлять работу подпрограммой функцией и
рекурсивной программой.
Продолжительность: 2 аудиторных часа (90 минут)

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

Общая форма записи заголовка функции

FUNCTION имя (список параметров: тип): тип;
или
FUNCTION имя: тип;

Тип результата есть тип
значения функции. Список параметров такой же, что и для процедуры, только здесь
все параметры являются аргументами. Имя переменной, которая хранит значение
функции, совпадает с именем функции.
Итак, заголовок функции
отличается от заголовка процедуры не только сменой слова PROCEDURE на FUNCTION,
но и удалением из списка параметров параметра-результата с присвоением его типа
имени функции:
PROCEDURE <имя процедуры> (аргументы;
VAR параметр-результат: тип);
FUNCTION <имя функции> (аргументы): тип;
Другой особенностью описания функции является наличие
в нем хотя бы одного оператора присваивания, в левой части которого стоит имя
определяемой функции, а в правой – выражение для вычисления результата функции.
Очевидно, что тип этого выражения должен совпадать с указанным в заголовке
типом функции.
Вызов функции также отличается от вызова процедуры.
Если вызов процедуры осуществляется с помощью специального оператора вызова
(оператора процедуры), то функция вызывается только внутри некоторого
выражения. Для того, чтобы осуществить обращение к функции, необходимо
использовать ее имя со списком фактических параметров в каком-либо выражении,
тип которого совпадает с типом значения функции. Само же выражение, внутри
которого вызывается функция, может быть правой частью оператора присваивания,
частью логического выражения и пр.
Рекурсивные функции.
К функциям можно обращаться тремя способами: из тела
основной программы, из тела другой функции, из тела самой функции, т.е. функция
может вызывать саму себя. Функции называются рекурсивными, если в
описании функции происходит вызов самой себя, а процесс обращения – рекурсией.
Продемонстрируем использование рекурсии на примере вычисления значения
факториала произвольного натурального числа N.
В математике известно рекурсивное определение
факториала:

n! = 1   при n = 0;
n! = (n - 1)! × n    при n
> 0.
Это рекурсивное определение можно реализовать с
помощью соответствующей рекурсивной функции:
function FACTORIAL (VALUE: integer):
integer;
begin
iF VALUE = 0 then FACTORIAL := 1
else FACTORIAL := VALUE*FACTORIAL (VALUE -
1)
end;
Теперь можно обращаться к этой функции в теле основной
программы, как показано в следующем примере:

program FINDFACTORIAL;
var N: integer;
begin
writeln ('Введите число');
readln (N);
if N < 0  then writeln ('Нет факториала')
else writeln ('Факториал ', N, ' равен ', FACTORIAL (N))
end.

Задание
1. Определить вещественную функцию POWER, которая
должна иметь два параметра-аргумента – для показателя и для основания степени:
function POWER (FACTOR: real; EXP:
integer): real;
var COUNT: integer; TFACTOR: real;
begin
if EXP = 0 then POWER := 1
else begin
TFACTOR := FACTOR;
for COUNT := 2 to ABS (EXP) do
TFACTOR := TFACTOR*FACTOR;
if EXP < 0 then POWER := 1/TFACTOR
else POWER := TFACTOR
end
end;
Теперь можно эту функцию вызывать следующим образом:
а)
F := POWER(5.25, 3);
б)
WRITELN ("D = ", POWER
(5.25, -2):5:2);
в)
IF X > 2*POWER (6.2,
3) THEN WRITE ('ДА');
г)
A := POWER (X, 2) +
POWER (X, 3) + POWER (X, 4).

Контрольные вопросы
1.       Что такое
программа-функция?
2.       Какую структуру
имеет программа-функция?
3.       Что такое
рекурсия?
4.       Что такое
рекурсивные функции?
Оформление отчета
В тетрадь для практических и
лабораторных работ записать тему лабораторного  занятия и цель. Записать примеры
решения программ-функций и результаты выполнения в тетрадь для практических и
лабораторных работ.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб. федер.
     ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
4 семестр
МДК.01.01 Системное программирование.
Лабораторное  занятие
форма текущего контроля

по теме: «Разработка программного продукта с использованием
подпрограммы-процедуры, подпрограммы-функции и рекурсивной подпрограммы»
Цель:
формирование знаний и  умений при разработке
программного продукта с использованием подпрограммы-процедуры.
По
завершению лабораторного занятия студент должен уметь: осуществлять разработку программного продукта с
использованием подпрограммы-процедуры

Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.

Ход работы.
1. Записать примеры в тетрадь
для практических и лабораторных работ.
2. Решить задания,
представленные ниже.
Задание
Пример 1.
Вычислить значения функции f(x)=2 cos x+3, при x={1; 4; 7,5; 20}.
Вывести результаты в два столбца: в первом - значения x, во втором -
значения f(x). Вычисления провести двумя способами: с помощью функции и
процедуры.
Решение.
Аргумент и результат функции – действительные числа, поэтому используем тип
Real. В теле функции будет только оператор присваивания – для вычисления
значения выражения. Процедура отличается строкой заголовка, - для передачи в
основную программу результатов вычислений добавим параметр-переменную fx.
Чтобы вывести результаты в виде таблицы, используем форматный вывод.
program
proc_1;
function f (x: Real):Real;
begin
    f:=2*cos(x)+3
end;
procedure proc_f (x: Real; var fx: real);
begin
    fx:=2*cos(x)+3
end;
 var x, fx: real;
begin

Writeln('с использованием процедуры:');

Writeln('    x      f(x)');
  x:=1;   proc_f (x,fx); Writeln (x:6:2, fx:6:2);
  x:=4;   proc_f (x,fx); Writeln (x:6:2, fx:6:2);
  x:=7.5; proc_f (x,fx); Writeln (x:6:2, fx:6:2);
  x:=20;  proc_f (x,fx); Writeln (x:6:2, fx:6:2);
  Readln;

Writeln('с использованием функции:');

Writeln('    x   f(x)');
  Writeln(1:6, f (1):6:2);
  Writeln(4:6, f (4):6:2);
  Writeln(7.5:6:2, f (7.5):6:2);
  Writeln(20:6, f (20):6:2);
       Readln;
end.

Пример 2. Создать
рекурсивную функцию поиска i-го члена последовательности, заданной рекуррентной
формулой A1=const1, A2=const2, Ai=3Ai-2-Ai-1. Вывести через пробел значения рекурсивной функции при
значениях аргумента от 1 до 10 включительно.
Решение. По условию задачи аргумент может принимать
только целые значения, поэтому функция имеет параметр-значение типа Integer.
Выход из рекурсии в данном случае осуществляется при двух значениях аргумента
(при i=1, i=2), поэтому в рекурсивной функции необходимы два
вложенных условных оператора или же оператор выбора case. В приведенном
примере использованы операторы if, но попробуйте самостоятельно записать
решение с помощью оператора выбора. В основной программе значения аргумента -
целые последовательные числа, поэтому следует воспользоваться оператором цикла
с параметром for.
program proc_2;
function A (i: Integer): Integer;
begin
   if i=1 then A:=1 else
    if i=2 then A:=3 else А:=3*A(i-2)-A(i-1)
end;
  var i: Integer;
begin
   for i:=1 to 10 do Write (A(i),' ');
   Readln
end.
Пример 3: Для
чисел a, b, c найти значение выражения min(a,ab)+min(a,ac)+1 с
использованием функции вычисления минимального из двух чисел.
Пример 4: Дан
квадрат со стороной а, диагональ этого квадрата является стороной
второго квадрата, диагональ второго квадрата – стороной третьего. Найти длину
стороны третьего квадрата, используя функцию вычисления длины диагонали
квадрата по его стороне:

Контрольные вопросы
1.
В
чем состоит принципиальное отличие процедур от функций?
2.
Чем
отличается вызов функции от вызова процедуры?
3.
Какой
переменной присваивается значение в процедуре и в функции?
4.
Какие
переменные в языке Паскаль называются локальными, а какие глобальными?
5.
Какие
процедуры и функции называют рекурсивными?
6.
Как
отличить «обычную» функцию от рекурсивной?
Оформление отчета
В тетрадь для практических и
лабораторных работ записать тему лабораторного  занятия и цель. Записать примеры
в тетрадь для практических и лабораторных работ. Решить задачи, представленные
в заданиях.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru [Электронный
     ресурс]. - Режим доступа: http://codinglessons.ru/, свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Лабораторное  занятие
форма текущего контроля

по теме: «Разработка программы с использованием модуля»
Цель:
овладеть основными приемами работы с
одномерными и двумерными массивами, уметь различать в двумерном массиве
обработку строк и столбцов, а также отличать нахождение первых и последних
элементов последовательности, обладающих некоторым свойством.
 По
завершению лабораторного занятия студент должен уметь: уметь различать в двумерном массиве обработку строк и
столбцов, а также отличать нахождение первых и последних элементов
последовательности, обладающих некоторым свойством.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Основные сведения
Массив – это
структурированный тип данных. Массив состоит из нескольких элементов. Ко всему
массиву можно обращаться по его имени. Можно обращаться к его элементу, но для
этого надо задать индекс (индексы). Массивы бывают одномерные и многомерные.
Для объявления массива необходимо задать типы его индексов и компонент:

ARRAY [Тип индексов] OF <Тип копонент>;

Тип компонент массива – это просто тип данных, ассоциированный с каждой
компонентой массива. Тип компонент может быть любым REAL, INTEGER, CHAR,
BOOLEAN, перечислимым, интервальным. В качестве компоненты массива может быть
взят и тип массив.
Тип индекса должен быть одним из упорядоченных типов,
т.е. любым скалярным типом, кроме REAL: INTEGER, CHAR, интервальный,
перечислимый. Тип индекса определяет границы изменения индекса. Если сделана
попытка использовать несуществующую компоненту, то возникает ошибка (ошибка
неверного индекса).
Одномерный
массив можно задать (объявить) двумя способами:
1.
C помощью служебного слова TYPE
описывается тип массива, а затем с помощью VAR вводится переменная этого типа.

Общая форма записи

TYPE <тип массива> = ARRAY
[тип индекса] OF <тип компонент>;
VAR <переменная>: <тип массива>;

2.
С помощью слова VAR сразу
описывается  переменная типа массив.

Общая форма записи

VAR <переменная>: ARRAY [тип
индекса] OF <тип компонент>;

Например, объявление массива из 100 элементов типа
REAL можно осуществить двумя способами:
1.
type R100 = array
[1..100] of real;
var A: R100;
2.
var A: array [1..100]
of real.
Здесь задан массив с именем А, и его элементы имеют
имена: А[1],…,A[100]. Чаще всего для типа индекса используют интервальный тип
на основе типов INTEGER и CHAR. Однако можно в качестве индексов брать
перечислимый тип.
П р и м е р  1.  Подсчет числа вхождений букв в текст
определенной длины.
program COUNTER;
var COUNT: array ['a'..'z'] of integer;
CH: char; N: integer;
begin
for CH := 'a' to 'z' do
COUNT [CH] := 0; N := 0;
repeat
read (CH); N := N + 1;
if (CH >= 'a') and (CH <= 'z') then
COUNT [CH] := COUNT [CH] + 1;
until CH = '.';
for CH := 'a' to 'z' do
writeln (CH, COUNT [CH]:5);
end.
Пояснение. В
этом примере тип индекса есть интервальный тип на базе типа CHAR, а тип
компонент есть целое число. Таким образом, элементы массива – числа, а их
индексы – буквы, т.е. число элементов массива равно 26 (по числу букв
латинского алфавита).
Рассмотрим теперь случай, когда тип индекса задан
перечислимым типом, а компоненты массива представлены компонентами
интервального типа на базе типа INTEGER.
П р и м е р 2.  Присваивание переменной с именем
месяца числа дней этого месяца.
program NUMBRDAY;
type MONAT = (JAN, FEB, MAR, APR, MAY, JUN,
JUL, AUG,
SEP, OKT, NOV, DEC);
var DAY : array [MONAT] of 28..31; T :
MONAT;
begin
for T := JAN to DEC do
case T of
JAN, MAR, MAY, JUL, AUG, OKT, DEC: DAY [T]
:= 31;
APR, JUN, SEP, NOV: DAY [T] := 30;
FEB : DAY [T] := 28;
end;
end.

 Многомерные
массивы
Для определения позиции элемента в двумерном массиве
необходимы два индекса. Любой двумерный массив есть матрица, а матрица есть
таблица. Поэтому удобно описывать двумерные массивы путем указания границ
изменения индексов (номеров) строк и столбцов.
Например, таблица символов M × N,  где M  –
число строк и N – число столбцов, может быть описана:
var TAB : array [1..M, 1..N] of char;

Общая форма записи

VAR
  <имя> : ARRAY [тип индекса строки, тип индекса столбца]
OF <тип компонент>;

Однако двумерный массив можно интерпретировать как
вектор-столбец, каждый элемент которого, в свою очередь, является одномерным
массивом (вектор-строка). Этот подход к определению двумерного массива влечет
его описание с помощью двух строк, где первая содержит описание строки, а
вторая – описание столбца:

type LINE  = array [1..N] of char;
STOLB = array [1..M] of LINE;
var TAB : STOLB.

Здесь
TAB [I] – переменная типа LINE, а TAB [I][J] – переменная типа
CHAR.

Общая форма записи

TYPE
  <тип строки> = ARRAY [тип индекса] OF <тип компонент>;
<тип
  столбца> = ARRAY [тип индекса] OF <тип строки>;
VAR
  <переменная массива> : <тип столбца>;

 Сумма элементов таблицы над верхней
диагональю.
program SUMMA;
const M = 10; {число строк таблицы}
N = 10; {число столбцов таблицы}
type LINE = array [1..n] of integer;
TAB = array [1..m] of LINE;
var s, i, j:integer; MAS: TAB;
procedure VVODMASSIV (var MAS: TAB);
begin
¦ for i := 1 to M do
¦   for j := 1 to N do
¦     readln (MAS [i][j]);
end;
procedure VIVODMASSIV (var MAS:TAB);
begin
¦ for i := 1 to M do
¦  begin
¦   ¦ for j := 1 to N do
¦   ¦ write (MAS [i][j]:4,' '); writeln;
¦   end;
end;
                    procedure OBRABOTKA
(MAS: TAB; var SUM: integer);
begin
¦ SUM := 0;
¦ for i := 1 to M do
¦   for j := 1 to N do
¦     if j > i then SUM := SUM + MAS
[i][j];
end;
begin
|  VVODMASSIV (MAS);
|  writeln ('исходный массив');
VIVODMASSIV (MAS);
|  OBRABOTKA (MAS, s); writeln;
|  writeln ('сумма элементов = ',s);
end.

Ход работы.
1. Записать пример в основных
сведениях в тетрадь для практических и лабораторных работ.
2. Решить задания,
представленные ниже.
Задание
Пример 1.
Составить программу, позволяющую в одномерном массиве, состоящем из N
вещественных элементов, вычислить сумму положительных элементов.
Пример 2. В
двумерном массиве, состоящем из целочисленных элементов, в каждом столбце
поменять местами наибольший по модулю и последний не принадлежащий интервалу (a,
b) элементы массива.
Оформление отчета
Пример 1. Решение. При написании процедур ввода и вывода следует обратить
внимание, что элементы – вещественные числа, поэтому необходимо позаботиться о
верной обработке дробной части. Вычисление суммы оформим в виде функции с одним
аргументом - массивом. Локальными переменными функции будут индексная переменная
i и дополнительная переменная s для хранения текущей суммы элементов. В начале
тела функции обязательно обнуление s. Каждый элемент массива сравним с нулем,
и, если значение положительно, добавим его к искомой сумме s. В конце функции
запишем значение переменной s в результирующую переменную.
Пример 2. Решение.
Преобразования необходимо провести в каждом столбце массива, поэтому параметр
внешнего цикла в процедуре обработки - номер столбца j, а вложенного – номер
строки i.
Для
перестановки двух элементов в столбце массива необходимо найти номера их строк
n1 и n2, а затем поменять местами значения элементов с использованием
промежуточной переменной p.
Чтобы
найти наибольший по модулю элемент столбца, введем дополнительную переменную
max, которая будет хранить максимальное по модулю значение в текущем столбце
массива на данный момент. (Можно решить задачу без использования переменной
max. Подумайте, как это сделать.)
Программа
должна корректно работать с любыми входными данными, а значит и в тех случаях,
когда некоторые или даже все столбцы массива содержат только элементы из
интервала (a, b), и обмен значений в некоторых столбцах или во всем массиве не
нужен.
Контрольные вопросы
1.
Как
описываются в языке Паскаль одномерный и двумерные массивы?
2.
Может
ли массив содержать разнотипные данные?
3.
В
каком порядке указываются индексы при обращении к элементам двумерного массива?
4.
Привести
пример массива, описание которого выглядит следующим образом:  var A: array
[1..3, 20..24] of real.
5.
Можно
ли при обработке двумерных массивов использовать однократные циклы? Если да, то
приведите примеры.
6.
Если
в одномерном массиве проверяется «похожесть» его первой и второй части, то в
каких границах надо писать оператор for для «прохождения» по этому
массиву?
7.
Каким
образом надо находить первый и последний элементы одномерного массива,
обладающие некоторым свойством (отрицательный, наибольший, входящий в интервал
и пр.)?
Оформление отчета
В тетрадь для практических и
лабораторных работ записать тему лабораторного  занятия и цель. Записать пример
в основных сведениях в тетрадь для практических и лабораторных работ. Решить
задачу, представленную в заданиях (одну на выбор).
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Разработка программы с использованием модуля»
Цель:
научиться осуществлять разработку
программы с использованием модуля.
 По
завершению практического  занятия студент должен уметь: осуществлять разработку программы с использованием
модуля.
Продолжительность: 4 аудиторных часа (180 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.

Задание
I
вариант
Задание
1. Составить программу, позволяющую в
одномерном массиве, состоящем из N вещественных элементов, вычислить: сумму
модулей отрицательных элементов массива.
Задание
2. Дан двумерный массив целых чисел.
Поменять местами строку, содержащую максимум массива, со строкой, содержащей
его минимум.
II вариант

Задание
1. В двумерном массиве, состоящем из
целочисленных элементов, поменять местами:
в
каждом столбце наибольший по модулю и последний положительный элементы;
Задание
2. Определить в одномерном массиве
число соседств из двух чисел разного знака.
Контрольные вопросы
1.
Как
описываются в языке Паскаль одномерный и двумерные массивы?
2.
Может
ли массив содержать разнотипные данные?
3.
В
каком порядке указываются индексы при обращении к элементам двумерного массива?
4.
Привести
пример массива, описание которого выглядит следующим образом:  var A: array
[1..3, 20..24] of real.
5.
Можно
ли при обработке двумерных массивов использовать однократные циклы? Если да, то
приведите примеры.
6.
Если
в одномерном массиве проверяется «похожесть» его первой и второй части, то в
каких границах надо писать оператор for для «прохождения» по этому массиву?
7.
Каким
образом надо находить первый и последний элементы одномерного массива,
обладающие некоторым свойством (отрицательный, наибольший, входящий в интервал
и пр.)?
Оформление отчета
В тетрадь для практических и
лабораторных работ записать тему практического  занятия и цель. Записать
задания согласно своему варианту.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Лабораторное  занятие
форма текущего контроля

по теме: «Осуществление  разработки кода программного модуля на
современных языках программирования»
Цель:
научиться осуществлять разработку разработки
кода программного модуля на современных языках программирования.
 По
завершению лабораторного занятия студент должен уметь: осуществлять разработку разработки кода программного
модуля на современных языках программирования.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.

Задание
I
вариант
Задание
1. Составить программу, позволяющую в
одномерном массиве, состоящем из N вещественных элементов, вычислить:
a)       количество
элементов массива, не принадлежащих интервалу (a, b);
b)       наименьший из
элементов массива, принадлежащих отрезку [a, b];
c)       количество
элементов массива, равных первому элементу;
Задание
2. Составить программу обработки
данной строки, позволяющую:
a)
выписать
все прописные буквы из данной строки в порядке их следования;
b)
определить,
содержатся ли в тексте цифры;
c)
найти
общее количество круглых, квадратных и фигурных скобок в тексте;
d)
выписать
все знаки препинания из данной строки, сохранив их последовательность;
II
вариант

Задание
1. В двумерном массиве, состоящем из
целочисленных элементов, поменять местами:
a)       в каждом столбце
первый и последний отрицательные элементы;
b)       в каждой строке
наибольший и наименьший элементы;
c)       в каждом столбце
первый принадлежащий отрезку [a, b] и первый отрицательный
элементы.
Задание
2. Дана строка, состоящая из слов,
разделенных пробелами (одним или несколькими). Составить программу обработки
данной строки, выводящую через запятую:
a)
слова, одинаково читающиеся справа
налево и слева направо;
b)
слова заданной длины, в которые
входит данная буква;
c)
слова, начинающиеся с прописной
буквы, в которых все остальные буквы строчные;
d)
слова, которые начинаются и
заканчиваются одной и той же буквой и содержат хотя бы одну введенную с
клавиатуры букву.

Контрольные вопросы
1.     Как описываются в
языке Паскаль одномерный и двумерные массивы?
2.
Может
ли массив содержать разнотипные данные?
3.
В
каком порядке указываются индексы при обращении к элементам двумерного массива?
4.
Привести
пример массива, описание которого выглядит следующим образом:  var A: array
[1..3, 20..24] of real.
5.
Можно
ли при обработке двумерных массивов использовать однократные циклы? Если да, то
приведите примеры.
6.
Если
в одномерном массиве проверяется «похожесть» его первой и второй части, то в
каких границах надо писать оператор for для «прохождения» по этому
массиву?
7.
Каким
образом надо находить первый и последний элементы одномерного массива,
обладающие некоторым свойством (отрицательный, наибольший, входящий в интервал
и пр.)?
Оформление отчета
В тетрадь для практических и
лабораторных работ записать тему практического  занятия и цель. Записать
задания согласно своему варианту.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы объектного
     программирования на С# (C# 3.0, Visual Studio 2008). - М.: БИНОМ.
     Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум /Т.Павловская,
     Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа: http://www.codenet.ru/,
     свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Организация списка. Реализация процедур и функций работы со списком»
Цель:
научиться осуществлять организацию
списка и осуществлять реализацию процедур и функций работы со списком.
 По
завершению практического занятия студент должен уметь: осуществлять организацию списка и осуществлять
реализацию процедур и функций работы со списком.
Продолжительность: 1 аудиторный час (45 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.

Задание
1.
Ответить на вопросы:
1)
Что
такое динамические структуры данных?
2)
Что
такое статические структуры данных?
3)
Что
называется списком?

2.
Задача. Сформировать список, содержащий целые числа 3, 5, 1, 9.
Для
этого сначала определим запись типа S с двумя полями. В одном поле будут
содержаться некоторые данные (в нашем случае числа 3, 5 , 1 и 9), а в другом
поле будет находится адрес следующего за ним элемента.
Примечание.
Нужно понимать, что поле данных вообще говоря может содержать в себе сколько
угодно полей; это зависит от конкретно поставленной задачи.
Type
  Ukazatel = ^S;
  S = Record
       Data : integer;
       Next :
Ukazatel ;

End;
Таким
образом, мы описали ссылочный тип, с помощью которого можно создать наш
связанный однонаправленный список.
Заметим,
что все элементы списка взаимосвязаны, т. е. где находится следующий элемент,
"знает" только предыдущий. Поэтому самое главное в программе, это не
потерять, где находится начало списка. Поэтому на начало списка будем ставить
указатель с именем Head и следить за тем, чтобы на протяжении выполнения
программы значение этого указателя не менялось.
А
теперь опишем переменные для решения нашей задачи:
Var

Head, {указатель на начало списка}

x {вспомогательный указатель для создания очередного элемента списка}

: Ukazatel;
Создадим
первый элемент:

New(x);
{выделим место в памяти для переменной типа S}

x^.Data := 3; {заполним поле Data первого элемента}

x^.Next := Nil; {заполним поле Next первого элемента: указатель в Nil}

Head := x; {поставим на наш первый элемент указатель головы списка}
Таким
образом, к выделенной области памяти можно обратиться через два указателя.
Продолжим
формирование списка, для этого нужно добавить элемент в конец списка. Поэтому
вспомогательная переменная указательного типа х будет хранить адрес последнего
элемента списка. Сейчас последний элемент списка совпадает с его началом.
Поэтому
можно записать равенства:
Head^.Next = x^.Next;
Head^.Data = x^.Data;
Head
= x;
Выделим
область памяти для следующего элемента списка.

New(x^.Next);
Присвоим
переменной х значение адреса выделенной области памяти, иначе, переставим
указатель на вновь выделенную область памяти:
x
:= x^.Next;
Определим
значение этого элемента списка, иначе, заполним поля:
x^.Data := 5;
x^.Next := Nil;
Итак,
теперь у нас список содержит два элемента. Понятно, чтобы создать третий и
четвертый элементы, нужно проделать те же самые операции.
Оформить
создание списка в виде процедуры, в которой его элементы вводятся с клавиатуры.

Procedure Init(Var u : Ukazatel);
Var

x : Ukazatel;

Digit : integer; {Значение информационной части элемента списка}
Begin

Writeln('Введите список ');

Head := Nil; {Список пуст}

Writeln ('Введите элементы списка. Конец ввода
0');
  Read (Digit);
  if Digit <> 0
    then
{Формируем и вставляем первый элемент списка}

Begin
        New(x);
        x^.Next := Nil;
        x^.Data := Digit;
        Head := x
        Read (Digit);
        while
Digit<>0 do

Begin

New(x^.Next); {Формируем и вставляем элемент в конец списка}

x := x^.Next;
            x^.Next := Nil;
            x^.Data := Digit;
            Read(Digit);
          End;

Writeln;
End;
Рассмотрите
формирование списка несколько другим способом.

Procedure Init(Var u : Ukazatel);
Var
  x, y : Ukazatel;
  Digit : integer;
Begin

Writeln('Введите список ');

Head := Nil;

Writeln ('Введите элементы списка. Конец ввода
0');
  Read (Digit);
  while Digit<>0 do
    Begin
      New(y);
      y^.Next := Nil;
      y^.Data := Digit;
      if u=Nil
        then
          u := y
        else
          x^.Next := y;
      x := y;
      Read(Digit);
    End;
  Writeln;
End;
3.
Задание. Перепишите эту процедуру в тетрадь, дополните ее комментарием,
составьте чертеж и приготовьте преподавателю подробное объяснение работы данной
процедуры.

Контрольные вопросы

1)
Что
такое динамические структуры данных?
2)
Какая
существует классификация структур данных?
3)
Что
такое статические и динамические структуры данных?
4)
Что
такое указатели?
5)
Как
происходит объявление указателей?
6)
Что
называется списком?
7)       Какие
операции требуется выполнить для вставки в список его элемента?
8)       Можно
ли для построения списка обойтись одной переменной?
9)       Сколько
элементов может содержать список?
10)   Когда
прекращать ввод элементов списка?
Оформление отчета
В тетрадь для практических и
лабораторных работ записать тему практического  занятия и цель. Записать
задания и примеры решения задач со списками.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Решение задач с использованием стека. Решение задач с использованием
очереди»
Цель:
научиться осуществлять решение задач
с использованием стека и с использованием очереди.
 По
завершению практического занятия студент должен уметь: осуществлять решение задач с использованием стека и с
использованием очереди.
Продолжительность: 1 аудиторный час (45минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.

Задание
1.
Ответить на вопросы:
1)       Что
такое стек?
2)       Что такое очередь?

3)       Как происходит
объявление указателей?
4)       Что называется списком?

2.
Процедура формирования стека будет иметь следующий вид:
Procedure FormStack;
Var
  Stack : EXST; {Текущая переменная}
  Digit : integer;
Procedure writeStack(Var u : EXST; Digit : integer);
Var

x : EXST;
Begin

new(x); {выделяем память под хранение нового элемента стека}

x^.Data := Digit; {заполняем поле данных элемента}

x^.Next := u; {новый элемент "связываем" со стеком}

u := x; {созданный элемент определяем как вершину стека}
End;
Begin

Stack := Nil; {инициализация стека}

writeln('Введите элементы стека. Окончание
ввода – 0');
  read(Digit);
  while Digit <> 0 do
    begin
      writeStack(Stack, Digit);
      read(Digit);
    end;
End;
2.
Извлечение элемента из стека
В
результате выполнения этой операции некоторой переменной i должно быть
присвоено значение первого элемента стека, и значение указателя на начало
списка должно быть перенесено на следующий элемент стека.
Procedure readStack(Var u : EXST; Var i : integer);
Var

x : EXST;
Begin

i := u^.Data; {считываем значение поля данных в переменную}

x := u; {запоминаем адрес вершины стека}

u := u^.Next; {переносим вершину стека на следующий элемент}

dispose(x); {освобождаем память, занятую уже ненужным элементом стека}
End.
Недостатком
описанной процедуры является предположение о том, что стек не пуст. Для его
исправления следует разработать логическую функцию, определяющую, пуст ли
обрабатываемый стек.
Function FreeStack(u : EXST) : boolean;
Задание. Описать функцию и закончить программу, для чего
описать процедуру вывода значений элементов стека на экран (она аналогична
выводу списка). Протестировать программу, дополнить комментарием.

Занесение элемента в
очередь
Занесение элемента в очередь
реализуется как добавлению элемента в конец списка. Рассмотрите процедуру,
описанную ниже.
Procedure writeO(Var
BeginO, EndO : EXO; c : integer);
Var
  u : EXO;
Begin
  new(u);
  u^.Data := c;
  u^.Next := Nil;
  if BeginO = Nil {проверяем, пуста ли очередь}
    then
      BeginO := u {ставим
указатель начала очереди на первый созданный элемент}
    else
      EndO^.Next := u;
{ставим созданный элемент в конец очереди}
  EndO := u; {переносим
указатель конца очереди на последний элемент}
End;
Задание. Создайте программу
формирования очереди с использованием предложенной процедуры.
Извлечение элемента из
очереди
Процедура извлечения элемента
из очереди аналогична удалению элемента из начала списка. Поскольку извлечение
элемента из пустой очереди осуществить нельзя, опишем логическую функцию,
проверяющую, есть ли элементы в очереди.
Procedure
readO(Var BeginO : EXO; Var c : integer);
Var
  u : EXO;
Function FreeO(x1
: EXO): boolean;
Begin
  FreeO := (x1 =
Nil);
End;
Begin
  if FreeO(BeginO)
    then
      writeln('Очередь пуста')
    else
      begin
        c := BeginO^.Data;
{считываем искомое значение в переменную с}
        u := BeginO; {ставим
промежуточный указатель на первый элемент очереди}
        BeginO :=
BeginO^.Next;{указатель начала переносим на следующий элемент}
        dispose(u);
{освобождаем память, занятую уже ненужным первым элементом}
      end;
End;
Задание. Напишите программу,
содержащую все необходимые процедуры и функции работы с очередью.
Контрольные вопросы
1)
Что
называется стеком?
2)
Что
такое очередь?
3)       Какие
существуют стандартные процедуры для стека?
4)       Какие
существуют стандартные процедуры для очереди?
Оформление отчета
В тетрадь для практических и
лабораторных работ записать тему практического  занятия и цель. Записать
задания и примеры решения задач со стеком и очередью.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru [Электронный
     ресурс]. - Режим доступа: http://codinglessons.ru/, свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Лабораторное  занятие
форма текущего контроля

по теме: «Подсчет количества динамической памяти до реализации программного
продукта модульной структуры с использованием динамических структур, и после
выполнения программы»
Цель:
научиться осуществлять подсчет
количества динамической памяти до реализации программного продукта модульной
структуры с использованием динамических структур, и после выполнения программы.
 По
завершению лабораторного занятия студент должен уметь: осуществлять подсчет количества динамической памяти до
реализации программного продукта модульной структуры с использованием
динамических структур, и после выполнения программы.
Продолжительность: 2 аудиторных часа (90минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.

Задание
Пример
1. Используя стек, напечатать содержимое текстового файла, выписывая литеры
каждой его строки в обратном порядке.
Program MordovskihK;
Type
  EXST = ^ST;
  ST = record
       Data : char;
       Next : EXST;
  End;
Var
  Stack : EXST; {Текущая переменная}
  i : integer;
  f : text;
  Stroka : string;
  c : char;
Procedure writeStack(Var u : EXST; Simvol : char);
Var
  x : EXST;
Begin
  new(x);
  x^.Data := Simvol;
  x^.Next := u;
  u := x;
End;
Procedure Print(Var u : EXST);
Begin
  while u <> Nil do
    Begin
      write (u^.Data);
      u := u^.Next;
    End;
  End;
Begin
  Stack := Nil;
  Assign(f, 'c:\autoexec.bat');
  Reset(f);
  while Not Eof(f) do
    Begin
      readln (f, Stroka);
      For i := 1 to Length(Stroka) do
        writeStack(Stack, Stroka[i]);
      Print(Stack);
      writeln;
    End;
  close(f);
End.
Пример
2. Написать программу, проверяющую своевременность закрытия скобок в строке
символов.

Для
решения задачи определим стек, элементами которого являются символы:

Type
  EXST = ^ST;
  ST = record
       Data : char;
       Next :
EXST;

End;
Будем
двигаться по строке а : string до ее конца. Если в процессе просмотра
встретится одна из открывающих скобок ({, (, [ ), занесем ее в стек. При
обнаружении закрывающей скобки, соответствующей скобке, находящейся в вершине
стека, последняя удаляется. При несоответствии скобок выдается сообщение об
ошибке.

Пусть
факт наличия ошибки хранится в переменной логического типа f, то есть f=True,
пока ошибка не найдена и f=False в противном случае. Тогда условие работы цикла
будет выглядеть так:

while
(i<>Length(a)) and f do ...
Осталось
выяснить, как определить, соответствует ли очередная закрывающая скобка скобке,
находящейся в вершине стека. Можно заметить, что коды соответствующих друг
другу скобок отличаются не более чем на 2, что можно проверить с помощью
функции Ord(x)):

{
} 123–125
[
] 91–93
[[egg]]
40–41,
причем
код открывающей скобки меньше. Таким образом, можно записать следующее условие
соответствия:

if (Ord(a[i])–Ord(stack^.Data))<=2
  then

. . .
А
теперь просмотрите полный текст программы:

Program Skobki;
Type
  EXST = ^ST;
  ST = record
       Data : char;
       Next : EXST;
  end;
Var
  a : string;
  f : boolean;
  i : integer;
Procedure writeStack(Var x1 : EXST; c : char);
Var

u : EXST;
Begin

new(u); {создание нового элемента стека}
  u^.Data := c;
  u^.Next := x1;
  x1 := u;
{созданный элемент определить как вершину стека}
End;
Procedure
DelStack(Var x1 : EXST); {процедура удаления верхнего элемента стека}
Var
  u : EXST;
Begin
  u := x1;
  x1 := x1^.Next;
  dispose(u);
End;
Procedure
Solve(a : string); {проверка правильности расстановки скобок}
Var
  Stack : EXST;
Begin
  Stack := Nil;
  i := 1;
  while (i<=Length(a)) and f do
    begin
      if (a[i]='(') or (a[i]='{') or (a[i]='[')
        then
          writeStack(Stack , a[i])
        else
          if (a[i]=')') or (a[i]='}') or (a[i]=']')
            then
              if (Stack <> Nil) And (Ord(a[i]) -
Ord(Stack ^.Data) <= 2)
                then
                  DelStack(Stack)
                else
                  f := False;
      Inc(i);
  end;
end;
Begin
  writeln('Введите строку');
  readln(a);
  f := True;
  if a<>''
    then
      begin
        Solve(a);
        if f
          then

writeln('Все скобки расставлены верно')

else

writeln('Скобка ',a[i-1],' закрыта преждевременно');

end
    else
      writeln('Строка пуста');
  readln;
End.
Задание.
Разберите алгоритмы решения предложенных задач.
Примеры решения задач

Задание. Рассмотрите
приведенные программы. Наберите их на компьютере, дополните комментарием и
протестируйте. Имейте в виду, что уже рассмотренные выше подпрограммы в текстах
задач пропущены.

Пример 1. За один просмотр
файла действительных чисел напечатать элементы файла в следующем порядке:
сначала – все числа, меньшие а, затем – все числа из отрезка [а, b], и наконец
– все остальные числа, сохраняя исходный порядок в каждой из этих трех групп
чисел. Числа а и b задает пользователь.

Program MordovskihK;
Type
  EXO = ^O;
  O = record
       Data :
real;
       Next : EXO;
  End;
Var
  i, a, b : Real;
  Min, Vibr,
Other, EndMin, EndVibr, EndOther : EXO;
  f : File of
real;
  Stroka : string;
Procedure
writeO(Var BeginO, EndO : EXO; c : real);
  . . .
Procedure Print(u
: EXO);
  . . .
Begin
  Min := Nil;
  Vibr := Nil;
  Other := Nil;
  EndMin := Nil;
  EndVibr := Nil;
  EndOther := Nil;
  writeln ('Введите имя файла
>');
  readln(Stroka);
  writeln ('Введите промежуток >');
  readln(a, b);
  assign(f,
Stroka);
  reset(f);
  while not Eof(f)
do
    begin
      read(f, i);
        if i<a
          then

writeO(Min, EndMin, i)
          else
            if
(i>=a) and (i<=b)
              then

writeO(Vibr, EndVibr, i)
              else
                writeO(Other,
EndOther, i)
    end;
  close(f);
  writeln('Числа,
меньшие ', а);
  Print(Min);
  writeln('Числа из промежутка [', а, ',' , b, ']');
  Print(Vibr);
  writeln('Числа,
большие ', b);
  Print(Other);
End.
Пример 2. Из заданного текста
перенести все цифры в конец каждой строки, сохранив их порядок.

Program BaranovA;
Type
  EXO = ^O;
  O = record
       Data :
char;
       Next : EXO;
  End;
Var
  O1, EndO1, O2,
EndO2 : EXO;
  f1, f2 : text;
  Name, NewName,
Stroka, NewStroka : string;
Procedure
writeO(Var BeginO, EndO : EXO; c : char);
  . . .
Procedure
readO(var u : EXO, var c: char);
  . . .
Procedure
ModifStr(St : string; var NewSt : string);
Var
  i : integer;
  l : char;
begin
  O1 := Nil;
  EndO1 := Nil;
  O2 := Nil;
  EndO2 := Nil;
  NewSt := '';
  for i := 1 to
Length(St) do
    if St[i] in
['1', '2', '3', '4', '5', '6', '7', '8', '8', '9', '0']
      then
        writeO(O2,
EndO2, St[i])
      else
        writeO(O1,
EndO1, St[i]);
  while O1
<> Nil do
    begin
      readO(O1,
l);
      NewSt :=
NewSt + l;
    end;
  while O2
<> Nil do
    begin
      readO(O2,
l);
      NewSt :=
NewSt + l;
    end;
End;
Begin
  write('Введите имя исходного файла: ');
  readln(Name);
  write('Введите имя
файла-результата: ');
  readln(NewName);
  assign(f1,
Name);
  assign(f2,
NewName);
  reset(f1);
  rewrite(f2);
  while not
Eof(f1) do
    begin
      readln(f1,
Stroka);

ModifStr(Stroka, NewStroka);
      writeln(f2,
NewStroka);
    end;
  close(f1);
  close(f2);
End.
Контрольные вопросы

1)
Что
называется кольцом?
2)
Как
происходит формирование кольца?

Оформление отчета
В тетрадь для практических и
лабораторных работ записать тему практического  занятия и цель. Записать
задания и примеры решения задач со стеком и очередью.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Создание и заполнение внешнего фала. Изменение данных файла»
Цель:
научиться осуществлять решение задач
с использованием стека и с использованием очереди.
 По
завершению практического занятия студент должен уметь: осуществлять решение задач с использованием стека и с
использованием очереди.
Продолжительность: 1 аудиторный час (45минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Основные сведения
В языке программирования Паскаль для работы с данными,
хранящимися в файлах, должны быть определены переменные файлового типа, через
которые далее обеспечивается связь между файлом на диске и программой.
Типизированный файл в Паскале интерпретируется как
последовательность (список) значений определенного (одного и того же) базового
типа. Например, если в файле на диске хранится список вещественных чисел, то
переменная в языке Pascal, через которую можно получить к ним доступ, может
быть описана так:
f: file of real;
Файловый тип определяется служебными словами file of,
далее идет указание базового типа, который может быть любым, кроме файлового.
Тут следует понимать такую особенность. В файле могут
храниться числа, но в pascal-программе они могут быть интерпретированы как
символы или строки. Все зависит от выбранного базового типа при определении
файловой переменной. Возможны разные ситуации.
При определении переменной файлового типа также в
программе появляется скрытый (неявный) текущий указатель файла. Его назначение
– указывать на конкретный элемент файла (обеспечивать доступ к нему).
В языке программирования Паскаль все действия с файлом
(чтение, запись) производятся поэлементно. Действия совершаются именно над тем
элементом файла, на который указывает текущий указатель файла. После того как
действие будет завершено, указатель перемещается к следующему элементу. Все
элементы файла пронумерованы, начиная с нуля.
Операции с файловыми переменными включают:
установочные и завершающие операции;
ввод и вывод;
перемещение по файлу;
специальные операции.
Задание
1.
Разобрать пример создания файла и запись данных в него
var
    f: file of char;
    c: char;
    i, n: byte;
 begin
    assign (f, 'c:\file.txt');
    rewrite (f);

write ('Количество символов: ');
    readln (n);
     for i:=1 to n do begin
        write ('Введите символ:
');

readln (c);

write (f, c);
    end;
     close (f);
 end.
Процедура assign обеспечивает
связь файловой переменной программы с реальным файлом на диске. Первым
аргументом указывается переменная, вторым – адресное имя файла.
Процедура rewrite открывает
файл в режиме записи, т.е. мы можем вводить данные в файл с помощью процедуры
вывода из программы write. Если указанный файл отсутствует на диске, то он
будет создан. Если файл существует и содержит данные, то все они будут удалены
и заменены в дальнейшем новыми (перезаписаны).
Запись
данных в файл – результат выполнения процедуры write (f, c),
где f – файловая переменная, а с – выводимый из программы,
но вводимый в файл символ.
В
конце требуется закрыть файл и «освободить» переменную f. Это делается с
помощью процедуры close.
2.
Разобрать пример чтения данных из файла
var
    f: file of char;
    c: char;
 begin
    assign (f, 'c:\file.txt');
    reset (f);
     while not eof (f) do begin
        read (f, c);
        writeln (c);
    end;
     close (f);
 readln
end.
Процедура
reset открывает файл для чтения. Т.е. мы можем в дальнейшем в программе
извлекать данные из файла с помощью процедуры read.
Данные
извлекаются «порциями» базового типа. В данном примере – это char (символы).
Чтение
данных из файла продолжается до тех пор, пока не будет достигнут конец файла.
Функция eof проверяет достигнут ли конец файла, переданного ей в
качестве аргумента и, если достигнут, возвращает true. Выражение not
eof (f) проверяет обратное – то, что конец файла еще не достигнут.
Функция IOResult
var
    f: file of char;
    c: char;
    r: integer;
 begin
    assign (f, 'c:\file1.txt');
     {$I-}
    reset (f);
    {$I+}
     r := ioresult;
     if r <> 0 then
        writeln ('Такого файла нет')
    else
        while not eof (f) do begin
            read (f, c);
            writeln (c);
        end;
     close (f);
 readln
end.
Файл,
из которого мы собираемся ввести данные в программу, может отсутствовать или
быть недоступным. В этом случае, при запуске программы на выполнение происходит
аварийный выход из нее.
Чтобы
избежать преждевременного выхода из программы, можно отключить автоматический
контроль ошибок ({$I-}) и воспользоваться функцией IOResult.
Функция IOResult возвращает
ноль лишь в том случае, если файл существует.
Редактирование файла
var
    f: file of char;
    c: char;
    n: integer;
 begin
    assign (f, 'c:\file.txt');
    reset (f);
     write ('Номер элемента: ');
    readln (n);
     seek (f, n);

write ('Новый символ: ');
    readln (c);
    write (f, c);
     close (f);
 readln
end.
В
языке программирования Pascal для редактирования файлов предназначена
процедура seek. В качестве аргументов она принимает файловую переменную и
номер заменяемого элемента. В это место помещается текущий указатель файла.
Далее с помощью write производится запись в файл.
Предварительно
файл необходимо открыть для чтения (reset).
Контрольные вопросы
1)
Что
называется файлом?
2)
Какие
существуют виды файлов?
3)       Что
такое внешний файл?
Оформление отчета
В тетрадь для практических и
лабораторных работ записать тему практического  занятия и цель. Записать
задания и примеры решения задач с файлами.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для программиста
     [Электронный ресурс]. - Режим доступа: http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим доступа:http://www.youtube.com/user/visvivatutorials,
     свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Разработка программного продукта с использованием файла»
Цель:
научиться осуществлять разработку
программного продукта с использованием файла
По
завершению практического занятия студент должен уметь: осуществлять разработку программного продукта с
использованием файла
Продолжительность: 4 аудиторных часов (180 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Основные сведения
Типизированные
файлы
Более
характерным для Pascal являются типизированные файлы, или файлы произвольного
доступа. Основным свойством этих файлов является то, что их структура данных
представляет собой последовательность компонентов одного типа. Описывают
подобный файл словосочетанием file of с последующим указанием типа компонентов
файла, число которых (длина файла) не фиксируется:
var
имя_файла: file of тип_компонентов
Поскольку
известен тип элементов файла, а следовательно, и объем памяти, отводимой под
каждый из них, можно рассчитать позицию каждого из элементов внутри файла. Это
позволяет организовать непосредственный доступ к любому элементу
типизированного файла. Так, например, рассмотрим описание:
var

                FileInt:
file of Integer
В
этом описании указано, что элементами файла являются данные типа Integer,
занимающие 2 байта (или 4?). При этом отпадает необходимость в специальном
разделении элементов файла, как это делалось в текстовых файлах. Также возможен
произвольный доступ к элементам данных (этим типизированный файл несколько
напоминает одномерный массив).
Чтобы
можно было работать с типизированным файлом, необходимо, как и для текстовых
файлов, сначала связать имя файловой переменной с внешним именем файла
(оператор Assign). Затем нужно открыть его (используются операторы Reset и
Rewrite, но не Append). Операторы Reset и Rewrite открывают файл и для чтения,
и для записи (а не только для чтения или только для записи, как при
использовании текстовых файлов). Отличие их в том, что оператор Reset открывает
только существующий файл (если такого файла нет, будет сгенерирована ошибка
времени выполнения). С другой стороны, оператор Rewrite создает новый файл
(если файл с таким именем уже имеется, то он будет уничтожен и создан заново).
При открытии файла с ним связывается текущий указатель файла, который
позиционируется на его первый элемент. Оперировать можно только тем элементом
файла, на который ссылается указатель файла. При чтении или записи элемента
файла происходит автоматическое перемещение указателя на следующий элемент.
Чтение из типизированного файла производится оператором Read (но не ReadLn), а
запись в него — оператором Write (но не WriteLn). Однако следует помнить, что в
списке вывода оператора Write могут быть только переменные. Типы элементов
файла и типы переменных в списках ввода-вывода должны быть согласуемы по
присваиванию. Элементами типизированных файлов могут быть числовые, символьные,
булевы, строковые значения, массивы, записи, но не файлы или структуры с
файловыми элементами.
Узнать
количество элементов типизированного файла (размер файла) можно с помощью
функции FileSize, для которой используется следующий синтаксис:
FileSize(имя_файла)
Например, если переменная k имеет тип LongInt, а f – файловая
переменная типизированного файла, то оператор k := FileSize(f), записывает в переменную
k размер файла f.
Элементы типизированного файла нумеруются с нуля (порядковый номер
последнего элемента файла на единицу меньше размера файла). Чтобы узнать, на
каком элементе располагается указатель файла, используют функцию FilePos:
FilePos(имя_файла)
Текущим положением указателя можно управлять, для чего служит процедура
Seek, которая использует следующий синтаксис:
Seek(имя_файла, номер_элемента)
Второй параметр (тип LongInt) задает номер элемента (отсчет от 0), на
который должен переместиться указатель файла. Рассмотрим несколько примеров.
Перейти к пятому (фактически шестому) элементу файла f:
Seek(f, 5);
Перейти к предыдущему элементу:
Seek(f, FilePos(f)-1);
Перейти в конец файла:
Seek(f, FilePos(f)-1);
Как и для текстовых файлов, можно использовать функцию Eof(имя_файла),
которая возвращает значение True, если текущий указатель расположен на признаке
конца файла (т. е. при выполнения равенства FilePos(имя_файла) =
FileSize(имя_файла)).
Процедура Seek и функция FilePos и FileSize позволяют легко
осуществлять коррекцию элементов типизированного файла, имя которого указано в
качестве е параметра, начиная с элемента, на котором расположен указатель.
Однако уничтожить элемент внутри файла нельзя, для этого файл должен быть
перезаписан.
Текстовые файлы могут быть созданы текстовым редактором. Однако
типизированные файлы создаются в результате работы какой-либо программы.
В Pascal существует несколько процедур для работы с файловой
структурой.
Процедура Rename служит для переименования файла или каталога.
Синтаксис процедуры следующий:
Rename(файловая_переменная, новое_имя)
Второй параметр задается строковым выражением и указывает новое внешнее
имя файла или каталога.
Для уничтожения файла в Pascal используется процедура Erase,
единственным параметром которой является внутреннее имя файла.
Erase(файловая_переменная)
Эти две процедуры работают только с закрытым файла, но предварительно с
помощью оператора Assign файловая переменная (тип которой неважен) должна быть
связана с внешним именем файла (или каталога, если переименовывается каталог).
Четыре процедуры (ChDir, MkDir, RmDir и GetDir) в Pascal обеспечивают
работу с каталогами.
Первые три процедуры используют один и тот же синтаксис:
ChDir(каталог)
MkDir(каталог)
RmDir(каталог)
Во всех трех случаях параметр задается строковым выражением и указывает
имя каталога в интерпретации MS DOS.
Процедура ChDir изменяет текущий каталог на указанный, процедура MkDir
создает новый каталог с указанным именем, а процедура RmDir уничтожает каталог
при условии, что он пустой.
Процедура GetDir позволяет определить имя текущего каталога на
указанном диске. Синтаксис процедуры таков:
GetDir(диск, каталог)
Здесь параметр диск представляет собой выражение типа Word, задающее
номер диска (0 – активный диск, 1 – диск A, 2 – диск B и т. д.). Параметр
каталог – это переменная типа string, которая служит для возврата пути к
текущему каталогу на диске, номер которого указан в качестве первого параметра
процедуры.

Задание
1.
Разобрать пример создания типизированного файла.
Пример
записи данных в типизированный файл:
type
    t_subscriber = record
      surname: string[20];
      tel: LongInt;
    end;

var
    subscriber: t_subscriber;
    f: file of t_subscriber;
    i: Integer;

begin
  Assign(f,'notebook.dat');
  Rewrite(f);
  for i:=1 to 5 do begin
    with subscriber do begin
      Write('Surname: ');
      ReadLn(surname);
      Write('Phone: ');
      ReadLn(tel);
    end;
    Write(f, subscriber);
  end;
  Close(f);
end.
Пример
последовательного доступа к типизированному файлу:
type
    t_subscriber = record
      surname: string[20];
      tel: LongInt;
    end;
 var
    subscriber: t_subscriber;
    f: file of t_subscriber;
    s: string[7];
 begin
  Assign(f,'notebook.dat');
  Reset(f);
  while not Eof(f) do begin
    Read(f, subscriber);
    with subscriber do begin
      str(tel,s);
      if Copy(s,1,2) = '33' then
        tel := tel+4000000;
    end;
    Seek(f,FilePos(f)-1); // возврат указателя назад
    Write(f,subscriber);
  end;
  Close(f);
end.
2. Разобрать
пример обращения к нетипизированному файлу.
Пример копирования файла:
const
  CountRead = 512;
// кол-во читаемых записей.
   // При длине записи в 1
байт - размер буфера.
 var
  file_in,
file_out: file;
  name1, name2:
string;
  num_read, num_write:
word; // фактич. считанные/записанные записи
  buf:
array[1..CountRead] of char; // буфер
 begin
  Write('File 1:
');
  Readln(name1);
  Write('File 2:
');
  Readln(name2);
  Assign(file_in,
name1);
{$I-}

Reset(file_in,1);
{$I+}
  if IOResult
<> 0 then begin
    WriteLn('Файл-оригинал не найден'); Halt
  end;
  Assign(file_out,
name2);

Rewrite(file_out, 1); // длина записи 1 байт
  repeat

BlockRead(file_in, buf, CountRead, num_read);

BlockWrite(file_out, buf, CountRead, num_write);
  until (num_read
= 0) or (num_write <> num_read);
  writeln('Copying
is completed');
  if num_read
<> num_write then
    writeln('Not
enough space');
  close(file_out);
close(file_in);
end.
3. Выяснить какие процедуры
представлены в данной программе:
var
  f: text;
  s: string;
 begin

Assign(f,'a.txt'); // связываемся с файлом
  Rename(f,'b.txt'); // переименовываем его
   MkDir('foto'); // создаем
каталог
  ChDir('foto'); // переходим
в него
  GetDir(0,s);  // полное имя
текущего каталога записываем в s
  writeln(s);
   ChDir('..'); //
поднимаемся на уровень вверх
  rewrite(f); // открываем
файл на запись
  write(f,s); // записываем
туда строку
  close(f);
  readln; // пока не нажата
клавиша, вы можете видеть каталог
  RmDir('foto'); // удаляем
каталог
 end.
Контрольные вопросы
1)
Какой
файл называется типизрованным?
2)
Какой
файл называется нетипизрованным?
3)
В
чем отличия типизированного от нетипизированного файлов?

Оформление отчета
В тетрадь для практических и
лабораторных работ записать тему практического  занятия и цель. Записать
задания и примеры решения задач с файлами.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/.
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК.01.01 Системное программирование.
Лабораторное  занятие
форма текущего контроля

по теме: «Работа с файлом, как с переменной»
Цель:
научиться осуществлять работу с
файлом, как с переменной.
По
завершению лабораторного занятия студент должен уметь: осуществлять работу с файлом, как с переменной.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Задание
1.
Разобрать пример создания текстового файла.
Пример. В текстовом файле
f.txt через пробел и записаны целые числа. Переписать в файл f1.txt из файла
f.txt все числа, за исключением максимальных (предполагается, что их может быть
несколько).
var f,f1: Text;
    a,max:
LongInt;
    flag: Boolean;
begin

Assign(f,'f.txt');
  Reset(f);
  while not Eof(f)
do begin
    Read(f,a);
    if a>max
then
      max := a;
  end;

Assign(f1,'f1.txt');
  Rewrite(f1);
  Reset(f);
  while not Eof(f)
do begin
    Read(f,a);
    if
a<>max then

WriteLn(f1,a);
  end;
  Close(f);
  Close(f1);
end.
В примере файл f.txt
прочитывается два раза. Первый раз для определения максимального числа, второй
раз — для считывания чисел и их записи во второй файл. Данный алгоритм
используется, если максимальных чисел в файле несколько.
2. Задача: Создать файл X
компонентами которого являются элемента массива M. Переписать из файла X в файл
Y все компоненты, которые стоят на четных местах. Прочитать файл Y.
M = (0,1; 5,6; 0.8; 2,4; 7,3;
6,8; 0,5; 2,3;)
Оформление отчета
В тетрадь для практических и
лабораторных работ переписать тему и цель практического занятия. Записать
задачи и результаты.
Контрольные вопросы
1)
Что
такое текстовый файл?
2)       Назовите общие и
отличительные черты типизированного и текстового файла.
3)       Зачем используется
специальная файловая переменная? Как устанавливается
4)       соответствие
файловой переменной файлу во внешней памяти?
5)       Что общего у
процедуры Reset и Rewrite и чем они отличаются?
6)       Какие отличия
существуют в использовании процедуры Reset при открытии
7)       различных типов
файлов (текстовых, типизированных)?
8)       Зачем применяется
процедура Close?
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа: http://www.codenet.ru/,
     свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа: http://window.edu.ru/resource/359/77359,
     свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Задачи и особенности прикладного программирования»
Цель:
научиться анализировать задачи и
особенности прикладного программирования.
По
завершению практического занятия студент должен уметь: анализировать задачи и особенности прикладного
программирования.
Продолжительность: 1 аудиторный час (45 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Задание
1. Ответить на вопросы:
1)
Что
такое прикладное программирование?
2)
Что
такое задачи и особенности прикладного программирования?
3)
Какие
существуют основные цели прикладного программирования?
4)
Какие
программы относятся к прикладным?
2. Осуществить обзор и анализ прикладных программ.

Оформление отчета
В тетрадь для практических и
лабораторных работ переписать тему и цель практического занятия. Записать ответы
на поставленные вопросы и осуществить обзор и анализ прикладных программ.
Контрольные вопросы
1.
Что
такое прикладное программирование?
2.
Что
такое задачи и особенности прикладного программирования?
3.
Какие
существуют основные цели прикладного программирования?
4.
Какие
программы относятся к прикладным?

Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Анализ языков программирования»
Цель:
научиться осуществлять анализ языков
программирования.
По
завершению практического занятия студент должен уметь: осуществлять анализ языков программирования.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Задание
1. Ответить на вопросы:
1)
Что
такое языки программирования?
2)
Какие
существуют языки программирования?
3)
Какие
языки программирования являются более распространенными?

2. Создать презентацию на тему: «Современные языки
программирования».
Оформление отчета
В тетрадь для практических и
лабораторных работ переписать тему и цель практического занятия. Записать
ответы на поставленные вопросы.
Презентация должна
соответствовать следующим требованиям:
а) на первом слайде
указывается тема презентации, курс и группа учащегося, Ф. И.. О. учащегося и
Ф.И. О. руководителя;
б) шрифт текста: Times Roman, 14, интервал 1,15. Заголовки Times Roman 18(можно использовать жирный);
в) цветовая гамма спокойных
тонов. Текст должен быть читаемым;
г) картинки и фотографии должны
быть понятными, если необходимо подписаны или прокомментированы.
д) на последнем слайде
обязательно благодарим за внимание.
В тетради для практических и
лабораторных пройти тест ответить по порядку на вопросы, не нарушая нумерации.
Ответы должны быть полными.
Провести анализ интерфейсов
системных плат. (в произвольной форме оформить в тетради для практических и
лабораторных работ)
Обязательно сделайте выводы
по рассмотренным языкам программирования
Контрольные вопросы
1.
Что
такое языки программирования?
2.
Какие
существуют языки программирования?
3.
Какие
языки программирования являются более распространенными?

Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru [Электронный
     ресурс]. - Режим доступа: http://codinglessons.ru/, свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Анализ алгоритмической и объектно-ориентированной декомпозиции»
Цель:
научиться осуществлять анализ алгоритмической
и объектно-ориентированной декомпозиции.
По
завершению практического занятия студент должен уметь: осуществлять анализ алгоритмической и
объектно-ориентированной декомпозиции
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Задание
1. Ответить на вопросы:
1)
Что
такое композиция и декомпозиция?
2)
Какие
существуют виды декомпозиции?
3)
Какие
существуют методы декомпозиции?
4)
Какие
существуют основания декомпозиции?

2. Провести анализ алгоритмической декомпозиции и
объектно-ориентированной.

Оформление отчета
В тетрадь для практических и
лабораторных работ переписать тему и цель практического занятия. Записать ответы
на поставленные вопросы.
Анализ должен содержать
преимущества и недостатки декомпозиций, которые занести в таблицу.

Контрольные вопросы
1.
Что
такое композиция и декомпозиция?
2.
Какие
существуют виды декомпозиции?
3.
Какие
существуют методы декомпозиции?
4.
Какие
существуют основания декомпозиции?

Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа: http://window.edu.ru/resource/359/77359,
     свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Отладка модуля программы»
Цель:
научиться осуществлять анализ языков
программирования.
По
завершению практического занятия студент должен уметь: осуществлять анализ языков программирования.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Задание
1. Ответить на вопросы:
1)
Что
такое отладка программного средства?
2)
Что
такое оптимальная стратегия отладки программного модуля?

2. Перейти по ссылке http://bourabai.ru/alg/pro10.htm и записать в тетрадь для
практических и лабораторных работ принципы и виды отладки программного средства.
3. Перейти
по ссылке http://bourabai.ru/alg/pro10.htm и записать в тетрадь для практических и лабораторных
работ правила отладки программного средства.
4. Осуществите анализ автономной отладки
программного средства, который включает суть, преимущества и недостатки
автономной отладки программного средства.
5. Проведите отладку модуля в среде программирования
Pascal, результаты запишите в тетрадь для практических и лабораторных работ.
var
  file_in,
file_out: file;
  name1, name2:
string;
  num_read,
num_write: word; // фактич. считанные/записанные записи
  buf:
array[1..CountRead] of char; // буфер
 begin
  Write('File 1:
');
  Readln(name1);
  Write('File 2:
');
  Readln(name2);
  Assign(file_in,
name1);
{$I-}

Reset(file_in,1);
{$I+}
  if IOResult
<> 0 then begin
    WriteLn('Файл-оригинал не найден'); Halt
  end;
  Assign(file_out,
name2);

Rewrite(file_out, 1); // длина записи 1 байт
  repeat

BlockRead(file_in, buf, CountRead, num_read);

BlockWrite(file_out, buf, CountRead, num_write);
  until (num_read
= 0) or (num_write <> num_read);
  writeln('Copying
is completed');
  if num_read
<> num_write then
    writeln('Not
enough space');
  close(file_out);
close(file_in);
end.
Оформление отчета
В тетрадь для практических и
лабораторных работ переписать тему и цель практического занятия. Записать ответы
на поставленные вопросы. Записать в тетрадь для практических и лабораторных
работ принципы и виды отладки программного средства,  правила отладки
программного средства, анализ автономной отладки программного средства, модуль
и результаты отладки данного модуля.
Контрольные вопросы
1.
Что
такое отладка программного средства?
2.
Что
такое оптимальная стратегия отладки программного модуля?
3.
Что
такое абстрактная отладка программного модуля?
4.
Какие
существуют принципы и виды
отладки программного средства.

Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru [Электронный
     ресурс]. - Режим доступа: http://codinglessons.ru/, свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Компиляция программы и сборка исполняемого модуля»
Цель:
научиться осуществлять компиляцию
программы и выполнять сборку исполняемого модуля.
По
завершению практического занятия студент должен уметь: осуществлять компиляцию программы и выполнять сборку
исполняемого модуля.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Основные сведения
Концепция типа
данных
Основная цель любой
программы состоит в обработке данных. Данные различного типа хранятся и
обрабатываются по-разному. В любом алгоритмическом языке каждая константа,
переменная, результат вычисления выражения или функции должны иметь
определенный тип.
Все типы языка С++
можно разделить на основные и составные. В языке С++ определено шесть основных
типов данных для представления целых, вещественных, символьных и логических
величин. На основе этих типов программист может вводить описание составных
типов. К ним относятся массивы, перечисления, функции, структуры, ссылки,
указатели, объединения и классы.
При обработке
данных достаточно часто приходится работать с рядом переменных одинакового типа
(и описывающих одинаковые объекты). В этом случае эти переменные имеет смысл
объединить одним идентификатором. Это позволяют сделать массивы.
Массивы - это
группа элементов одинакового типа (float, char, int и т.п.). Из объявления
массива компилятор должен получить информацию о типе элементов массива и их
количестве.
Работа с массивами
облегчает понимание и написание программы, когда для обозначения похожих
элементов используется один идентификатор. Однако в ряде случаев приходится
обрабатывать разнородные элементы, описывающие один объект. В этом случае
вместо массива используется структура.
Объявление
структуры
Структура - это
совокупность логически связанных переменных, возможно, различных типов,
сгруппированных под одним именем для удобства дальнейшей обработки. Cтруктура -
это составной объект, в который входят элементы любых типов, за исключением
функций.
В отличие от
массива, который является однородным объектом, структура может быть неоднородной.
Тип структуры
определяется записью вида:
struct
[имя_структуры] {
тип_элемента_структуры
имя_ элемента1; // описания полей структуры
тип_элемента_структуры
имя_ элемента2;
...
тип_элемента_структуры
имя_ элементаN;
}
[список_объявляемых_переменных];
Здесь имя_структуры
— это любое имя, соответствующее синтаксису языка Си, описания полей структуры
— любая последовательность описаний переменных, имена и типы этих переменных
могут быть произвольными. Эти переменные называются полями структуры. Заканчивается
описание структуры закрывающей фигурной скобкой. За закрывающей фигурной
скобкой в описании структуры обязательно следует точка с запятой.
Типом элемента
структуры может быть:
другой структурный
тип (допускаются вложенные структуры);
указатель на данный
структурный тип;
неполно объявленный
структурный тип;
любой другой
базовый или производный тип, не ссылающийся рекурсивно на объявляемый
структурный тип.
Точно так же, как в
случае любого другого базисного типа, за правой фигурной скобкой, закрывающей
список членов, может следовать список переменных. Оператор
struct \( ...\)
x,y,z;
синтаксически
аналогичен
int x,y,z;
в том смысле, что
каждый из операторов описывает x, y и z в качестве переменных соответствующих
типов и приводит к выделению для них памяти.

Описание структуры,
за которым не следует списка переменных, не приводит к выделению какой-либо
памяти; оно только определяет шаблон или форму структуры.
После того как вы
определите структуру, ваша программа может объявить переменные типа этой структуры,
используя имя структуры (иногда называемое структурным тэгом), как показано
ниже:
struct
employee
{ char
name [64] ;
long
employee_id;
float
salary;
char
phone[10];
int
office_number;
};
employee boss, worker, new_employee; //объявление переменных
В данном случае
оператор создает три переменные структуры employee. В некоторых случаях вы
можете увидеть объявление, в котором тэг структуры предваряется ключевым словом
struct, как показано ниже:
struct
employee boss, worker, new_employee;
Ключевое слово struct
является обязательным при программировании на С, так что некоторые программисты
могут включать его по привычке. Однако в C++ использовать ключевое слово struct
необязательно.
Список объявляемых
переменных типа данной структуры может содержать:
имена переменных;
имена массивов;
указатели.
Для использования
указателя на структуру ему необходимо присвоить адрес переменной типа
структуры.
Структура не может
содержать в качестве вложенной структуры саму себя, но она может содержать
элемент, являющийся указателем на объявляемую структуру.
Например:
struct structA {
struct structA *pA;
int iA; } sA; // pA указатель на структуру
При одновременном
объявлении структурного типа, объявлении переменной данного типа и ее
инициализации список значений указывается в фигурных скобках в
последовательности, соответствующей последовательности определения элементов
структуры.
Задание
1. Описать фазы компиляции
программ на языке C.
2. Перейти по ссылке https://code-live.ru/post/separate-compilation-cpp/ и записать в тетрадь для
практических и лабораторных причины разделения текста программы на модули.
3. Перейти
по ссылке https://code-live.ru/post/separate-compilation-cpp/ и записать в тетрадь для практических и лабораторных
работ правила создания  заголовочного файла и файла реализации.
4. Напишите программу, которая объявляет структуру и
создает переменную типа Struct(имя_структуры) с именем Name, присваивая
элементам этой структуры значения на ваш выбор. Присваивание (инициализация)
должно быть частью объявления Name. В результате программа должна вывести
содержимое переменной Name.
Оформление отчета
В тетрадь для практических и
лабораторных работ переписать тему и цель практического занятия. Выполнить
задания, не нарушая нумерации.
Контрольные вопросы
1.
Что
такое отладка программного средства?
2.
Что
такое оптимальная стратегия отладки программного модуля?
3.
Что
такое абстрактная отладка программного модуля?
4.
Какие
существуют принципы и виды
отладки программного средства.

Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Размещение программ и данных в памяти»
Цель:
изучение основных принципов
распределения памяти, ознакомление с алгоритмами расчета объема памяти,
занимаемой простыми и составными структурами данных,  получение практических
навыков создания простейшего анализатора для расчета объема памяти, занимаемого
заданной структурой данных.
По
завершению практического занятия студент должен уметь: осуществлять размещение программы и данных в памяти
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Основные сведения
Все компиляторы
языка программирования генерируют код, который во время выполнения хранится в
оперативной памяти. Размещение данных в памяти, чтобы память была
зарезервирована в exe-модуле, осуществляется по формуле:
Определение
Объявление = инициализация;
int i=1; // тип идентификатор=значение
Время жизни
переменных – это время, в течение которого переменная хранится в определенной
области памяти. Время жизни переменных полностью определяется программистом. С понятием
время жизни тесно связано понятие видимости (действия) переменных, которое
бывает:

глобальное, когда в любой момент во время работы с
     переменной всегда ассоциирована область памяти и обратиться к ней можно из
     любой точки программы;
статическое, когда во время работы с переменной
     ассоциирована область памяти, но обратиться к ней можно только из
     определенных точек программы;
локальное, когда при каждом входе в блок операторов { }
     для хранения переменной выделяется область памяти, а при выходе память
     освобождается и переменная теряет свое значение.

Для управления
статическим размещением переменных в памяти, их временем жизни и областью
видимости язык программирования C++ предоставляет понятие классов памяти и ряд
ключевых слов модификаторов типа:

extern используется для определения глобальных
     переменных. Память для переменных extern распределяется постоянно. Такая
     переменная глобальна для всех функций и доступна в любой точке программы.
     Значение переменной всегда сохраняется.
static используется для определения статических
     переменных. Статические определения используются в случае если необходимо
     сохранять предыдущее значение при повторном входе в блок операторов { }.
     Такая переменная инициализируется единственный раз, когда программа
     встречает ее объявление.
auto используются для определения автоматических
     переменных. Переменные определенные внутри функции или блока операторов {
     } по умолчанию являются автоматическими. При входе в блок { } программа
     автоматически располагает переменную в сегменте стека. При выходе из блока
     память освобождается, а значения теряются.
register используются для определения регистровых
     переменных. Переменные с классом памяти register, ассоциируются со
     скоростными регистрами памяти процессора. Но это не всегда возможно, поэтому
     часто компилятор преобразует такие переменные к классу auto.

Переменные extern
и static явно не инициализированные программистом устанавливаются системой в
нуль. Переменные auto и register не инициализируются и могут содержать
"мусор".
Глобальные переменные
создаются путем размещения их объявлений за пределами определений любых классов
или функций. Глобальные переменные сохраняют свои значения в течение всего
выполнения программы. На глобальные переменные и функции может ссылаться любая
функция, которая расположена в исходном файле после их объявления или описания.
Идентификаторы,
объявленные внутри блока, имеют область действия блока. Область действия блока
начинается от объявления идентификатора и заканчивается завершающей правой
фигурной скобкой блока, в котором идентификатор объявляется. Локальные
переменные функции имеют область действия блока, как и параметры функции,
которые также являются ее локальными переменными.
Если блоки
вложены, и идентификатор во внешнем блоке имеет такое же имя, как идентификатор
во внутреннем блоке, идентификатор внешнего блока «скрыт» до момента завершения
работы внутреннего блока. Это означает, что пока выполняется внутренний блок,
он «видит» значение своего собственного локального идентификатора, а не
значение идентификатора с тем же именем в охватывающем блоке.

Задание
 Проверить на компьютере
следующий пример:
// Пример 1. Область действия
переменных
/////////////////////////////////////////////////////////////////////////////
// подключение библиотеки
ввода-вывода
#include <iostream>
// подключение стандартного
пространства имен для использования библиотек
using namespace
std;

// прототипы функций
void
use_local();
void
use_static_local();
void
use_global();
/////////////////////////////////////////////////////////////////////////////
int x = 1; // глобальная
переменная
/////////////////////////////////////////////////////////////////////////////
void main()
{
    int x = 5; // переменная,
локальная в main

    cout<<"local x="<<x<<endl;

    { // скобки начинает новую область действия
        int x = 7; //
скрывает х во внешней области действия
        cout<<"local x inside {
="<<x<<endl;
    } // конец новой области действия
    cout<<"local x
after { ="<<x<<endl;
    x++;

cout<<"local x++ after { ="<<x<<endl;

use_local();        // use_local имеет локальную х

use_static_local(); // use_static_local имеет статическую локальную х

use_global();       // use_global использует глобальную х

    use_local ();       // use_local повторно
инициализирует свою локальную х
    use_static_local(); //
статическая локальная х сохраняет значение
    use_global();       //
глобальная х также сохраняет свое значение

    cout<<endl<<"local x="<<x<<endl;

}
/////////////////////////////////////////////////////////////////////////////
// функция реинициализирует
локальную х при каждом вызове
void use_local()
{
    int x = 25; //
инициализируется при каждом вызове функции

    cout<<endl<<"use_local:
x="<<x<<endl;
    x++;

cout<<"use_local: x++="<<x<<endl;
}
/////////////////////////////////////////////////////////////////////////////
// функция инициализирует
статическую локальную переменную х
// только при первом вызове
функции; между вызовами этой функции
// значение х сохраняется
void use_static_local()
{
    static int x = 50; //
инициализируется при первом вызове функции

    cout<<"use_static_local:
x="<<x<<endl;
    x++;

cout<<"use_static_local: x++="<<x<<endl;
}
/////////////////////////////////////////////////////////////////////////////
// функция модифицирует
глобальную переменную х при каждом вызове
void use_global()
{

cout<<"use_global: x="<<x<<endl;
    x *= 10;

cout<<"use_global: x*10="<<x<<endl;
}
/////////////////////////////////////////////////////////////////////////////
Оформление отчета
В тетрадь для практических и
лабораторных работ переписать тему и цель практического занятия. Переписать в
тетрадь для практических и лабораторных работ основные сведения, ответить на
контрольные вопросы. Записать программный код в тетрадь и сделать выводы о
проделанной работе.
Контрольные вопросы
1.
Что
такое компиляторы?
2.
Что
такое переменные?
3.
Какие
существуют виды переменных?
4.
В
чем отличие глобальных переменных от статических?

Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Разработка и использование шаблонов»
Цель:
ознакомление с  шаблонами, на
практике научиться разрабатывать и использовать шаблоны.
По завершению практического занятия студент должен
уметь: разрабатывать и использовать
шаблоны. Продолжительность: 4 аудиторных
часа (180 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Основные сведения
С помощью шаблонов можно создавать родовые (generic) функции и
классы. Родовая функция определяет базовый набор операций, которые будут
применяться к разным типам данных, получаемых функцией в качестве параметра.
Определение функции с ключевым словом template (шаблон)
имеет вид:
template<class Ttype>тип имя_функции(список аргументов)
{//тело функции}
Здесь Ttype – фиктивный тип, который используется при объявлении
аргументов и локальных переменных функции. Компилятор заменит этот фиктивный
тип на один из реальных и создаст соответственно несколько перегружаемых
функций. При этом перегружаемые функции являются ограниченными, поскольку
выполняют одни и те же действия над данными различных типов.
С помощью шаблона класса можно создать класс, реализующий стек,
очередь, дерево и т. д. для любых типов данных. Компилятор будет генерировать
правильный тип объекта на основе типа,
задаваемого при создании объекта. Общая форма объявления шаблона класса:
template <class Ttype> class имя_класса
{
//имена класса, поля класса
}
Здесь Ttype – фиктивное имя типа, которое заменится компилятором
на фактическое. Шаблон класса может иметь больше одного родового
типа данных:
template<class Type1,class Type2>
class m {Type1 a;Type2 b;}
Задание
 Проверить на компьютере следующий
пример:
Пример. Создается шаблон
класса для работы с односвязным списком. Тестирование класса выполняется с
использованием меню, которое позволяет создать список из чисел типов integer,
float, double и выполнить типичные операции с ним.
#include <conio.h>
#include
<string.h>
#include
<iostream.h>
#include"vip\menu.cpp"
void ListForInt();
void
ListForFloat();
void
ListForDouble();
char bufRus[256];
char*Rus(const
char*text){
 CharToOem(text,bufRus);
 return bufRus;
}
//шаблон класса для работы с односвязным
списком
template<class
mytype>class List {
//внутренний класс, для
представления элементов списка
 class Node{
 public:
 mytype d;
 Node* next;
 Node(mytype
dat=0){d=dat; next=0;}
 };
 Node* pbeg; //указатель на
начало списка
 public:
 List(){pbeg=0;}
//конструктор
 ~List(); //деструктор
 Node * Add(mytype d);
//добавление в конец списка
 Node * Find(mytype key); //поиск по ключу
 Node *
Insert(mytype key,mytype d); //вставка узла d после узла с
  // ключом
key
 bool
Remove(mytype key); //удаление узла
 void Print(); //печать списка
 };
//*********************~List()
*************************
//ДЕСТРУКТОР. Освобождает
память для всех узлов списка
template<class
mytype> List<mytype>::~List(){
 if(pbeg!=0){
 Node* pv=pbeg;
 while(pv){
 pv=pv->next;
 delete pbeg;
 pbeg=pv;
 }
 }
}
//***************************
void Add(mytype d) **********
//Добавляет узел в конец
списка и возвращает указатель
// на вставленный узел.
template<class
mytype> List<mytype>::Node*
List<mytype>::Add(mytype
d){
 Node* pv=new Node(d); //Создание нового узла
 if(pbeg==0)pbeg=pv; //первый
узел списка
 else {
 Node* rab=pbeg;
 while(rab!=0){
 if((rab->next)==0){rab->next=pv;return
pv;}
 rab=rab->next;
 }
 }
}
//***************************
Node* Find(mytype key)
//Выполняет поиск узла с
заданным ключом и возвращает указатель
// на него в случае успешного
поиска и 0 в случае отсутствия узла в списке
template<class
mytype> List<mytype>::Node*
List<mytype>::Find(mytype
key){
 Node* pv=pbeg;
 while(pv){
 if((pv->d)==key)break;
 pv=pv->next;
 }
 return pv;
}
//*************
Node* Insert(mytype key,mytype d)
//Вставляет в список узел
после узла с ключом key и возвращает
// указатель на вставленный
узел. Если такого узла в списке нет,
// вставка не выполняется и
возвращается значение 0
 template<class mytype> List<mytype>::Node*
List<mytype>::Insert(mytype
key,mytype d){
 if(Node*
pkey=Find(key)) //поиск узла с ключом key
 {
 Node* pv=new
Node(d);
//выделение памяти под новый
узел и его инициализация
 pv->next=pkey->next;
//установление связи нового
узла с последующим
 pkey->next=pv;
//установление связи предыдущего узла с новым
 return pv;
 }
 return 0;
}
//*******************
bool Remove(mytype key)
//Удаляет узел с заданным
ключом из списка и возвращает значение true при
//успешном удалении и false,
если узел с таким ключом не найден
template<class
mytype> bool List<mytype>::Remove(mytype key){
 if(Node*
pkey=Find(key)){
 if(pkey==pbeg)pbeg=pbeg->next; //удаление из начала
списка
 else{ //Находим указатель на
узел,
 Node*rab=pbeg; //стоящий в
списке перед
 while(rab) //удаляемым
узлом.
 { //rab-этот указатель.
 if((rab->next)==pkey)break;
 rab=rab->next;
 }
 rab->next=pkey->next;
 }
 delete pkey;
 return true;
 }
 return false;
}
//********************
void Print() -Печать списка
template<class
mytype> void List<mytype>::Print(){
 Node*pv=pbeg;
 cout<<Rus("Наш список:");cout<<endl;
 while(pv){
 cout<<pv->d<<'
';
 pv=pv->next;
 }
 cout<<endl;}
//---------------------------
MAIN ---------------------------------------------
int main(int argc,
char* argv[]){
 int k=0,max,kol;
 char menu[][100]=
{{" ListForInt "}, {" ListForFloat "},
 {"
ListForDouble "}, {" EXIT "}, };
 30
 kol=4; //КОЛИЧЕСТВО СТРОК МЕНЮ.
Это используется в выравнивании
 //строк меню по центру.
2.
Создать шаблон класса для работы с одномерным массивом. Выполнить тестирование
путем создания и обработки массивов, со держащих элементы различных типов
(например, сортировка элементов массивов различными методами).
Оформление отчета
В тетрадь для практических и
лабораторных работ переписать тему и цель практического занятия. Переписать в
тетрадь для практических и лабораторных работ основные сведения, ответить на
контрольные вопросы. Записать программный код в тетрадь и сделать выводы о
проделанной работе.
Контрольные вопросы
1.
Что
такое классы?
2.
Что
такое шаблоны классов?
3.
Какие
существуют шаблоны классов?

Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим доступа:
     http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Объектно-ориентированное
программирование»
Цель:
ознакомление с принципами ООП, осуществить
анализ ОПП.
По завершению практического занятия студент должен
уметь: осуществить анализ ОПП.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.

Задание
 1. Ответить на вопросы:
1.       Что
такое объектно-ориентированное программирование?
2.       Какие
существуют основные принципы ООП?
3.       Что
включает в себя ООП?
4.       Что
такое виртуальные и абстрактные базовые классы?
2. Проанализируйте  объектно-ориентированное
программирование на языке С++.
3. Реализовать
класс комплексных чисел Complex, используя ортодоксальную каноническую
форму класса.
Добавить пользовательские конструкторы для инициализации из примитивных типов
С++, например из double:
Complex(double
r=0, double i=0) : r(r), i(i) {}
Добавить операторы
сложения, вычитания, умножения на комплексное число, умножения на
действительное число, отрицания. А также вывода в стандартный поток ostream,
аналогично оператору вывода строки:
#include
<iostream>
using
namespace std;
class
String {
 ...
                               friend
ostream& operator<<(ostream& s, const String& str)
{
                                               s
<< str.rep;
return
s;
                               }
                 ...
                };

при этом вывод на
консоль осуществляется так:
                #include “String.h”
                int
main(int argc, char **argv)
{
                               String
a(“this is string”);
                               cout<<a<<endl;
                               return
0;
                }
Для комплексных
чисел реализовать также функцию перевода в показательную форму.

Оформление отчета
В тетрадь
для практических и лабораторных работ переписать тему и цель практического
занятия. В тетради для практических и лабораторных работ ответить на
контрольные вопросы. Переписать программный код задачи и сделать выводы о
проделанной работе.
.
Контрольные вопросы
1.       Что
такое объектно-ориентированное программирование?
2.       Какие
существуют основные принципы ООП?
3.       Что
включает в себя ООП?
4.       Что
такое виртуальные и абстрактные базовые классы?

Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.: БИНОМ.
     Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа: http://window.edu.ru/resource/359/77359,
     свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Перегрузка функций
и перегрузка операторов»
Цель:
изучить возможности программирования
классов на языке С++; получить основные навыки программирования.
По завершению практического
занятия студент должен уметь: осуществить
перегрузку функций и операторов.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.
Основные сведения
Дружественные
классы
Разрешить
элементам другого класса полный доступ к элементам данного класса, объявленным
как private или protected, можно включив в определение данного класса описание friend.
Пример 1.
сlass myclass
{              friend class another_class;   };
Дружественные
функции
Разрешить
обычной функции или функции-элементу другого класса полный доступ к элементам
класса, объявленным private или protected, можно с помощью описания friend в
определении данного класса.
Пример 2.
сlass myclass
{              friend void another_class::member(int);
                friend void func_name(float);
};
Для
друзей существуют следующие правила:
-
на описания friend
не влияют спецификаторы public, protected или private;
-
описания friend не
взаимны: если А объявляет В другом, то это не означает, что А является другом
для В;
-
дружественность не наследуется:
если А объявляет В другом, классы, производные от В, не будут автоматически
получать доступ к элементам А;
-
дружественность не является
переходным свойством: если А объявляет В другом, классы, производные от А, не
будут автоматически признавать дружественность В.
Перегрузка
функций-элементов
Функции-элементы
класса могут быть перегружены. Две или несколько функций-элементов могут иметь
одно и тоже имя, при условии, что списки их аргументов не совпадают.
Пример.3.
class Time
{              char timestr[30];
                public:
                Time();  //
перегрузка конструкторов
                Time(char
*str);
};

Перегрузка
операций
Язык
С++ позволяет определять и применять к классам обозначения операций. Эта
особенность, называемая перегрузкой операций дает классам возможность вести
себя подобно встроенному типу данных.
Операции,
допускающие перегрузку:
+
-     *    /    %    ^    &    |    ~    !    =
<    >    +=    -=    *=    /=
%=    ^=    &=
|=
<<    >>    <<=    >>=    ==    !=    <=    >=
&&    ||    ++    --    ->*    ->    ()
[ ]
Функции-операции
и перегрузка операций подчиняются следующим правилам:
-
приоритеты операций и правила
ассоциации, принятые для встроенных типов данных, остаются неизменными при
оценке выражений с перегруженными функциями-операциями;
-
функция-операция не может изменить
поведение операции по отношению к встроенным типам данных;
-
функция-операция должна быть либо
элементом класса, либо воспринимать один или несколько аргументов, имеющих тип
класса;
-
функция-операция не может иметь
аргументов по умолчанию;
за
исключением operator=() функции-операции наследуются.

Задание
1. Описать и определить класс-список, операцию –, как
сортировка списка по убыванию и операцию [ ] получения значения по заданному
номеру.
Файл list.h содержит описание класса.
struct list
{     int inf;                             //
информационное поле
       list *next;                       // указатель
на следующий элемент списка
};
class spisok
{     list* l;                              //
указатель на начало списка
public:
       spisok (int);
       spisok (spisok&);
       void print ();
       int operator [ ](int);
       friend void operator –
(spisok&);
~spisok();
};
Файл list.cpp содержит определение функций-элементов.
#include <stdlib.h>
#include <stdio.h>
#include "list.h"
spisok::spisok (int n)
//конструктор инициализирует список из n элементов по
принципу
// "очередь"
{     l = NULL;
       list *p,*pn;
       for (int i = 0; i<n; i++)
            {    p = new list;
                   p->inf = random(100)-50;
                   p->next = NULL;
                   if (l == NULL) l = p;
                        else  pn->next = p;
                   pn = p;
            }
}
spisok::spisok (spisok& s)
//конструктор копии класса spisok
{    l = NULL;
       list *sp = s.l, *p, *pn;
       while (sp)
        {      p = new list;
                p->inf = sp->inf;
                p->next = NULL;
                if (l == NULL) l = p;
                     else pn->next = p;
                pn = p;
                sp = sp->next;
          }
}
spisok::~spisok()
//деструктор - уничтожает объект класса список из
памяти
{     list *p;
       while ( l )
       {      p = l;
               l = l->next;
               delete p;
       }
}
void spisok::print()
//функция-элемент печати содержимого списка
{    list *p = l;
       while (p)
       {   printf ("%3d ",p->inf);
            p = p->next;
       }
       puts("");
}
int spisok::operator [ ] (int n)
//перегруженная операция получения значения по
заданному номеру n
{    list *p = l;
       for (int i = 1; (i<n )&&
(p!=NULL); i++, p = p->next);
       if (p)  return p->inf;
       return -1000;
}
void operator – (spisok& s)
//дружественный перегруженный оператор сортировки
элементов
// списка по убыванию
{    list *p = s.l;
       while (p)
       {   list *max = p, *pn = p->next;
            while (pn)
            {    if (pn->inf > max->inf)
max = pn;
                   pn = pn->next; }
            int i = max->inf;
            max->inf = p->inf;
            p->inf
= i;
            p = p->next; }
}
Файл
main.cpp содержит основную функцию.
#include <stdio.h>
#include “list.h”

void main (void)
{    spisok s1(10),                       // создание
списка из 10 элементов
                   s2(s1),                       // s2- копия списка
s1
                   s3(15);                      // создание списка из 15
элементов
   s1.print();                                 // печать s1
   s2.print();                                 //
печать s2
   s3.print();                                 //
печать s3
   printf("Значение
третьего элемента в s1=%d \n",s1[3]);
   –s3;                                           //
сортировка s3
   s3.print();                                 // и
печать его
}
В проект включены файлы: main.cpp и
list.cpp.
2. Описать
и определить класс файл и операции:
=   копирование файлов;
--   определение самой короткой строки в файле.
Файл описания класса file.h
class file
{     char *name;                                                       //
имя файла
       FILE *f;                                                               //
указатель на поток
       public:
            file (char *, char *);                                     //
конструктор
            file &operator = (file
&);            // операция копирования файлов
            friend char* operator --(file
&); // операция поиска
                // наименьшей строки
   ~file()                                                                       //
деструктор
   {  fclose(f);delete name;  };
};
Файл определения функций-элементов  file.cpp
#include <stdio.h>
#include <string.h>
#include "file.h"
file::file(char *n, char *attr)                                   //конструктор - открывает файл
{    name = new char[strlen(n)+1];
       strcpy (name, n);
       f=fopen (name, attr);  }
file& file::operator = (file &f1)     //операция копирования файла
{    char stroka[120];
       fseek (f1.f,0,0);
       while (fgets (stroka, 120, f1.f))
                fputs (stroka, f);
   return *this;
}
char* operator
-- (file &f1)     //дружественная операция поиска
// наименьшей строки в файле
{    fseek(f1.f, 0, 0);
       char
*sent = new char[120];
       int minlen = 120;
       char stroka[120];
       while (fgets(stroka, 120, f1.f))
       if (strlen(stroka)<minlen)
           {      minlen = strlen(stroka);
                   strcpy (sent, stroka);  }
           return sent;
}
Файл main_f.cpp с основной
функцией.
#include <stdio.h>
#include "file.h"
void main(void)
{     file f1("test1.txt",
"rt"),      // открытие файла для чтения
       f2("test2.txt",
"wt");                           // открытие файла для записи
       f2 = f1;                                                 //копирование
файлов
       printf("Самая короткая строка = %s\n",f1--);
}
Проект содержит файлы  main_f.cpp
и file.cpp.

Контрольные вопросы
1.
Какие классы и функции называются
дружественными?
2.
Как осуществляется перегрузка
операций?
3.
Сколько аргументов требуется для
определения перегруженной унарной (бинарной) операции?
4.
Чем отличается действие
перегруженной операции ++ при ее использовании в префиксной форме от
использовании в постфиксной форме?

Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для программиста
     [Электронный ресурс]. - Режим доступа: http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим доступа:http://www.youtube.com/user/visvivatutorials,
     свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Характеристика
виртуальных функций и абстрактных базовых классов»
Цель:
ознакомиться с виртуальными функциями
и абстрактными классами,
По завершению практического занятия студент должен
уметь: осуществить анализ ОПП.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение.

Теоретические сведения
Для
представления символьной (текстовой) информации  можно использовать
символы, символьные переменные и символьные константы.
Символьная
константа представляется последовательностью символов, заключенной в кавычки:
“Начало строки \n”. В С++ нет отдельного типа для строк. Массив символов - это
и есть строка. Количества элементов в таком массиве на один элемент больше, чем
изображение строки, т. к. в конец строки добавлен ‘\0’ (нулевой байт).
Присвоить
значение массиву символов с помощью обычного оператора присваивания нельзя.
Поместить строку в массив можно либо при вводе, либо с помощью инициализации:
char s[] = “ABCDEF”;
Для
работы со строками существует специальная библиотека string.h. Примеры функций
для работы со строками из библиотеки string.h в таблице 2:
Таблица
2 - Функции работы со строками

Функция

Прототип и краткое описание
  функции

strcmp

int strcmp(const char *str1, const char *str2);
Сравнивает строки str1 и str2. Если str1< str2, то результат отрицательный, если str1 = str2, то
  результат равен 0, если str1> str2, то результат положительный.

strcpy

char*
  strcpy(char*s1, const char *s2);
Копирует байты из строки s1 в строку s2

strdup

char
  *strdup (const char *str);
  Выделяет память и перености в нее копию строки str.

strlen

unsigned strlen (const char *str);
Вычисляет длину строки str.

strncat

char *strncat(char *s1, const char *s2, int kol);
Приписывает kol символов строки s1 к строке s2.

strncpy

char *strncpy(char *s1, const char *s2, int kol);
Копирует kol символов строки s1 в строку s2.

strnset

char
  *strnset(char *str, int c, int kol);
  Заменяет первые kol символов строки s1  символом с.

Строки,
при передаче в функцию, в качестве фактических параметров могут быть определены
либо как одномерные массивы типа char[], либо как указатели типа char*.  В
отличие от обычных массивов в этом случае нет необходимости явно указывать
длину строки.
Функции
преобразования строки S в число:
целое:
int atoi(S); длинное целое:  long atol(S);
действительное:  double atof(S); при ошибке возвращает значение 0.
Функции
преобразования числа V в строку S:
целое:
itoa(int V,char S,int kod); длинное целое:  ltoa(long
V,char S,int kod); 2<=kod<=36, для отрицательных чисел kod=10.
Перегрузка
операций
Для
перегрузки операции для класса в С++ используется следующий синтаксис:
<Тип>
operator <операция>(<входные параметры>)
{
<операторы>;
}
где
< Тип > - тип, возвращаемый функцией;
operator
- ключевое слово;
<
операция > - перегружаемая операция.
В
языке С++ имеются следующие ограничения на перегрузку операций:
·
С++ не различает префиксную и
постфиксную формы ++ и - -;
·
переопределяемая операция должна
присутствовать в языке (например, нельзя определить операцию с символом #);
·
нельзя переопределить операторы,
заданные следующими символами . * :: ?  ;
·
переопределённые операции
сохраняют свой изначальный приоритет.
Наличие
в классе конструктора String:: String(String&) и операторов присваивания
позволяет защитить объекты класса от побитового копирования.

Задание
 1. Ввести с клавиатуры строку символов. Признак окончания
ввода строки - нажатие клавиши "Ввод". Программа должна определить
длину введенной строки L и если L<10 – возвратить строку, которая не
содержит  заглавных латинских букв.
#include
<iostream.h>
#define SIZE 255 //длина строки по умолчанию
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <istream.h>
class X{
char *str;
char *str_return;
public:
X(); //конструктор по-умолчанию
X(char*);
//конструктор, которому можно передавать параметр
~X(); //деструктор
char* Run(); //метод, выполняющий поставленную задачу.
void Set(char*);
friend void print(X&); //функция-друг печати
friend ostream& operator<<(ostream&,X&); //перегрузка
оператора вывода
friend istream& operator>>(istream&,X&); //перегрузка
оператора ввода
friend char* Run(X&); //функция-друг, выполняющий поставленную задачу.
};
X::X(){
str=new char[SIZE];
str[0]='\0';
str_return=new char[SIZE];
str_return[0]='\0';
};
X::X(char *s){
str=new char[SIZE];
strcpy(str,s);
str_return=new char[SIZE];
str_return[0]='\0';
};
X::~X(){
delete[] str;
cout<<"...destructor has been called"<<endl;
};
void
X::Set(char* s){
for (unsigned int i=0;i<strlen(s);i++)
str[i]=s[i];
str[i]='\0';
};
char* X::Run(){
/*метод, решающий конкретную задачу, в данном случае - выделение из строки подстроки, не содержащей заглавных латинских букв, если длина исходной строки меньше 10*/
int j=0;
if (strlen(str)<10) {
for (unsigned int i=0;i<strlen(str);i++)
if ( ((int)str[i]<65) || ((int)str[i]>90) ) {
str_return[j]=str[i]; j++;
};
str_return[j]='\0';
}
else strcpy(str_return,str);

return str_return;
};
char* Run(X
&obj){return obj.Run();};
void print(X
&obj){cout<<obj.str<<"
"<<obj.str_return<<endl;};
ostream&
operator<<(ostream &stream,X &ob) {
stream << ob.str ;
return stream;
};
istream
&operator>>(istream &stream,X &ob){
stream >> ob.str;
return stream;
};
void main (void){
char s[265];

cout<<"Type anything and press
\"Enter\":"<<endl;
cin.getline(s,256); //считываем полностью всю строку
X str(s); //доступ к методам класса непосредственно через переменную,
//начальное значение устанавливаем через конструктор
cout<<"You have type:"<<endl;
print(str);
cout<<"Output string:"<<endl;
cout<<Run(str)<<endl;
cout<<"Type anything and press
\"Enter\":"<<endl;
cin.getline(s,256);
X *pstr; //доступ к методам класса через указатель
pstr=new X();
pstr->Set(s);
cout<<"You have type:"<<endl;
print(*pstr);
cout<<"Output string:"<<endl;
cout<<Run(*pstr)<<endl;
delete pstr;
};
2. Ввести
с клавиатуры строку  символов S1. Признак окончания ввода строки - нажатие
клавиши "Ввод". Программа должна содержать перегруженную операцию «=», использование которой скопирует
S1 в S2 .
Исходную
и преобразованную строки вывести в файл.
3. Длина L >5-и, то выделяется подстрока до первого
пробела.

Оформление отчета
В тетрадь
для практических и лабораторных работ переписать тему и цель практического
занятия. Переписать программный код задачи и сделать выводы о проделанной
работе.
.
Контрольные вопросы
1.       Что
такое виртуальные функции?
2.       Что
такое перегрузка операторов?
3.       Какие
существуют функции работы со строками?
4.       Какой
синтаксис используется для перегрузки операций?
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.: Интернет-Университет
     Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Анализ
множественного наследования»
Цель:
ознакомиться с наследованием и
множественным наследованием, уметь применять множественное наследование на
языке C++ на практике.
По
завершению практического занятия студент должен уметь: применять множественное наследование на языке C++
на практике.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение: операционная система Windows, Visual C#.
Теоретические сведения
Наследование
- механизм создания производного  класса из базового. Т.е., к
существующему классу можно что-либо добавить, или изменять его каким-либо
образом для создания нового (производного) класса. Это мощный механизм для
повторного использования кода. Наследование позволяет создавать иерархию
связанных типов, совместно использующих код и интерфейс. Модификатор прав
доступа используется для изменения доступа к наследуемым объектам в соответствии
с правилами, указанными в таблице 1.
Таблица 1 – Доступ в классах при наследовании

Доступ
  в базовом классе

Модификатор
  прав доступа

Доступ
  в производном классе

private

private

не
  доступны

private

public

не
  доступны

protected

private

private

protected

public

protected

public

private

private

public

public

public

 Ограничение на наследование
При определении производного класса не наследуются из
базового:
1.
конструкторы;
2.
деструкторы;
3.
операторы new, определенные
пользователем;
4.
операторы присвоения, определенные
пользователем;
5.
отношения дружественности.
Использование косвенной адресации с установкой
указателей на базовый класс. Механизм косвенной адресации рассмотрим на
примере:

class B
{
public:
int x;
B() {            // Конструктор
по умолчанию
x = 4; }
};
class D : public B {      // Производный класс
public:
int y;
D()
{            //
Конструктор по умолчанию
y = 5; }
};
void main(void)  {
D  d;// Конструктор класса D создает объект d
B *p; // Указатель установлен на базовый касс
p = &d;// Указатель p инициализируется адресом d
// косвенное обращение к объектам базового и производного классов
// «считываем их текущее состояние в переменные
int i = p -> x;  // Базовый класс виден напрямую
int j = ( ( D* ) p )p -> y;// Прямое преобразование указателя на D
// через переменные печатаем их текущее состояние
cout << “ x_i= “ << i << endl;
cout << “ y_j= “ << j << endl;
getch();
}
Задание
1. Привидите примеры
программ, с применением наследования и множественного наследования.
2.
Создать программу с абстрактным базовым классом
и множественным наследованием, реализовать в нем:
·
конструктор,
·
деструктор,
·
виртуальную функцию просмотра
текущего состояния объекта print(),
·
friend,
·
функцию Run ().
Производные
классы должны содержать переопределенную функцию просмотра состояния объектов
(print()). Используя стандартные файловые потоки, информацию об объектах
вывести в файл. При вводе - выводе данных обработка ошибочных ситуаций
(например, невозможность открыть файл или нехватка места на диске) должно
обрабатываться с использованием механизма исключений.
Оформление отчета
В тетрадь
для практических и лабораторных работ переписать тему и цель практического
занятия. Переписать программный код задачи и сделать выводы о проделанной
работе.
.Контрольные вопросы
1.       Что такое
наследование, одиночное наследование, множественное наследование?
2.       Какие объекты
базового класса наследуются в производном, а какие нет?
3.       На примере своей
программы поясните механизм позднего связывания.
4.       В каком случае С++
проигнорирует механизм виртуальных функций?
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Создание
программы с применением очереди на языке С++»
Цель:
изучение способов создания и
принципов использования динамических структур данных типа очередь;
совершенствование навыков структурного программирования на языке C/С++ при
решении задач обработки динамических структур данных.
По
завершению практического занятия студент должен уметь: создавать программы с применением очереди на языке С++.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение: операционная система Windows, Visual C#.

Теоретические сведения
Алгоритмы
для реализации АТД «Очередь» на языке Си
Реализация при помощи массива
int
queue_insert(int* Queue, int QueSiz, int QueF, int& QueR, int Data)
{
if ((QueF == QueR + 1) || (QueF ==
0 && QueR == QueSiz)) return 0;
else {
Queue[QueR] = Data;
if (QueR >= QueSiz)
QueR = 0; else QueR++;
return 1;
}
}
int
queue_remove(int* Queue, int QueSiz, int& QueF, int QueR, int& Data)
{
if (QueF == QueR) return 0;
else {
Data = Queue[QueF];
if (QueF >= QueSiz)
QueF = 0; else QueF++;
return 1;
}
}
int
queue_init(int* Queue, int QueSiz, int& QueF, int& QueR)
{
for (int i = 0; i < QueSiz; ++i)
{
Queue[i] = 0;
}
QueF = 0;
QueR = 0;
Return 1;
}
Реализация
при помощи связанных структур
struct
Ochered                     // Структура данных
{
Int                          tData;
Ochered*              pNext;
}
*QueFirst,
*QueLast;
// Указатели на первый и последний элементы очереди

int queue_insert(int &QueSiz, int MaxSiz, int Data,
Ochered **QueF,
Ochered **QueR)
{
//  включение элемента в очередь
if (QueSiz >= MaxSiz) return 0;
else
{
Ochered *point = new
Ochered();
point->tData = Data;
QueSiz++;
if (*QueF == NULL)
{
*QueF = point;
*QueR = *QueF;
}
else
{
(**QueR).pNext = point;
*QueR = point;
}
return 1;
}
}
int queue_remove(int &QueSiz, Ochered **QueF,
Ochered **QueR, int& Data)
{
// исключение элемента из очереди
if (QueSiz
== 0 || QueF == NULL) return 0;
else
{
Ochered *point = *QueF;
Data = point->tData;
*QueF = (**QueF).pNext;
QueSiz--;
delete point;
if (QueSiz == 0) *QueR =
NULL;
                               return 1;
}
}
int
queue_init(int &QueSiz, Ochered **QueF, Ochered **QueR)
{ //
Инициализация очереди
QueSiz = 0;
*QueF   = NULL;
*QueR   = NULL;
Return 1;
}
int
main()
{ //
пример выполнения приложения
int MaxSize = 5;
int QueSize, i;
printf("Dynamic Queue
testing\n\n");
queue_init(QueSize, &QueFirst,
&QueLast);
for (i = 1; i < 10; i++)
{
if (queue_insert(QueSiz,
MaxSiz, i, &QueFirst, &QueLast))
printf("Added: %i,
result - true\n", i,);
                else
printf("Added: %i,
result - false\n", i,);
}
Int dat = -1;
for (i = 1; i < 10; i++)
{
If (queue_remove(QueSiz,
&QueFirst, &QueLast, dat)
printf("Removed:
%i, result - true\n", dat);
                else
printf("Removed:
%i, result - false\n", dat);
}
return 0;
}
Ход работы
1) Получить у
преподавателя индивидуальное задание.
2) Построить схему
алгоритма решения задачи.
3) Использовать
функции, реализующие полный набор операций для этой структуры:
- допустимые
операции для стека: инициализация, проверка пустоты, добавление нового элемента
в начало, извлечение элемента из начала;
- допустимые
операции для очереди: инициализация, проверка пустоты, добавление нового
элемента в конец, извлечение элемента из начала;
- допустимые
операции для дека: инициализация, проверка пустоты, добавление нового элемента
в начало, добавление нового элемента в конец, извлечение элемента из начала,
извлечение элемента из конца.
4) Составить
спецификации функций.
5) Составить
программу на языке C/С++.
6) Проверить и
продемонстрировать преподавателю работу программы на полном наборе тестов.
Обеспечить одновременный показ в окнах на экране входных и выходных данных.
7) Оформить отчет о
лабораторной работе в составе: постановка задачи, математическая модель, схема
алгоритма решения, спецификация функций, текст программы, контрольные примеры.

Задание
1.  Дан файл из
вещественных чисел. Используя очередь, за один просмотр файла напечатать
сначала все числа, меньшие a, затем все числа из интервала [a,b], и, наконец,
все остальные числа, сохраняя исходный порядок в каждой группе.
2. Дан текстовый файл с
программой на алгоритмическом языке. За один просмотр файла проверить баланс
круглых скобок в тексте, используя очередь.
3. Дан текстовый файл.
Используя очередь, переписать содержимое его строк в новый текстовый файл,
перенося при этом в конец каждой строки все входящие в нее цифры, сохраняя
исходный порядок следования среди цифр и среди остальных символов строки.
4. Дан файл из символов.
Используя очередь, за один просмотр файла напечатать сначала все цифры, затем
все буквы, и, наконец, все остальные символы, сохраняя исходный порядок в
каждой группе символов.
Оформление отчета
В тетрадь
для практических и лабораторных работ переписать тему и цель практического
занятия. Переписать программный код задачи и сделать выводы о проделанной
работе.
Программа
должна состоять из следующих частей:
1.
Заголовочный файл с объявлениями
функций работы с очередью (lab_queue.h).
2.
Два файла с реализациями функций
работы с очередью (lab_queue.cpp)
3.
Файл с алгоритмом решения
предложенной задачи (main.cpp)
Файл с
алгоритмом решения должен работать с очередью только через функции, описанные в
заголовочном файле. Программа должна быть спроектирована таким образом, чтобы
способ реализации очереди можно было бы изменить, заменив только файл lab_queue.cpp.
.
Контрольные вопросы
1.       Какие существуют
динамические структуры данных?
2.       Что такое очередь?
3.       Какие основные
процедуры вы знаете? Привидите примеры.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru [Электронный
     ресурс]. - Режим доступа: http://codinglessons.ru/, свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Создание
программы с применением стека на языке С++»
Цель:
изучение способов создания и
принципов использования динамических структур данных типа стека; совершенствование
навыков структурного программирования на языке C/С++ при решении задач
обработки динамических структур данных.
По
завершению практического занятия студент должен уметь: создавать программы с применением стека на языке С++.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение: операционная система Windows, Visual C#.

Теоретические сведения
            Стек – структура типа LIFO (Last In,
First Out) – последним вошел, первым выйдет. Элементы в стек можно
добавлять или извлекать только через его вершину. Программно стек реализуется в
виде однонаправленного списка с одной точкой входа – вершиной стека.
Максимальное число
элементов стека не ограничивается, т.е. по мере добавления в стек нового
элемента память под него должна запрашиваться, а при удалении – освобождаться.
Таким образом, стек – динамическая структура данных, состоящая из переменного
числа элементов.
Для работы со
стеком введем следующую структуру (вместо приведенного типа Stack может быть любой другой идентификатор):
                struct Stack {
            int info;         // Информационная часть элемента,
например, int
            Stack
*next;    // Адресная часть – указатель на следующий
элемент
} *begin;
// Указатель вершины стека
                При работе со стеком обычно выполняются следующие
операции:
                –
формирование стека (добавление элемента в стек);
                –
обработка элементов стека (просмотр, поиск, удаление);
                –
освобождение памяти, занятой стеком.
                Приведем
примеры основных функций для работы со стеком, взяв для простоты в качестве
информационной части целые числа, т.е. объявленную выше структуру типа Stack.
Функция
формирования элемента стека
Простейший вид
функции (push), в которую в качестве параметров передаются
указатель на вершину и введенная информация, а измененное значение вершины
возвращается в точку вызова оператором return:
Stack* InStack(Stack *p, int in) {
Stack *t = new Stack;                                       // Захватываем
память для элемента
                t -> info
= in;                                       // Формируем
информационную часть
                                               t
-> next = p;                                       // Формируем
адресную часть
return
t;
}
Обращение к этой
функции для добавления нового элемента «а» в стек, вершиной которого
является указатель begin:   begin
= InStack(begin, a);

Алгоритм
просмотра стека (без извлечения
его элементов, т.е. без сдвига вершины)
1.
Устанавливаем текущий указатель на начало списка: t = begin;
2.
Начинаем цикл, работающий до тех пор, пока указатель t не равен NULL (признак
окончания списка).
3.
Выводим информационную часть текущего элемента t -> info на экран.
4.
Текущий указатель переставляем на следующий элемент, адрес которого находится в
поле next текущего
элемента:  t = t -> next;
5.
Конец цикла.
Функция,
реализующая рассмотренный алгоритм:
void View(Stack *p) {
Stack *t
= p;
while( t != NULL)
{
// Вывод на экран
информационной части, например, cout <<  t -> info << endl;
                                                               t = t
-> Next;
                                               }
                }
Обращение к этой функции:  View(begin);
Блок-схема функции View
представлена на рис. 3.1.

Рис. 1

Функция получения информации из вершины стека c извлечением:
Stack* OutStack(Stack* p, int *out)   {
Stack *t = p;                                        //
Устанавливаем указатель t на вершину p
*out = p -> info;
p = p
-> next;                       // Переставляем вершину p
на следующий
delete
t;                                 // Удаляем бывшую
вершину t
return
p;                                                //
Возвращаем новую вершину p
}
Обращение к
этой функции:          begin = OutStack(begin, &a); информацией является переданное по адресу значение
«а».
Функция
освобождения памяти, занятой стеком:
void Del_All(Stack **p)   {
Stack *t;
while( *p != NULL) {
t = *p;
*p = (*p) -> Next;
delete t;
                                               }
                }
Обращение к этой функции:  Del_All(&begin);
после ее выполнения указатель на вершину begin будет
равен NULL.

Сортировка однонаправленных списков
                Для
ускорения поиска информации в списке, обычно при выводе данных список
упорядочивают (сортируют) по ключу.
                Проще
всего использовать метод сортировки, основанный на перестановке местами двух
соседних элементов, если это необходимо. Существует два способа перестановки
элементов: обмен адресов и обмен информацией.
1. Первый способ –
перестановка адресов двух соседних элементов, следующих за элементом с
известным указателем. Первый элемент стека в этом случае не сортируется.
Для того чтобы и первый элемент оказался отсортированным, следует перед
обращением к функции сортировки добавить один (любой) элемент в стек, а после
сортировки – удалить его.
                Функция
сортировки для этого случая имеет вид:
void Sort_p(Stack **p) {
               Stack
*t = NULL, *t1, *r;
               if
((*p) -> next -> next == NULL) return;
               do
{
                               for
(t1=*p; t1-> next->next  != t; t1=t1-> next)

                   if (t1->next->info  >  t1-> next-> next->
info){

                                             r = t1->next->next;

                                             t1 -> next -> next = r ->
next;

                                               r-> next =t1-> next;

                                             t1-> next = r;

                   }
                               t=
t1-> next;
               }
while ((*p)-> next -> next != t);
}
Обращение к этой функции  Sort_p(&begin);
2. Второй способ – обмен информации между текущим и следующим
элементами. Функция сортировки для этого случая будет иметь вид:
void Sort_info(Stack
*p) {
               Stack *t = NULL, *t1;
               int
r;
               do
{
                               for
(t1=p; t1 -> next != t; t1 = t1-> next)

                   if (t1-> info > t1-> next -> info)  {

                     r = t1-> info;

                     t1-> info = t1-> next -> info;

                     t1-> next -> info = r;

                                    }
                               t
= t1;
               } while (p -> next != t);
}

Ход работы
1) Получить у
преподавателя индивидуальное задание.
2) Построить схему
алгоритма решения задачи.
3) Использовать
функции, реализующие полный набор операций для этой структуры:
- допустимые
операции для стека: инициализация, проверка пустоты, добавление нового элемента
в начало, извлечение элемента из начала;
- допустимые
операции для очереди: инициализация, проверка пустоты, добавление нового
элемента в конец, извлечение элемента из начала;
- допустимые
операции для дека: инициализация, проверка пустоты, добавление нового элемента
в начало, добавление нового элемента в конец, извлечение элемента из начала,
извлечение элемента из конца.
4) Составить
спецификации функций.
5) Составить
программу на языке C/С++.
6) Проверить и
продемонстрировать преподавателю работу программы на полном наборе тестов.
Обеспечить одновременный показ в окнах на экране входных и выходных данных.
7) Оформить отчет о
лабораторной работе в составе: постановка задачи, математическая модель, схема
алгоритма решения, спецификация функций, текст программы, контрольные примеры.
Задание
1.  Написать программу,
моделирующую железнодорожный сортировочный узел. Исходный файл содержит
информацию об имеющихся вагонах двух типов, при этом количество вагонов обоих
типов одинаково. Последовательность элементов файла неупорядочена, в каждом
элементе файла: тип вагона и идентификационный номер вагона. Используя стек
(“тупик”), за один просмотр исходного файла сформировать новый файл (“состав
вагонов”), в котором типы вагонов чередуются.
2. Дан текстовый файл.
Используя стек, сформировать новый текстовый файл, каждая строка которого
содержит символы соответствующей строки исходного файла, записанные в обратном
порядке.
3. Дан текстовый файл.
Используя стек, сформировать новый текстовый файл, содержащий строки исходного
файла, записанные в обратном порядке: первая строка становится последней,
вторая – предпоследней и т.д.
4. Дан текстовый
файл. Используя стек, вычислить значение логического выражения, записанного в
текстовом файле в следующей форме:
< ЛВ > ::= T
| F | (N<ЛВ>) | (<ЛВ>A<ЛВ>) | (<ЛВ>X<ЛВ>) |
(<ЛВ>O<ЛВ>), где буквами обозначены логические константы и
операции:
T –
True, F – False, N – Not, A – And, X – Xor, O – Or.
Оформление отчета
В тетрадь
для практических и лабораторных работ переписать тему и цель практического
занятия. Переписать программный код задачи и сделать выводы о проделанной
работе.
Программа
должна состоять из следующих частей:
1.
Заголовочный файл с объявлениями
функций работы со стеком.
2.
Два файла с реализациями функций
работы со стеком.
3.
Файл с алгоритмом решения
предложенной задачи.
Файл с
алгоритмом решения должен работать со стеком только через функции, описанные в
заголовочном файле. Программа должна быть спроектирована таким образом, чтобы
способ реализации стека можно было бы изменить.
.
Контрольные вопросы
1.       Какие существуют
динамические структуры данных?
2.       Что такое стек?
3.       Какие основные
процедуры вы знаете? Привидите примеры.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Создание
программы с применением списка на языке С++»
Цель:
изучение способов создания и
принципов использования динамических структур данных списка; совершенствование
навыков структурного программирования на языке C/С++ при решении задач
обработки динамических структур данных.
По
завершению практического занятия студент должен уметь: создавать программы с применением списка на языке С++.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение: операционная система Windows, Visual C#.

Теоретические сведения
Представление
динамических данных в виде древовидных структур оказывается довольно удобным и
эффективным для решения задач быстрого поиска информации.
Дерево состоит из элементов, называемых узлами
(вершинами), которые соединены между собой направленными дугами (рис. 6.1). В
случае X®Y вершина X называется предком
(родителем), а Y – потомком (сыном, дочерью).

Дерево имеет единственный узел, не имеющий
предков (ссылок на этот узел), который называется корнем. Любой
другой узел имеет ровно одного предка, т.е. на каждый узел дерева имеется ровно
одна ссылка. Узел, не имеющий сыновей, называется листом
(например, узел Y).
Внутренний
узел – это узел, не являющийся ни листом, ни корнем. Порядок узла
равен количеству его узлов-сыновей. Степень дерева – максимальный
порядок его узлов. Высота (глубина) узла равна числу его предков
плюс один. Высота дерева – это наибольшая высота его узлов.

Рис. 6.1

Бинарное дерево поиска
Наиболее часто для работы со списками используются
бинарные (имеющие степень 2) деревья (рис. 6.1).
               В
дереве поиска ключи расположены таким образом, что значения ключа у левого сына имеет значение меньшее, чем значение
предка, а правого сына – большее.
Сбалансированными, или AVL-деревьями, называются деревья, для каждого узла
которых высóты его поддеревьев различаются не более чем на 1.
Дерево по своей организации является
рекурсивной структурой данных, поскольку каждое его поддерево также является
деревом. В связи с этим действия с такими структурами чаще всего описываются с
помощью рекурсивных алгоритмов.

При работе с
бинарным деревом простейшего вида, т.е. ключами которого являются целые числа (уникальные,
т.е. не повторяются), необходимо использовать структуру следующего вида:
               struct Tree {
                               int info;
                               Tree *left,
*right;
               } *root;                                                 //
root  - указатель корня
В общем случае при работе с
деревьями необходимо уметь:
– сформировать дерево (добавить новый элемент);
– обойти все элементы дерева (например, для просмотра
или выполнения некоторой операции);
– выполнить поиск элемента с указанным значением в
узле;
– удалить заданный элемент.
Формирование дерева поиска состоит из двух этапов: создание корня, являющегося
листом, и добавление нового элемента (листа) в найденное место. Для этого
используется функция формирования листа:
Tree*
List(int inf) {
               Tree *t
= new Tree;                            // Захват памяти
t -> info
= inf;                                     // Формирование
информационной части
               t -> left = t -> right = NULL;            // Формирование адресных частей
return t;                                                // Возврат
созданного указателя
}
1. Первоначально (root = NULL), создаем корень (первый лист дерева):
                               root = List (StrToInt(Edit1->Text));
2. Иначе (root != NULL) добавляем информацию (key) в
нужное место:
void Add_List(Tree *root, int key)   {
               Tree
*prev, *t;                                    // prev
– указатель предка нового листа
 bool find = true;
                               t = root;
                               while ( t &&
find) {
                                              prev =
t;
                                              if( key
== t->info) {
                                find = false;                     //
Ключ
должен
быть
уникален
                                ShowMessage("Dublucate
Key!");
                                               }
                                              else
                                                               if
( key < t -> info ) t = t -> left;
                                                               else
t = t -> right;
                               }
                               if (find) {                                                                             //
Нашли
нужное
место
                                               t =
List(key);                                        // Создаем новый лист
                                               if (
key < prev -> info ) prev -> left = t;
                                               else    prev -> right = t;
                               }
}
Функция
просмотра
элементов дерева
void
View_Tree(Tree *p, int level )               {

String str;
               if
( p )       {

             View_Tree (p -> right , level+1);                    // Правое поддерево

             for ( int i=0; i<level; i++) str = str + "    ";
                                                               Form1->Memo1->Lines->Add(str
+ IntToStr(p->info));

             View_Tree(p -> left , level+1);                                       //
Левое
поддерево

}
               }

Обращение к функции View
будет иметь вид View(root, 0);
Вторым параметром функции
является переменная, определяющая, на каком уровне (level) находится
узел (у корня уровень «0»). Строка str используется для получения пробелов, необходимых для вывода
значения на соответствующем уровне.
Удаление узла с заданным ключом из дерева поиска, сохраняя
его свойства, выполняется в зависимости от того,
сколько сыновей (потомков) имеет удаляемый узел.
1. Удаляемый узел является листом – просто
удаляем ссылку на него. Приведем пример схемы удаления листа с ключом key:

2. Удаляемый узел имеет только одного
потомка, т.е. из удаляемого узла выходит ровно одна ветвь. Пример схемы удаления узла key, имеющего одного сына:

3. Удаление
узла, имеющего двух потомков, значительно сложнее рассмотренных выше. Если key
– удаляемый узел, то его следует заменить узлом w, который содержит либо
наибольший ключ (самый правый, у которого указатель Right равен NULL)
в левом поддереве, либо наименьший ключ (самый левый, у которого указатель Left
равен NULL) в правом поддереве.
Используя первое условие, находим узел w, который
является самым правым узлом поддерева key, у него имеется только левый
потомок:

Функция удаления узла по заданному ключу key может иметь вид
Tree* Del_Info(Tree *root, int key)  {
               Tree *Del, *Prev_Del, *R, *Prev_R;
// Del, Prev_Del – удаляемый узел и его
предыдущий (предок);
// R, Prev_R – элемент, на который
заменяется удаленный, и его предок;
               Del =
root;
               Prev_Del = NULL;
//-------- Поиск удаляемого элемента и его предка по ключу key
---------
while (Del != NULL && Del -> info != key) {
                               Prev_Del = Del;
                               if (Del->info >
key)  Del = Del->left;
                                               else
Del = Del->right;
                               }
               if (Del == NULL)                {                                                             //
Элемент не найден
               ShowMessage (
"NOT Key!");
                                               return
root;
               }
//-------------------- Поиск элемента R для замены
--------------------------------
               if (Del
-> right == NULL) R = Del->left;
               else
                               if (Del -> left ==
NULL) R = Del->right;
                               else {
//---------------- Ищем самый правый узел в левом поддереве
-----------------
                                               Prev_R = Del;
                                               R =
Del->left;
                                               while
(R->right != NULL) {
                                                               Prev_R
= R;
                                                               R = R->right;
                                               }
//----------- Нашли элемент для замены R и его
предка Prev_R -------------
                                               if( Prev_R == Del)  R->right = Del->right;
                                               else {
                                                               R->right
= Del->right;
                                                               Prev_R->right
= R->left;
                                                               R->left
= Prev_R;
                                               }
                }
               if (Del== root) root = R;                                   //
Удаляя
корень, заменяем его на R
               else
//------- Поддерево R присоединяем к предку удаляемого узла -----------
               if
(Del->info < Prev_Del->info)
                                               Prev_Del->left
= R;                                                           // На
левую ветвь
                               else         Prev_Del->right
= R;                                                        // На правую ветвь
               delete Del;
               return root;
}
Поиск узла с минимальным (максимальным) ключом:
Tree* Min_Key(Tree *p) {                                              //
Tree* Max_Key(Tree *p)
    while (p->left != NULL) p = p->left;        //
p=p->right;
    return p;
  }
               Тогда для получения минимального ключа p_min
-> info:
Tree *p_min = Min_Key(root);

               Построение сбалансированного дерева поиска для
заданного (созданного) массива ключей «а» можно
осуществить, если этот массив предварительно отсортирован в порядке возрастания
ключа, с помощью следующей рекурсивной процедуры (при обращении n
= 0, k – размер массива):
void Make_Blns(Tree **p, int n, int k, int
*a) {
   if (n == k) { *p = NULL;
                              return;
   }
   else {
            int m=(n+k)/2;
            *p = new Tree;
            (*p)->info = a[m];
            Make_Blns( &(*p)->left, n, m, a);
            Make_Blns( &(*p)->right, m+1, k,
a);
   }
}
Функция
освобождения памяти, занятой деревом
void Del_Tree(Tree
*t) {
               if ( t
!= NULL)  {
                               Del_Tree ( t ->
left);                                          //
На левую ветвь
                               Del_Tree ( t ->
right);                                       //
На правую ветвь
               delete t;
               }
}

Ход работы
1) Получить у
преподавателя индивидуальное задание.
2) Построить схему
алгоритма решения задачи.
3) Использовать
функции, реализующие полный набор операций для этой структуры:
- допустимые
операции для стека: инициализация, проверка пустоты, добавление нового элемента
в начало, извлечение элемента из начала;
- допустимые
операции для очереди: инициализация, проверка пустоты, добавление нового
элемента в конец, извлечение элемента из начала;
- допустимые
операции для дека: инициализация, проверка пустоты, добавление нового элемента
в начало, добавление нового элемента в конец, извлечение элемента из начала,
извлечение элемента из конца.
4) Составить
спецификации функций.
5) Составить
программу на языке C/С++.
6) Проверить и
продемонстрировать преподавателю работу программы на полном наборе тестов.
Обеспечить одновременный показ в окнах на экране входных и выходных данных.
7) Оформить отчет о
лабораторной работе в составе: постановка задачи, математическая модель, схема
алгоритма решения, спецификация функций, текст программы, контрольные примеры.
Задание
1.  Разработать проект для работы с деревом поиска, содержащий
следующие обработчики, которые должны:
– ввести информацию из компоненты StringGrid в
массив. Каждый элемент массива должен содержать строку текста и целочисленный
ключ (например, Ф.И.О. и номер паспорта);
– внести информацию из массива в дерево поиска;
– сбалансировать дерево поиска;
– добавить в дерево поиска новую запись;
– по заданному ключу найти информацию и отобразить
ее;
– удалить из дерева поиска информацию с заданным ключом;
– распечатать информацию прямым, обратным обходом и в порядке
возрастания ключа;
– решить одну из следующих задач.
Решение поставленной задачи оформить в виде блок-схемы.
2.  Поменять местами информацию, содержащую максимальный и минимальный
ключи.
3. Подсчитать число листьев в дереве. (Лист – это узел, из которого нет
ссылок на другие узлы дерева).
4. Определить число узлов на каждом уровне дерева.
Оформление отчета
В тетрадь
для практических и лабораторных работ переписать тему и цель практического
занятия. Переписать программный код задачи и сделать выводы о проделанной
работе.
Программа
должна состоять из следующих частей:
4.
Заголовочный файл с объявлениями
функций работы со списком.
5.
Два файла с реализациями функций
работы со списком.
6.
Файл с алгоритмом решения
предложенной задачи (main.cpp)
Файл с
алгоритмом решения должен работать со списком только через функции, описанные в
заголовочном файле. Программа должна быть спроектирована таким образом, чтобы
способ реализации списка можно было бы изменить.
.
Контрольные вопросы
1.       Что такое список?
2.       Какие основные функции
вы знаете? Привидите примеры.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов, Системное
     программное обеспечение: Учебник для вызов, 3-е изд., СПБ.: Питер, 2010. –
     400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для программиста
     [Электронный ресурс]. - Режим доступа: http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим доступа:http://www.youtube.com/user/visvivatutorials,
     свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Лабораторное  занятие
форма текущего контроля

по теме: «Настройка
приложения и установка среды программирования Delphi»
Цель:
научиться настраивать приложения и устанавливать среду
программирования Delphi.
По
завершению лабораторного занятия студент должен уметь: настраивать приложения и устанавливать среду
программирования Delphi.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение: операционная система Windows, Visual C#.

Ход работы
После того, как Вы вставили диск с дистрибутивом Delphi 7
произойдет автозапуск и Вы увидите меню с выбором приложений для установки
(если запуск не произошел, то зайдите на диск и запустите install.exe).
Нас пока интересует только пункт «Delphi 7». Щелкаем по нему.

После подготовки к установке появится окно приветствия. Жмем
«Next>»

В этом окне нас просят ввести серийный номер и ключ авторизации.
Для прохождения данного шага введите ключи указанные на диске или поищите в
содержимом диска.

После того, как Вы ввели регистрационную информацию, будет
предложено ознакомится с лицензионным соглашением и дать свое согласие. Как
только Вы «прочтете» соглашение, необходимо отметить «I accept the terms in the
license agreement». Жмем «Next>»

На следующем шаге предложен выбор типа установки: Typical (полный), Compact(установка
только необходимых компонентов языка), Custom(ручной). Выбираем
тип «Typical». Жмем «Next>»

Возможно, выскочит следующее сообщение. Жмем «Нет».

На данном шаге нам будет предложено включить или отключить
установку VisiBroker/Corba. В рамках обучения данная поддержка нам не
пригодится, так что отключаем. О том, что это такое можете почитать в
Wiki здесь. Жмем «Next>»

На данном этапе, будет предложено выбрать, какой офис будет
поддерживаться по умолчанию. Ставим Office XP. Жмем «Next>»

Здесь нам предлагают установить InterBase Client. В ближайшей
перспективе он нам не нужен. Снимаем галочку. О том, что это такое,
читаем здесь. Жмем «Next>».

На этом этапе, нам предложено указать пути установки. Не будем
заморачиваться, да и путаница в дальнейшем нам не нужна. Оставляем все по
умолчанию. Жмем «Next>»

На этом шаге нам рекомендуют сохранить установочную базу на
жестком диске. В дальнейшем при доустановке компонентов или просто
деинсталляции нам не нужен будет CD. Рекомендую оставить. Жмем «Next>»

Итак, наконец-то процесс установки пошел.

После успешного завершения установки мы получим следующее окно.

Все. Поздравляю! Установка завершена. Жмем «Finish» и приступаем к
работе (Пуск->Программы->Borland Delphi 7-> Delphi 7 ). Возможно,
потребуется перезагрузка системы.

Задание
1.  Осуществить по шагам
установку среды программирования Delphi 7 и выполнить его настройку.
Оформление отчета
В тетрадь
для практических и лабораторных работ переписать тему и цель практического
занятия. Переписать алгоритм установки Delphi
7.
.
Контрольные вопросы
1.       Что такое среда
программирования Delphi 7?
2.       Что такое формы Delphi
7?
3.       Что такое
компоненты среды Delphi 7? Привидите примеры.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru [Электронный
     ресурс]. - Режим доступа: http://codinglessons.ru/, свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Лабораторное  занятие
форма текущего контроля

по теме: «Запуск программы Delphi, обработка
исключений»
Цель:
научиться запускать среду программирования Delphi и
создавать проект.
По
завершению лабораторного занятия студент должен уметь: запускать среду программирования Delphi
и создавать проект.
Продолжительность: 4 аудиторных часа (180 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение: операционная система Windows, Borland Delphi.

Ход работы
Обработчики событий.
Требуется разработать два обработчика события –
нажатие на кнопку. Первый – «прыгающий», второй – нет. В период разработки не
стоит назначать эти обработчики конкретным кнопкам. Рекомендуется организовать
две переменные – указатели на метод (например как поля объекта форма).
При создании формы следует разыграть случайным образом
номер «прыгающей» кнопки (random) и, в соответствии с этим, установить обработчики
событий OnClick всех 10 кнопок: 9 «не прыгающих» и одной «прыгающей».
Работа с кнопками.
Для удобства работы рекомендуется создать массив из
десяти указателей на кнопку, элементам которого при создании формы присвоить
указатели на конкретные кнопки, созданные путем перетаскивания на форму. Это
позволит адресовать кнопки по индексу.
Например,
...
var
Buttons : array[1..10]of TButton;
i:integer;
...
for i:=1 to 10 do
begin
Buttons[i]:=TButton.Create(Self);
Buttons[i].Parent:=Self;
Buttons[i].Caption:=IntToStr(i);
Buttons[i].Top:=i*30;
Buttons[i].Visible:=true;
...
end;

Задание
1.
 Поработать со свойствами объектов с помощью инспектора объектов.
2.
Разработать программу в соответствии с описанием:
·
на главной форме расположены 10
кнопок;
·
при нажатии на одну из них она
«запрыгает» - то есть многократно сместится вверх-вниз;
·
при нажатии на любую из них (в том
числе и прыгающую) номер «прыгающей» кнопки изменяется случайным образом.
Оформление отчета
В тетрадь
для практических и лабораторных работ переписать тему и цель практического
занятия. Законспектировать основные методические указания и код программы.
.
Контрольные вопросы
1.       Что такое
исключения в среде программирования Delphi 7?
2.       Каким образом происходят
исключения в Delphi 7?
3.       Что такое события
среды Delphi 7? Привидите примеры.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы объектного
     программирования на С# (C# 3.0, Visual Studio 2008). - М.: БИНОМ.
     Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум /Т.Павловская,
     Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Средства и
инструменты разработки программного обеспечения»
Цель: Изучение
основных средств и инструментов разработки программного обеспечения
По завершению практического занятия студент должен
уметь: настраивать приложения и
устанавливать среды программирования Delphi.
Продолжительность: 4 аудиторных часа (180 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение: операционная система Windows, Visual C#.

Общие сведения
Открыть новый проект можно,
выбрав пункт меню File | New Project.  Для работы можно
создать форму согласно образцу (рисунок 1).
Поместите на форму объект TMemo, а затем TEdit так,
чтобы он наполовину перекрывал TMemo, как показано на рисунке 1 Теперь выберите
пункт меню Edit | Send to Back, что приведет к перемещению TEdit вглубь формы,
за объект TMemo. Это называется изменением Z-порядка компонент.
Поместите кнопку TButton в нижнюю часть формы. Теперь растяните Инспектор
Объектов так, чтобы свойства Name и Caption были видны одновременно на экране.
Теперь измените имя кнопки на Terminate. Текст, который Вы видите на
поверхности кнопки - это значение свойства Caption. Напишите обработчик нажатия
на кнопку, который будет закрывать приложение.
Для работы со свойствами нажмите клавишу <Shift>
и щелкните на TMemo и затем на TListBox. Теперь оба объекта имеют по краям
маленькие квадратики, показывающие, что объекты выбраны. Выбрав два или более
объектов одновременно, можно выполнить большое число операций над ними,
например, передвигать по форме. Затем попробуйте выбрать пункт меню Edit | Size
и установить оба поля Ширину(Width) и Высоту(Height) в Grow to Largest, как
показано на рисунке 2. Теперь оба объекта стали одинакового размера.
Затем выберите пункт меню Edit | Align и поставьте в
выравнивании по горизонтали значение Center (рисунок 1.15).
                Поскольку выбрано два компонента, то содержимое
Инспектора Объектов изменится - он будет показывать только те поля, которые
являются общими для объектов. Это означает то, что изменения в свойствах
повлияют не на один, а на все выбранные объекты.
                Рассмотрим изменение свойств объектов
на примере свойства Color. Есть три способа изменить его значение в Инспекторе
Объектов. Первый - просто напечатать имя цвета (clRed) или номер цвета. Второй
путь - нажать на маленькую стрелку справа и выбрать цвет из списка. Третий путь
- дважды щелкнуть на поле ввода свойства Color. При этом появится диалог выбора
цвета.
                Свойство Font работает аналогично свойству Color.
Дважды щелкните на свойство Items объекта ListBox.
Появится диалог, в котором Вы можете ввести строки для отображения в ListBox.
Напечатайте несколько слов, по одному на каждой
строке, и нажмите кнопку OK. Текст отобразится в ListBox’е.
Сохранение программы:
                Создать поддиректорию для программы. Лучше всего
создать директорию, где будут храниться все Ваши программы и в ней создать
поддиректорию для данной конкретной программы.
После создания поддиректории для хранения программы
нужно выбрать пункт меню File | Save Project. Сохранить нужно будет
два файла. Первый - модуль (unit), над которым Вы работали, второй - главный
файл проекта, который "владеет" Вашей программой. Сохраните модуль
под именем MAIN.PAS и проект под именем TIPS1.DPR.
                Для разработки обработчика нажатия на кнопку перейдите
на форму и дважды щелкните мышкой на объект TButton. Вы попадете в окно
Редактора, в котором будет фрагмент кода:
procedure
TForm1.TerminateClick(Sender: TObject);
begin
end;
Данный код был создан автоматически и будет
выполняться всякий раз, когда во время работы программы пользователь нажмет
кнопку Terminate. Определение класса в начале файла теперь включает ссылку на
метод TerminateClick:
TForm1 =
class(TForm)
Edit1:
TEdit;
Memo1:
TMemo;
Terminate:
TButton;
procedure
TerminateClick(Sender: TObject);
private
{
Private declarations }
public
{
Public declarations }
end;
                Для того, чтобы приложение закрывалось при нажатии на
кнопку необходимо написать код:
procedure
TForm1.TerminateClick(Sender: TObject);
begin
  Close;
end;

Инструментальные средства
В дополнение к инструментам, рассмотренным выше,
существуют пять средств, поставляемых вместе с Delphi. Эти инструментальные
средства:
·
Встроенный отладчик
·
Внешний отладчик (поставляется
отдельно)
·
Компилятор командной строки
·
WinSight
                Данные инструменты собраны в отдельную категорию не
потому, что они менее важны, чем другие, но потому, что они играют достаточно
абстрактную техническую роль в программировании.
                Отладчик позволяет пройти пошагово по исходному тексту
программы, выполняя по одной строке за раз, и открыть просмотровое окно
(Watch), в котором будут отражаться текущие значения переменных программы.
                Встроенный отладчик, который наиболее важен из пяти
вышеперечисленных инструментов, работает в том же окне, что и Редактор. Внешний
отладчик делает все, что делает встроенный и выполняет дополнительные функции.
Он более быстр и мощен, чем встроенный. Однако он не так удобен в
использовании, главным образом из-за необходимости покидать среду Delphi.
                Внешний компилятор (DCC.EXE)
полезен, в основном, если необходимо скомпилировать приложение перед отладкой
его во внешнем отладчике. Возможно создать и откомпилировать программу на
Delphi, используя только DCC.EXE и еще одну программу CONVERT.EXE, которая
поможет создать формы. Однако, данный подход неудобен для большинства
программистов.
                WinSight (WS.EXE) интересен
преимущественно для опытных программистов в Windows.  Этот инструмент
используются для узких технических целей. Основная его функция – позволяет
наблюдать за системой сообщений Windows. Хотя Delphi делает много для того,
чтобы спрятать сложные детали данной системы сообщений от неопытных пользователей,
тем не менее Windows является операционной системой, управляемой событиями.
Почти все главные и второстепенные события в среде Windows принимают форму
сообщений, которые рассылаются с большой интенсивностью между  различными
окнами на экране. Delphi дает полный доступ к сообщениям Windows и позволяет
отвечать на них, как только будет нужно. В результате, опытным пользователям
WinSight становится просто необходим.
Стандартные компоненты
                На первой странице Палитры Компонент размещены 14
объектов (рисунок 3.2) наиболее важных для использования (кнопка, списки, окно
ввода и т.д.).            Набор и порядок компонент на каждой странице являются
конфигурируемыми. Можно добавить к имеющимся компонентам новые, изменить их
количество и порядок.
                Стандартные компоненты Delphi:
·                  TMainMenu  позволяет поместить
главное меню в программу. При помещении TMainMenu на форму это выглядит не как
меню, а как обычная иконка. Иконки данного типа называют «невизуальными
компонентами», поскольку они невидимы во время выполнения программы. Создание
меню включает три шага:
1.
помещение TMainMenu на форму,
2.
вызов Дизайнера Меню через
свойство Items в Инспекторе Объектов,
3.
определение пунктов меню в
Дизайнере Меню.
·                  TPopupMenu
 позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку
правой кнопки мыши.
·                  TLabel служит для отображения
текста на экране. Для изменения шрифта и цвета метки необходимо дважды щелкнуть
на свойство Font в Инспекторе Объектов. Изменить данные свойства возможно и во
время выполнения программы.
·                  TEdit - стандартный управляющий
элемент Windows для ввода. Он может быть использован для отображения короткого
фрагмента текста и позволяет пользователю вводить текст во время выполнения
программы.
·                  TMemo -  иная форма TEdit.
Подразумевает работу с большими текстами. TMemo может переносить слова,
сохранять в Clipboard фрагменты текста и восстанавливать их, и другие
основные функции редактора. TMemo имеет ограничения на объем текста в 32Кб, это
составляет 10-20 страниц.
·                  TButton  позволяет выполнить
какие-либо действия при нажатии кнопки во время выполнения программы. Поместив
TButton на форму, по двойному щелчку можно создать
заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку
кодом (подчеркнуто то, что нужно написать вручную):
procedure TForm1.Button1Click(Sender: TObject);
begin MessageDlg('Are you
there?',mtConfirmation,mbYesNoCancel,0); end;
·    TCheckBox
отображает строку текста с маленьким окошком рядом. В окошке можно
поставить отметку, которая означает, что что-то выбрано.
·                  TRadioButton
позволяет выбрать только одну опцию из нескольких.
·                  TListBox
 нужен для показа прокручиваемого списка.
·                  TComboBox
во многом напоминает ListBox, за исключением того, что позволяет водить
информацию в маленьком поле ввода сверху ListBox.
·                  TScrollbar
- полоса прокрутки, появляется автоматически в объектах
редактирования при необходимости прокрутки текста для просмотра.
·                  TGroupBox используется для
визуальных целей и для указания Windows, каков порядок перемещения по
компонентам на форме (при нажатии клавиши TAB).
·                  TPanel - управляющий элемент, похожий
на TGroupBox, используется в декоративных целях. Чтобы использовать TPanel,
нужно просто поместить его на форму и затем положить другие компоненты на него.
Теперь при перемещении TPanel будут передвигаться и эти компоненты. TPanel
используется также для создания линейки инструментов и окна статуса.
·   TScrollBox представляет место на форме, которое
можно скроллировать в вертикальном и горизонтальном направлениях. Используется
в случаях, когда понадобится прокручивать только часть формы.
Задание
1.
Создать новый проект. Потренируйтесь добавлять и удалять визуальных компонентов
на форму. Поработайте со свойствами объектов с помощью инспектора объектов.
Добавьте обработчики событий. Запустите программу из интегрированной среды.
Выполните пошаговую отладку с инспектированием значений переменных.
Потренируйтесь в создании, добавлении и удалении модулей и форм. Выполните
настройку опций проекта, а также настройку опций среды программирования.
Сохраните проект.

Оформление отчета
В тетрадь
для практических и лабораторных работ переписать тему и цель практического
занятия. Законспектировать основные методические указания и код программы.
.
Контрольные вопросы
1.       Что такое средства
и инструменты разработки программного обеспечения в среде программирования Delphi
7?
2.       Какие компоненты
среды программирования вы знаете Delphi 7? Привидите примеры.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.: БИНОМ.
     Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А. Прикладное
     программное обеспечение: учебное пособие. - М.: Евразийский открытый
     институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа: http://www.codenet.ru/,
     свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Разработка программного
обеспечения группой программистов»
Цель: изучение основных визуальных компонентов по страницам.
Приобретение навыков использования визуальных компонентов из страниц: Standard,
Additional, Win32, Dialogs, Samples, получение навыков разработки собственных форм.
Применение механизма областей видимости.
По завершению практического занятия студент должен
уметь: использовать визуальные
компоненты из страниц: Standard, Additional, Win32, Dialogs, Samples, разрабатывать собственные формы.
Продолжительность: 4 аудиторных часа (180 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение: операционная система Windows.
Общие сведения
Главной формой проекта будет
форма, представленная на рисунке 2.1. Остальные формы должны вызываться из нее
при выборе соответствующего пункта меню.
Существует два варианта
открытия новой формы – как окна или немодальной панели и как модальной формы
(диалога). В первом случае надо вызвать как процедуры Form2.Show
во втором Form2.ShowModal. Закрытие формы в любом случае Close.
В случае вызова как модальной можно вернуть результат – целое число (например
признак того, нажали OK или Cancel). Form2.ShowModal будет функцией, возвращающей это значение.
Некоторые события, обрабатываемые формой:
·
OnActivate – при активизации, т.е. при переключении в окно из
другого окна данного приложения
·
OnCreate – при создании
·
OnShow – вызывается, когда форма становится видимой,
·
OnResize – при изменении размеров формы.
Вызов окна сообщения осуществляется с помощью функции Application.MessageBox.
Например:
Application.MessageBox('Параметры будут сохранеы','Сохранить?', MB_OKCANCEL)
= IDOK then
Работа с файлами подобна Borland Pascal:
var F: TextFile;
begin
  if (SaveDialog1.Execute) then
  begin
    AssignFile(F, SaveDialog1.FileNane);
    Rewrite(F);
    Writeln(F, 'Just created file with this text in
it...');
    CloseFile(F);
End;
end;
Если нужно, чтобы с
визуальным компонентом была связана всплывающая строка подсказки, его свойство ShowHint
надо установить в true, а свойству Hint присвоить желаемый текст.
Для того, чтобы связать с
визуальным элементом всплывающее меню, то его свойству PopupMenu надо
присвоить имя переменной – визуального компонента типа всплывающее меню,
который предварительно надо поместить из библиотеки компонентов на форму.
Визуальные компоненты, используемые при разработке
программы для лабораторной работы
Страница Standard:

MainMenu –
     позволяет конструировать и создавать полосу главного меню формы и
     выпадающее меню.
PopupMenu –
     всплывающее меню, возникающее при нажатии пользователем правой кнопки
     мыши. Для редактирования меню дважды щелкнуть мышью по его значку на
     форме. Необходимо связать его с тем визуальным компонентом, для которого
     оно буде всплывать. Для этого свойству PopupMenu
     того компонента присвоить имя объекта – всплывающего меню (напр. PopupMenu1)
Memo – многострочное окно редактирования. Текст
     содержится в свойстве Lines. Можно менять шрифт текста всего окна – свойство
     Font (например присвоить ему FontDialog1.Font после выполнения FontDialog1.Execute). Поддерживает операции с буфером обмена –
     методы CopyToClipboard, CutToClipboard, PasteFromClipboard. Для того, чтобы была полоса прокрутки удобно
     поместить его на ScrollBox.
CheckBox –
     контрольный индикатор с флажком, позволяет включать и выключать разные
     опции.Включен или выключен показывает свойство Checked.
RadioGroup
     – группа радиокнопок. Список названий кнопок – свойсто Items. Номер выбранной альтернативы – свойство ItemIndex
     (если не выбрано ни одной, равно   -1).

Страница Additiona:

BitBtn – кнопка с графикой. Графика задается свойством Kind.

·
Image – изображение. Можно загрузить из файла – метод LoadFromFile его свойства Picture (Image1.Picture.LoadFromFile). Чтобы размер изображения соответствовал размеру
файла свойство AutoSize следует установить в true. Можно Для
того, чтобы была полоса прокрутки удобно поместить его на ScrollBox.
·
ScrollBox – используется для создания зон отображения с
прокруткой.
·
Chart – диаграммы и графики. Для редактирования формата
диаграмм и графиков дважды щелкнуть по окну диаграммы  на форм. Обязательно
добавить нужное число рядов данных (Series). Для добавления точки на
график используется метод AddXY  например: Chart1.SeriesList[0].AddXY(0.02*Pi*i,sin(0.02*Pi*i),'',clRed),
для добавления данного на диаграмму – Add.
Страница Win32:
·
PageControl – многостраничное окно. Для добавления и
редактирования страниц щелкнуть по окну на форме правой кнопкой мыши. Для
переименования закладки щелкнуть в середине нужной открытой страницы и менять
свойство Caption соответствующей TabSheet.
Размещать визуальные элементы как на обычной форме.
·
Richedit – текстовый редактор, позволяющий производить выбор
цвета, шрифта, поиск текста и др. Для изменения шрифта выделенного участка
текста или если нет выделения, всего текста необходимо вызвать
RichEdit1.SelAttributes.Assign(FontDialog1.Font) (до этого необходимо вызвать
диалоговое окно настройки шрифта FontDialog1.Execute и проверить выполнился ли он – if (FontDialog1.Execute) then …). RichEdit поддерживает операции с буфером обмена – методы CopyToClipboard, CutToClipboard, PasteFromClipboard. Для того, чтобы была полоса прокрутки удобно
поместить его на ScrollBox.
·
DateTimePicker – ввод дат и времени с выпадающим календарем. Свойство
Kind показывает дату или время будем вводить. Свойства Time
и Date содержат значения. Для преобразования форматов даты и
времени в строку удобно использовать функции  DateToStr и TimeToStr.
·
StatusBar – полоса состояния. Редактор строки состояния
вызывается двойным щелчком по ее изображению на форме. Свойство Align
показывает по какой из границ окна она будет расположена.
Страница Dialogs
Содержит диалоги. Для того, чтобы вызвать диалог, надо
во-первых поместить его на форму (при выполнении программы он будет невидим).
Во-вторых вызвать метод Execute. Его можно вызвать как процедуру или, лучше, как
функцию, которая возвращает признак того, был ли диалог выполнен (т.е. была ли
нажата OK или Cancel). Результат выполнения диалога содержится в его
свойстве с соответствующим именем. Имя файла – FileName, шрифт
– Font и т.д. Значение этого свойства устанавливается и
может быть прочитано после выполнения Execute.
Страница Samples:
·
ColorGrid – таблица цветов для выбора. Позволяет выбрать два
цвета – фона и рисования. Имена свойств, содержащих номера выбранных цветов
BackgroundIndex и ForegroundIndex.
·
SpinEdit – окно редактирования со счетчиком. Значение шага –
свойство Increment. Значение числа – Value. Можно
ограничить диапазон – MinValue, MaxValue.
Задание
Разработать программу с интерфейсом, приведенным
на рисунке 3.1 1.
Пункт меню РАЗДЕЛЫ содержит четыре пункта:
·
Работа с
изображениями;
·
Текстовый
редактор;
·
Настройки;
·
Построение
графиков.
При выборе пункта РАБОТА С ИЗОБРАЖЕНИЯМИ
появляется диалоговое окно выбора графического файла стандартного вида. В
случае выбора файла появляется форма с выбранным изображением, в строке
состояния отображается имя открытого файла и координаты мыши (рисунок 2.2).

При выборе пункта
ТЕКСТОВЫЙ РЕДАКТОР выводится форма, содержащая многострочное окно
редактирования Memo и
текстовый редактор RichEdit.
С визуальными компонентами Memo и RichEdit необходимо связать всплывающую
строку подсказки и всплывающее меню для организации работы с текстом
(копировать, перемещать, изменять шрифт). Примерный вид формы приведен на
рисунке 2.3.
С визуальными компонентами Memo и RichEdit
необходимо связать всплывающую строку подсказки и всплывающее меню для организации
работы с текстом (копировать, перемещать, изменять шрифт). Примерный вид формы
приведен на рисунке 2.3.

Форма НАСТРОЙКИ представляет собой многостраничное
окно. Окно имен три страницы:
·
Ввод чисел и дат (рисунок 2.4);

·
Индикаторы и радиокнопки (рисунок
2.5);

·
Выбор цвета (рисунок 2.6).

При нажатии кнопки ОК необходимо:
1.
запросить, необходимо ли сохранить
настройки (окно сообщения Windows)
2.
организовать сохранение
установленных настроек в текстовом файле. Для выбора имени файла вызывается
диалоговое окно стандартного вида.
При выборе пункта ПОСТОЕНИЕ ГРАФИКОВ выводится форма с
графиками функций y=sin(x) и y=cos(x) (рисунок 2.7). При изменении размеров окна график
должен масштабироваться.

Оформление отчета
В тетрадь
для практических и лабораторных работ переписать тему и цель практического
занятия. Законспектировать основные методические указания, код программы и
формы событий.
.
Контрольные вопросы
1.       Что такое средства
и инструменты разработки программного обеспечения в среде программирования
Delphi 7?
2.       Какие компоненты
среды программирования вы знаете Delphi 7? Привидите примеры.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Создание модуля
компонента и его тестирование»
Цель: создать
модуль компонента и протестировать его.
По завершению практического занятия студент должен
уметь: создавать и тестировать модуль
компонентов.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение: операционная система Windows, Borland
Delphi.
Общие сведения
Разработка новых визуальных компонентов
обычно производится путем порождения классов-потомков от уже существующих в
используемой библиотеке и требует как знаний концепций ООП и конкретного языка
программирования, так и структуры конкретной объектно-ориентированной
библиотеки компонентов
Иерархия библиотечных классов в Borland Delphi
Все компоненты Delphi являются частью иерархии
классов, называемой Visual Component Library (VCL). Часть этой иерархии
представлена на рисунке 7.1.
Класс TObject инкапсулирует наиболее общее поведение всех
объектов в VCL и
включает методы, которые обеспечивают:
-
возможность
создавать, поддерживать и уничтожать экземпляры объектов, путем распределения,
инициализации и освобождения памяти, необходимой под объект,
-
методы
класса, предназначенные для доступа к информации класса,
поддерживает обработку
сообщений.

Назначение TObject – служить базовым для всех
других классов.
Многие методы TObject используются Delphi скрыто от разработчика и не
вызываются разработчиком непосредственно. Другая группам методов должна быть
перекрыта порождаемыми от него классами для реализации их более сложного
поведения.
Экземпляры класса TObject обычно не создаются, так как
большинство его методов абстрактные.
Класс TComponent является общим предком всех
компонентов в VCL. Он
обеспечивает минимальный набор свойств и событий необходимых, чтобы компонент
мог использоваться Delphi
При создании нового компонента
он добавляется в библиотеку путем  порождения нового класса от одного из
существующих классов иерархии.
TControl – базовый класс для всех
компонентов, которые видимы во время исполнения и которыми пользователь может
манипулировать во время выполнения программы. Такие компоненты называют
элементами управления. Все элементы управления имеют свойства, методы и события
которые, в основном, служат для обеспечения визуального аспекта, например
расположения элемента управления, курсора и подсказки, связанных с элементом
управления, методов отрисовки и перемещения элемента управления и обработки
событий на действия от мыши. TControl имеет много защищенных свойств и методов, которые используются или
публикуются в его потомках.
TWinControl – базовый класс для всех
оконных элементов управления. Оконные элементы управления это те, которые:
-
способны
получать фокус во время выполнения программы (т.е. пользователь может их
выделять),
-
способны
получать данные, вводимые пользователем в элемент с клавиатуры,
-
способны
включать в себя другие элементы управления.
Элементы управления, которые
включаю в себя другие элементы управления называют их владельцами (parent). Только оконный элемент
управления может быть владельцем одного или более других компонентов.
Оконные элементы управления
имеют свойство handle,
которое представляет собой дескриптор окна. Дескриптор окна это идентификатор,
предоставляемый Windows окну.
Windows может взаимодействовать с
оконным элементом управления через этот дескриптор.
Новые компоненты редко
порождаются непосредственно от TWinControl. Большинство новых элементов управления создаются как
потомки TCustomControl, который предоставляет
возможности вывода графической информации – холст («canvas»), или как потомки более
специализированных элементов управления, таких как TButtonControl, TCustomComboBox, TCustomEdit, или TCustomListBox.
TCustomControl – базовый класс для оконных
элементов управления, которым необходима возможность создания сложных
изображений.
Стандартный оконный элемент
управления всегда «знает» как себя отобразить, так как он является частью Windows. Таким образом, кнопка или
индикатор с флажком порождены непосредственно от TWinControl. Когда же создается
оригинальный оконный элемент управления, который не имеет соответствующего
стандартного компонента Windows, он порождается от TCustomControl, а не непосредственно от TWinControl. TCustomControl делает отрисовку оригинального
элемента управления простой для программиста.  TCustomControl имеет виртуальный метод Paint, который вызывается при
необходимости перерисовки элемента управления (сообщение WM_PAINT). При разработке нового
компонента программист помещает в этот метод действия по рисованию его элемента
управления. Действия же эти он берет через свойство Canvas:TCanvas (канва или холст).
Класс TCanvas объединяет в себе «холст»
(контекст графического устройства) и «рабочие инструменты» (перо, кисть, шрифт)
а также набор функций по рисованию типовых геометрических фигур.
Если необходимо создать элемент
управления, который не должен получать фокус ввода, то его порождают от TGraphicControl, а не от TCustomControl, чтобы избежать накладных
расходов, связанных с возможностями оконного элемента управления. Отрисовка
оконного элемента управления медленнее, чем отрисовка графического элемента
управления.
TGraphicControl – базовый класс для элементов
управления, не являющихся оконными.
Основная цель большинства
графических элементов управления – отображения текста или графики. Компоненты Delphi, порожденные от TGraphicControl это: TBevel, TImage, TPaintBox, TShape, TSpeedButton, TSplitter и TCustomLabel, из которых в свою очередь
порождены TDBText and TLabel.
В добавление к тому, что
унаследовано от абстрактного компонента TControl, TGraphicControl имеет свойство Canvas, которое обеспечивает
возможности рисования элемента управления и виртуальный метод Paint, который вызывает при
необходимости его перерисовки (сообщении WM_PAINT, получаемом от владельца элемента управления).
Графический элемент управления
не может получать фокус ввода, а также не может содержать в себе других
элементов управления. Хотя он не может получить фокус ввода, он может
реагировать на сообщения мыши.
Так как графический элемент
управления не имеет дескриптора окна Windows (window handle), его потребность в системных ресурсах меньше и именно поэтому его
перерисовка происходит быстрее, чем у оконного элемента управления, который
имеет дескриптор окна.
Пример компонента, порожденного
от TGraphicControl – TLabel.
Задание
1
Разработать визуальный компонент Delphi
– потомок TGraphicControl, представляющий собой любую статичную картинку на
форме, представленный соответствующей картинкой на панели компонентов.
2
Разработать визуальный компонент Delphi
– потомок компонента, описанного в п.1, представляющий собой меняющуюся во
времени картинку на форме.
Возможное целевое назначение таких компонентов – фирменный знак.

Оформление отчета
В тетрадь для
практических и лабораторных работ переписать тему и цель практического занятия.
Законспектировать основные методические указания, код программы.
.

Контрольные вопросы
1.       Что такое классы в
среде программирования Delphi 7?
2.       какая существует
иерархия классов в Delphi 7? Привидите примеры.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа: http://window.edu.ru/resource/359/77359,
     свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Характеристика
технологии тестирования программных продуктов»
Цель: создать
модуль компонента и протестировать его.
По завершению практического занятия студент должен
уметь: создавать и тестировать модуль
компонентов.
Продолжительность: 2 аудиторных часа (90 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение: операционная система Windows, Borland
Delphi.
Общие сведения
Процесс создания
компонентов
В процессе создания
компонента можно выделить следующие этапы:
-
создание модуля для компонента,
-
создание описания и реализации
класса для компонента,
-
создание Help файла для
компонента (если требуется),
-
тестирование не установленного
компонента,
-
регистрация компонента.
По завершению
работы компонент будет включать следующие файлы:
-
файл пакета (.BPL)
или коллекции пакетов (.DPC),
-
откомпилированный файл пакета (.DCP),
-
откомпилированный файл модуля (.DCU),
-
файл графического изображения для
компонента в палитре компонентов (.DCR),
-
файл справки (.HLP).
В среде разработки Delphi пакеты
используются для хранения кода визуальной библиотеки компонентов. Исходный файл
пакета имеет расширение DPK и представляет собой выполненное с использованием
специального синтаксиса перечисление модулей и других пакетов, включаемых в
состав данного пакета. На основе исходного файла компилятор генерирует
исполняемый файл пакета с расширением BPL и создает файл бинарной карты
пакета с расширением DCP, в который включается заголовок пакета и ссылки на
все используемые файлы с расширением DCU. Новый компонент можно как
добавить в уже имеющийся пакет, так и создать для него новый. Создание нового в
большинстве случаев предпочтительнее.
Создание модуля
В состав модуля компонента помимо описания и
реализации класса должна входить процедура регистрации Register.
Существуют два способа создания модуля для нового
компонента:
-
используя Component Wizard (New/Component),
-
создание компонента «в ручную».
При создании компонента с помощью мастера упрощается
начальная стадия создания. В процессе диалога с мастером создания компонентов
программист задает следующее:
-
класс, от которого компонент
порождается,
-
имя класса нового компонента –
причем только одного,
-
имя страницы палитры компонентов,
на которой компонент будет размещен,
-
имя модуля, в котором будет описан
компонент,
-
путь к этому модулю,
-
имя пакета, в котором будет
размещен компонент.
На основе этих данных мастер создает шаблон модуля для
компонента. В его состав будут входить заготовка для класса и процедура
регистрации компонента, например:
unit
MyControl;
interface
uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type

TMyControl = class(TCustomControl)

private
  {
Private declarations }

protected
  {
Protected declarations }
  public
  {
Public declarations }

published
  {
Published declarations }
end;
procedure
Register;
implementation
procedure
Register;
begin

RegisterComponents('Samples', [TMyControl]);
end;
end.
Процедура RegisterComponents регистрирует
указанный визуальный компонент (в пример TMyControl) на
указанной странице компонентов (в примере это страница Samples).
При создании компонента вручную первым шагом создается
новый Unit. Далее в нем описывается класс компонента и процедура
регистрации. В одном модуле можно разместить несколько компонентов. Также можно
добавить компоненты в модуль, созданный автоматически. Процедура RegisterComponents вызывается один раз для всех компонентов,
регистрируемых на одной страницы компонентов. В этом вызове указывается имя
страницы и перечисляются все размещаемые на ней компоненты. Процедура
регистрации для случая нескольких компонентов будет выглядеть, например,
следующим образом:
procedure
Register;
begin

RegisterComponents('NewPage1', [TFirst, TSecond]);  {два компонента на одной странице}

RegisterComponents('NewPage2', [TThird]);  {один на другой}

RegisterComponents(LoadStr(srStandard), [TFourth]);{один на стандартной}
end;

Задание
1.
Добавить
в проект модуль, содержащий компонент;
2.
Добавить
имя модуля, в котором находится описание компонента, в раздел uses той формы, где
планируется его использование;

Добавить
     поле типа класс нового компонента в раздел public
     формы;
Установить
     процедуру обработки события OnCreate для формы в котором будет написан код создания и
     инициализации компонента;
Создать
     компонент в процедуре обработки данного события. В качестве параметра
     конструктора указывается Self – указатель на объект, который владеет данным
     компонентом;
Установить
     свойство Parent (указатель на объект, который осуществляет
     визуальный контроль за компонентом) на форму;
Установить
     остальные свойства компонента.

Оформление отчета
В тетрадь
для практических и лабораторных работ переписать тему и цель практического
занятия. Законспектировать основные методические указания, код программы.
.
Контрольные вопросы
1.       Что такое классы в
среде программирования Delphi 7?
2.       какая существует
иерархия классов в Delphi 7? Привидите примеры.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Текущий контроль
 4 семестр
МДК 01.02. Прикладное программирование.
Практическое  занятие
форма текущего контроля

по теме: «Разработка
тестирующей программы на языке программирования высокого уровня и оформление соответствующей
документации»
Цель: разработать
тестирующую программу и оформить документацию.
По завершению практического занятия студент должен
уметь: разрабатывать тестирующую
программу и оформлять документацию.
Продолжительность: 4 аудиторных часа (180 минут)

Необходимые принадлежности
Персональный компьютер,
программное обеспечение: операционная система Windows, Borland
Delphi.
Задание
Создать тестирующую программу и оформить
соответствующую документацию.
Оформление отчета
В тетрадь
для практических и лабораторных работ переписать тему и цель практического занятия
и требования по оформлению тестирующей программы.
.
Контрольные вопросы
1.       Что такое классы в
среде программирования Delphi 7?
2.       Какая существует
иерархия классов в Delphi 7? Привидите примеры.
Литература
Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский
     открытый институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Контрольная работа
за 2 курс, 4 семестр
МДК 01.01. Системное программирование

I
вариант

1.      Дан
список А, содержащий целые числа. Занести в список В порядковые номера
максимальных элементов списка.
2.      По
заданным значениям X , Y и D  вычислить

                      Вычисление MIN и MAX из двух величин оформить в виде
                      подпрограмм – функций.
3.    Даны
два файла целых чисел. Определить,  в каком из них больше  нулевых значений.

II
вариант

1.      Дан
список А, содержащий элементы символьной строки. Удалить первое вхождение буквы
«а» в список А.
2.      Описать
функцию, вычисляющую количество цифр в записи натурального числа.
3.
Даны два файла целых чисел. Определить,  в каком из них больше
положительных значений.

Контрольная работа за 3 курс, 5 семестр
МДК 01.02. Прикладное программирование

ЗАДАНИЯ ДЛЯ СТУДЕНТА

Что такое языки программирования?
Какие существуют языки программирования?
Какие языки программирования являются более распространенными?
Что такое композиция и декомпозиция?
Какие существуют виды декомпозиции?
Какие существуют методы декомпозиции?
Какие существуют основания декомпозиции?
Что такое отладка программного средства?
Что такое оптимальная стратегия отладки программного модуля?
Что такое абстрактная отладка программного модуля?
Какие существуют принципы и виды отладки программного средства.
Что такое отладка программного средства?
Что такое оптимальная стратегия отладки программного модуля?
Что такое абстрактная отладка программного модуля?
Какие существуют принципы и виды отладки программного средства.
Что такое компиляторы?
Что такое переменные?
Какие существуют виды переменных?
В чем отличие глобальных переменных от статических?
Что такое классы?
Что такое шаблоны классов?
Какие существуют шаблоны классов?
Что такое объектно-ориентированное программирование?
Какие существуют основные принципы ООП?
Что включает в себя ООП?
Что такое виртуальные и абстрактные базовые классы?
Какие классы и функции называются дружественными?
Как осуществляется перегрузка операций?
Сколько аргументов требуется для определения перегруженной унарной
     (бинарной) операции?
Чем отличается действие перегруженной операции ++ при ее
     использовании в префиксной форме от использовании в постфиксной форме?
Что такое виртуальные функции?
Что такое перегрузка операторов?
Какие существуют функции работы со строками?
Какой синтаксис используется для перегрузки операций?
Что такое наследование, одиночное наследование, множественное
     наследование?
Какие объекты базового класса наследуются в производном, а какие
     нет?
На примере своей программы поясните механизм позднего связывания.
В каком случае С++ проигнорирует механизм виртуальных функций?
Какие существуют  динамические структуры данных?
Что такое очередь?
Какие основные процедуры вы знаете? Привидите примеры.
Какие существуют  динамические структуры данных?
Что такое стек?
Какие основные процедуры вы знаете? Привидите примеры.
Что такое список?
Какие основные функции вы знаете? Привидите примеры.

           ГБПОУ
ВО «ЛИСКИНСКИЙ ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
А.К.ЛЫСЕНКО»

ЗАЧЕТНО-ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ     №_______

Учебный год    20___/20___           Курс            Семестр
_  __
Форма обучения   очная Специальность
09.02.03                                 «Программирование в
компьютерных системах»
Группа   914П
Форма контроля     Зачет
МДК.01.02  Прикладное
программирование
Фамилия, имя, отчество  преподавателя:  ______________.
Дата проведения «___»_________
2016 г .

№

Фамилия, имя,
  отчество студента

Номер вопроса,
варианта,
билета

Оценка

Подпись
  экзаменатора

1

2

3

4

5

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

Число обучающихся в группе  _________________________
из них получивших «отлично»   _________________________
получивших «хорошо»                _________________________
получивших «удовлетворительно»_______________________
получивших «неудовлетворительно»_____________________
Число не явившихся обучающихся_____________________
Число не допущенных обучающихся____________________

Экзаменатор_____________ /
_____________/  Зам.директора по УР___________/Ю.А. Попова/

(Приложение 5)
ЭКЗАМЕН
за 5 семестр
по МДК 01.01. Системное
программирование
Вопросы
для сдачи экзамена
(5 семестр)

Логические величины, операции, выражения.
Подпрограмма – процедура.
Подпрограмма- функция.
Рекурсия.
Основные понятия структурного программирования.
Модуль. Структура модуля.
Списки. Объявление
     списка.
Инициализация списка
Добавление элемента в
     начало списка
Печать элементов
     списка
Стеки. Объявление
     стека.
Инициализация стека. Добавление элемента в стек.
Проверка стека на пустоту. Извлечение элемента из стека.
Очереди. Объявление
     очереди.
Инициализация очереди. Добавление элемента в очередь.
Проверка очереди на пустоту. Извлечение элемента из
     очереди.
Создание и заполнение внешнего файла.
Чтение данных из внешнего файла.
Текстовые файлы.

(Приложение 6)
Билеты для сдачи
экзамена

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени А.К.Лысенко
  »

РАССМОТРЕНО
 цикловой  комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 1
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    915 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

Логические величины, операции, выражения.
Печать элементов
     списка
Дан массив А  из n целых чисел.
     Найти сумму максимального и минимального элемента в массиве.(Поиск
     максимума и минимума реализовать с помощью подпрограмм-функций).

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени А.К.Лысенко
  »

РАССМОТРЕНО
 цикловой  комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 1
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    915 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

Подпрограмма – процедура.
Стеки. Объявление
     стека.
Дан файл целых чисел. Выбрать наибольшее из чисел,
     принадлежащее интервалу [a,b].
     Концы интервала a и b
     вводятся с клавиатуры.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени А.К.Лысенко
  »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 3
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    915 П
 Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03  «Программирование в компьютерных системах»

1.      Подпрограмма-
функция.
2.      Инициализация
стека. Добавление элемента в стек.
3.      Дан
текстовый файл F1. Переписать его содержимое в файл F2, сохраняя строчную структуру и удаляя пустые строки.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени А.К.Лысенко
  »

РАССМОТРЕНО
 цикловой  комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 1
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03 «Программирование в компьютерных системах»

1.      Рекурсия.
2.      Проверка
стека на пустоту. Извлечение элемента из стека.
3.      Дан
текстовый файл F1. Переписать его содержимое в файл F2, сохраняя строчную структуру и удаляя пустые строки.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
      имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 5
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.       Основные
понятия структурного программирования.
2.      Очереди. Объявление очереди.
3.      Даны
две символьные строки S1 и S2,
содержащие только строчные латинские буквы. Построить строку S3,
в которую войдут только общие символы S1 и S2 в алфавитном порядке и без повторений.
Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 6
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование в
  компьютерных системах»

1.      Модуль.
Структура модуля.
2.      Создание
и заполнение внешнего файла.
3.      Даны
две символьные строки S1 и S2,
содержащие только строчные латинские буквы. Построить строку S3,
в которую войдут только общие символы S1 и S2 в алфавитном порядке и без повторений.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 7
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

Модуль. Структура модуля.
Чтение данных из внешнего файла.
Дан файл целых чисел. Определить, сколько раз в нем
     повторяется  максимальное значение.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 8
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

Списки. Объявление
      списка.
Текстовые файлы.
Дан файл целых чисел. Определить, сколько раз в нем
      повторяется  максимальное значение.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 9
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

            Добавление
     элемента в начало списка
Чтение данных из внешнего файла.
По координатам вершин треугольника вычислить его периметр,
     используя подпрограмму вычисления длины отрезка, соединяющего две точки.
     (длина отрезка= sgrt(sgr(x2-x1)+sgr(y2-y1)), где (x1,y1)-
     координаты одной точки, (x2,y2)-координаты
     второй точки отрезка).

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 10
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Подпрограмма
– процедура.
2.      Создание
и заполнение внешнего файла.
3.      По
координатам вершин треугольника вычислить его периметр, используя подпрограмму
вычисления длины отрезка, соединяющего две точки.   (длина отрезка= sgrt(sgr(x2-x1)+sgr(y2-y1)),
где (x1,y1)- координаты одной
точки, (x2,y2)-координаты
второй точки отрезка).

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 11
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

 Печать элементов
     списка
Создание и заполнение внешнего файла.
По координатам вершин треугольника вычислить его периметр,
     используя подпрограмму вычисления длины отрезка, соединяющего две точки.
     (длина отрезка= sgrt(sgr(x2-x1)+sgr(y2-y1)), где (x1,y1)-
     координаты одной точки, (x2,y2)-координаты
     второй точки отрезка).

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
      имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 12
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Стеки. Объявление стека.
2.      Создание
и заполнение внешнего файла.
3.      Дан
файл целых чисел F1. Создать два новых файла F2 и F3 из положительных и
отрицательных чисел соответственно.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 13
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

Инициализация очереди. Добавление элемента в очередь.
Подпрограмма-функция.

      3. Дан файл целых чисел F1.
Создать два новых файла F2 и F3
из положительных и отрицательных чисел соответственно.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени А.К.Лысенко
  »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 14
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Модуль.
Структура модуля.
2.      Очереди. Объявление очереди.
3.      Дан
файл целых чисел F1. Создать два новых файла F2 и F3 из положительных и
отрицательных чисел соответственно.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 15
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Проверка
очереди на пустоту. Извлечение элемента из очереди.
2.      Модуль.
Структура модуля.
3.      Даны
два файла целых чисел. Определить,  в каком из них больше положительных,
отрицательных и нулевых значений.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 16
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Создание
и заполнение внешнего файла.
2.      Логические
величины, операции, выражения.
3.      Даны
два файла целых чисел. Определить,  в каком из них больше положительных,
отрицательных и нулевых значений.

Преподаватель:                                            Петрова
О.Н

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 17
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Подпрограмма
– процедура.
2.      Текстовые файлы.
3.      Составить
рекурсивную подпрограмму вычисления N!

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 18
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

Подпрограмма- функция.
Чтение данных из внешнего файла.
Дана вещественная матрица размера m*n. Найти значение наибольшего по модулю элемента матрицы
     и указать его местоположение в матрице.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 19
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Основные
понятия структурного программирования.
2.      Добавление элемента в начало списка
3.      Дана
вещественная матрица размера m*n.
Найти значение наибольшего по модулю элемента матрицы и указать его
местоположение в матрице.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 20
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

Модуль. Структура модуля.
Стеки. Объявление стека.
Составить рекурсивную подпрограмму вычисления N!

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
      имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 21
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Списки. Объявление списка.
2.      Создание
и заполнение внешнего файла.
3.      По
заданным значениям X , Y и D  вычислить

Вычисление MIN и MAX
из двух величин оформить в виде подпрограмм – функций.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
      имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 22
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

Добавление элемента в
     начало списка
Текстовые файлы.
По заданным значениям X , Y и D  вычислить

Вычисление MIN и MAX
из двух величин оформить в виде подпрограмм – функций.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 23
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Печать элементов списка
2.      Подпрограмма
– процедура.
3.      По
заданным значениям X , Y и D  вычислить

Вычисление MIN и MAX
из двух величин оформить в виде подпрограмм – функций.
4.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 24
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Стеки. Объявление стека.
2.      Подпрограмма
– функция.
3.      Определить
среднее арифметическое чисел, хранящихся в файле Note.txt.
Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 25
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Инициализация
стека. Добавление элемента в стек.
2.      Логические
величины, операции, выражения.
3.      Дан
список L, из N целых чисел. Удалить первое вхождение максимального элемента в
списке.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
      имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 26
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

Очереди. Объявление
     очереди.
Основные понятия структурного программирования.
Дан список L, из N целых чисел. Удалить первое вхождение
     максимального элемента в списке.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 27
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Инициализация
очереди. Добавление элемента в очередь.
2.      Модуль.
Структура модуля.
3.      Дан
список L, из N целых чисел. Удалить первое вхождение максимального элемента в
списке.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
     имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 28
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

Проверка очереди на пустоту. Извлечение элемента из
     очереди.
Создание и заполнение внешнего файла.
Дан текстовый файл Note.txt.
     Определить длину самой длинной строки этого файла.

Преподаватель:                                            Петрова
О.Н

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
      имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 29
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    916 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Чтение
данных из внешнего файла.
2.      Списки. Объявление списка.
3.      Дан
текстовый файл Note.txt. Определить длину самой длинной
строки этого файла.

Преподаватель:                                            Петрова
О.Н.

  ГБПОУ ВО «Лискинский промышленно-транспортный техникум
       имени
  А.К.Лысенко »

РАССМОТРЕНО
 цикловой комиссией

«     » ___________   2016 г.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ № 30
МДК.01.01 «Системное программирование»

УТВЕРЖДАЮ
Зам.директора по УР

Попова Ю.А.

Председатель Плотникова С.С.

Группа    915 П Семестр 5

«     » ___________   2016 г.

СПЕЦИАЛЬНОСТЬ
09.02.03                                «Программирование
  в компьютерных системах»

1.      Текстовые файлы.
2.      Добавление элемента в начало списка
3.      Дан
текстовый файл Note.txt. Определить длину самой длинной
строки этого файла.

Преподаватель:                                            Петрова
О.Н.

ГБПОУ ВО  «ЛИСКИНСКИЙ
ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ

ТЕХНИКУМ имени А.К.ЛЫСЕНКО»

ЗАЧЕТНО-ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ     №_______

Учебный год    20___/20___           Курс            Семестр
_  __
Форма обучения   очная Специальность
09.02.03                                 «Программирование в
компьютерных системах»
Группа   915 П
Форма контроля     Экзамен
МДК.01.01  Системное
программирование
Фамилия, имя, отчество  преподавателя:  ______________.
Дата проведения «___»_________
2015 г .

№

Фамилия, имя,
  отчество студента

Номер вопроса,
варианта,
билета

Оценка

Подпись
  экзаменатора

1

2

3

4

5

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

Число обучающихся в группе  _________________________
из них получивших «отлично»   _________________________
получивших «хорошо»                _________________________
получивших «удовлетворительно»_______________________
получивших «неудовлетворительно»_____________________
Число не явившихся обучающихся_____________________
Число не допущенных обучающихся____________________Экзаменатор_____________

/ _____________/  Зам.директора по
УР___________/Ю.А. Попова/
(Приложение 7)

Экзамен
за 6 семестр
по МДК 01.02. Прикладное
программирование
Вопросы
для сдачи экзамена

Что такое языки программирования?
Какие существуют языки программирования?
Какие языки программирования являются более
     распространенными?
Что такое композиция и декомпозиция?
Какие существуют виды декомпозиции?
Какие существуют методы декомпозиции?
Какие существуют основания декомпозиции?
Что такое отладка программного средства?
Что такое оптимальная стратегия отладки программного
     модуля?
Что такое абстрактная отладка программного модуля?
Какие существуют принципы и виды отладки программного
     средства.
Что такое отладка программного средства?
Что такое оптимальная стратегия отладки программного
     модуля?
Что такое абстрактная отладка программного модуля?
Какие существуют принципы и виды отладки программного
     средства.
Что такое компиляторы?
Что такое переменные?
Какие существуют виды переменных?
В чем отличие глобальных переменных от статических?
Что такое классы?
Что такое шаблоны классов?
Какие существуют шаблоны классов?
Что такое объектно-ориентированное программирование?
Какие существуют основные принципы ООП?
Что включает в себя ООП?
Что такое виртуальные и абстрактные базовые классы?
Какие классы и функции называются дружественными?
Как осуществляется перегрузка операций?
Сколько аргументов требуется для определения перегруженной
     унарной (бинарной) операции?
Чем отличается действие перегруженной операции ++ при ее
     использовании в префиксной форме от использовании в постфиксной форме?
Что такое виртуальные функции?
Что такое перегрузка операторов?
Какие существуют функции работы со строками?
Какой синтаксис используется для перегрузки операций?
Что такое наследование, одиночное наследование,
     множественное наследование?
Какие объекты базового класса наследуются в производном, а
     какие нет?
На примере своей программы поясните механизм позднего
     связывания.
В каком случае С++ проигнорирует механизм виртуальных
     функций?
Какие существуют  динамические структуры данных?
Что такое очередь?
Какие основные процедуры вы знаете? Привидите примеры.
Какие существуют  динамические структуры данных?
Что такое стек?
Какие основные процедуры вы знаете? Привидите примеры.
Что такое список?
Какие основные функции вы знаете? Привидите примеры.
Что такое среда программирования Delphi 7?
Что такое формы Delphi 7?
Что такое компоненты среды Delphi 7? Привидите примеры.
Что такое исключения в среде программирования Delphi 7?
Каким образом происходят исключения в Delphi 7?
Что такое события среды Delphi 7? Привидите примеры.
Что такое средства и инструменты разработки программного
     обеспечения в среде программирования Delphi 7?
Какие компоненты среды программирования вы знаете Delphi
     7? Привидите примеры.
Что такое средства и инструменты разработки программного
     обеспечения в среде программирования Delphi 7?
Какие компоненты среды программирования вы знаете Delphi
     7? Привидите примеры.
Что такое классы в среде программирования Delphi 7?
Какая существует иерархия классов в Delphi 7? Привидите
     примеры.

(Приложение 8)
Билеты для сдачи экзамена

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ №1
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 916 П.
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     »________  201_ г.

«   » ___________  201_г.

Подпись_____________

Подпись____________

1.  Задачи и особенности
прикладного программирования.

2.   Организация разработки программного обеспечения группой
программистов.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                               подпись                                                             Ф.И.О.
_____________________________________________________________________________

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ №2
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 915 П          .
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«   » _________   201_ г.

«     » _________   201_ г.

Подпись_____________

Подпись____________

1.   Основные инструменты
прикладного программиста.

2.   Цикл разработки прикладного программного обеспечения:
концептуализация, анализ, проектирование, кодирование, тестирование, эволюция,
сопровождение.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                   подпись                                                  Ф.И.О.

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ №3
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 915 П.
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«  » ___________201_ г.

«     » ___________201_ г.

Подпись_____________

Подпись____________

1.  Язык программирования -
главный инструмент прикладного программиста.

2.   Цикл разработки прикладного программного обеспечения:
концептуализация, анализ, проектирование, кодирование, тестирование, эволюция,
сопровождение.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                   подпись                                                        Ф.И.О.
_____________________________________________________________________________

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ №4
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 915 П.
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

___  _____ 201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.   Технологии прикладного
программирования: цели, задачи и основные

2.   Событие. Процедура обработки события.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                   подпись                                                        Ф.И.О.

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ №5
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     » ___________   201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.  Принципы
объектно-ориентированного анализа: абстрагирование, инкапсуляция, наследование,
полиморфизм, модульность, сохраняемость, параллелизм.

2.   Событие. Процедура обработки
события.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                   подпись                                                        Ф.И.О.

_____________________________________________________________________________

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ №6
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     » ___________   201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.   Жизненный цикл и поведение
объектов: сообщения, события, методы, действия.

2.   Структура проекта. Компиляция и ошибки

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                   подпись                                                        Ф.И.О.

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ №7
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     » ___________   201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.  Объектно-ориентированное
проектирование.

2.   Организация хранения и обработка массивов данных
средствами библиотеки STL.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                   подпись                                                        Ф.И.О.

_____________________________________________________________________________

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ №8
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

___  _____ 201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.   Принципы
объектно-ориентированного анализа: абстрагирование, инкапсуляция, наследование,
полиморфизм, модульность, сохраняемость, параллелизм

2.   Организация хранения и обработка массивов данных
средствами библиотеки STL.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                   подпись                                                        Ф.И.О.

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ №9
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     » ___________   201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.  Структура программы на языке
C++. Проект.

2.   Алгоритмы.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                 подпись                                                        Ф.И.О.

_____________________________________________________________________________

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№10
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

___  _____ 201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.  Размещение программы и данных в памяти.

2.   Конструктор. Полный конструктор. Конструктор по
умолчанию. Конструктор копирования.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                       подпись                                                        Ф.И.О.

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№11
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     » ___________   201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.  Массивы - как пример гомогенной структуры данных:
размещение в памяти, доступ к элементам.

2.   Очереди. Стек. Список.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                       подпись                                                        Ф.И.О.

_____________________________________________________________________________

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№12
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

___  _____ 201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.   Динамическое размещение данных в памяти.

2.   Среда программирования Delphi

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                       подпись                                                        Ф.И.О.

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№13
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     » ___________   201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.  Структуры - как пример гетерогенной структуры данных.

2.   Организация хранения и обработка массивов данных
средствами библиотеки STL.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                       подпись                                                        Ф.И.О.

_____________________________________________________________________________

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№14
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

___  _____ 201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.   Стандартная библиотека функций языка С++.

2.   Цикл разработки прикладного программного обеспечения:
концептуализация, анализ, проектирование, кодирование, тестирование, эволюция,
сопровождение.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                       подпись                                                        Ф.И.О.

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№15
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

___  _____ 201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.  Библиотека стандартного
потокового ввода/вывода.

2.   Организация разработки программного обеспечения группой
программистов.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                       подпись                                                        Ф.И.О.

_____________________________________________________________________________

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№16
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

___  _____ 201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.   Форматированный ввод/вывод. Файловые потоки.

2.   Организация хранения и обработка массивов данных
средствами библиотеки STL.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                       подпись                                                        Ф.И.О.

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№17
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

___  _____ 201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.  Задачи и особенности
прикладного программирования

2.   Конструктор. Полный конструктор. Конструктор по
умолчанию. Конструктор копирования.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                             подпись                                                        Ф.И.О.

_____________________________________________________________________________

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№18
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     » ___________   201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.   Принципы
объектно-ориентированного анализа: абстрагирование, инкапсуляция, наследование,
полиморфизм, модульность, сохраняемость, параллелизм.

2.   Очереди. Стек. Список.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                   подпись                                                        Ф.И.О.

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№19
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     » ___________   201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.  Жизненный цикл и поведение
объектов: сообщения, события, методы, действия.

2.   Основные языковые конструкции (условные, циклические, селективные
инструкции).

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                       подпись                                                        Ф.И.О.

_____________________________________________________________________________

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№20
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     » ___________   201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.   Жизненный цикл и поведение
объектов: сообщения, события, методы, действия.

2.   Алгоритмы.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                   подпись                                                        Ф.И.О.

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№21
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     » ___________   201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.  Объектно-ориентированное
проектирование.

2.   Динамическое размещение
данных в памяти.

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                           подпись                                                        Ф.И.О.

_____________________________________________________________________________

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№22
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     » ___________   201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.   Жизненный цикл и поведение
объектов: сообщения, события, методы, действия.

2.   Основные языковые конструкции (условные, циклические,
селективные инструкции).

Преподаватель         _______________________   /Плотникова
С. С./                                   .
                                                   подпись                                                        Ф.И.О.

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№23
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

___  _____ 201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.  Технологии прикладного программирования

2.   Динамическое размещение данных в памяти.

Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                                  Ф.И.О.

_____________________________________________________________________________

ГБПОУ ВО  «ЛИСКИНСКИЙ
  ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
  А.К.ЛЫСЕНКО»

РАССМОТРЕНО
Председателем
цикловой комиссии
Плотниковой
  С.С. Ф.И.О.

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ№24
МДК.01.02
 «Прикладное программирование»

УТВЕРЖДЕНО
Заместителем
  директора
  по учебной работе
Поповой Ю.А.
  Ф.И.О.

ГРУППА: 914 П
СПЕЦИАЛЬНОСТЬ:
09.02.03  «Программирование в компьютерных системах»

«     » ___________   201_ г.

«     » ___________   201_ г.

Подпись_____________

Подпись____________

1.   Массивы - как пример гомогенной структуры данных:
размещение в памяти, доступ к элементам.

2.   Очереди. Стек. Список.

Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                               Ф.И.О.

ГБПОУ ВО  «ЛИСКИНСКИЙ
ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
                                              ТЕХНИКУМ имени
А.К.ЛЫСЕНКО»

                  ЗАЧЕТНО-ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ     №_______

Учебный год    20___/20___           Курс            Семестр
_  __
                  Форма обучения   очная
Специальность  09.02.03
«Программирование в компьютерных системах»
Группа   915 П
Форма контроля     Экзамен
МДК.01.02  Прикладное
программирование
Фамилия, имя, отчество  преподавателя:  ______________.
Дата проведения «___»_________
2018 г .

№

Фамилия, имя,
  отчество студента

Номер вопроса,
варианта,
билета

Оценка

Подпись
  экзаменатора

1

2

3

4

5

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Число обучающихся в группе  _________________________
из них получивших «отлично»   _________________________
получивших «хорошо»                _________________________
получивших «удовлетворительно»_______________________
получивших «неудовлетворительно»_____________________
Число не явившихся обучающихся_____________________
Число не допущенных обучающихся____________________

Экзаменатор_____________ /
_____________/  Зам.директора по УР___________/Ю.А. Попова/
(Приложение 9)

Экзамен
квалификационный 3курс, 2 полугодие, 6 семестр
По профессиональному
модулю
ПМ 01. Разработка программных модулей
программного обеспечения для компьютерных систем

ЗАДАНИЯ ДЛЯ ЭКЗАМЕНУЮЩЕГОСЯ

1.
Системное
программирование.
2.
Системное
ПО.
3.
Формализация
задачи и  разработка алгоритма.
4.
ЭВМ
- исполнитель алгоритмов.
5.
Жизненный
цикл ПО. Основные этапы разработки ПО.
6.
Модели
жизненного цикла программного средства.
7.
Постановка
задачи на разработку программного средства.
8.
Составление
программы на языке программирования
9.
Структура
и способы описания языков программирования высокого уровня.
10.
Подпрограмма
– процедура.
11.
Формальные
и фактические параметры.
12.
Локальные
и глобальные переменные.
13.  Подпрограмма- функция.
14.  Разработка
программного продукта с использованием подпрограммы-процедуры.
15.  Модульное
программирование.
16.  Методы разработки
программных модулей.
17.  Осуществление  разработки кода программного модуля на современных языках программирования
18.  Решение задач с использованием стека.
19.  Реализация процедур и функций работы с бинарным деревом.
20.  Разработка
программного продукта с использованием модуля.
21.  Выбор языка
программирования.
22.       Объектно-ориентированное
проектирование.
23.       Документирование
результатов анализа и проектирования.
24.
Основы языка UML
(Unified Modeling Language).
25.
Создание
абстрактных типов данных. Диаграмма объекта.
26.
Принципы
объектно-ориентированного анализа: абстрагирование, инкапсуляция, наследование,
полиморфизм, модульность, сохраняемость, параллелизм
27.
Структура
программы на языке C++. Проект.
28.
Компиляция
программы и сборка исполняемого модуля.
29.
Размещение
программы и данных в памяти.
30.
Структура
исполняемого модуля.
31.
Стандартная
библиотека функций языка С++.
32.  Компиляция
программы и сборка исполняемого модуля.
33.  Размещение
программы и данных в памяти.
34.  Виртуальные
функции и абстрактные базовые классы.
35.  Множественное
наследование.
36.  Контейнеры и
итераторы в библиотеке STL (Standard Template Library).
37.  Ассоциативные
массивы.
38.
Объекты-функции
и предикаты.
39.  Разработка
кода программного модуля
на современных языках программирования
40.  Реализация
алгоритма средствами
автоматизированного проектирования
41.
Примеры
обработки.
42.
Настройка
приложения и установка
43.
Цикл
разработки прикладного программного обеспечения: концептуализация, анализ,
проектирование, кодирование, тестирование, эволюция, сопровождение.
44.
Критерии
оценки качества программы.
45.
Средства
и инструменты разработки программного обеспечения.
46.
Организация
разработки программного обеспечения группой программистов.
47.
Разработка
программного продукта для предметной области «Учет клиентов компании,
предоставляющей услуги мобильной связи» с применением языка программирования
Delphi
48.
Разработка
программного продукта для предметной области «Учет клиентов в регистратуре» с
применением языка программирования Delphi
49.
Разработка
программного продукта для предметной области «Учет вкладов, помещенных в банк»
с применением языка программирования Delphi
50.
Разработка
тестирующей программы по дисциплине «Информатика» с кодом на языке
программирования Delphi
51.
Разработка
программного продукта для предметной области «Учет товаров в магазине» с
применением языка программирования Delphi
52.
Разработка
тестирующей программы по дисциплине «Операционные системы» с кодом на языке
программирования Delphi
53.  Разработка
кода программного продукта на основе готовой спецификации на уровне модуля
54.  Ознакомление
с технологией тестирования
программных продуктов
55.  Выполнение отладки и тестирования программы на уровне
модуля
56.  Использование инструментальных средств на этапе отладки
программного продукта
57.  Тестирование
программного модуля по определенному сценарию
58.  Оформление
документации на программное средство
59.  Ознакомление
с инструментальными средствами автоматизации процесса оформления документации
60.  Использование
инструментальных средств автоматизации процесса оформления документации

(Приложение 10)
Билеты для сдачи квалификационного
экзамена

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №1

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.      Системное
программирование.
2.
Выбор
языка программирования.
3.      Примеры
обработки программного продукта.
Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                            Ф.И.О.
_____________________________________________________________________________

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01. Разработка
  программных модулей программного обеспечения для компьютерных систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №2

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.      Системное
ПО.
2.
Объектно-ориентированное
проектирование.
3.
Настройка
приложения и установка
Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                                          Ф.И.О.

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №3

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.
Формализация
задачи и  разработка алгоритма.
2.      Документирование
результатов анализа и проектирования.
3.      Цикл разработки
прикладного программного обеспечения: концептуализация, анализ, проектирование,
кодирование, тестирование, эволюция, сопровождение.

Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                      Ф.И.О.
_____________________________________________________________________________

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01. Разработка
  программных модулей программного обеспечения для компьютерных систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №4

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.
ЭВМ
- исполнитель алгоритмов.
2.      Основы языка UML
(Unified Modeling Language).
3.      Средства и
инструменты разработки программного обеспечения.

Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                                 Ф.И.О.

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №5

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.
Жизненный
цикл ПО. Основные этапы разработки ПО.
2.      Создание
абстрактных типов данных. Диаграмма объекта.
3.      Средства и
инструменты разработки программного обеспечения.

Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                                  Ф.И.О.

_____________________________________________________________________________

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №6

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.
Модели
жизненного цикла программного средства.
2.      Принципы
объектно-ориентированного анализа: абстрагирование, инкапсуляция, наследование,
полиморфизм, модульность, сохраняемость, параллелизм
3.      Организация
разработки программного обеспечения группой программистов.

Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                                             Ф.И.О.

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ
  №7

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.
Постановка
задачи на разработку программного средства.
2.      Структура
программы на языке C++. Проект.
3.      Разработка
программного продукта для предметной области «Учет клиентов компании,
предоставляющей услуги мобильной связи» с применением языка программирования
Delphi
Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                               Ф.И.О.

_____________________________________________________________________________

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №8

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.
Составление
программы на языке программирования
2.      Компиляция
программы и сборка исполняемого модуля.
3.      Разработка
программного продукта для предметной области с применением языка
программирования Delphi
Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                       Ф.И.О.

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №9

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.
Структура
и способы описания языков программирования высокого уровня.
2.      Размещение
программы и данных в памяти.
3.      Разработка
программного продукта для предметной области «Учет вкладов, помещенных в банк»
с применением языка программирования Delphi

Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                 Ф.И.О.
_____________________________________________________________________________

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №10

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.
Подпрограмма
– процедура.
2.      Структура
исполняемого модуля.
3.      Разработка
тестирующей программы по дисциплине «Информатика» с кодом на языке
программирования Delphi

Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                            Ф.И.О.

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №11

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.
Формальные
и фактические параметры.
2.      Стандартная
библиотека функций языка С++.
3.      Разработка
программного продукта для предметной области «Учет товаров в магазине» с
применением языка программирования Delphi

Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                           Ф.И.О.
_____________________________________________________________________________

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №12

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.
Локальные
и глобальные переменные.
2.      Компиляция
программы и сборка исполняемого модуля.
3.      Разработка
тестирующей программы по дисциплине «Операционные системы» с кодом на языке
программирования Delphi

Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                               Ф.И.О.

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №13

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.      Подпрограмма-
функция.
2.      Размещение
программы и данных в памяти.
3.      Разработка
кода программного продукта на основе готовой спецификации на уровне модуля
Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                          Ф.И.О.

_____________________________________________________________________________

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №14

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.
Разработка
программного продукта с использованием подпрограммы-процедуры.
2.      Виртуальные
функции и абстрактные базовые классы.
3.      Ознакомление
с технологией тестирования
программных продуктов
Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                                        Ф.И.О.

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №15

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.      Модульное
программирование.
2.      Множественное
наследование.
3.      Выполнение отладки и тестирования программы на уровне
модуля

Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                                        Ф.И.О.

_____________________________________________________________________________

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко Е.Н.
  ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №16

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.      Методы разработки
программных модулей.
2.      Контейнеры
и итераторы в библиотеке STL (Standard Template Library
3.      Использование инструментальных средств на этапе отладки
программного продукта
Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                                    Ф.И.О.

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №17

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.     Осуществление  разработки кода программного модуля на современных языках программирования
2.     Ассоциативные
массивы
3.     Тестирование
программного модуля по определенному сценарию
Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                                              Ф.И.О.
____________________________________________________________________________

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №18

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.     Решение задач с использованием стека.
2.     Объекты-функции и
предикаты.
3.     Оформление
документации на программное средство

Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                                  Ф.И.О.

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ
  БИЛЕТ №19

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.     Реализация процедур и функций работы с бинарным деревом.
2.     Разработка
кода программного модуля
на современных языках программирования
3.     Ознакомление
с инструментальными средствами автоматизации процесса оформления документации
Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                                        Ф.И.О.

                      ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»

РАССМОТРЕНО Председателем
цикловой комиссии «Промышленность»
Плотниковой С.С.

ЭКЗАМЕН
  (КВАЛИФИКАЦИОННЫЙ)
ПМ.01.
  Разработка программных модулей программного обеспечения для компьютерных
  систем

УТВЕРЖДЕНО
Заместителем директора по УПР
Герасименко
  Е.Н.                                             ФИО

ЭКЗАМЕНАЦИОНЫЙ БИЛЕТ
  №20

ГРУППА: 915 П
СПЕЦИАЛЬНОСТЬ:
09.02.03
  «Программирование в компьютерных системах»

«__» __________ 20__ г.

«__» ______20__ г.

Подпись_____________

Подпись________

1.     Разработка
программного продукта с использованием модуля
2.     Реализация
алгоритма средствами
автоматизированного проектирования
3.     Использование
инструментальных средств автоматизации процесса оформления документации
Преподаватель         _______________________   /Плотникова
С. С./                                   .

подпись                                       Ф.И.О.

                          ГБПОУ ВО «ЛИСКИНСКИЙ
ПРОМЫШЛЕННО-ТРАНСПОРТНЫЙ
ТЕХНИКУМ имени
А.К.ЛЫСЕНКО»
Протокол
заседания квалификационной комиссии
по
присвоению квалификации
_______________________________________________________________________________Наименование
профессионального модуля
________________________________________________________________________________
Наименование
квалификации
________________________________________________________________________________
Специальность
___________
Группа

Председатель квалификационной
комиссии _____________________________
Состав
комиссии______________________________________________________

_____________________________________________________

_____________________________________________________

№

Ф.И.О.
  студента

Отметка
  об освоении
элементов
  ПМ

Результат
Экзамена квалификационного

МДК

Практика

1.

+

+

ВПД
  освоен

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

Подпись
председателя квалификационной комиссии ___________________
Подписи состава
комиссии____________________________________________

____________________________________________

____________________________________________
Дата
составления протокола___________

5. Перечень рекомендуемых учебных изданий,
Интернет-ресурсов, дополнительной литературы

Основные источники:

[1] И.Г. Семакин, А. П.
     Шестаков. Основы алгоритмизации и программирования. М.: Издательский центр
     «Академия», 2010.-432с.
[2] А. Ю. Молчанов,
     Системное программное обеспечение: Учебник для вызов, 3-е изд., СПБ.:
     Питер, 2010. – 400 с.

Дополнительные источники:

[3] Харт Дж.М. - Системное
     программирование в среде Windows. 2009.
[4] Рогачев А.Ф. Технология
     программирования. – Воронеж: Научная книга, 2010.-207с.
[5] Маклафлин Б, «PHP
     и MySQL», Исчерпывающее руководство. 2-е изд. – СПб.:
     Питер, 2015. – 544 с
[6] Антамошкин О. А.
     Программная инженерия. Теория и практика: учебник. - Красноярск: Сиб.
     федер. ун-т, 2012.
[7] Биллиг, В.A. Основы
     объектного программирования на С# (C# 3.0, Visual Studio 2008). - М.:
     БИНОМ. Лаборатория знаний, Интернет-Университет Информационных Технологий
     (ИНТУИТ), 2010.
[8] Павловская, Т. C/C++.
     Структурное и объектно-ориентированное программирование: практикум
     /Т.Павловская, Ю.Щупак.- СПб.: Питер, 2011.
[9] Смирнов, А.А.
     Прикладное программное обеспечение: учебное пособие. - М.: Евразийский открытый
     институт, 2011.
[10] Снетков, В.М.
     Практикум прикладного программирования на C# в среде VS.NET 2008. - М.:
     Интернет-Университет Информационных Технологий (ИНТУИТ), 2010.
[11] Федотова, С.В.
     Создание Windows-приложений в среде Delphi: учебное пособие. - М.:
     СОЛОН-ПРЕСС, 2010.

Интернет-ресурсы

 http://aco.ifmo.ru/el_books/applied_programming/. http://pas1.ru/real-files
CIT-Forum: Центр
     информационных технологий: материалы сайта [Электронный ресурс]. - Режим
     доступа: http://citforum.ru/, свободный.
CodeNet - все для
     программиста [Электронный ресурс]. - Режим доступа:
     http://www.codenet.ru/, свободный.
Coding Lessons.ru
     [Электронный ресурс]. - Режим доступа: http://codinglessons.ru/,
     свободный.
Видео-курс «Уроки Visual
     Studio С++» [Электронный ресурс]. - Режим
     доступа:http://www.youtube.com/user/visvivatutorials, свободный.
Духанов, А.В. Системное и
     прикладное программное обеспечение [Электронный ресурс]: конспект лекций /
     С.И. Абрахин, А.В. Духанов; Владим. гос. ун-т. - Владимир: Изд-во Владим.
     гос. ун-та, 2010. - Режим доступа:
     http://window.edu.ru/resource/359/77359, свободный.
 Информация для студентов и
     преподавателей [Электронный ресурс].- Режим доступа: www.4stud.info,
     свободный.

Скачано с www.znanio.ru

file_name: Кос ПМ.01_ 2016.docx

alt: Общие положения Результатом освоения профессионального модуля является овладение обучающимися видом профессиональной деятельности: р азработкой программных модулей программного обеспечения для компьютерных систем , в том числе…

alt: Формы промежуточной аттестации по

alt: Практические занятия по МДК 01

alt: Лабораторные работы: « Разработать тестирующую программу на языке программирования высокого уровня и оформить соответствующую документацию»

alt: Контрольная работа по МДК.01.02 : «

alt: JK -триггер является универсальным, то есть на его основе можно построить любой другой триггер

alt: Исходный размер введите значение 512

alt: Рисунок 4 - Диспетчер задач В строке состояния располагается информация об общем количестве процессов в памяти, загрузке процессора и общем количестве физической и виртуальной памяти,…

alt: Рисунок 6 – Параметры быстродействия

alt: Текущий контроль 4 семестр

alt: Дополнительные источники: [3]

alt: Текущий контроль 4 семестр

alt: Задание Задание 1. Даны x , y

alt: Текущий контроль 4 семестр

alt: Текущий контроль 4 семестр

alt: Литература Основные источники: [1]

alt: Текущий контроль 4 семестр

alt: Маклафлин Б, « PHP и MySQL »,

alt: Текущий контроль 4 семестр

alt: Текущий контроль 4 семестр

alt: P: real; begin P := (a + b + c)/2;

alt: Текущий контроль 4 семестр

alt: Текущий контроль 4 семестр

alt: Видео-курс «Уроки Visual Studio

alt: Текущий контроль 4 семестр

alt: CH := 'a' to 'z' do COUNT [CH] := 0;

alt: Текущий контроль 4 семестр

intro:
Комплект контрольно-оценочных средств по программе профессионального модуля ПМ.01. Разработка программных модулей программного обеспечения для компьютерных систем разработан на основе Федерального государственного образовательного стандарта (ФГОС) среднего профессионального образования (далее – СПО) по специальности 09.02.03 «Программирование в компьютерных системах»
Организация-разработчик:
Государственное бюджетное профессиональное образовательное учреждение Воронеж-ской области «Лискинский промышленно-транспортный техникум имени А.К. Лысенко» (ГБПОУ ВО «ЛПТТ имени А.К. Лысенко»)
Разработчик:
Плотникова Светлана Сергеевна, преподавательКомплект контрольно-оценочных средств по программе профессионального модуля ПМ.01. Разработка программных модулей программного обеспечения для компьютерных систем разработан на основе Федерального государственного образовательного стандарта (ФГОС) среднего профессионального образования (далее – СПО) по специальности 09.02.03 «Программирование в компьютерных системах»

title: Комплект контрольно-оценочных средств ПО ПРОГРАММЕ ПРОФЕССИОНАЛЬНОГО МОДУЛЯ ПМ.01. Разработка программных модулей программного обеспечения для компью-терных систем