Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

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

Содержание:

ВВЕДЕНИЕ

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

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

Целью курсовой работы является рассмотрение особенностей программирования на языке Pascal.

Задачи работы:

Изучить историю создания языка Pascal.

Рассмотреть основные элементы и структура программы.

Изучить организацию и описание данных.

Изучить программирование линейных, разветвляющихся и ветвящихся процессов.

Изучить программирование циклических процессов.

1. Теоретические основы языка Pascal

1.1. История создания языка Pascal

Pascal был создан на базе ALGOL, языка программирования, который предназначался для научных вычислений. После встречи в Цюрихе Международный комитет разработал ALGOL как независимый от платформы язык. Это дало его разработчикам относительную свободу действий над функциями, которые они могли бы выполнить в ALGOL, но также затрудняло создание компиляторов для него. В то время на многих компьютерах отсутствовали аппаратные функции, которые мы сейчас считаем стандартными. [1]

Отсутствие компиляторов на многих платформах в сочетании с отсутствием указателей и многими основными типами данных, такими как символы, привело к тому, что ALGOL не получил широкого распространения. Ученые и инженеры в большей мере предпочитали FORTRAN, язык программирования, который был доступен на многих платформах. ALGOL больше не использовался при решении задач различной степени сложности, за исключением описания алгоритмов.

В 1960-е годы несколько компьютерных ученых работали над расширением ALGOL. Одним из них был доктор Никлаус Вирт из Швейцарского федерального технологического института (ETH-Zurich), член первоначальной группы, создавшей ALGOL. В 1971 году он опубликовал свои работы для высокоструктурированного языка, который во многом напоминал ALGOL. Он назвал его Паскалем в честь французского философа и математика XVII века.

Основная функция Pascal - работа с данными, что предоставляет программисту возможность определять пользовательские типы данных. Благодаря этому происходит строгая проверка данных, что предотвращает смешивание типов данных. Изначально Паскаль был предназначен для преподавания. Pascal является более простым, в отличие от FORTRAN, написанный на нем код очень похож на естественный язык, поэтому его легко понять обычному пользователю [12, c.109].

К началу 1980-х годов Паскаль уже получил широкое признание в университетах. В его становление на путь популярности немалую роль сыграли два события.

Во-первых, Служба Образовательных Испытаний, компания, которая пишет и администрирует главный вступительный экзамен в колледже в Соединенных Штатах, решила добавить экзамен по информатике, для этого экзамена они выбрал язык Pascal. Из-за этого ученики средних школ, а также студенты колледжа начали изучать именно данный язык программирования. Pascal оставался официальным языком экзаменов в США до 1999 года, но в дальнейшем был заменен C ++, а далее - на Java.

Во-вторых, небольшая компания Borland International выпустила компилятор Turbo Pascal для персонального компьютера IBM. Компилятор был разработан Андерсом Хейльсбергом, который позже возглавил группу в Microsoft, разработавшую C # и (повторно) представившую Managed Code обратно в мир вычислений.

Turbo Pascal был действительно революционным. Были внесены некоторые изменения в стандартный Pascal, но они были незначительными и помогли ему достичь своего наибольшего преимущества: скорости. Turbo Pascal составлен с головокружительной скоростью: несколько тысяч строк в минуту. В то время доступные компиляторы для платформы ПК были медленными и «раздутыми». Создание Turbo Pascal являлось в то время «глотком свежего воздуха». Вскоре Turbo Pascal стал стандартом де-факто для программирования на ПК.

В дальнейшем Apple выпустила серию компьютеров Macintosh. Поскольку Pascal был выдающимся структурированным языком программирования того времени, Apple выбрала Pascal в качестве стандартного языка программирования для Mac. Программисты получили API и пример кода для программирования Mac, которые были написаны на языке Pascal.

Начиная с версии 1.0 до 7.0 Turbo Pascal, Borland (создатель разработческих инструментов Turbo Pascal и Delphi) продолжал расширять язык. Одним из немаловажных замечаний в оригинальной версии Pascal было отсутствие отдельной компиляции для модулей. Вирт даже создал новый язык программирования Modula-2 для решения этой проблемы. Borland добавила модули в Pascal с функциями своих устройств.

