ABSOLUTE
|
EXPORTS
|
LIBRARY
|
SET
|
ASSEMBLER
|
EXTERNAL
|
MOD
|
SHL
|
AND
|
FAR
|
NAME
|
SHR
|
ARRAY
|
FILE
|
NIL
|
STRING
|
ASM
|
FOR
|
NEAR
|
THEN
|
ASSEMBLER
|
FORWARD
|
OF
|
UNIT
|
BEGIN
|
NOT
|
FUNCTION
|
CASE
|
CONST
|
GOTO
|
IF
|
OR
|
CONSTRUCTOR
|
IMPLEMENTATION
|
USES
|
UNTIL
|
PACKED
|
VAR
|
IN
|
INDEX
|
PRIVATE
|
DIV
|
PROCEDURE
|
END
|
INTERRUPT
|
TYPE
|
VIRTUAL
|
ELSE
|
LABEL
|
EXPORT
|
RESIDENT
|
INTERFACE
|
TO
|
OBJECT
|
REPEAT
|
XOR
|
RECORD
|
DOWNTO
|
PROGRAM
|
PUBLIC
|
INLINE
|
DO
|
WHILE
|
INHERITED
|
WITH
|
|
|
Кроме
перечисленных, в набор основных символов входит пробел. Пробелы нельзя
использовать внутри сдвоенных символов и зарезервированных слов.
В процессе создания любой
программы, будь то небольшая учебная программа, предназначенная для
демонстрации учителю информатики, или серьезный проект, над которым работают
десятки программистов, можно выделить несколько этапов. Затраты труда и времени
на их выполнение различны, различаются эти затраты и для различных программ. Некоторые
из этапов могут быть опущены или пройдены "незаметно", однако анализ
процесса разработки приводит к выводу о том, что почти всегда, явно или не явно,
приходится проходить следующие этапы разработки программы:
постановка задачи;
анализ, формальное описание
задачи, выбор модели;
выбор и разработка алгоритма
решения задачи;
проектирование общей структуры
программы;
кодирование;
отладка и верификация программы;
получение результата;
публикация или передача
заказчику результата работы;
сопровождение программы.
Описание каждого из
перечисленных этапов:
Постановка задачи
выполняется заказчиком, в качестве которого может выступать внешняя
организация, организация в которой работает программист, начальник
программиста, преподаватель, сам программист. На этом этапе задача, которую
необходимо решить посредством составления программы для компьютера,
формулируется на естественном языке.
Анализ задачи включает
определение входных и выходных данных, выявление возможных ограничений на их
значения и обычно завершается формализованным описанием задачи, которое часто
предполагает её математическую формулировку.
Выбор и разработка алгоритма
и численного метода решения задачи имеют важнейшее значение для успешной
работы над программой. Тщательно проработанный алгоритм решения задачи -
необходимое условие эффективной работы по составлению программы.
Проектирование общей
структуры программы. На этом этапе происходит "архитектурная" проработка
проекта. Определяются те части алгоритма, которые целесообразно оформить в виде
подпрограмм, модулей. Определяется и способ хранения информации - в виде набора
простых переменных, массивов или других структур.
Кодирование - это запись
алгоритма на языке программирования. Если алгоритм решения задачи, структура
программы и структура данных тщательно продуманы и аккуратно записаны, затраты
времени на кодирование уменьшаются, а вероятность ошибок на этом этапе
снижаются.
Отладка и верификация
программы представляют собой очень важную часть процесса разработки
программы. Отладка заключается в устранении ошибок программирования, ошибок
перевода алгоритма на язык программирования. Верификация - доказательство того,
что программа работает "правильно", дает правильный результат.
Получение результата -
сравнить результаты наблюдений и результаты компьютера. Результат может
отличаться от требуемого. В этом случае, возможно, придется изменить саму
модель, сделав ее более реалистичной.
Публикация или передача
заказчику результата работы - момент рождения качественной программы. В
научных исследования значение имеют результаты моделирования, которые
публикуются в научных журналах. В нашем случае это сама программа, которая
передается заказчику для дальнейшей эксплуатации или выкладывания на ftp - сервер для свободного
распространения.
Сопровождение программы - предполагают
консультации заказчику по работе программы, устранение замеченных в процессе ее
эксплуатации недостатков, обучение пользователей работе с программой.
Алгоритмизация -
составление пошагового описание процесса решения задачи.
Алгоритм - конечный набор
правил, расположенных в логическом порядке, позволяющий исполнителю решать
любую конкретную задачу из некоторого класса однотипных задач.
Алгоритм должен удовлетворять
определенным требованиям. Принято выделять следующие семь:
Наличие ввода исходных данных.
Наличие вывода исходных данных.
Однозначность.
Общность - алгоритм предназначен
для решения некоторого класса задач.
Корректность - алгоритм должен
давать правильное решение задачи.
Конечность - решение задачи
должно быть получено за конечное число шагов.
Эффективность - для решения
задачи должны использоваться ограниченные ресурсы компьютера (процессорное
время, объем оперативной памяти).
Для разработки структуры
программы удобнее пользоваться записью алгоритма в виде блок-схемы. Для
изображения основных алгоритмических структур и блоков на блок-схемах
используют специальные графические символы:
4. Структура программ на Паскале
Программа на языке Паскаль состоит
из заголовка, разделов описаний и раздела операторов.
Program
имя программы;
Uses подключаемые модули;
Блок описания:
Меток
Констант
Типов
Переменных
Процедур
Функций
Begin
Тело программы.
Исполняемая часть.
Строка программы может иметь
максимальную длину 127 символов. Если строка будет длиннее, ее часть, выходящая
за пределы 127 символов, будет компилятором игнорироваться.
Комментарии заключаются в
фигурные скобки {……}.
Линейная программа
Простейшей алгоритмической
структурой является линейная последовательность операций, которые выполняются
по очереди и именно в том порядке, в котором они записаны. Линейные алгоритмы и
линейные программы обычно предназначены для решения относительно простых задач,
в которых не предусмотрен выбор из нескольких возможных альтернатив или
циклических повторений каких-либо операций.
Ветвления
В Паскале имеются две реализации
одной из основных алгоритмических структур - ветвления. Это условный оператор и
оператор выбора. Условный оператор имеет вид:
If a>b then Writeln (‘значение а больше’);
Полная версия условного
оператора имеет вид:
If a > b then writeln (‘значение а больше’)
else writeln (‘значение b больше’);
Циклы
Одной из важнейших
алгоритмических структур является цикл. Цикл представляет собой
последовательность операторов, которая выполняется неоднократно. В программах,
связанных с обработкой данных или вычислениями, часто приходиться выполнять циклические
повторяющиеся действия.
В языке программирования Паскаль
имеется три разновидности цикла - цикл со счетчиком, цикл с предусловием и цикл
с постусловием.
Операторы цикла:
Оператор While
Оператор Repeat
Оператор For
Оператор While:
При использовании оператора while условие повторения цикла запрашивается в начале цикла:
while
выражение do оператор
Выражение после while должно быть логическим выражением. Оператор после do выполняется, если логическое выражение имеет значение true. Если после do, т.е. в цикле,
должны быть выполнены несколько операторов, их следует поместить в операторные
скобки begin и end. Если
логическое выражение в начале имеет значение false,
цикл вообще не выполняется.
Оператор Repeat:
repeat оператор until выражение
Выражение после repeat должно быть логическим выражением. Выражение после repeat выполняются до тех пор, пока логическое выражение
после until не примет значение true.
Итак, построенный с помощью оператора repeat цикл
выполняется по крайней мере один раз.
Оператор For:
for переменная: = выражение to
выражение do оператор
Переменная цикла и оба выражения
должны иметь одинаковый тип, который должен быть порядковым. Первое выражение
является начальным значением, второе - конечным. При выполнении to начальное значение увеличивается каждый раз, пока не
достигнет конечного значения.
Простые типы данных
Все переменные, используемые в
программе, должны быть перечислены в разделе описания переменных.
var a, b: integer;
c: real;
Паскаль - это гибкий язык, в
котором имеется большое число различных типов. Все имеющиеся в Паскале типы
принято делить на группы. Типы, принадлежащие одной группе, имеют сходство. Прежде
всего, выделяют простые и структурные типы. Простые типы, в свою очередь,
подразделяют на порядковые и вещественные типы.
В таблице приведено описание
простых типов:
Название
|
Идентификатор
|
Множество допустимых значений
|
Порядковый
|
Короткий целый
|
Shortint
|
-128. .127
|
Байтовый
|
Byte
|
0. .255
|
Слово
|
Word
|
0. .65535
|
Целый
|
Integer
|
-32768. .32767
|
Длинный целый
|
Longint
|
-2147483. .2147483647
|
Символьный
|
Char
|
Символы из расширенного набора символов кода ASCII
|
Булев
|
Boolean
|
True, False
|
Вещественный
|
Вещественный
|
Real
|
-1.7x1038. - 2.9x10-39
|
С одинарной точностью
|
Single
|
2.9x10-39. .1.7x1038
|
С двойной точностью
|
Double
|
-3.4x1038. - 1.5x10-45
|
Сложный
|
Comp
|
Допустимые значения порядковых типов представляют собой
множество, состоящее из конечного числа элементов. В этом множестве есть первый
и последний элементы. Кроме того, каждый элемент порядкового типа имеет предшествующий
ему и следующий за ним элементы.
В Паскале имеется пять вещественных типов. Вещественные типы
различаются диапазоном и точностью связанных с ними значений. Действия над
типами с одинарной, двойной и повышенной точностью, а также над сложным типом могут
выполняться только при наличии математического сопроцессора.
Процедуры и функции
Подпрограмма - это последовательность операторов, которые
определены и записаны только в одном месте программы, однако их можно вызвать
для выполнения из одной или нескольких точек программы. Каждая подпрограмма
определяется уникальным именем. В языке Паскаль существуют два типа подпрограмм
- процедуры и функции.
Процедура и функция - это именованная последовательность
описаний и операторов. При использовании процедур или функций Паскаль - программа
должна содержать текст процедуры или функции и обращение к процедуре или
функции. Тексты процедур и функций помещаются в раздел описаний процедур и
функций.
Процедура может содержать такие - же разделы описаний, что и
Паскаль - программа, а именно: разделы описания модулей, меток, констант,
типов, переменных, процедур и функций.
Составить программу вывода на
экран всех натуральных чисел, не превосходящих N и не
делящихся на каждую из своих цифр. Описать соответствующую функцию, получающую
из основной программы в качестве параметра натуральное число и возвращает TRUE, если оно удовлетворяет указанному условию.
Блок - схема программы
Блок - схема функции { viborka }
Текст программы
program nat_chisla;
uses crt;
function
viborka (var n: integer): boolean;
var f: boolean;
k: integer;
m: integer;
begin
f: =true;
k: =n;
while
k<>0 do begin
m: =k mod 10;
if m <> 0
then
if n mod m = 0
then begin
f: =false;
break;
end;
k: =k div 10;
end;
viborka: =f;
end;
var i,n: integer;
begin
clrscr;
writeln ('Введите
число');
readln (n);
for i: =1 to n
do
if viborka (i) then
writeln (i);
readln;
end.
1.
Turbo Pascal:
практикум. - СПб.: Питер, 2002. - 256 с.: ил.
2.
Turbo Pascal
/ 2-е изд., перераб., - Вологда: МП "МИК", 1991. - 342с.