Методические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации\. Часть 2»




Скачать 254.82 Kb.
НазваниеМетодические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации\. Часть 2»
Дата публикации07.08.2013
Размер254.82 Kb.
ТипЗанятие
zadocs.ru > Право > Занятие


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Южно-Российский государственный технический университет (НПИ)

____________________________________________

Кафедра «Aвтоматикa и телемеханикa»

Малашенко А.Г., Малашенко Л.И., Дереча С.В , Онышко Д.А., Левшин А.Г..

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к практическим занятиям по дисциплине

"ПРОГРАММИРОВАНИЕ И ОСНОВЫ АЛГОРИТМИЗАЦИИ"

Часть 2

НОВОЧЕРКАССК 2011

УДК 519.6 (076.3)

Методические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации". Часть 2»

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

Методические указания предназначены для студентов второго курса специальности «Управление в технических системах» всех форм обучения.

Объем 30 стр., тираж 15 экз.


Методические указания обсуждены и одобрены

на заседании кафедры

"Автоматика и телемеханика"

^ ФАУ ЮРГТУ(НПИ)

протокол № ___

Южно-Российский государственный технический

университет (НПИ), 2011

Введение
Для проведения лабораторных работ необходимы любые IBM РС-совместимые компьютеры. В качестве системного программного обеспечения (ПО) требуется операционная среда Windows XP и выше, а в качестве инструментального ПО любая интегрированная среда для работы с программами на языке Паскаль и Delphi а также среда для работы на языке С++.

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

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

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

Занятие №1
Программирование прикладных задач
Продолжительность занятия 2 часа.

Цель занятия: приобрести умения и навыки программирования прикладных задач.
^ Подготовка к работе: самостоятельное повторение материалов первого семестра.
Программа занятия

  1. Ознакомиться с индивидуальным заданием и сделать математическую постановку задачи.

  2. Подготовить тестовый (контрольный) вариант решения задачи.

  3. Разработать алгоритм и изобразить его схему.

  4. Составить программу основной программы и модуля пользователя по индивидуальному заданию с обязательным использованием подпрограммы-функции и подпрограммы-процедуры.

  5. В рамках самостоятельной работы отладить составленную программу.
^

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


    1. Какова структура основной программы?

    2. Какова структура модуля пользователя?

    3. Какова структура подпрограммы-функции?

    4. Какова структура подпрограммы-процедуры?

    5. Каковы требования к соответствию формальных и фактических параметров?

    6. В чем заключается суть алгоритма нахождения суммы (произведения) элементов массива?

    7. В чем заключается суть алгоритма нахождения минимального (максимального) элемента массива?

    8. В чем заключается суть алгоритма нахождения стандартного значения?

    9. В чем заключается суть алгоритма нахождения суммы элементов ряда?

    10. Что является исходными данными и результатом задачи сортировки?


Методические указания

К п.1. Исходную задачу нужно представить в математической форме. Например, для получения точек траектории движения объекта нужно составить и решить дифференциальное уравнение. Для определения распределения токов в электрической цепи необходимо составить и решить систему линейных алгебраических уравнений.

К п.2. Для решаемой задачи нужно приготовить тестовый вариант решения. Данные должны быть такими, чтобы можно было проверить большинство ветвей будущего алгоритма. Например, тестовым вариантом для сортировки одномерного массива по возрастанию может быть небольшого размера массив с неупорядоченными элементами 2,7,5,1 а результат массив с упорядоченными элементами 1,2,5,7. Для проверки разветвляющегося алгоритма нужно выбрать такое количество набора исходных данных, чтобы были проверены все ветви алгоритма.

К п.2. Перед разработкой нового алгоритма необходимо вначале ознакомиться с известными алгоритмами, вероятно, их можно использовать для решения задачи. Если таких алгоритмов несколько, то следует сделать обоснованный выбор такого, который лучше применим для данной задачи. Можно внести коррективы в известный алгоритм, чтобы он был более эффективен для решаемой задачи. И только убедившись трудности применения известного, следует заняться разработкой нового алгоритма.

Для изображения схем алгоритма следует повторить материал прошлого семестра.

К п.3 и 4. Для написания программы и ее отладки достаточно знаний и умений, полученных в первом семестре, поэтому отладка выполняется в рамках самостоятельной работы. Наличие в структуре программы основной программы, модуля и подпрограмм является обязательным.


