Файл: «Основы программирования на языке Pascal»(Теоретические основы языка Pascal).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.03.2023

Просмотров: 219

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Результат 2-го этапа - математическая модель.

  1. Построение алгоритма, представляющего собой точное описание конечной последовательности действий, понятное исполнителю, и приводящее исходные данные к конечному результату [2]. Алгоритм может быть описан в какой- либо форме записи по созданной математической модели.

Результат 3-го этапа - алгоритм.

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

Результат 4-го этапа - программный код.

  1. Отладка и тестирование программы состоит в выявлении и устранении ошибок; и причин их появления. Ошибки компиляции (синтаксические) - погрешности в записи конструкций языка программирования, например не описана переменная. Ошибки времени выполнения (семантические) - погрешности неправильного содержания действий и использования недопустимых значений величин, например деление на ноль. В результате выполнения будет установлен курсор на номер строки с ошибкой и выведено сообщение. К логическим ошибкам могут привести погрешности в описании алгоритма, например, не задано начальное значение переменной. Результат будет неверным, а поиск ошибок затруднен. Выполнение тестирования программы подразумевает подбор наборов значений входных данных с заранее известными результатами (тесты) или результаты могут быть легко просчитаны.

Результат 5-го этапа - программа.

  1. Выполнение расчетов с реальными данными и анализ полученных результатов возможно после выполнения всех этапов разработки. Если обнаруживаются ошибки, то необходимо вернуться к любому этапу решения задачи.

Результат 6-го этапа - замечания.

  1. Сопровождение программы включает доработку программы и составление сопроводительной документации к программе.

Результат 7-го этапа - документированное приложение.

1.3. Организация и описание данных

Программа, написанная на языке Паскаль, оперирует некоторыми объектами, называемыми данными. Каждый элемент данных в программе является либо константой, либо переменной. Для каждой переменной задается некоторый тип, определяющий как возможные значения переменной, так и операции, которые могут над ней выполняться. Имя в языке Паскаль состоит из последовательности букв, цифр и символа подчеркивания, начинающейся с буквы. Имена используются в программах для записи констант, переменных, функций и подпрограмм.


Тип переменной обязательно должен быть задан в разделе описания переменных. Именованная константа отличается от переменной тем, что ее значение не может изменяться во время выполнения программы и она описывается в разделе описания констант. Тип константы однозначно определяется ее значением и в явном виде не указывается. Константы могут являться значением следующих типов: целые, вещественные, логические ( булевские), литерные (символьные) и текстовые (строки).

Константы описываются следующим образом:

CONST имя1 = значение1; имя2 = значение2;

Если потребуется изменить константу, то при таком ее описании достаточно изменить ее значение в описании.

const log = true;

rmax= 24; zk = c;

Раздел "описание констант" в программе может отсутствовать, а раздел "описание переменных" должен присутствовать тогда, когда в программе используется хотя бы одна переменная. Выбор имен переменных желательно производить таким образом, чтобы был понятен их смысл и назначение.

Операторы описания данных

Язык Паскаль предоставляет богатые возможности для построения сложных типов данных, которые задаются в разделе типов. Однако все они строятся на основе стандартных типов: целый, вещественный, символьный и логический. Кроме этого, в языке Паскаль можно использовать перечисляемые типы.

Стандартные типы данных

Целый тип (INTEGER).

Для любой вычислительной машины значением переменной этого типа должно быть целое число n, лежащее в диапазоне:

-MAXINT <= N <= MAXINT

Помимо стандартного целого типа на персональном компьютере в среде Турбо-Паскаль возможны следующие целочисленные типы которые отличаются размером при хранении в памяти и способом кодировки значений (с представлением знака или без него):

Тип

Диапазон

Размер, байт

shortint

byte

integer

word

longint

-128...+127

0...255

-32768...+327678

0...65535 -2147483648... +2147483647...

1

1

2

2

4

Над целыми числами кроме обычных арифметических и стандартных операций могут выполняться:

- операции целочисленного деления и поиска остатка от целочисленного деления:

15 div 4 = 3 13 mod 4 = 1

- операции поиска предыдущего и последующих значений аргумента:

pred(9) = 8 succ(-9) = -8

pred(-9) = -10 succ(9) = 10

- функция позволяющая определить четность или нечетность аргумента:


odd(7) - true

odd(6) - false.

Переменные целого типа описываются следующим образом:

var a, g, jh, gg: integer;

Вещественный тип (REAL)

Значением переменной этого типа является вещественное число, заданное либо в естественной форме -6.7694

или в экспоненциальной 5.6Е-2.

Вещественные переменные обладают двумя важными характеристиками - диапазоном значений и точностью, которые определяются структурными особенностями конкретной ЭВМ.

Помимо стандартного вещественного типа на персональном компьютере в среде Турбо-Паскаль возможны следующие вещественные типы, являющиеся приближением к точным значением:

Тип

Диапазон

Значащие цифры

Размер, байт

real

single

double

extended

comp

-1.7e38...1.7e38

-3.4e38...3.4e38

-1.7e308...1.7e308

-1.1e4932...1.1e4932

-2*2^63...1...2*2^63

11...12 7...8

15...16

19...20

19...20

6

4

8

10

8

Тип comp содержит только целочисленные значения.

Для вещественных аргументов кроме перечисленных выше функций могут использоваться стандартные функции преобразования значений вещественного типа в значение целого типа :