В версию 7.0 было добавлено множество дополнительных функций. Одним из них был DPMI (DOS Protected Mode Interface), способ запуска программ DOS в защищенном режиме, получение дополнительной скорости и разрыв без барьера 640K для доступа [5, c. 67].

На данный момент, язык программирования Pascal является общепризнанным языком при освоении различных ступеней образования, который сочетает в себе основные свойства алгоритмического языка программирования высокого уровня и доступную форму, позволяющую начинающему программисту освоить технологию создания программы. Также, существуют пакеты, основанные на использовании Pascal (Delphi, компонентный Pascal), использующие современный объектноориентированный подход.

Однако, как язык разработки, в последнее время Pascal теряет свою популярность. На 2018 год он занимал 128 место в рейтинге языков программирования TIOBE. Все большую популярность приобретает web- программирование [4, c. 89]. Как видно на рисунке 1, в период с 2008 по 2013 год язык Pascal входил в ТОП-20 языков программирования, но в последние годы произошло его стремительное падение на низкую позицию.

Pascal отличается легким синтаксисом языка, а, как известно, чем сложнее грамматика языка и чем больше вариантов предполагают семантические правила - тем больше проходов будет выполнять компилятор. Именно поэтому компиляторы с языка Pascal работают очень быстро [5, c. 16].

паскаль.png

Рисунок 1 – Pascal в рейтинге языков TIOBE

Несмотря на это, Pascal остается одним из основных языков при обучении программированию, поэтому его активно изучают в школах и профессиональных учебных заведениях.

1.2. Основные элементы и структура программы

Язык программирования Паскаль является языком программирования высокого уровня или алгоритмическим языком (т.е. языком, специально разработанным для записи алгоритмов вычислений). Особенностью таких языков как Бейсик, Паскаль по сравнению с большинством другими алгоритмическими языками, является их ориентация на диалоговый процесс программирования.

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

1) буквы латинского алфавита (прописные и заглавные): A,B, ... ,Z и a,b,...,z

2) арабские цифры (от 0 до 9);

3) знаки арифметических операций:

+ - сложение, - - вычитание,

* - умножение / - деление,

div - деление нацело с отбрасыванием остатка,

mod - нахождение остатка от деления нацело;

4) знаки операций отношения:

= - равно, <> - не равно,

> - больше, < - меньше,

>= - больше или равно, <= - меньше или равно;

5). знаки логических операций:

NOT - отрицание, OR - логическое сложение,

AND - логическое умножение;

6) знаки операции присваивания := ;

7) специальные символы:

- пробел (разделитель) _ - подчеркивания

( - открывающая круглая скобка

) - закрывающая круглая скобка

[ - открывающая квадратная скобка

] - закрывающая квадратная скобка

- открывающая фигурная скобка

- закрывающая фигурная скобка

, - запятая

. - точка

; - точка с запятой

' - апостроф

: - двоеточие

8) ключевые слова:

AND - и, ARRAY - массив,

BEGIN - начало, CASE - вариант,

CONST - константа, DIV - деление нацело,

DO - выполнять, DOWNTO - уменьшать до,

ELSE - иначе, END - конец,

FILE - файл, FOR - для,

FORWARD вперед, FUNCTION - функция,

GOTO - переход на, IF - если,

IN - в, LABEL - метка,

MOD - модуль, NOT - не,

OF - из, OR - или,

PROCEDURE процедура, PROGRAM - программа,

RECORD запись, REPEAT - повторить,

SET - множество, STRING - строка,

THEN - то, TO - к,

TYPE - тип, UNIT - модуль,

UNTIL - до, USES - используемые,

VAR - переменная, WHILE - пока,

WITH - с, XOR - арифмет. или.

9) стандартные идентификаторы (имена):

константы FALSE, TRUE и MAXINT;

типы BOOLEAN, INTEGER, REAL и CHAR;

файлы INPUT и OUTPUT;

процедуры READ, READLN, WRITE, WRITELN, GET, PUT, REWRITE, NEW и RESET;

10) стандартные математические функции

Функция

Обращение

Аргумент

Функция

!х!

x2

abs(x)

sqr(x)

R и I

R и I

R и I

R и I

Sin x

Cos x

ex

Ln x

x

Arctg x

sin(x)

cos(x)

exp(x)

ln(x)

sqrt(x)

arctan(x)

R и I

R

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

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