Занятие №2
Программирование списков
Продолжительность занятия 4часов.

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

  1. Рассмотреть примеры использования указателей.

  2. Изобразить структуры списков: односвязного, стека, очереди и двухсвязного.

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

  4. Составить программу основной программы и модуля по индивидуальному заданию.

  5. В рамках самостоятельной работы отладить составленную программу.
^

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


  1. Что такое указатель и как он описывается?

  2. Где размещаются динамические переменные?

  3. Как создается динамическая переменная?

  4. Как удаляется динамическая переменная?

  5. Что такое односвязный список?

  6. Что такое стек?

  7. Что такое очередь?

  8. Что такое кольцо?

  9. Что такое двухсвязный список?

  10. Как были Вами реализованы процедуры для обработки списка?


Варианты индивидуальных заданий


  • Варианты формируются из таблиц 1…3.

Таблица 1- Варианты задания структуры односвязного списка

^ Вариант списка

1

2

Структура односвязного списка

Очередь

Стек

Таблица 2- Варианты задания типа информационного поля односвязного списка

^ Вариант поля

1

2

3

4

5

Тип информационного поля

Целый

Вещественный

Символьный

Диапазон

(интервальный)

Строковый

Таблица 3- Варианты задания обработки односвязного списка

Действие 1

П Р О С М О Т Р

Вариант просмотра

1

2

3

4

5

Условие

Всех элементов

Первой половины списка

Второй половины списка

До первого заданного

После первого заданного

Действие 2

П О И С К

Вариант поиска

1

2

3

4

5

Условие

минимального элемента списка

максимального элемента списка

среднего по положению элемента списка

среднего по значению элемента списка

1-го элемента, имеющего значение < минимального

^ Вариант поиска

6

7

8

9

10

Условие

1-го элемента, имеющего значение < заданного

1-го элемента, имеющего значение > заданного

1-го элемента, имеющего значение > максимального

1-го элемента, принадлежащего заданному интервалу значений

1-го элемента, значение которого вне заданного интервала значений

Действие 3

У Д А Л Е Н И Е

Вариант удаления

1

2

3

4

5

Условие

элемента, расположенного за найденным

элемента перед найденным

последнего элемента

первого элемента

найденного элемента,

^ Вариант удаления

6

7

8

9

10

Условие

второго элемента,

предпоследнего элемента

элемента, расположенного на два элемента влево от найденного

элемента, расположенного на два элемента вправо от найденного

среднего по положению элемента


Таблица 4. - Индивидуальные задания к практическому занятию №2.

задания

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Вариант списка

1

2

1

2

1

2

1

2

1

2

1

2

1

2

1

2

Вариант поля

1

2

3

4

5

1

2

3

4

5

1

2

3

4

5

1

Вариант просмотра

1

2

3

4

5

5

1

2

3

4

5

4

1

2

3

4

Вариант поиска

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5

6

Вариант удаления

1

2

3

4

5

6

7

8

9

10

5

1

2

3

4

5




задания

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

Вариант списка

1

2

1

2

1

2

1

2

1

2

1

2

1

2

1

2

Вариант поля

2

3

4

5

1

2

3

4

5

1

2

3

4

5

1

2

Вариант просмотра

5

3

1

2

3

4

5

2

1

2

3

4

5

1

2

3

Вариант поиска

7

8

9

10

1

2

3

4

5

6

7

8

9

10

1

2

Вариант удаления

4

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5



^ Методические указания

К п.1.

Оставшаяся свободной область памяти частично или полностью может быть занята динамической памятью. В ней размещаются динамические переменные. Эта часть памяти называется “heap (“куча”)

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

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

Указатель связывается не с конкретной переменной, а с определенным типом данных. Для описания указателя используется знак “^”.

Пример описания

Type

IP = ^Integer; {тип указателя на целое}

P = ^Zap; {тип указателя на запись Zap}

Zap = record

...

end;

Var

Pointer1 : ^Char; {указатель на Char}

Pointer2 : ^Real; {указатель на Real}

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

Var

TypePointer: Pointer;

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

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

type

PE = ^integer;

begin

...

New(PE);

...

end.

В приведенном примере в куче выделяется 4 байтf (в соответствии с размером типа integer) и адрес начала этой области возвращается в указателе PE. Для обращения к полученной динамической переменной используется конструкция вида <имя указателя>^:

PE^:=3.1415;

PE^:=sqr(PE^);

Для освобождения динамической памяти используется процедура Dispose -

Dispose(PE); {освобождает 4 байта в куче}

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

Пример 1 Изобразить состояние динамических переменных по каждой строчке операторов:

