Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Языки программирования Паскаль Часть 2- Основные структуры языка Методическое пособ1

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 19.5.2024

Основные структуры Паскаля

Муниципальное общеобразовательное учреждение
Андрейковская с.ш.

Информатика

серия «Языки программирования»

Паскаль

Часть 2: Основные структуры языка

Методическое пособие
для профильных и непрофильных классов общеобразовательной и очно-заочной школы

с. Андрейково

2010


ВККИ 000.001.00
2

Мандриков В.Г.

М–2 Паскаль. Основные структуры языка. Методическое пособие. – Андрейково: кабинет Информатики, 2010.

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

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

© МОУ Андрейковская с.ш., 2010

© Мандриков В.Г., 2010


Пояснительная записка

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

Одним из простых языков программирования, появившимся как учебный, является язык Паскаль (Pascal). Паскаль получил широкое распространение благодаря наглядности программ и легкости изучения. Он послужил основой для разработки других языков программирования (например, Ада, Модула−2).


Содержание

[1]
Пояснительная записка

[2]
Содержание

[3]
Структура программы на Паскале

[3.1] Раздел Program

[3.2] Раздел Uses

[3.3] Раздел Label

[3.4] Раздел Const

[3.5] Раздел Type

[3.6] Раздел Var

[3.7] Подпрограммы

[4]
Выражения и операции в Паскале

[4.1] Вывод данных

[4.2] Ввод данных

[4.3] Оператор присвоения

[4.4] Арифметические выражения

[4.5] Составной оператор

[5]
Структуры ветвления

[5.1] Оператор условия

[5.2] Оператор выбора

[6]
Циклические структуры

[6.1] Цикл с предусловием

[6.2] Цикл с постусловием

[6.3] Цикл с параметром

[7]
Подпрограммы

[7.1] Процедуры

[7.2] Функции

[8]
Массивы

[9]
Литература

[1]
Пояснительная записка

[2]
Содержание

[3]
Структура программы на Паскале

[3.1] Раздел Program

[3.2] Раздел Uses

[3.3] Раздел Label

[3.4] Раздел Const

[3.5] Раздел Type

[3.6] Раздел Var

[3.7] Подпрограммы

[4]
Выражения и операции в Паскале

[4.1] Вывод данных

[4.2] Ввод данных

[4.3] Оператор присвоения

[4.4] Арифметические выражения

[4.5] Составной оператор

[5]
Структуры ветвления

[5.1] Оператор условия

[5.2] Оператор выбора

[6]
Циклические структуры

[6.1] Цикл с предусловием

[6.2] Цикл с постусловием

[6.3] Цикл с параметром

[7]
Подпрограммы

[7.1] Процедуры

[7.2] Функции

[8]
Массивы

[9]
Литература

  1.  
    Структура программы на Паскале

В программе, написанной на Турбо Паскале, могут быть следующие разделы:

Program ИмяПрограммы; {Заголовок программы}

Uses ИмяМодуль1, …;  {Подключение модулей}

Label ИмяМетки1, …; {Раздел объявления меток}

Const 

ИмяКонстанты=Значение; {Раздел объявления констант}

Type 

ИмяТипа=Значение;  {Раздел объявления новых типов}

Var 

ИмяПеременной:Тип; {Раздел объявления переменных}

{=== Начало описания подпрограмм ===}

Procedure ...;    {Описание своих процедур}

Function ...;    {Описание своих функций}

{=== Конец описания подпрограмм ===}

Begin  {Начало основной программы}

...;

{Операторы, инструкции основной программы}

...;

End. {Конец основной программы}

Заголовок программы является хотя и необязательным, но желательным элементом и состоит из зарезервированного слова program и идентификатора – имени программы, за котором следует точка с запятой. За ним идут разделы описаний, в которых должны быть описаны все идентификаторы (константы, переменные, типы, процедуры, функции, метки), которые будут использованы в программе.

После разделов описаний идет раздел операторов, который начинается со служебного слова Begin и заканчивается служебным словом End. В этом разделе задаются действия над объектами программы, объявленными в разделе описаний. Операторы в этом разделе отделяются друг от друга точкой с запятой. После последнего слова End ставится точка.

Раздел Program

В начале программы может находиться заголовок, состоящий из зарезервированного слова program, имени программы и параметров, с помощью которых программа взаимодействует со своими внешним окружением:

program Имя(input, output);

Раздел Uses

Раздел uses позволяет подключать стандартные и пользовательские библиотечные модули.

Раздел Label

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

Раздел Const

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

Раздел описания констант начинается с зарезервированного слова const:

const g=9.8;

В Паскале существует так называемые типизированные константы, т.е. при иъ описании указывается тип:

const g:real=9.8;

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