- функция trunc вырабатывает целый результат путем отбрасывания дробной части аргумента:

trunc(23.54) = 23

trunc(-3.54) = -3

- функция round вырабатывает целый результат путем округления до ближайшего целого:

round(23.53) = 24

round(-3.53) = -4

  • функция int выделяет целую часть числа:

int(23.54) = 23.0

int(-3.54) = -3.0

  • функция frac выделяет мантиссу аргумента:

frac(23.54) = 0.54

frac(-1.67) = -0.67

Переменные вещественного типа описываются следующим образом:

var ad, gs, fh, nn: real;

Булевский тип (BOOLEAN)

Этот тип данных на языке Паскаль называется логическим. Над логическими данными вычисляются следующие операции:

OR, NOT и AND.

Логическими данными и операции над ними имеют важное значение в информатике, так как позволяют ввести в расчеты элементы формальной логики.

Так как значения true и false можно рассматривать как упорядоченное множество, состоящее из двух элементов, то для этого типа данных помимо succ и pred, определена функция ord, определяющая порядковый номер для значений перечисляемого типа:

pred(false) = true succ(true) = false

ord(false) = 0 ord(true) = 1

Переменные логического типа описываются следующим образом: var w, y, z, vv: boolean;


Символьный тип (CHAR)

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

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

- содержать цифры, расположенные в порядке возрастания;

- содержать символ пробел.

Каждый символ должен иметь свой порядковый номер. При записи данных символьного типа символ должен заключаться в апострофы:

'2','g','k','s','0'.

С данными символьного типа связаны функции:

- ord(символ) - дает порядковый номер символа в упорядоченном массиве:

ord('?') = 63

ord('5') = 53

ord('I') = 73

- сhr(номер) - дает символ, стоящий под указанным номером в упорядоченном множестве символов:

chr(53) = '5'

chr(53) = '5'

ord(73) = 'I'

К аргументам символьного типа применимы функции pred и succ, которые выдают предыдущий и последующий символы, а также операции отношения ( символ 1 считается больше символа 2, если его порядковый номер в множестве символов больше сравниваемого):

pred('M') = 'L'

succ('M') = 'N'

Переменные символьного типа описываются следующим образом:

var w, y, z, vv: сhar;

Строковый тип (STRING).

Значениями переменной строкового типа являются последовательности символов, заключенные в апострофы. Имеющиеся внутри текста апострофы должны быть отдублированы:

'2gk', 's''0', 'Program''System'''.

Переменные строкового типа описываются следующим образом:

var wf, yyy, zs, vev: string [10];

Описание массивов

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

имя: array [ Nmin..Nmax ] of тип;

При описании массивов большей размерности пределы измерения должны отделяться друг от друга запятой:

имя: array [ Nmin..Nmax, Kmin..Kmax, Rmin..Rmax] of тип;

Массивы описываются следующим образом:

var fff: array [1..4, 1..4] of integer;

sss: array [1..6] of real;

ddd: array [1..11, 1..4, 1..55] of char;

aaa: array [1..22, 1..11] of string.

2. Программирование процесса обработки данных

2.1. Программирование линейных, разветвляющихся и ветвящихся процессов


Простые операторы (не объединяют в своей структуре другие операторы): ввода/вывода, присваивания и пустой используются для программирования линейных процессов обработки данных.

Оператор присваивания изменяет значение переменной из левой части на результат вычисления выражения из правой части.

<идентификатор>:= <выражение>;

Требования к выполнению:

  • идентификатор из левой части и значение выражения из правой части должны быть одного и того же типа; исключением является присваивание вещественной переменной целочисленного значения;
  • присваивать можно значения любых типов данных, кроме файловых;

- значения переменных, связанных в выражение, должны быть определены до выполнения оператора присваивания.

Выполнение: вычисляет значение выражения из правой части, если надо, и присваивает переменной из левой части.

Пример использования: S := pi * sqr (R); - вычисляется произведение значений pi и квадрата значения R, затем присваивается переменной S.

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

Требования к выполнению:

  • к пустому оператору может быть установлена метка;
  • оператор может располагаться в любой части программы согласно правилам синтаксиса языка.

Выполнение: служит для организации выхода из середины программы.

Программирование разветвляющихся процессов обработки данных реализуется через использование структурных операторов (представляют собой сложную структуру из других операторов): условного и составного; простого оператора безусловного перехода.

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

begin <оператор 1>; ...; <оператор N> end;

Требования к выполнению:

  • выполнение следующего оператора должно начаться после выполнения предыдущего;
  • end рассматривается как разделитель (точка с запятой), поэтому перед end точка с запятой обычно не ставится. Выполнение: составной оператор объединяет операторы в блок.

Условный оператор позволяет реализовать разветвление в зависимости от результата проверки условия.

Описание может быть задано одной из двух форм:

  • полная: if <условие> then <оператор 1> else <оператор 2>;
  • краткая: if <условие> then <оператор 1>;

Требования к выполнению:

  • в качестве <оператор 1> и <оператор 2> используется один оператор, иначе используется составной оператор;
  • сложные условия могут задаваться с помощью операций отношения, соединяясь логическими операциями;
  • <условие> всегда проверяется на истинность, даже если в логическом условии указывается только имя переменной логического типа;
  • <условие> является выражением логического типа.