Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы алгоритмизации и программирования

.pdf
Скачиваний:
182
Добавлен:
24.02.2016
Размер:
1.83 Mб
Скачать

РУКОВОДСТВО ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ

3.Решение задач.

4.Выполнение лабораторных работ.

5.Участие в форуме.

6.Тестирование.

7.Изучение дополнительной литературы.

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

Вопросы темы:

1.Структура программы.

2.Описание и вызов процедур

3.Описание функции.

4.Формальные и фактические параметры.

5.Область действия имен.

6.Рекурсивные процедуры и функции.

7.Структура модуля. Подключение модуля.

При изучении первого вопроса:

Ознакомьтесь с материалом раздела «Структура программы на языке Паскаль» базового учебного пособия «Основы алгоритмизации и программирования». Как Вы видите, не все разделы обязательны, и до сих пор Вы писали программы, в которых обычно присутствовало только два раздела: раздел операторов и раздел описания переменных.

При изучении второго и третьего вопросов:

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

При изучении четвертого вопроса:

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

При изучении пятого вопроса:

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

При изучении шестого вопроса:

Ознакомьтесь с материалом раздела «Рекурсивные процедуры и функции» базового учебного пособия «Основы алгоритмизации и программирования. Обратите внимание на то, что выход из рекурсии должен находиться в теле процедуры (функции), в противном случае программа будет работать не верно.

156

РУКОВОДСТВО ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ

При изучении седьмого вопроса:

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

вание».

Решите задачи из практикума «Задание длярешения задачна процедуры ифункции».

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

Структура отчета о лабораторной работе.

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

2.Постановка задачи.

3.Алгоритм (блок-схема или схема МЭСИД).

4.Входные данные.

5.Результаты, ожидаемые и полученные во время работы программы.

6.Листинги.

Выполните лабораторную работу «Модульное программирование». Оформите отчет о выполненной лабораторной работе. Отчет имеет такую же структуру, как для предыдущей работы.

Контрольные вопросы для самооценки

1.Для чего нужны процедуры и функции в языке программирования?

2.Как оформляется процедура?

3.Как можно передать данные в процедуру?

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

5.Как осуществляется вызов процедуры?

6.Чем отличается функция от процедуры?

7.Как осуществляется вызов функции?

8.Можно ли функцию вызывать, как процедуру? Если можно, то какую?

9.Каким способом передаются массивы в качестве параметров (одномерные, двумерные)?

10.В чем различие между интерфейсной частью модуля и секцией реализации?

11.Где можно использовать объекты (типы, переменные и т.д.), описанные в разделе описаний секции реализации?

12.Где можно использовать объекты (типы, переменные и т.д.), описанные в разделе описаний интерфейсной части модуля?

157

РУКОВОДСТВО ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ

При изучении темы необходимо

Читать:

Основная литература:

Грибанов В.П., Калмыкова О.В., Сорока Р.И. «Основы алгоритмизации и программирования». – М.: МЭСИ. – 2004.

Дополнительная литература:

1.Иванова Г.С. Основы программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. – 392 с.

2.Фаронов В.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие. – М.: Нолидж, 1998.

– 616 с.

3.Турбо Паскаль 7.0. – К.: Издательская группа BHV, 2000.

4.Грызлов В.И., Грызлова Т.П. Турбо Паскаль 7.0. – М.: ДМК, 2000.

5.Культин Н. Turbo Pascal . Самоучитель+CD-ROM. – К.: BHV-Санкт-Петербург, 1997.

6.Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0. – М: Диалог–МИФИ, 1996

7.Немнюгин С.А. Turbo Pascal. – СПб: Питер, 2000.

8.Попов В.Б. Turbo Pascal для школьников. Версия 7.0. – Финансы и статистика, 1996.

Посетить сайты Интернет: http://delphid.dax.ru/ http://www.coding.hostmos.ru/ http://www.cydsoft.com/vr-online/ http://www.freepascal.org/ http://www.lazarus.freepascal.org http://dcprograms.narod.ru/ http://adept.h1.ru