- описания данных, над которыми совершаются действия, и описание действий, которые должны осуществляться над данными. Действия задаются операторами, а данные - определениями и описаниями.

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

- описание меток;

- описание констант;

- определение типов;

- описание переменных;

- описание функций и процедур;

- раздел операторов.

Раздел операторов заключается в операторные скобки, т.е. BEGIN...END. Любой раздел, кроме последнего, может отсутствовать. Разделителями между разделами и операторами служит точка с запятой. В конце программы должна стоять точка. Заголовок программы записывается в первой строке программы и начинается с ключевого слова program после которого указывается имя программы и связь программы с исходными данными и результатами обработки (т.е. файлы, доступные программе). В качестве имен файлов используются стандартные имена INPUT и OUTPUT.

program drev( input,output);

Кроме этого в любое место программы могут быть включены комментарии, при этом смысл программы не меняется. Комментарии заключатся в фигурные скобки. Если в системе нет фигурных скобок, то вместо них используются пары символов (* и *).

(* ПРИМЕР1 КОММЕНТАРИЯ НА ПАСКАЛЕ *)

{ ПРИМЕР2 КОММЕНТАРИЯ НА ПАСКАЛЕ }

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

Основными этапами решения любой задачи средствами языка программирования на ПК являются:

  1. Постановка задачи, которая состоит в сборе данных о ней и описании условий и цели, структуры и типов исходных (начальных) данных, критериев выбора и завершения повторений процессов обработки данных, форм выдачи результатов.

Результат 1-го этапа - спецификация, которая представляет собой набор требований к программному продукту.

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

Результат 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> используется один оператор, иначе используется составной оператор;
  • сложные условия могут задаваться с помощью операций отношения, соединяясь логическими операциями;
  • <условие> всегда проверяется на истинность, даже если в логическом условии указывается только имя переменной логического типа;
  • <условие> является выражением логического типа.

Выполнение: условный оператор вычисляет результат <условие>, если это значение истина (true), то выполняется <оператор 1>, иначе выполняется <оператор 2> и выполнение условного оператора заканчивается (полная форма). В краткой форме в качестве <оператор 2> взят пустой оператор.

Оператор безусловного перехода передает управление к оператору, имеющему метку.

goto <метка>;

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

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

Пример использования: label metka;

begin ...

if <условие> then goto metka;

metka: <оператор>;

end.

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

Вместо использования оператора перехода для организации разветвляющихся процессов, применяют конструкции вида: if - then - else или case; для организации повторений серии действий можно применить конструкции: while или repeat.

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

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

case <выражение> of <метка 1>: <оператор 1>;

<метка N>: <оператор N> else <оператор N+1> end;

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

- метки являются константами одного и того же скалярного типа, причем разного значения;

  • типы данных <выражение> и <метка 1>, .<метка N> должны совпадать;
  • если значения меток различны, а <операторы> совпадают, то можно перечислить данные метки через запятую;
  • <оператор> выполняет одно действие. Если выполняется серия действий, то используется составной оператор.

Выполнение: вычисляет, если нужно, значение выражения. Если значение совпадает с i-й меткой, то выполняется i-й оператор, иначе выполняется <оператор N+1>.

2.2. Программирование циклических процессов

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

Оператор цикла с параметром выполняет повторение действие заданное число раз.

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

  • форма 1:

for <параметр>:=<значение 1> to <значение 2> do <оператор>;

  • форма 2:

for <параметр>:=<значение 1> downto <значение 2> do

<оператор>;

<Оператор> называется телом цикла. Каждое выполнение тела цикла именуется итерацией.

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

  • выполнение оператора только через начало цикла;
  • <значение 1> не превышает <значение 2> (форма 1) и наоборот, <значение 1> превышает <значение 2> (форма 2);
  • переменная-параметр должна быть переменной перечислимого типа (например, целая, символьная);
  • запрещено изменять значение переменной-параметра внутри цикла;
  • <значение 1> и <значение 2> могут быть заранее определенными переменными, причем тип переменных и переменной-параметра должен совпадать;
  • можно задавать шаг выполнения цикла только 1 или -1;
  • в качестве <оператор> может использоваться составной оператор, если циклически повторяется серия действий;
  • прервать выполнение цикла можно двумя способами: увеличить значение параметра цикла до конечного, либо использовать процедуру break;
  • возврат на новую итерацию цикла осуществляет процедура continue, даже если предыдущая итерация не была завершена.