var p1,p2,p3:^Integer;

begin

new(p1);

p1^ := 2;

new(p2);

p2^ := 3;

P1:= P2;

P2^:=nil;

Dispose(P2);

Пример 2 Что будет выведено на экран?

Program DPointer;

var p1,p2,p3:^Integer;

begin

p1:=NIL; p2:=NIL; p3:=NIL;

New(p1); New(p2); New(p3);

p1^:=2; p2^:=4;

p3^:=p1^+Sqr(p2^);

writeln(p1^:3, p2^:3, p3^:3);

p1:=p2;

writeln(p1^:3, p2^:3, p3^:3);

end.

Пример 3. Изобразить структуры списков:

  1. Односвязный список

  2. Стек

  3. Очередь

  4. Кольцо

  5. Двухсвязный список.

Пример 4: Изобразить состояние динамических переменных по каждой строчке операторов:

type tu= ^ tells;

type tells =record

i: integer;

n:tells;

end;

els, w: tu;

begin

new(els,w);

els^.I := 1;

els^.n := nil;

w:= els;

els:= nil;
К п.2. Одной из областей, где необходимо использование указателей, является работа со списками, например, односвязными и двусвязными. Списки имеют начало и конец. Основные действия: создание, просмотр, вставка и удаление элемента в указанном месте списка.

Широкое распространение среди односвязных списков получили такие динамические структуры данных, как стеки, очереди и кольцеобразные списки. Стек организован таким образом, что программе доступна лишь его вершина: оттуда можно взять элемент или записать его туда. Таким образом, элементы можно извлечь из стека в порядке, обратном порядку их записи -"последний вошел - первый вышел". Очередь же реализует другой вариант доступа к данным - "первый вошел - первый вышел’. Новый элемент добавляется в конец очереди, а выбирается первый. Если последний элемент очереди связать с первым элементом, то получится замкнутый, кольцеобразный список..

Для работы с такими структурами при выполнении индивидуального задания рекомендуется использовать базовые процедуры:

создать список;

очистить список;

поместить элемент в список;

взять (удалить) элемент из списка;

просмотреть элементы списка.

Занятие № 3
Объектно-ориентированное программирование
Продолжительность занятия 4 часа

Цель работы: ознакомление с технологий ООП в системе программирования АВС-Pascal.

  1. Программа работы

  1. Ознакомиться с классами модулей ABCObjects, GraphABC и рассмотреть примеры программирования с их испрользованием.

  2. Ознакомиться с индивидуальным заданием и нарисовать эскиз формы.

  3. Создать новый класс (классы) -наследник графического элемента управления и составить программы, используя любые фрагменты программ из раздела меню среды «Помощь»

  4. .Отладить программу.


Таблица 5.- Индивидуальные задания

вар.

Графический элемент управления

Класс

Изображение

Кнопки


Действия

1.

Светодиод

TLightDiod

Вкл, Выкл

Изменяет цвет

2.

Сегмент индикатора

TSegment

Больше, Меньше

+

_

3.

Лампочка

TLamp

Вкл, Выкл

Светится, не светится

4.

Тумблер

TSwitch




При наведении мыши меняет положение

5.

Реостат прямоугольный

(плавное изменение)

TVar

Влево Вправо

При нажатии кнопок перемещается на одно деление

6.

Переключатель

(фиксированные положения)

TSwitching

Больше Меньше

При нажатии перемещается на фиксированное значение

7

Нагреватель прямоугольный

Tnagr

Три позиции

В зависимости от позиции меняет цвет

8

Экран мобильного телефона

TMob

Память

Звонок

Высвечивается набранный номер. Меняет цвет

9

Экран монитора

TMon

Вкл Выкл

Высвечивается введенный текст, гасится экран

10

Штора окна

TStor

Верх Середина

Низ

Открытие шторы на соответсвующую часть окна

11

Индикатор загрузки

TInd

Окно ввода, кнопка Загрузка

В зависимости от % перемещается полоска индикатора

12

Флюгер (вид сверху)

TFlug

Задание направления ветра С, СВ,СЗ и тд

Поворот флюгера

13

Маяк

TMajak

Кнопки режима 1 2 3

Не светит, один луч, два луча.

14

Двери

TDwer

Кнопки откр закр переключатель дверь1 дверь2

Закрытие открытие каждой двери

15

Ромб

TRomb

Кнопки вправо влево

Перемещение ромба

16


Круг

TKrug

Кнопка больше, меньше, цвет