http://www.iatp.kharkov.ua/sites/program/index.htm http://delphi.chertenok.ru/ http://programmerts.by.ru/tpascal/ishod/mat/ http://pts.h10.ru

http://citforum.ru/programming/

Тема 7. Стандартные модули Турбо Паскаля

Содержание темы

Общая характеристика стандартных модулей. Модуль System. Математические функции.

Процедуры и функции для работы со строковыми данными. Процедуры ввода-вывода.

Модуль Crt. Процедуры и функции для работы с экраном и клавиатурой. Специальные процедуры и функции.

Модуль Graph. Процедуры и функции для работы в графическом режиме. Процедуры и функции для работы с текстом в графическом режиме.

158

РУКОВОДСТВО ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ

Цели изучения темы

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

Познакомить с основными процедурами и функциями для работы с экраном в текстовом режиме.

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

Задачи изучения темы

Формирование навыков работы со стандартными модулями.

Изучение приемов работы с процедурами и функциями модуля Crt.

Изучение приемов работы с процедурами и функциями модуля Graph.

Успешно изучив тему, студент

Знает: подключение стандартных модулей, процедуры и функции, имеющиеся в стандартных модулях.

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

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

Изучая тему, необходимо акцентировать внимание на следующих понятиях

стандартный модуль;

процедуры и функции работы со строками;

процедуры и функции ввода-вывода;

процедуры и функции работы с клавиатурой;

текстовый режим;

графический режим;

вывод текста в графическом режиме.

Порядок изучения темы

Для изучения темы выделяется 18 часов самостоятельной работы. Предусмотрены теоретические и практические занятия:

1.Стандартные модули Турбо Паскаля.

2.Модуль Graph.

Предусмотрена работа студентов в формах:

1.Изучение теоретического материала.

2.Решение задач.

3.Выполнение лабораторных работ.

4.Тестирование.

5.Изучение дополнительной литературы.

159

РУКОВОДСТВО ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ

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

Вопросы темы:

1.Математические функции.

2.Функции округления и преобразования типов.

3.Процедуры и функции порядкового типа.

4.Процедуры и функции работы со строками.

5.Прочие процедуры и функции.

6.Процедуры ввода-вывода.

При изучении первого вопроса:

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

При изучении второго вопроса:

Ознакомьтесь с материалом раздела «Стандартные процедуры и функции» пунктом «Функции округления и преобразования типов» базового учебного пособия «Основы алгоритмизации и программирования». Обратите внимание на то, что функция int имеет тип результата real, поэтому ее нельзя использовать для округления значения, например, в заголовке цикла for, в отличие от Бейсика, где эта функция широко применяется для этих целей. Обычно для округления до целого используются функции trunc или round.

При изучении третьего вопроса:

Ознакомьтесь с материалом раздела «Стандартные процедуры и функции» пунктами «Функции порядкового типа» и «Процедуры порядкового типа» базового учебного пособия «Основы алгоритмизации и программирования». Использование этих процедур и функций понятно из их назначения. Обычно вместо оператора присваивания i:=i+1 используют оператор вызова процедуры inc(i). Аналогично, с другими процедурами и функциями этой группы. Например, в программах в разделе «Операции над множествами».

При изучении четвертого вопроса:

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

Решите задачи из практикума «Задание для решения задач на строки». Выполните лабораторную работу «Обработка строк». Оформите отчет о выполненной лабораторной работе. Отчет о лабораторной работе имеет следующую структуру:

160

РУКОВОДСТВО ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ

Структура отчета о лабораторной работе.

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

2.Постановка задачи.

3.Алгоритм (блок-схема или схема МЭСИД).

4.Входные данные.

5.Результаты, ожидаемые и полученные во время работы программы.

6.Листинги.

При изучении пятого вопроса:

Ознакомьтесь с материалом раздела «Стандартные процедуры и функции» пунктом «Прочие процедуры и функции» базового учебного пособия «Основы алгоритмизации и программирования». Эти процедуры и функции понадобятся при выполнении лабораторных работ для оформления меню в текстовом режиме.

При изучении шестого вопроса:

