Учебно-методический комплекс по дисциплине «Информатика»

РЕСПУБЛИКА КАЗАХСТАН

УНИВЕРСИТЕТ «ТУРАН»

 

 

Абуов Е.Э.

 

Учебно-методический комплекс по дисциплине «Информатика»

Раздел:
«Технология программирования»

Краткий конспект лекций

Методические материалы для лабораторных занятий

Методические рекомендации по СРСП и СРС

 

Для студентов специальности 050703 – «Информационные системы»

 

АЛМАТЫ, 2005

Учебно-методический комплекс составлен старшим преподавателем Абуовым Е.Э. на основании государственного стандарта образования по направлению подготовки специальности 050703-«Информационные системы» в соответствии с рабочим учебным планом специальности, утвержденным
«___» ______________ 2005 г.

 

Рассмотрено на заседании кафедры информационные технологий.

«___» _________________ 2005 г. Протокол №___.

 

Зав. кафедрой информационных технологий _______________ Тусупова С.А.

 

 

Одобрено на заседании Учебно-методического совета университета.

«___» _________________ 2005 г. Протокол №___.

 

Председатель _______________ Тазабеков К.А.

Содержание

Краткий конспект лекции №12............................................................................................................. 3

Методические материалы для лабораторного занятия №12............................................................ 16

Методические рекомендации по СРСП №12.................................................................................... 19

Методические рекомендации по СРС №12....................................................................................... 21

Методические рекомендации по СРС №12....................................................................................... 21

Краткий конспект лекции №13........................................................................................................... 22

Методические материалы для лабораторного занятия №13............................................................ 25

Методические рекомендации по СРСП №13.................................................................................... 26

Методические рекомендации по СРС №13....................................................................................... 27

Краткий конспект лекции №14........................................................................................................... 28

Методические материалы для лабораторного занятия №14............................................................ 31

Методические рекомендации по СРСП №14.................................................................................... 33

Методические рекомендации по СРС №14....................................................................................... 34

 

Краткий конспект лекции №12

Тема: Основы технологии программирования. Введение в язык Паскаль.

Количество часов: 1.

 

Технология программирования — это выбор метода и средств создания программ. Применение эффективных технологий программирования означает:

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

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

q использование специальных методов и приемов организации работ по разработке программ.

 

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

q разработка программ (алгоритмов) методом «сверху вниз»;

q пошаговая детализация;

q отказ от бессистемного применения оператора безусловного перехода GOTO (а по возможности полный отказ от его использования) и преимущественное использование других структурных операторов и др.

 

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

Метод пошаговой детализации предполагает последовательное разложение общей функции обработки данных на простые функциональные элементы.

Первоначально продумывается и фиксируется общая структура алгоритма без детальной проработки отдельных его частей, но при этом используются лишь основные структуры алгоритмов (следования, ветвления, цикла). Далее прорабатываются (детализируются) отдельные блоки, не детализированные на предыдущем шаге. Этот процесс происходит до тех пор, пока не будут получены блоки описанных выше трех типов, которые детализируются до элементарных команд или операторов языка программирования. Эта технология называется методом последовательной (пошаговой) детализации или методом «сверху – вниз».

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

q один вход и один выход;

q функциональная завершенность;

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

q слабые информационные связи с другими модулями;

q обозримый по размеру и сложности программный элемент.

 

Каждый модуль состоит из спецификации и тела. Спецификация определяет правила использования модуля, а тело – способ реализации процесса обработки.

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

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

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

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

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

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

Язык Паскаль был разработан в 1970 г. Швейцарским профессором Никлаусом Виртом, и относится к языкам третьего поколения. Паскаль широко использовался как международный язык для описания алгоритмов, а в последнее время - для обучения программированию. Этот язык наиболее приспособлен для составления корректных программ методами структурного программирования и реализации метода "сверху вниз".

Способы описания синтаксиса

Для того, чтобы описать синтаксис алгоритмического языка, также необходим какой-то язык. Речь идет не о языке программирования, на котором будут записываться алгоритмы решения тех или иных задач, а о языке, на котором будет описываться сам этот язык программирования. Другими словами, речь идет о метаязыке ("надъязыке"), предназначенном для описания других языков. Для строгого и точного описания синтаксиса алгоритмических языков используются специально разработанные для этой цели способы. Наиболее распространенными из них являются металингвистические формулы Бэкуса-Наура (язык БНФ).

Для каждого понятия языка должная существовать единственная метаформула, в левой части которой указывается определенное понятие, т.е. метапеременная языка БНФ, а правая часть формулы тем или иным способом задает все множество значений этой переменной, т.е. все допустимые конструкции, которые объединяются в это понятие. Для большей наглядности все метапеременные обычно заключаются в угловые скобки "<" и ">" (предполагается, что эти скобки не принадлежат алфавита определяемого языка, т.е. являются метасимволами), например <число>. Левая и правая части метаформулы разделяются метасимволом "::=", смысл которого эквивалентен словам "по определению есть".

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

Допустим, например, что мы хотим ввести в употребление понятие <двоичный код>, под которым понималась бы любая непустая последовательность цифр 0 и 1. В этом случае можно поступить следующим образом. Сначала сказать, что любая отдельная цифра 0 или 1 по определению является двоичным кодом — тем самым выделить частный случай, когда двоичный код состоит из одной цифры. А затем сказать, что если к любому двоичному коду приписать справа еще одну, любую из этих цифр, то по определению это тоже должно считаться двоичным кодом. То, что было сказано выше словами, можно просто и компактно выразить с помощью метаформул:

<двоичная цифра> ::= 0 | 1

<двоичный код> ::= <двоичная цифра> | <двоичный код> <двоичная цифра>

Определение можно выразить и в одной строчке без определения дополнительной метапеременной <двоичная цифра>:

<двоичный код> ::= 0 | 1 | <двоичный код>0|<двоичный код>1

Как видно, в правой части метаформулы, определяющей понятие <двоичный код> используется само это определяемое понятие. Подобного рода определения называются рекурсивными. Чтобы при этом не получилось "порочного круга", правая часть формулы должна содержать по крайней мере одно частное определение, в котором определяемый термин не используется.

Для задания синтаксических конструкций произвольной длины часто используется и другой способ: вводятся еще два метасимвола, например фигурные скобки "{" и "}", и заключение в эти скобки какой-либо конструкции в метаформуле означает, что эта конструкция может повторяться нуль или более раз. С использование этого способа можно дать простое эквивалентное определение понятия < двоичный код>:

<двоичный код> ::= <двоичная цифра>{<двоичная цифра>}