Автор работы: Пользователь скрыл имя, 09 Декабря 2014 в 17:51, реферат
Описание работы
Цель работы - научиться анализировать задание и определить перечень вопросов, которые будут решаться в данной работе, создавать список функциональных требований к программе, то есть определение того, что, собственно, будет выполнять разрабатываемая программа, не рассматривая конкретную реализацию этих функций, в задачах лексического и синтаксического анализа, уметь определять возможные ошибки в записи операторов, описывать интерфейс программы и те функции, которые она будет выполнять.
Содержание работы
ВВЕДЕНИЕ 1.Постановка задачи 2. Разработка алгоритма 3. Разработка программы и пользовательского интерфейса 4.Отладка программы ВЫВОДЫ
Программа на Паскале может
снабжаться комментариями разработчика
к своему исходному тексту. Желательно
всегда сопровождать тексты своих программ
комментариями, даже если алгоритм кодируется
с помощью довольно простых операторов.
Обычно трудно сразу понять, что делает
участок программы из нескольких десятков
операторов, особенно если реализуемая
ими логика достаточно сложна.
Комментарии в Паскале бывают
двух типов: многострочные и однострочные.
С помощью системы Delphi 7 можно
создавать приложения Windows практически
неограниченной сложности, использующие
графический интерфейс. Однако для тех,
кто только начинает знакомство с основными
операторами Паскаля, имеется возможность
создания простых программ в стиле MS-DOS
(в качестве учебных).
Это так называемые консольные
приложения. Внешне они выглядят как программы
с текстовым интерфейсом, но способны
обращаться к большинству функций Windows.
Чтобы создать консольное приложение,
надо дать команду File > New > • Other (Файл
> Создать > Другое) и в диалоговом окне
New Items (Создание программы) выбрать значок
Console Application (Консольное приложение) (рис.
3) . Система автоматически сгенерирует
в текстовом редакторе исходный код заготовку
будущего приложения.
Обмен информацией
Так как создаваемая программа
— консольная, общаться с пользователем
с помощью графического интерфейса она
не может. Для этого нужны более простые
средства обмена информацией с человеком.
В Паскале имеются две стандартные
процедуры ReadLn (для ввода данных) и Write
Ln (для записи данных), которые могут использоваться
в консольных приложениях. Первая процедура
выполняет ввод значения с клавиатуры
и его передачу в переменную, которая указана
в качестве параметра (можно указать и
список переменных — тогда при вводе соответствующие
им значения надо разделять пробелами).Вторая
процедура выводит одно или несколько
значений переменных или выражений в текущую
строку экрана, разделяя их пробелами.
Процедура ReadLn требует, чтобы человек
после окончания ввода нажал клавишу
ENTER, а процедура WriteLn после
окончания вывода значений осуществляет
перевод курсора на следующую
строку. Другая процедура вывода,
Write, не выполняет такого перевода
и продолжает вывод данных
в текущую строку.
Сохранение программы
Перед первым запуском программы
ее исходный текст необходимо сохранить.
Для этого щелкните на командной кнопке
Save All (Сохранить все) на
панели инструментов.
Система Delphi 7 попросит указать
место для сохранения главного файла Projectl.
Укажите любую подходящую папку.
Компиляция и запуск программы
Чтобы откомпилировать и сразу
запустить данную программу, достаточно
нажать клавишу F9. В папке, где был сохранен
файл с исходным текстом, появится исполнимый
файл программы — Projectl.exe. Она будет тут
же автоматически запущена из среды Delphi
7. На экране откроется окно консольного
приложения.
После нажатия клавиши ENTER управление
будет передано обратно в оболочку Delphi
7. Обойтись только простыми — линейными
типами в большой программе довольно сложно.
Желательно, чтобы структура данных прикладной
программы отвечала структуре данных
решаемой задачи. Для этого в Паскале есть
набор структурных типов данных.
Массивы
Массив — это структура данных,
доступ к элементам которой осуществляется
по номеру (или индексу). Все элементы в
массиве имеют одинаковый тип. Индекс
элемента массива может быть вычисляемым,
что позволяет организовывать компактную
и эффективную обработку больших наборов
данных.
Описание массива имеет вид:
type имя-типа-маесива = array[ диапазон
] of тип-элемента;
Запись — это структура данных,
доступ к элементам которой осуществляется
по имени (названию элемента). Элементы
записи могут иметь разный тип, поэтому
при описании записи надо указывать и
название каждого элемента, и его тип.
С целью повышения эффективности
создаваемых программ в первых версиях
Паскаля было реализовано понятие указа
теля — переменной, которая хранит не
значение конкретного типа, а адрес памяти
(условно говоря, номер ячейки), где хранится
значение соответствующего типа. Указатель
только указывает на место в памяти, а
получить доступ к данным в этом месте
можно с помощью специальных операций.
Указатели можно складывать
(операция «+») друге другом и с целыми
числами, а также вычитать (операция «-»).
Смысл этих операций состоит либо в сдвиге
(смещении) адреса памяти на заданное целое
число единиц соответствующего типа вперед
или назад, либо в определении разности
(числа единиц данных) между двумя указателями.
Складывать два указателя в языке Паскаль
не разрешается.
Подпрограммы
Описание подпрограммы состоит
из трех частей: заголовка подпрограммы,
локального описания и тела подпрограммы.
Заголовок используется, чтобы явно ввести
в программу новую подпрограмму и обозначить
начало ее описания. Локальные описания
представляют собой набор описаний типов,
переменных, констант и других подпрограмм,
которые действуют только в рамках данной
подпрограммы. Тело подпрограммы — это
логический блок begin/end, содержащий операторы
и команды Паскаля и реализующий нужную
логику работы.
Описание подпрограммы — это
только описание, которое никогда не выполняется
само по себе и может располагаться в любом
месте исходного текста (но обязательно
до первого вызова подпрограммы). Вызывается
процедура или функция только внутри логического
блока begin/end с указанием конкретных значений
для каждого из ее параметров.
Способы вызова подпрограмм
Подпрограммы с точки зрения
прикладного программиста вызываются
всегда одинаково, но машинный код, который
создается компилятором, для разных подпрограмм
может отличаться. Это зависит от целей
применения конкретной подпрограммы.
Она может использоваться:
- в рамках разрабатываемой
прикладной программы;
- как функция, доступная
из динамической библиотеки .DLL;
- как процедура, вызываемая
из внешних программ или из
Windows и т. д.
Для каждого из таких нестандартных
случаев вслед за заголовком подпрограммы
(за точкой с запятой) должно следовать
одно из ключевых слов. Хотя в Паскале
не допускается использование одинаковых
названий для переменных, констант и других
идентификаторов, для локальных переменных
и подпрограмм делается исключение. Так
как в Паскале предъявляются строгие требования
к типам данных, обращаться к подпрограмме,
формальные параметры которой имеют тип
Integer, с фактическими параметрами, имеющими
тип Real, нельзя. Однако при решении задачи
подчас бывает необходимо, чтобы подпрограмма
с одним и тем же именем работала с разными
типами данных. Когда в тексте программы
указывается имя ранее описанной подпрограммы
с фактическими параметрами, то выполнение
основной части программы останавливается
и управление передается подпрограмме,
до тех пор пока в ходе работы не будет
достигнут ее конец (зарезервированное
слово end). После этого управление передается
обратно в программу (или другую подпрограмму),
вызывавшую данную подпрограмму.
Хотя переменные, описанные
как процедурные типы, фактически являются
указателями, от программиста эта их особенность
скрыта. Но Паскаль разрешает также явно
описывать переменные-указатели на подпрограммы.
Для этого в языке введен особый тип данных
Pointer, представляющий собой указатель
на информацию, не имеющую конкретного
типа. Получение адреса начала подпрограммы
выполняется с помощью операции @, так
же, как и для получения адреса любых других
данных.
Операторы
С помощью оператора присваивания
можно написать простые программы, пре-имущественно
ориентированные на математические вычисления,
но для создания приложений, реализующих
сложную алгоритмическую логику, нужны
средства управления ходом работы программы:
изменения порядка выполнения операторов
в зависимости от различных условий и
эффективной реализации часто повторяющихся
вычислений.
Условный оператор
Один из важнейших операторов
Паскаля — условный оператор. Он позволяет
изменить порядок выполнения операторов
в зависимости от некоторого условия,
представляющего собой логическое выражение
типа Boolean. Если это значение равно True,
то выполняется одна группа операторов,
если оно равно False, то выполняется другая
группа операторов или не выполняется
ничего.
Условия представляют собой
логические выражения. В них происходит
сравнение значений выражений, вызов функций,
возвращающих значение типа Boolean, и комбинирование
этих значений с помощью логических операций.
Оператор цикла
В программировании постоянно
возникают задачи, требующие для своего
решения многократного повторения одной
и той же последовательности действий
или однообразной обработки однородных
объемов информации (массивов). Например,
когда требуется определить сумму всех
элементов массива, найти его элемент
с максимальным значением, вычислить квадраты
всех элементов и так далее. В Паскале
имеется несколько операторов, позволяющих
организовать подобную работу наглядно
и эффективно. Операторы, предназначенные
для многократного (циклического) выполнения
заданной последовательности команд,
называются операторами цикла. Они всегда
имеют заголовок цикла, определяющий число
повторений, и тело цикла — повторяемое
действие.
Оператор перехода
Помимо условного оператора
и операторов цикла, в Паскале имеется
еще один оператор, позволяющий изменять
последовательность выполнения программы.
Это оператор перехода, который записывается
так:
goto метка;
Компоненты первостепенной
важности расположены на панели Standard (Стандартные)
палитры компонентов (рис. 4).
Они соответствуют основным
элементам управления Windows, без которых
не обходится ни одна программа.Все компоненты
Delphi 7 хранятся в библиотеке визуальных
компонентов Visual Component Library (VCL). Каждый
из компонентов, а также форма (будущее
окно) описаны соответствующими классами
Паскаля: к названию компонента добавляется
буква Т; например, форма описывается классом
TForm, кнопка (компонент Button) — классом TButton
и так далее.
Создаваемая в среде Delphi 7 программа
состоит из нескольких файлов. Это файлы
с исходными текстами на Паскале и файлы
описаний форм. Все они связаны друг с
другом. Кроме того, в среде Delphi 7 имеется
множество настроек, которые желательно
сохранять на жестком диске в промежутках
между сеансами работы с системой.
Такой набор файлов, в которых
содержатся исходные тексты и различные
настройки, называется проектом. Разделение
на проекты очень удобно, потому что позволяет
выделить все файлы, относящиеся к конкретной
задаче, в отдельную группу.
Чтобы сохранить текущий проект,
надо выполнить команду File > • Save Al l
(Файл > • Сохранить все) или щелкнуть
на одноименной командной кнопке. Сначала
разработчику будет предложено сохранить
файл с исходным текстом (Unitl.pas), а затем
— файл проекта Project! с расширением .DPR.
Сохранять их лучше в отдельном каталоге,
специально отведенном для данного проекта.
В этом же каталоге компилятор в будущем
создаст и исполнимое приложение. Теперь
можно приступать к этапу проектирования
пользовательского интерфейса — подготовке
внешнего вида окна программы и размещению
на нем элементов управления. Для этого
надо переключиться в Проектировщик форм
с помощью клавиши F12 или командной кнопки
Toggle Form/Uni t (Выбрать Форму/Модуль). Проектировщик
форм работает по принципу WYSIWYG, в соответствии
с которым окно созданной программы будет
выглядеть в точности так, как оно было
подготовлено в Проектировщике форм. Например,
изменить размер формы можно стандартным
способом для системы Windows — протягиванием
мыши. Создаваемая в Проектировщике форма
— это только внешнее представление будущего
окна, а не работоспособное приложение.
Любой объект Проектировщика
форм доступен в исходном тексте программы
по его имени. Имя (или название) объекта
— это одно из его свойств, которые можно
изменять и настраивать в Инспекторе объектов.
Соответствующее свойство называется
Name (Имя). Оно имеется у всех объектов без
исключения и расположено в Инспекторе
объектов в категории Miscellaneous (Дополнительныв)
(рис. 5).
Первоначально значением этого
свойства является строка Forml, сгенерированная
системой Delphi 7 автоматически. Если ее
изменить, например на MyForm, и нажать клавишу
ENTER, то в проекте произойдут следующие
изменения.
- Заголовок формы изменится
с Forml на MyForm. Система Delphi 7 считает, что
заголовок окна совпадаете его
названием, пока разработчик не
изменит заголовок явно.
- Тип формы в файле Unitl.pas
изменится с TForml наТтуРогт.
- Имя переменной Forml изменится
на MyForrn.
Эти операции система Delphi 7 выполнит
автоматически. В дальнейшем при корректировке
названий форм и других объектов в исходные
тексты также будут вноситься изменения,
не требующие вмешательства человека,
что позволяет избежать неприятных ошибок.
Заголовок формы — это свойство
Caption (Заголовок). В Инспекторе объектов
оно находится в категории Visua l (Внешний
вид). Здесь можно ввести строку
Пример. В свойстве Name (Имя) можно
использовать только латинские буквы
и цифры, так как содержимое этого свойства
соответствует названию переменной Паскаля
— идентификатору. Заголовок — это произвольная
строка, не имеющая прямого отношения
к программированию.
На форме размешаются объекты,
соответствующие компонентам с палитры
компонентов. Чтобы создать на форме текстовое
ноле, надо:
- выбрать панель Standard (Стандартная);
- щелкнуть на кнопке Edit
(Текстовое поле);
- щелкнуть на том месте
формы, где требуется поместить
текстовое ноле.
В этом месте появится новый
элемент управления (рис. 6).
Черные маркеры по контуру объекта
указывают, что он выделен. Эти маркеры
предназначены для изменения размеров
объекта с помощью мыши. По умолчанию в
системе Delphi 7 принято, что название нового
объекта совпадает с его заголовком. Это
название создается средой Delphi по следующему
принципу.
Берется название компонента
(для формы это Form, для текстового поля
— Edit и так далее), и к нему добавляется
порядковый номер, начиная с единицы. Если
теперь на форму поместить еще одно текстовое
поле, то его названием будет Edit2,
Если теперь взглянуть на исходный
текст класса TMyForm, то окажется, что в разделе
private появилось новое поле:
Editl: TEdit;
Оно было добавлено средой Delphi
7 в описание класса TMyForm автоматически.
Создание работоспособной программы
Хотя пока задан только внешний
вид главного окна, уже можно получить
работоспособную программу. Если ее запустить,
она позволит вводить в текстовые поля
различные значения, щелкать на кнопке,
менять размеры окна. Правда, выполнять
суммирование введенных чисел программа
пока не будет — это действие надо запрограммировать
вручную.