Тема 6. Программное обеспечение и технологии программирования
1. Системы программирования
Система программирования – это комплекс средств, предназначенный для создания и эксплуатации программ на конкретном языке программирования на ЭВМ определенного типа.
Средства для создания программ
Традиционными средствами разработки программ являются алгоритмические (процедурные) языки программирования. Для создания программы на выбранном языке программирования нужно иметь следующие компоненты:
Текстовый редактор – это редактор, который позволяет набрать текст программы на языке программирования. Для этой цели можно использовать любые текстовые редакторы, но лучше пользоваться специализированным текстовым редактором.
Транслятор – это основа систем программирования. Трансляторы языков программирования, т. е. программы, обеспечивающие перевод исходного текста программы на машинный язык (объектный код), бывают двух типов: интерпретаторы и компиляторы.
Интерпретатор - это транслятор, который обеспечивает последовательный синхронный «перевод» и выполнение каждой строки программы, причем при каждом запуске программы на выполнение вся процедура полностью повторяется. Достоинством интерпретатора является удобство отладки программы в интерактивном режиме, а недостатком - малая скорость работы.
Компилятор – это транслятор, который исходный текст программы переводит в машинный код. Если в тексте программы нет синтаксических ошибок, то машинный код будет создан. Но это, как правило, не работоспособный код, т.к. в этой программе не хватает подпрограмм стандартных функций, поэтому компилятор выдает промежуточный код, который называется объектным кодом и имеет расширение .obj.
Редактор связей (сборщик) – это программа, которая объединяет объектные модули отдельных частей программы и добавляет к ним стандартные модули подпрограмм стандартных функций (файлы с расширением .lib), которые содержатся в библиотеках, поставляемых вместе с компилятором, в единую программу, готовую к исполнению, т.е. создает исполнимый.exeфайл. Этот файл имеет самостоятельное значение и может работать под управлением той (или такой же) операционной системы, в которой он создан.
Интегрированные системы программирования
В стандартную поставку, как правило, входят текстовый редактор, компилятор, редактор связей (сборщик), библиотеки стандартных функций. Но хорошая интегрированная система обязательно включает в себя специализированный текстовый редактор, в котором выделяются ключевые слова различными цветами и шрифтами. Все этапы создания программы в ней автоматизированы: после того, как исходный текст программы введен, его компиляция и сборка осуществляются одним нажатием клавиши.
В современныхинтегрированных системах имеется еще один компонент – отладчик. Он позволяет анализировать работу программы по шагам во время ее выполнения, наблюдая, как меняются значения различных переменных.
В последние несколько лет созданы среды быстрого проектирования, в которых программирование, по сути, заменяется проектированием. В проектируемое окно готовые визуальные компоненты перетаскиваются с помощью мыши, затем свойства и поведение компонентов настраивается с помощью редактора. Исходный же текст программы, ответственный за работу этих элементов, генерируется автоматически с помощью среды быстрого проектирования, которая называется RAD-средой. Подобный подход называется визуальным программированием.
Основные системы программирования
Наиболее популярные языки программирования | Соответствующие им визуальные среды быстрого проектирования программ для Windows |
Бейсик (Basic) – для освоения требует начальной подготовки (общеобразовательная школа) | Microsoft Visual Basic |
Паскаль (Pascal) – требует специальной подготовки | Borland Delphi |
Си++ (С++)- требует серьезной подготовки | Microsoft Visual С++ |
Ява (Java) требует серьезной подготовки | Java: Borland JBuilder |
2. Структурное программирование
Основная идея структурного программирования состоит в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм программы был ясно виден из исходного текста. Следовательно, надо разбить программу на последовательность модулей, каждый из которых выполняет одно или несколько действий. Требование к модулю – чтобы его выполнение начиналось с первой команды и заканчивалось последней. Модульность – это основная характеристика структурного программирования. А для этого надо иметь средства для создания программы не только с помощью трех простых операторов, но и с помощью средств более точно отражающих конкретную структуру алгоритма.
С этой целью в программирование введено понятие подпрограммы – набора операторов, выполняющих нужное действие и не зависящих от других частей исходного кода. Программа разбивается на множество подпрограмм, каждая из которых выполняет одно из действий исходного кода. Комбинируя эти блоки, удается сформировать итоговый алгоритм уже не из операторов, а из законченных блоков. Обращаться к блокам надо по названиям, а название несет смысловую нагрузку. Например, CallSumma, означает обращение к подпрограмме с именем Summa, Call - вызов. При структурном подходе к составлению алгоритмов и программ используются три основные типа алгоритмов: условные, циклические алгоритмы и подпрограммы.
Структурированными считаются алгоритмы и программы, составленные с использованием только этих трех типов алгоритмов, при этом для записи циклов и условий должна использоваться ступенчатая запись. Например:
Если a>bто
Вывод “Первое число больше”
Иначе
Вывод “Второе число больше”
Конец если
Алгоритм считается неструктурированным, если нет ступенчатой записи или если при создании программы использован оператор безусловного переходаGoTo – переход к метке, т. е. структурное программирование – это программирование безGoTo.
Анализируя эти фрагменты, можно сказать, что они подготовлены не по правилам структурного программирования, т. к. в первом фрагменте программы отсутствует ступенчатая запись, а во втором есть переход к метке:
Нисходящее программирование
Основным принципом технологии структурного программирования являетсяяя нисходящее программирование - это программирование с использованием подпрограмм, которое позволяет вести разработку приложения сверху вниз. Суть такого программирования состоит в том, что сначала выделяются несколько подпрограмм, решающих глобальные задачи, потом каждый из этих модулей разбивается на небольшое число других подпрограмм и так происходит до тех пор, пока вся задача не окажется реализованной. Достоинство такого подхода в том, что небольшие программы легче отлаживать, программа становится более надежной и подпрограммы можно использовать повторно.
3. Чтение структурированных программ
Подпрограммы бывают двух видов: процедуры и функции. Процедуры просто выполняют последовательность операторов, а функции вычисляют значение и передают его в главную программу. Подпрограмма – процедура или подпрограмма – функция- это отдельный блок операторов, начинающийся с заголовка и заканчивающийся признаком конца процедуры или функции. Чтобы подпрограмма имела смысл ей надо получить какие-то значения, которые называются параметрами. Параметры, которые принимаются в подпрограмме, описываются в заголовке и называются формальными. Например,
Процедура Summa(a,b) – это заголовок подпрограммы - процедуры, имя которой Summa, а в скобках указываются формальные параметрыa и b.
Обращение из главной программы к процедуре осуществляется по имени подпрограммы-процедуры с перечнем в скобках параметров, которые ей передаются, например, CallSumma(x,y) – означает обратиться к процедуре Summa и передать ей параметры x и y, которые называются фактическими параметрами.
Подпрограмма - функция оформляется таким образом:
Функция Длина( a, b, c, d), где Длина – имя функции, а в скобках указаны формальные параметры. Подпрограмма–функция возвращает только одно значение, которое обязательно присваивается названию функции в теле подпрограммы–функции. Так как функция возвращает значение, то обращение к ней из основной программы может входить в выражение, как операнд.
При выполнении процедуры или функции формальные параметры временно заменяются на фактические.
Задача 1. Составить на структурированном языке алгоритм вычисления периметра треугольника, если известны координаты его вершин (треугольник лежит на плоскости).
Обозначим координаты вершин xA, yA, xB, yB, xC, yC и ввод их значений осуществим в главной программе. Пусть AB-расстояние между точками A и B, BC-между Bи C, AC-между A и С, а Р – периметр. Периметр вычислим по известной формуле Р=AB+BC+AC, а расстояние же между двумя точками вычислим по формуле:
. Вычисление расстояния между двумя точками вынесем в подпрограмму-функцию, назовем ее Длина, а формальные аргументы подпрограммы – функции обозначим через x1, y1, x2, y2. Тогда для вычисления AB, BC и AB надо три раза обратиться к подпрограмме-функции, передав ей значения фактических аргументов, сначала координаты, например, точек Aи B, затем Bи C, Aи C.