Раздел Type

В Паскале существует механизм создания новых типов данных. Каждое новое определение типа задает множество значений и связывает с этим множеством имя типа.

Раздел Var

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

Подпрограммы

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

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

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

  1.  
    Выражения и операции в Паскале

Вывод данных

Вывод данных – передача данных после обработки из оперативной памяти на устройство вывода (экран монитора, принтер, файл).

Операторы вывода данных на экран    Write(список данных для вывода);  

или  

WriteLn(список данных для вывода);

Процедура вывода WriteLn аналогична Write. Отличие заключается в том, что после вывода курсор автоматически переходит в начало новой строки. Данные инструкции предназначены для вывода констант различных типов, значений переменных или выражений. Число параметров произвольно.

Пустой оператор WriteLn; переводит курсор на начало следующей строки.

При выводе данных можно задавать формат вывода.  Для этого после имени переменной ставится знак двоеточие ":",  например:  Writeln(a:5:2);  - при выводе значения переменной вещественного типа отводится 5 позиций (включая отрицательный знак и точку),  из них 2 позиции отводится для вывода цифр в дробной части.  При выводе значения переменной целого типа задается количество позиций для числа (включая отрицательный знак),  например: Writeln(i:8);

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

Ввод данных

Ввод данных – передача исходных данных программы в оперативную память компьютера для обработки.

Основные способы ввода – ввод с клавиатуры или  чтение данных из файла.

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

Инструкция ввода с клавиатуры можно записать в следующей форме:

Операторы ввода данных с клавиатуры
Read(список переменных);

или
Read
Ln(список переменных);  

Инструкция ReadLn при вводе с клавиатуры предпочтительнее Read, т.к. полностью освобождает буфер клавиатуры – рабочую область памяти, в которой хранятся (временно) введенные с клавиатуры символы.

Пустой оператор ReadLn используется для организации паузы – выполнение программы продолжится, как правило, только после нажатия на клавиатуре клавиши <Enter>.

В одной инструкции Read или ReadLn можно записать несколько переменных, разделенных занятыми. При выполнении программы значения, вводимые с клавиатуры, можно разделять клавишами <> (пробел), <Tab>, <Enter>.

Оператор присвоения

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

Оператор присвоения задает значения переменных в ходе выполнения программы.

Обозначается операция присвоения знаком – «:=».

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

Арифметические выражения

Выражение определяет порядок совершения действии над элементами данных и состоит из:

  •  операндов (констант, переменных, функций);
    •  круглых скобок;
    •  знаков операций.

Операции определяют действия, которые надо выполнить над операндами. Любые операции можно поделить на унарные, которые относятся к одному операнду, и бинарные, которые относятся к двум операндам.

Таблица . Таблица знаков операций

Операция

Обоз-начение

Тип

операндов

результата

Бинарные

Сложение

+

real

real

integer

integer

Вычитание

-

real

real

integer

integer

Умножение

*

real

real

integer

integer

Деление

/

real

real

integer

real

Целочисленное деление

div

integer

integer

Остаток от деления

mod

integer

integer

Арифметическое И

and

integer

integer

Арифметическое ИЛИ

or

integer

integer

Арифметическое побитовое сложение по модулю 2

xor

integer

integer

Побитовый сдвиг влево

shl

integer

integer

Побитовый сдвиг вправо

shr

integer

integer

Унарные

Сохранение знака

+

real

real

integer

integer

Отрицание знака

-

real

real

integer

integer

Арифметическое отрицание

not

integer

integer

Операции div – вычисление результата от целочисленного деления и mod – вычисления остатка от целочисленного деления предназначены для работы с целыми числами и в итоге дают также целые значения. Примеры:

19 div 4=4;

12 div 4=3;

-21 div 4=-5;

-7 div (-4)=1;

19 mod 4=3;

12 mod 4=0;

-21 mod 4=-1;

-7 mod (-4)=-3.

В Паскале есть две процедуры, которые также меняют значения целого числа: inc и dec. Первая увеличивает число на указанное значение, вторая – наоборот – уменьшает.  Пример:

Inc(X)     

Inc(X,N)

Dec(X)     

Dec(X,N)

X:=X+1

X:=X+N

X:=X-1

X:=X-N

Операции побитового сдвига выполняются быстрее, чем соответствующие операции деления и умножения на степень двойки. Сдвиг влево (k shl n) восстанавливает в качестве результата значение, полученное путем сдвига на n позиций влево двоичной формы числа k:

2 shl 7 = 256 = 2*27

Сдвиг вправо (k shr n) наоборот:

240 shr 3 = 30 = 240 div 23

Арифметическое отрицание (not) вызывает побитовую инверсию числа – получение обратного значения.

Таблица . Логические операции