Выполнение: оператор цикла с параметром присваивает переменной-параметру <значение 1>; если оно не превышает <значение 2> (1 форма), то выполняется тело цикла.

Оператор цикла с предусловием проверяет условие и по-вторяет действия в зависимости от результата проверки условия.

while <условие> do <оператор>;

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

- <условие> является выражением логического типа и проверяется перед исполнением каждой итерации;

- если повторяется серия действий, то используется со-ставной оператор;

- если <условие> окажется ложным на первой итерации выполнения, то <оператор> может ни разу не выполниться.

Выполнение: до тех пор, пока значение выражения <условие> остается истина, происходит выполнение тела цикла, иначе цикл завершается.

Оператор цикла с постусловием осуществляет повтор действия в зависимости от результата проверки условия.

repeat <оператор> until <условие>;

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

- <условие> является выражением логического типа и проверяется после исполнения каждой итерации;

- repeat и until выступают в роли операторных скобок, поэтому составной оператор не используется;

- тело цикла выполнится обязательно хотя бы один раз.

Выполнение цикла происходит до тех пор, пока значение выражения <условие> остается ложным, в противном случае он завершается.

ЗАКЛЮЧЕНИЕ

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

Команды позволяют получать, сохранять и обрабатывать данные различных типов (например, целые числа, символы, строки символов, т.д.). Однако кроме команд в записи программы участвуют еще так называемые "служебные слова". Это и есть элементы формальности, организующие структуру программы. Их не так много, но их значение трудно переоценить. Служебные слова можно использовать только по своему прямому назначению. Переопределять их не разрешается.

Уже известно, что основное назначение компьютера - облегчить человеку работу с большими объемами информации, поэтому подавляющее большинство программ построено по одному, довольно простому принципу: получение данных из внешнего мира (ввод), обработка их по соответствующему алгоритму, хранение необходимой информации и вывод во внешний (по отношению к компьютеру) мир полученных результатов. Все эти действия реализуются через имеющиеся в языках программирования команды, алгоритмические структуры и структуры данных.

Список использованных источников

  1. Абрамян, М. Э. Практикум по программированию на языке Паскаль: массивы, строки, файлы, рекурсия, линейные динамические структуры, бинарные деревья : учеб. пособие / М. Э. Абрамян. - Ростов н/Д : Издательство ЮФУ, 2010. - 276 с.
  2. Вирт Н. Алгоритмы + структуры данных = программы. М.: Мир, 1985. 406 с.
  3. Грацианова, Т. Ю. Программирование в примерах и задачах / Грацианова Т.Ю., - 3-е изд., (эл.) - Москва :Лаборатория знаний, 2016. - 373 с
  4. Грогоно П. Программирование на языке Паскаль. М.: Мир, 1982. 384 с.
  5. Залогова, Л. А. Разработка Паскаль-компилятора / Залогова Л.А., - 4-е изд., (эл.) - Москва :Лаборатория знаний, 2017. - 186 с.
  6. Егунова А. И. Проектирование развивающего сайта молодёжных квестов / А. И. Егунова, Е. О. Ладанова, С. А. Ямашкин и др. // Образовательные технологии и общество. 2017. Т. 20. № 3. С. 292-298.
  7. Касторнова, В. А. Структуры данных и алгоритмы их обработки на языке программирования Паскаль: Учебное пособие Пособие / Касторнова В. - СПб:БХВ-Петербург, 2016. - 304 с
  8. Ладанова Е.О. Обзор программных средств обработки текстов на русском языке//Постулат. 2017. № 12. С.100.
  9. Ладанова Е.О. Оптимизация контента сайта с учетом предпочтений пользователей//Постулат. 2018.№1.
  10. Ладанова Е.О., Ямашкин С. А. Семантический анализатор для выделения фактов из текстовых сообщений // Международный научноисследовательский журнал. 2017. № 12-5 (66). С. 95-97.
  11. Могилев, А. В. Методы программирования. Компьютерные вычисления : учебное пособие / А. В. Могилев, Л. В. Листрова. - Санкт-Петербург : БХВ-Петербург, 2008. - 320 с. 
  12. Потопахин, В. Современное программирование с нуля! [Электронный ресурс] / В. Потопахин. - Москва : ДМК Пресс, 2010. - 240 с.