Ознакомьтесь с материалом раздела «Стандартные процедуры и функции» пунктами «Процедуры ввода данных» и «Процедуры вывода данных» базового учебного пособия «Основы алгоритмизации и программирования». Здесь приводятся особенности процедур ввода-вывода при работе с различными типами данных в разных режимах, что позволит более наглядно осуществлять ввод-вывод при выполнении лабораторных работ.

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

Вопросы темы:

1.Общая характеристика модуля Graph.

2.Инициализация графического режима и переход в текстовый режим.

3.Работа с линиями, точками и фигурами.

4.Управление цветом.

5.Вывод текста в графическом режиме.

При изучении первого вопроса:

Ознакомьтесь с материалом, изложенным в книге Фаронов В.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие. – М.: Нолидж, 1998, стр. 276-277. Здесь изложена общая характеристика графических режимов.

При изучении второго вопроса:

Ознакомьтесь с материалом, изложенным в книге Фаронов В.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие. – М.: Нолидж, 1998, стр. 278-283. Приводятся процедуры, необходимые для включения графического режима, временного перехода из графического режима в текстовый и обратно, а также закрытие графического режима с освобождением памяти от графического драйвера.

При изучении третьего вопроса:

Ознакомьтесь с материалом, изложенным в книге Фаронов В.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие. – М.: Нолидж, 1998, стр. 284-306. Описываются процедуры, позволяющие выводить точки, линии, многоугольники, окружности, дуги, эллипсы и др. Приводятся многочисленные примеры, иллюстрирующие применение описанных процедур.

161

РУКОВОДСТВО ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ

При изучении четвертого вопроса:

Ознакомьтесь с материалом, изложенным в книге Фаронов В.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие. – М.: Нолидж, 1998, стр. 307-323. Обратите внимание, что некоторые процедуры рисования содержат параметр, отвечающий за цвет, а другие такого параметра не содержат, поэтому цвет должен быть установлен предварительно отдельной процедурой. Описываются процедуры, позволяющие устанавливать цвет, менять палитру, образцы штриховки для закрашенных фигур и т.д.

При изучении пятого вопроса:

Ознакомьтесь с материалом, изложенным в книге Фаронов В.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие. – М.: Нолидж, 1998, стр. 326-334. Обратите внимание на то, что при выводе русских букв возникают определенные трудности. Кроме того, не предусмотрены специальные процедуры для вывода числовой информации в связи, с чем, перед выводом чисел необходимо преобразовать их в строки.

Процедуры и функции модуля Graph широко используются при программировании меню в графическом режиме, вывода графиков и диаграмм в групповом проекте, заставок для лабораторных работ, группового проекта. Пример программ вывода графика и круговой диаграммы приводится, например, в книге Иванова Г.С. Основы программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2001, стр. 279-285.

Контрольные вопросы для самооценки

1.Классификация стандартных процедур и функций.

2.Назначение основных стандартных модулей.

3.Особенности математических функций.

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

5.Особенности использования экранно-ориентированных процедур.

6.Основные особенности процедур ввода-вывода.

7.Особенности вывода вещественных значений.

8.Особенности ввода одномерных и двумерных массивов.

9.Особенности вывода одномерных и двумерных массивов

10.Особенности работы в графическом режиме.

11.Особенности вывода текста в графическом режиме.

При изучении темы необходимо:

Читать:

Основная литература:

Грибанов В.П., Калмыкова О.В., Сорока Р.И. «Основы алгоритмизации и программирования». – М.: МЭСИ. – 2004.

Дополнительная литература:

1.Иванова Г.С. Основы программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. – 392с.

2.Фаронов В.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие. – М.: Нолидж, 1998.

– 616 с.

3.Турбо Паскаль 7.0. – К.: Издательская группа BHV, 2000.

4.Грызлов В.И., Грызлова Т.П. Турбо Паскаль 7.0. – М.: ДМК, 2000.

162

РУКОВОДСТВО ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ

5.Культин Н. Turbo Pascal . Самоучитель+CD-ROM. – К.: BHV-Санкт-Петербург, 1997.

6.Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0. – М: Диалог–МИФИ, 1996

7.Немнюгин С.А. Turbo Pascal. – СПб: Питер, 2000.