Операция

Название

<

меньше

>

больше

<=

меньше или равно

>=

больше или равно

=

равно

<>

не равно

not

отрицание

or

Или

and

И

xor

исключающее ИЛИ

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

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

Рисунок . Последовательность операций

Операции с равным приоритетом выполняется слева направо.

Если в выражении встречается функция, то данная функция заменяется конкретным значением – результатом вычисления функции и расчет содержащего ее выражения продолжается далее.

Таблица . Стандартные арифметические функции

Стандартная функция

Выполняемое действие

Тип

аргумента

результата

abs(x)

|x|

real

real

integer

integer

sqr(x)

x2

real

real

integer

integer

sqrt(x)

x½

real

real

integer

real

exp(x)

ex

real

real

integer

real

ln(x)

ln(x)

real

real

integer

real

arctan(x)

arctg(x)

real

real

integer

real

cos(x)

cos(x)

real

real

integer

real

sin(x)

sin(x)

real

real

integer

real

pi

π

real

frac(x)

Дробная часть числа

real

real

int(x)

Целая часть числа

real

real

random(x)

Расчет случайного числа y: 0<=y<x

integer

trunc(x)

Отброс дробной части

real

integer

round(x)

Округление до целого

real

integer

Для тригонометрических функций sin и cos аргумент задается в радианах.

Составной оператор

Последовательность операторов может быть объединена в группу, рассматриваемую как один оператор или блок. Это выполняется с помощью слов языка Begin и End.

Begin

 <Оператор1>;

 <ОператорN>;

End;

Составной оператор называют еще операторными скобками, т.к. с помощью него выделяется блок, относящийся к определенной смысловой структуре в языке Паскаль – оператору.

  1.  
    Структуры ветвления

Алгоритмические действия над исходными данными и рабочими объектами языка, необходимые для решения поставленной задачи описываются при помощи операторов Турбо Паскаля. Операторы разделяются точкой с запятой, их последовательность и составляет тело программы. Наиболее простой случай представляют собой линейные алгоритмы. При выполнении линейных участков алгоритма операторы выполняются последовательно друг за другом в том порядке, в котором они перечислены в программе. При этом могут использоваться операторы присваивания, операции ввода и вывода.

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

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

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

Оператор условия

Условный оператор позволяет изменить порядок выполнения команд в зависимости от некоторого логического условия, т.е. он осуществляет ветвление вычислительного процесса. Условный оператор имеет вид:

If <условие> Then 

<оператор1>

[Else <оператор2>];

Выполнение условного оператора начинается с вычисления значения логического выражения, записанного в условии. Если условие истинно, то выполняется <оператор 1>, в противном случае <оператор 2>.

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

Оператор выбора

Если у вас не два возможных варианта выполнения программы, а больше, то может использоваться оператор выбора Case. Структура этого оператора в Турбо Паскале:

Case <ключ_выбора> Of

C1 : <оператор1>;

...

CN : <операторN>;

[Else <оператор0>;]

End;       

Здесь <ключ_выбора> – это выражение порядкового типа, в зависимости от значения которого принимается решение; C1,...,CN - значения, с которыми сравнивается значение <ключа>; <оператор1>,..., <операторN> – оператор (возможно составные), из которых выполняется тот, с константой которого происходит первое совпадение значения <ключа>, <оператор0> выполнится, если значение ключа не совпадает ни с одной из констант C1,...,CN.

Ветвь Else не обязательна, и в отличие от оператора If, перед ней можно ставить точку с запятой. Если для нескольких значений <ключа> действия совпадают, то эти константы можно перечислить через запятую перед двоеточием или даже задать диапазон значений (нижняя граница .. верхняя граница).

  1.  
    Циклические структуры

Цикл представляет собой последовательность операторов, которая может выполняется неоднократно.

Цикл с предусловием

While Условие выполнения цикла do

Begin

{тело цикла}

end;

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

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

Цикл с постусловием

repeat

{тело цикла}

until условие выхода из цикла;

Цикл с постусловием всегда выполняется хотя бы раз, т.к. условие проверяется в конце цикла. Также нужно учесть, что цикл с предусловием выполняется до тех, пока условие верно. Цикл с постусловием, когда условие верно, наоборот – завершается.

Обратите внимание, что операторные скобки для структуры цикл с постусловием не применяются.

Цикл с параметром

 For <параметр>:=НЗ То КЗ Do

<тело цикла>;

 For <параметр>:=НЗ DownTo КЗ Do

<тело цикла>;

где НЗ начальное значение параметра, КЗ конечное значение параметра.

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

Начальное и конечное значения параметра цикла могут быть представлены константами, переменными или арифметическими выражениями.

