Основы программирования (947332), страница 2
Текст из файла (страница 2)
Материал проблемныхсеминаров курса выделен в специальные разделы, названные практикумами.В конце большинства разделов приведены вопросы и задачи для самопроверки.Данная книга представляет собой второе издание учебника. В связи сновой редакцией программ обучения основам программирования в неговключены материалы по основам событийного программирования и отличиям Delphi Pascal от Borland Pascal 7.0. Кроме того, изменена графическая нотация, используемая для пояснения основ объектно-ориентированного программирования, что связано с практическим утверждением UML (UnifiedModeling Language - Универсальный язык моделирования) в качестве международного стандарта описания объектно-ориентированных разработок.Автор глубоко признателен канд.
техн. наук, доценту Т.Н.Ничушкинойза предоставленные материалы и огромную помош,ь в подготовке книги, атакже рецензентам: заведующему кафедрой «Компьютерные системы и технологии» МИФИ д-ру техн. наук, профессору Л. Д. Забродину и коллективукафедры «ЭВМ, комплексы и сети» МАИ во главе с д-ром техн. наук, профессором О.М.Бреховым за полезные замечания и советы.Хочется также выразить особую благодарность студентам, принявшимактивное участие в обсуждении первого издания учебника, за их советы и замечания, учтенные автором в данном издании.ВВЕДЕНИЕЯзык программирования Паскаль был создан в 1971 г.
профессором Цюрихского университета Никлаусом Виртом и предназначался для обучениястудентов как основам алгоритмизации и программирования, так и основамконструирования компиляторов. Язык полностью отвечал принципам структурного программирования, сформулированным к тому'моменту, имел ярковыраженную блочную структуру и развитое представление данных. Однако,будучи учебным, он имел ограниченные средства реализации ввода-вывода исоздания библиотек подпрограмм.В разные годы было разработано несколько вариантов компиляторов сПаскаля для различных типов ЭВМ.
Наибольшее распространение получилTurbo (Borland) Pascal, предложенный фирмой Borland Internation (США).Существовало несколько версий. Последняя версия, предназначенная для создания программного обеспечения «под MS DOS» - версия 7.0, включает:• интегрированную среду разработки программ, ставшую в некоторойстепени прототипом создания аналогичных сред для других языков программирования;• средства разработки многомодульных программ;• средства управления экраном в текстовом и графических режимах;• средства объектно-ориентированного программирования;• усовершенствованную систему типов данных.Современным программистам приходится иметь дело с огромным количеством разнообразных языков программирования различных уровней и назначений.
Но по-прежнему начинать изучение программирования целесообразно на базе Паскаля, так как при использовании этого языка у будущегопрограммиста быстрее формируется четкое алгоритмическое мышление.Весомым аргументом в пользу изучения основ программирования именно на базе Паскаля также является существование профессиональной визуальной среды разработки программного обеспечения Delphi, которая использует в качестве базового языка именно Паскаль. Практика показывает, что переход к разработке программного обеспечения в этой среде после изучениябазового курса происходит достаточно безболезненно, хотя и требует некоторых дополнительных знаний,10ВведениеВ настоящее время при разработке сложного программного обеспеченияобычно используют одну из двух технологий: структурное программирование или обьектнО'Ориентированное программирование.Первая технология для разработки сложных программ рекомендует разбивать {декомпозировать) программу на подпрограммы (процедуры), решающие отдельные подзадачи, т.е.
базируется на процедурной декомпозиции.Вторая технология использует более сложный подход, при котором впредметной области задачи выделяют отдельно функционирующие элементы. Поведение этих объектов программно моделируется с использованиемспециальных средств, а затем, уже из готовых объектов, опять же специальным способом, собирается сложная программа. Таким образом, в основе второй технологии лежит объектная декомпозиция.Именно объектная технология лежит в основе используемой Delphi библиотеки стандартных компонентов, поэтому переход в эту среду целесообразно осуществлять только после изучения основных принципов объектногоподхода, изложенных в данном учебнике.Кроме объектного подхода для работы в Delphi необходимо иметь представление об основных отличиях Delphi Pascal и визуальных средах, использующих принцип событийного программирования.
Этот материал добавленво второе издание учебника в виде приложений 4 и 5.Изучение объектной технологии требует наличия базовых знаний, поэтому на первых этапах мы будем придерживаться принципов процедурногопрограммирования.Часть 1. ОСНОВЫ АЛГОРИТМИЗАЦИИ ИПРОЦЕДУРНОЕ ПРОГРАММИРОВАНИЕ1. ЭТАПЫ СОЗДАНИЯ ПРОГРАММНОГООБЕСПЕЧЕНИЯв процессе разработки программ с использованием процедурного подхода можновыделить следующие этапы:• постановка задачи - определение требований к программному продукту;• анализ - осуществление формальной постановки задачи и определение методовее решения;• проектирование ~ разработка структуры программного продукта, выбор структурдля хранения данных, построение и оценка алгоритмов подпрограмм и определение особенностей взаимодействия программы с вычислительной средой (другими программами, операционной системой и техническими средствами);• реализация - QQC^dibntHWQ программы на выбранном языке программирования, еетестирование и отладка.• модификация - выпуск новых версий программного продукта.1.1.
Постановка задачиПроцесс создания нового программного обеспечения начинают с постановки задачи, в процессе которой определяют требования к программномупродукту.Прежде всего устанавливают набор выполняемых функций, а также перечень и характеристики исходных данных. Так, для числовых данных можетзадаваться точность, для текстовых - возможно, размер текста, способ кодировки и т. п. Затем определяют перечень результатов, их характеристики испособы представления (в виде таблиц, диаграмм, графиков и т. п.). Крометого, уточняют среду функционирования программного продукта: конкретную комплектацию и параметры технических средств, версию используемойоперационной системы и, возможно, версии и параметры другого установ12у.
Этапы создания программного обеспеченияИсходныеданные(перечень,характеристики,способпредставления)^+-ibPПрограммаОперацион ая системаСбойТехнические средстваРезультаты(перечень,характеристики,способпредставления)Сбой энергоснабженияРис. 1.1. Факторы, определяющие параметры разрабатываемогопрограммного обеспеченияленного программного обеспечения, с которым предстоит взаимодействоватьбудущему программному продукту.В тех случаях, когда разрабатываемое программное обеспечение собирает и хранит некоторую информацию или включается в управление каким-либо техническим процессом, необходимо также четко регламентировать действия программы при сбоях оборудования и энергоснабжения (рис. 1.1).В результате согласования между заказчиком и исполнителем всех перечисленных вопросов составляют техническое задание в соответствии сГОСТ 19.201-78, которое служит основанием для дальнейшей работы.1.2.
Анализ, формальная постановка и выбор метода решенияНа данном этапе по результатам анализа условия задачи выбирают математические абстракции, адекватно, т.е. с требуемой точностью и полнотой,представляющие исходные данные и результаты, строят модель задачи и определяют метод преобразования исходных данных в результат (метод решения задачи).Пример 1.1. Разработать программу, которая по заданным длинам сторон прямоугольника определяет его площадь.Исходными данными в этом случае являются длины сторон прямоугольника, т.е. некоторые числовые значения, для которых должны быть заданыдиапазон изменения и точность.
Математические абстракции для представления исходных данных - некие изменяемые значения - переменные. Результат - площадь прямоугольника - таюке некоторое числовое значение, диапазон возможных значений и точность которого зависят от соответствующиххарактеристик исходных данных. Математической абстракцией результататакже является переменная. Модель задачи можно представить в виде:13Часть I.
Основы алгоритмизации и процедурное программированиеS = а X Ь,гдеS ~ площадь; а, b - длины сторон.Результат получают перемножением аргументов.Однако полученная модель не является полной и, следовательно, адекватной, так как в ней не определены типы используемых переменных (целыеили вещественные), что может привести к получению неверных результатов.Например, допустим, что нас интересует площадь с точностью «до сотых»,тогда получение результата с точностью «до целых» следует считать ошибкой. Полная модель должна включать также указание типов переменных.Часто формальная постановка задачи однозначно определяет метод еерешения.