8.Попов В.Б. Turbo Pascal для школьников. Версия 7.0. – Финансы и статистика, 1996.

Посетить сайты Интернет: http://delphid.dax.ru/ http://www.coding.hostmos.ru/ http://www.cydsoft.com/vr-online/ http://www.freepascal.org/ http://www.lazarus.freepascal.org http://dcprograms.narod.ru/ http://adept.h1.ru

http://www.iatp.kharkov.ua/sites/program/index.htm http://delphi.chertenok.ru/ http://programmerts.by.ru/tpascal/ishod/mat/ http://pts.h10.ru

Тема 8. Динамические структуры данных

Содержание темы

Общие сведения о динамическом распределении памяти и динамических переменных. Указатели, объявление ссылочных переменных.

Управление выделением и освобождением динамической памяти на логическом уровне.

Управление динамической памятью на физическом уровне. Работа со стеками и очередями.

Создание и обработка однонаправленных и двунаправленных списков. Двоичные деревья. Создание и обработка двоичных деревьев.

Цели изучения темы

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

Задачи изучения темы

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

Формирование навыков программирования задач с использованием динамических переменных.

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

Успешно изучив тему, студент

Знает: динамические структуры данных, управление выделением памяти на физическом и физическом уровнях, приемы работы с динамическими структурами;

163

РУКОВОДСТВО ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ

Умеет: составлять программы решения задач с использованием динамических структур данных;

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

Изучая тему, необходимо акцентировать внимание на следующих понятиях

динамическая память;

динамическая переменная;

указатель;

ссылка;

управление памятью на физическом уровне;

управление памятью на логическом уровне;

стек;

очередь;

дек;

список;

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

двунаправленный список;

дерево;

двоичное дерево.

Порядок изучения темы

Для изучения темы выделяется 24 часа самостоятельной работы. Предусмотрены теоретические и практические занятия:

1.Динамическая память и стандартные процедуры и функции работы с динамической памятью.

2.Списковые структуры данных.

3.Древовидные структуры данных.

Предусмотрена работа студентов в формах:

1.Изучение теоретического материала.

2.Выполнение практических заданий.

3.Решение задач.

4.Выполнение лабораторных работ.

5.Тестирование.

6.Изучение дополнительной литературы.

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

Вопросы занятия:

1.Общее представление о статической и динамической памяти.

2.Описание динамических переменных и обращение к ним.

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

При изучении первого вопроса:

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

164

РУКОВОДСТВО ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ

При изучении второго вопроса:

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

При изучении третьего вопроса:

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

Решите задачи из практикума «Задание длярешения задачна динамические массивы».

Выполните лабораторную работу «Динамическая память». Меню можно разрабатывать в текстовом режиме или с использованием модуля Graph. Оформите отчет о выполненной лабораторной работе.

Структура отчета о лабораторной работе.

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

2.Постановка задачи.

3.лгоритм (блок-схема или схема МЭСИД).

4.Входные данные.

5.Результаты, ожидаемые и полученные во время работы программы.

6.Листинги.

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

Вопросы занятия:

1.Виды организации списков.

2.Основные операции со списками.

При изучении первого вопроса:

Ознакомьтесь с материалом разделов «Организация списков» и «Стеки, деки, очереди» базового учебного пособия «Основы алгоритмизации и программирования» и книгой Иванова Г.С. Основы программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э.Баумана,2001 стр.223-225.. Подумайте о том, при решении каких задач, какая организация списка наиболее оптимальна.

При изучении второго вопроса:

Ознакомьтесь с материалом разделов «Задачи включения элемента в линейный однонаправленный список без головного элемента», «Задачи на удаление элементов из линейного однонаправленного списка без головного элемента» и «Использование рекурсии при работе со списками» базового учебного пособия «Основы алгоритмизации и программирования» и книгой Иванова Г.С. Основы программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э.Баумана,2001 стр.226-237. Сравните алгоритмы обработки списков, написанные с помощью рекурсии и без нее. Подумайте, какой способ является более наглядным, какой – более оптимальным.

Решите задачи из практикума «Задание для решения задач на списки».

165