В структуре НЗ≤КЗ; а в структуре – наоборот  НЗ≥КЗ. Т.е. в первом случае перебор идет по возрастанию значений порядковой переменной <параметр>, а во втором – по убыванию.

Рассмотрим, как выполняется оператор цикла с увеличивающимся параметром (структура ). Сначала вычисляются значения выражений НЗ и КЗ. Если НЗ≤КЗ (или НЗ≥КЗ для второго случая), то <параметр> последовательно принимает значения, равные НЗ, НЗ+1,..., КЗ-1, КЗ и для каждого из этих значений выполняется <тело цикла>. Если НЗ>КЗ, то <тело цикла> не выполняется ни разу.

Для второй структуры (с DownTo) после вычисления начального и конечного выражений проверяется условие НЗ≥КЗ. А затем идет перебор параметра НЗ, НЗ-1,..., КЗ+1, КЗ (т.е. с шагом -1) с выполнением операторов из тела цикла. Если НЗ<КЗ, то <тело цикла> не выполняется ни разу. Если внутри цикла исполняется один оператор, то операторные скобки можно отбросить.

  1.  
    Подпрограммы

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

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

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

Процедуры

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

Procedure ИмяПроцедуры (Формальные Параметры);

{описательная часть процедуры}

begin

{операторы – инструкции процедуры}

end;

Вызов оформляется как отдельный оператор:

ИмяПроцедуры(ФормальныеПараметры);

Для принудительного завершения выполнения процедуры в ее теле можно записывать оператор exit.

Функции

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

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

function ИмяФункции(Формальные Параметры): ТипРезультата;

{описательная часть функции}

begin

{операторы – инструкции функции};

ИмяФункции:=Результат;

{операторы – инструкции функции};

end;

  1.  
    Массивы

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

В качестве типа для элементов массива можно использовать любые типы Турбо Паскаля кроме файловых.

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

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

ИмяТипа = Array[ДиапазоныИндексов] Of ТипЭлементаМассива;

Причем существует два способа задания массива. В первом случае, задается тип массива, а затем объявляется переменного типа массив:

Type mymas=Array[1..30] Of Integer;

Var A:mymas;

Можно массив сразу объявлять в разделе определения переменных:

Var A:Array[1..30] Of Integer;


Литература

  1.  Крюкова Н.Л. Основы алгоритмизации и языки программирования. Язык Паскаль: Учебно-практическое пособие для учащихся средних школ. – Пенза, 2002.
  2.  Лахтин А.С., Искакова Л.Ю. Языки и технология программирования. Начальный курс: Учебное пособие. – 1998.
  3.  Рапаков Г.Г., Ржеуцкая С.Ю. Программ-мирование на языке Pascal. – СПб.:  БХВ-Петербург, 2004.
  4.  Рудаков П.И., Федотов М.А. Основы языка Pascal. Учебный курс. – М.: Радио и связь, Горячая линия – Телеком, 1999.


унарный минус, not, @

нарные операции

*, /, div, mod, and, shl, shr

Операции типа умножение

+, –, or, xor

Операции типа сложение

=, <>, <, >, <=, >=, in

Операции отношения

  1.  



1. Пять родів військ українських військово-повітряних сил
2. Про місцеве самоврядування в Україні
3. АУДИТ ПЛАНОВО-КОНТРОЛЬНЫХ РАСЧЕТОВ В УСЛОВИЯХ НЕОПРЕДЕЛЕННОСТИ ВНЕШНЕЙ СРЕДЫ
4. Габон
5. а разработана в целях создания необходимой инфраструктуры в туристских зонах эффективного и рационального
6. об образовании в РФ
7. Аланд, Кур
8. все раздражения на которые реагируют высшие животные
9. Биоиндикация качества воды
10. Виды памяти. Совершенствование памяти.html
11. реферату- Вплив діяльності людини на довкілляРозділ- Екологія Вплив діяльності людини на довкілля В умова
12. 1 Обоснование важности интеграции в малом бизнесе оперативных и стратегических решений и важность ее разра
13. Статья 10 Европейской Конвенции о защите прав человека и основных свобод комментарий Мониторинг Фонда за
14. Тюменская государственная медицинская академия Министерства здравоохранения Российской Федерации ГБ
15. . Подрубка брюкджинс 20 ушив боковых швов 30.
16. Сравнение эмпирического и рационалистического метода
17. і.html~~жатты абзацтар~а б~лу оларды~ к~лемін ~згерту
18. Воспитание воина Олег Верещагин Воспитание воина Летом 2002 в одном из подмос
19. Становление абсолютной монархии в России конец XVII первая четверть XVIII вв
20.  Вайсгербер 18991985 опирался на труды Гумбольдта Гете Шиллера Заполните пропуски