Изменение диаметра и цвета

17

Указатель уровня

TUkUr

Вертикальный указатель и окно ввода




18

Панель источника питания

TIstpit

Окно ввода, светодиоды от сети, вкл., от батареи

Напр есть (вкл)

Напр > 200 от сети

Напр > 200 от батар

19

Светофор

Tswet

Три лампы и кнопка переключения

Меняется цвет через желтый

20

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

Tdisk

Окно ввода, круг диска, прямоугольник головок.

Перемещается по прямой на расстояние, пропорционально введенному номеру дорожки

21













22

Трехпрограммный радиоприемник.

Tradio

Окно ввода три разноцветных светодиода

В зависимости от введенной частоты один из светодиодов или ни один

23

Пульт телевизионный

Ttv

Две кнопки каналов, одна - выкл

Экран пуст или две разных заставки

24

Кодировщик

Tkod

Окно ввода, два светодиода

В зависимости от цифры 0-3 высвечивается двоичный код (1 –горит)

25

Имитатор эмоций

Timit

Кнопки безразличие, злость, радость

Изменяется пиктограмма лица и цвет

25

Три звезды

Tzwez

Кнопки перемещения и изменению цвета

Перемещается одна звезда и меняется ее цвет

26

Дорожный знак

Tznak

Кнопки изменения цвета и рисунка знака

Красный и синий цвет , «кирпич» и стоянка.

27

Две окружности-светофор переезда

Tpereezd

Кнопка переключения цвета

Поочередно мигают два фонаря

28

Очки

Tbrille

Кнопка переключения линз

Переключение с круглых на овальные

30

Скругленный прямоугольник

Trect

Копки управления

Изменение размера экрана монитора, включение и выключение

31

Панель прибора

Tprib

Окно ввода. Кнопка вкл индикатор вкл и уровня сигнала

При нажатой кнопке горит индикатор вкл, при превышении заданного значения загорается индикатор мах

Добавить документ в свой блог или на сайт

Похожие:

Методические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации\\. Часть 2» iconМетодические указания по практическим занятиям по дисциплине: «управление работой порта»
Методические указания по практическим занятиям подготовлены: доцентом кафедры «ЭиМ» Анищенко Н. В., ассистентом Париновой Е. А

Методические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации\\. Часть 2» iconМетодические указания к практическим занятиям по дисциплине
Методические указания к практическим занятиям составлены: доц. Барановым А. П., и обсуждены на заседании кафедры "Подъемно-транспортные...

Методические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации\\. Часть 2» iconМетодические указания к практическим и семинарским занятиям по дисциплине «Статистика»
Методические указания к практическим и семинарским занятиям по дисциплине «Статистика» / Сост. Н. Н. Скитер; Волгогр гос с. Х акад....

Методические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации\\. Часть 2» iconМетодические указания к практическим занятиям по дисциплине «История украинской культуры»
История украинской культуры: методические указания к практическим занятиям по дисциплине «История украинской культуры» для студентов...

Методические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации\\. Часть 2» iconМетодические указания к практическим занятиям по дисциплине «Системный анализ отрасли»
Методические указания предназначены для студентов специальности 5В090900 «Логистика (по отраслям)»

Методические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации\\. Часть 2» iconМетодические указания к практическим занятиям по дисциплине «Английский язык»
Методические указания предназначены для студентов специальностей факультета тампт первого курса дневной формы обучения

Методические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации\\. Часть 2» iconМетодические указания и задания к практическим занятиям и самостоятельной...
Прокурорский надзор: методические указания и задания к практическим занятиям и самостоятельной работе / сост. О. А. Брашнина. – Новосибирск:...

Методические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации\\. Часть 2» iconОсновы алгоритмизации
Основы алгоритмизации: Методические указания к самостоятельной работе студентов первого курса всех специальностей по информатике...

Методические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации\\. Часть 2» iconМетодические указания к практическим занятиям по дисциплине «Конфликтология»
Семинарские занятия состоят из двух частей. Первая часть состоит из теоретического изложения материала по каждому вопросу в соответствии...

Методические указания к практическим занятиям по дисциплине «Программирование и основы алгоритмизации\\. Часть 2» iconМетодические указания по курсовому проектированию по дисциплине «основы...
Курсовой проект предусмотрен тематическим планом изучения дисциплины "Основы алгоритмизации и программирования". Курсовой проект...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
zadocs.ru
Главная страница

Разработка сайта — Веб студия Адаманов