78199

Базовые элементы языка Паскаль. Операторы ввода-вывода. Структура программ

Лекция

Информатика, кибернетика и программирование

Особое место в алфавите языка занимают пробелы, к которым относятся любые символы ASCII в диапазоне кодов от 0 до 32. Эти символы рассматриваются как ограничители идентификаторов, констант, чисел, зарезервированных слов. Несколько следующих друг за другом пробелов считаются одним пробелом (последнее не относится к строковым константам).

Русский

2015-02-07

170.5 KB

8 чел.

екция: Базовые элементы языка Паскаль. Операторы ввода-вывода. Структура программ Страница 12 из 12

Оглавление

[1] Оглавление

[2] Алфавит и классификация данных языка Паскаль

[2.1] Данные

[2.2] Пользовательские типы переменных

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

[2.4] Стандартные функции

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

[2.6] Процедура ввода данных

[2.7] Процедура вывода данных

[2.8] Форматы вывода данных

[2.9] Структура программы

[2.10] Контрольные вопросы

[1] Оглавление

[2] Алфавит и классификация данных языка Паскаль

[2.1] Данные

[2.2] Пользовательские типы переменных

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

[2.4] Стандартные функции

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

[2.6] Процедура ввода данных

[2.7] Процедура вывода данных

[2.8] Форматы вывода данных

[2.9] Структура программы

[2.10] Контрольные вопросы

Урок-лекция №1

Тема: Базовые элементы языка Паскаль. Операторы ввода-вывода. Структура программы.

Цель: формирование представлений об основных элементах языка программирования Паскаль, операторы ввода-вывода.

Алфавит и классификация данных языка Паскаль

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

Буквы - это буквы латинского алфавита от а до z и от А до Z, а также знак «подчеркивание» (код ASCII #95). В Турбо Паскале нет различия между прописными и строчными буквами алфавита, если только они не входят в символьные и строковые выражения.

Цифры - арабские цифры от 0 до 9. 

Каждая шестнадцатеричная цифра имеет значение от 0 до 15. Первые 10 значений обозначаются арабскими цифрами 0...9, остальные шесть - латинскими буквами A...F или a...f. 

Специальные символы Турбо Паскаля - это символы

+ плюс   {} фигурные скобки   : двоеточие

- минус   [ ] квадратные скобки   ; точка с запятой

* звездочка ( ) круглые скобки   ' апостроф

/ дробная черта   # номер   @ коммерческое а

= равно   ¬  пробел   $ знак доллара

> больше   . точка    ^ тильда

< меньше   , запятая

Комбинации специальных символов могут образовывать составные символы:

:= присваивание  <= меньше или равно  >= больше или равно

.. диапазон значений  <> не равно

(. .) альтернатива квадратным скобкам (* *) альтернатива фигурным скобкам.

В программе эти пары символов нельзя разделять пробелами, если они используются как знаки операций отношения или ограничители комментария. Символы (. и .) могут употребляться соответственно вместо [ и ]. 

Особое место в алфавите языка занимают пробелы, к которым относятся любые символы ASCII в диапазоне кодов от 0 до 32. Эти символы рассматриваются как ограничители идентификаторов, констант, чисел, зарезервированных слов. Несколько следующих друг за другом пробелов считаются одним пробелом (последнее не относится к строковым константам).

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

Таблица 1.

and

end

nil

shr

do

interface

array

for

object

then

else

mod

asm

file

not

string

downto

label

begin

function

of

to

repeat

while

case

goto

or

type

set

with

const

if

packed

unit

shl

xor

constructor

implementation

procedure

until

div

inline

destructor

in

program

uses

record

var

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

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

Примеры правильных идентификаторов:

а

ALPHA 

MyProgramIsBestProgram 

date_27_sep_39

external

_beta

Примеры неправильных идентификаторов:

1Program {начинается цифрой}

block#l {содержит специальный символ}

My Prog {содержит пробел}

mod {зарезервированное слово}

Данные

В зависимости от способа хранения и обработки в ЭВМ данные можно разбить на две группы: константы и переменные.

Константы - это те данные, значения которых известны заранее и в процессе выполнения программы не изменяются.

В языке Паскаль используются следующие виды констант:

1) числовые константы целые (Integer);

2) числовые константы вещественные (Real);

3) логические (или булевские) константы (Boolean);

4) символьные (или литерные) константы (Char).

Целые числа записываются со знаком или без него по обычным правилам и могут иметь значение от -2147483648 до +2147483647. Следует учесть, что, если целочисленная константа выходит за указанные границы, компилятор дает сообщение об ошибке. Такие константы должны записываться с десятичной точкой, т.е. определяться как вещественные числа.

Пример:

286;  -17;  +1995;

Можно использовать целую константу в шестнадцатеричном виде. Шестнадцатеричное число состоит из шестнадцатеричных цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F), которым предшествует знак доллара $ ( код символа 36 ). Диапазон шестнадцатеричных чисел - от $00000000 до $FFFFFFFF.

Пример:

$3A4F;  $100A

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

Пример:

-39.013;  0.256;

Константа с плавающей точкой - это число, представленное с десятичным порядком: mEp (без пробелов).

Здесь   m - мантисса (как целые, так и вещественные числа с фиксированной точкой);

E - признак записи числа с десятичным порядком; p - порядок числа (только целые числа).

Символ е (Е) имеет смысл «умножить на 10 в степени». Например,

3.14Е5  -  3.14 умножить на 10 в степени 5;

-17е-2  -  минус 17 умножить на 10 в степени минус 2.

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

Пример:

-7.78Е-3;   4.9Е5;   -0.785Е02;

3.14 →   3.14Е+00

0.314Е+01

31.4Е-01

Логическая константа - это либо слово FALSE (ложь), либо слово TRUE (истина).

Символьные константы - это последовательность символов, заключенная в апострофы.

Пример:

'B'; 'Т-999'; 'ТБИП';

Если необходимо записать собственно символ апострофа, он удваивается: 

'''' - символ ' (апостроф).

Допускается использование записи символа путем указания его внутреннего кода, которому предшествует символ # (код 35), например:

#97 - символ а;

#90 - символ Z;

#39 - символ ';

#13 - символ CR.

Строковая константа - любая последовательность символов (кроме символа CR - возврат каретки), заключенная в апострофы. Если в строке нужно указать сам символ апострофа, он удваивается, например:

 'That''s string.' 

Строка символов может быть пустой, т.е. не иметь никаких символов в обрамляющих ее апострофах. Строку можно составлять из кодов нужных символов с предшествующими каждому коду символами #, например, строка #83#121#109#98#11#108 эквивалентна строке ' Symbol'.

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

#7'Ошибка !'#13'Нажмите любую клавишу ...'#7 .

Конструктор множества - список элементов множества, обрамленный квадратными скобками, например: 

[1,2,4..7,12] 

[blue, red] 

[] 

[true]

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

abs  lo  ptr  swap  chr  odd   round  trunc  hi   ord   sizeof  length   pred  succ

Например:

Const

MaxReal = MaxInt div SizeOf(real); 

NumChars = ord('Z') - ord('a') + 1; 

Ln10 = 2.302585092994;  

Ln10R = 1 / Ln10;

Переменная - это именованный объект, который в процессе выполнения программы может принимать различные значения.

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

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

  •  каждая переменная программы должна быть объявлена;
  •  объявления переменных помещают в раздел, который начинается словом var;
  •  инструкция объявления переменной выглядит так: ИмяПеременной:Тип;
  •  в имени переменной можно использовать буквы латинского алфавита и цифры (первым символом должна быть буква);
  •  основными числовыми типами языка Turbo Pascal являются: integer (целый), real (дробный);
  •   после инструкции объявления переменной рекомендуется указывать назначение переменной. 

Пример 1. Объявите переменные, необходимые для вычисления значения функции у = х2.

Var  х: real; { аргумент функции }

у: real; { значение функции }

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

Var  funt: real; { вес в фунтах }

kg: real; { вес в килограммах }

Пример 3. Объявите переменные, необходимые для вычисления стоимости покупки, состоящей из нескольких тетрадей, карандашей и линейки.

Var  CenaTetr: real; {цена тетради }

KolTetr: integer; { количество тетрадей }

CenaKar: real; { цена карандаша }

KolKar: integer; { количество карандашей }

CenaLin: real; { цена линейки }

Suirana: real; { стоимость покупки }

Пользовательские типы переменных

К ним относятся переменные перечисляемого и интервального типов. Переменная типа «перечисление» задается перечислением значений, которые она может принимать.

Форма описания этих переменных:

Type <имя типа> = (список значений);

Var <идентификатор 1,...> : <имя типа>;

или

Var <идентификатор> : (список значений);

Пример:

Type Sezon = (Zima, Vesna, Leto, Osen);

Var S1,S2 : Sezon;

или

Var S1,S2 : (Zima, Vesna, Leto, Osen);

Здесь S1, S2 - переменные типа «перечисление», которые могут принимать любое из заданных значений.

Следует отметить, что описание типа перечисляемой переменной одновременно вводит упорядочение ее значений. Так, для данного примера Zima < Vesna < Leto < Osen (в операциях сравнения).

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

Форма описания этих переменных:

Type <имя типа> = <константа 1>..<константа 2>;

Var <идентификатор 1,...> : <имя типа>;

или

Var <идентификатор 1,...> : <константа 1>..<константа 2>;

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

Пример:

Type Dni = 1..31;

Var D1, D2 : Dni;

В этом примере переменные D1 и D2 имеют тип Dni и могут принимать любые значения из диапазона 1..31. Выход из диапазона вызывает программное прерывание.

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

Пример:

Const Min=1; Max=31;

Type Dni = Min..Max;

Var D1, D2 : Dni;

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

Арифметические выражения строятся из числовых констант, переменных, стандартных функций и операций над ними. Для обозначения операций используются символы: + сложение, - вычитание, * умножение и / деление.

В Турбо Паскале определены следующие операции:

  •  унарные  not, @;
  •  мультипликативные  *, /, div, mod, and, shl, shr;
  •  аддитивные  +, -, or, xor;
  •  отношения  =, <>, <, >, <=, >=,in.

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

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

Y

21

(а + b) * с

sin(t)

а > 2

not Flag and (а = b)

NIL

[1, 3..7] * set1

В Турбо Паскале определены следующие логические операции:

not -  логическое НЕ;

and -  логическое И;

or -  логическое ИЛИ;

хоr -  исключительное ИЛИ. 

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

Таблица 2. Логические операции над данными типа INTEGER (поразрядно)

Операнд 1

Операнд 2

not

and

or

xor

1

-

0

-

-

-

0

-

1

-

-

-

0

0

-

0

0

0

0

1

-

0

1

1

1

0

-

0

1

1

1

1

-

1

1

0

К логическим операциям в Турбо Паскале обычно относятся и две сдвиговые операции над целыми числами:

i shl j - сдвиг содержимого i на j разрядов влево; освободившиеся младшие   разряды заполняются нулями;

i shr j - сдвиг содержимого i на j разрядов вправо; освободившиеся старшие   разряды заполняются нулями.

В этих операциях i и j - выражения любого целого типа.

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

Пример 1. Программа вводит два целых числа и печатает результат применения к ним логических операций. Для выхода из программы ввести Ctrl-Z и Enter.

var 

n,m : integer; begin 

while not EOF do

begin

Write('n,m='); ReadLn(n,m);

WriteLn( not= , not n, not m);

WriteLn(‘ and= , n and m);

WriteLn(‘ or = , n or m) ;

WriteLn(‘ xor= , n xor m);

WriteLn( ' shl= ,n shl m);

WriteLn( ' shr= , n shr m);

end

end.

В программе организуется ввод двух произвольных целых чисел и печать результата применения к ним всех логических операций. Для выхода из программы следует нажать Ctrl-Z и Enter.

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

Таблица 3. Логические операции над данными типа Boolean

Операнд 1

Операнд 2

not

and

or

xor

True

-

False

-

-

-

False

-

True

-

-

-

False

False

-

False

False

False

False

True

-

False

True

True

True

False

-

False

True

True

True

True

-

True

True

False

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

var с: char;

type digit = set of ' 0 '..' 9 ' ;

begin

if с in digit then .......

Стандартные функции

В тригонометрических функциях аргумент должен быть задан только в радианах (см. ниже таблицу).

Вызов функции

Тип аргумента

Тип значения

Назначение функции

Abs(x)

Целый/вещественный

Как у аргумента

Абсолютное значение x

Pi

Целый/вещественный

Вещественный

Значение числа Pi

Sin(x)

Вещественный

Вещественный

Синус x (радиан)

Cos(x)

Вещественный

Вещественный

Косинус x (радиан)

Arctan(x)

Вещественный

Вещественный

Арктангенс x (радиан)

Sqrt(x)

Целый/вещественный

Как у аргумента

Квадратный корень из x, x>0

Sqr(x)

Целый/вещественный

Как у аргумента

Значение квадрата x

Exp(x)

Вещественный

Вещественный

Значение E в степени x

Ln(x)

Вещественный

Вещественный

Натуральный логарифм x, x>0

Trunc(x)

Целый

LongInt

Целая часть значения x

Frac(x)

Вещественный

Вещественный

Дробная часть значения x

Int(x)

Вещественный

Вещественный

Целая часть значения x

Round(x)

Вещественный

LongInt

“Правильное” округление x до ближайшего целого

Random

Вещественный

Вещественный

Следующее число из диап.0<=…<1

Random(x)

Word

Word

Следующее число из диап.0<=…<x

Odd(x)

Целый

Логический

Возвращает True, если x-нечетное (x-целое)

Succ(x)

Целый

Логический

Возвращает след. за x значение в перечисляемом типе

Pred(x)

Целый

Логический

Возвращает предыдущее значение x в перечисляемом типе

Chr(x)

Целый(Byte)

Символьный

Возвращает символ ASCII кода x

Ord(x)

Символьный

Целый(Byte)

Возвращает ASCII код символа x

Inc(x)

Целый

Целый

Увеличивает значение x на 1

Dec(x)

Целый

Целый

Уменьшает значение x на 1

Inc(x, n)

Целый

Целый

Увеличивает значение x на N

Dec(x, n)

Целый

Целый

Уменьшает значение x на N

A Div B

Целочисленное деление A на B. Возвращает целую часть частного, дробная часть отбрасывается

A Mod B

Восстанавливает остаток, полученный при выполнении целочисленного деления. A и B должны быть целого типа

Пример:

A = 11; B = 5,  тогда  A Div B дает 2

A Mod B дает 1

A = 2; B = 3,  тогда  A Div B дает 0

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

ArcSinx = ArcTg (x /Sqrt(1- x*x));

ArcCosx = Pi/2 – ArcSin(x);

ArcCtgx = Pi/2 - ArcTg (x);

Для вычисления логарифма с основанием а используется соотношение

Loga х = Ln (x) / Ln (a);

Возведение x в степень a осуществляется с использованием стандартных функций:

xa=Exp(a * Ln(x)).

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

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

Общий вид оператора: <Имя>:= <Выражение>;

Здесь имя - имя переменной, выражение - арифметическое или логическое выражение.

Пример:

Y := Abs(x) -3.5;

Min := M Div N;

В операторах присваивания переменная и выражение должны иметь один и тот же тип, а для переменных интервального типа - одно и то же подмножество значений. Нельзя присваивать целочисленным переменным выражение типа Real. Однако разрешается присваивать переменной типа Real выражение целочисленного типа.

Пример:

Y:=Sqrt(Exp(x)) + 2 * Sqr(x) * Sin(x/2) - Exp(5*Ln(x))

Процедура ввода данных

Для ввода данных:

  •  с клавиатуры во время работы программы исходных данных (значений переменных) предназначена инструкция readln (read);
  •  используя одну инструкцию readln (read), можно ввести значения нескольких переменных;
  •  в случае несоответствия типа введенных данных типу переменной, значение которой вводится с клавиатуры, программа завершает работу и на экран выводится сообщение Error №ошибки: invalid numeric format (если программа запущена из среды разработки, т. е. из Turbo Pascal) или Run time error №ошибки (если программа запущена из операционной системы).

Для вызова процедуры ввода используются три оператора:

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

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

2) ReadLn(список переменных);

То же, что и оператор Read, только после ввода данных происходит переход на новую строку (т.е. следующий оператор ввода будет вводить данные с новой строки);

3) ReadLn;

Происходит переход на новую строку без ввода данных.

Последовательно расположенные операторы 1, 3 эквивалентны одному оператору 2. Значения переменных вводятся с терминала и должны соответствовать типам переменных из списка ввода. В Паскале допускается вводить следующие данные: целые, вещественные, символьные. С помощью операторов ввода нельзя ввести значение переменной следующих типов: логический, перечисляемый, массив (необходимо вводить значения отдельных элементов массива), множество (следует вводить значения элементов множества) и запись (необходимо вводить значения отдельных полей записи).

Пример:

Var   A,B,C : Real;

D,F : Integer;

. . .

Read (A,B,C);

ReadLn;

Read (D,F);

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

0.5   6.78   -3.974Е-1

10   25

Процедура вывода данных

Для вывода данных на экран:

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

Для вызова процедуры вывода используются три оператора:

1) Write (список переменных);

Выводит последовательно значения переменных из списка;

2) Writeln (список переменных);

То же, что и оператор Write, но после вывода переменных осуществляется переход на новую строку (следующий оператор вывода будет выводить данные с начала новой строки);

3) Writeln;

Осуществляется переход на новую строку без вывода данных.

Как и при выводе, последовательно расположенные операторы вида 1, 3 эквивалентны одному оператору 2.

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

Форматы вывода данных

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

Бесформатный вывод

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

Пример:

а=15    Write('A=',A);  → A=15

c='X'   Write('C=',C); → C=X

d=True   Write('D=',D);  → D=TRUE

Вещественные - выводятся в поле шириной 17 позиций в формате с плавающей точкой. Дробная часть мантиссы содержит 10 цифр.

Пример:

а=125.286  Write('A=',A); → A= 1.2528600000E+02

b=-2.281e1  Write('B=',B); → B=-2.2810000000E+01

Форматный вывод

Общий вид P : M;

Здесь - P - имя переменной; M - ширина поля вывода в позициях.

Целые - выводятся в правые крайние позиции поля шириной M.

Пример:

а=17   Write ('A=',A:5); → A= 17

b=3456   Write ('B=',B:5); → B= 3456

Вещественные - выводятся в крайние правые позиции поля шириной М в формате с плавающей точкой. Минимальная ширина поля равна 8, в противном случае она игнорируется.

Пример:

a=134.25  Write('A=',a:11); → A= 1.3425E+02

b=-134.25  Write('B=',b:11); → B=-1.3425E+02

В случае если форматный вывод имеет вид P:M:N, где N - число позиций дробной части, то значение переменной Р выводится в виде числа с фиксированной точкой.

Пример:

r=3.1743   Write(' R=',R:5:2); → R= 3.17

Структура программы

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

Программа на языке Паскаль состоит из строк. Максимальная длина строки не должна превышать 127 символов. Размер программы имеет предел. Редактор текстов и компилятор позволяют обрабатывать программы и библиотечные модули объемом до 64 Кбайт. Если программа требует большего количества памяти, следует использовать библиотечные модули (.TPU-файлы) или оверлейные структуры.

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

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

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

Program <имя> (Input,Output);

Uses <имя1, имя2,...>; {список имен подключаемых модулей}

Label ...; { раздел объявления меток }

Const ...; { раздел объявления констант }

Тyре   ...; { раздел объявления типов }

Var    ...; { раздел объявления переменных }

Procedure <имя>;{ раздел объявления процедур }

<тело процедуры>

Function   <имя>;{ раздел объявления функций }

<тело функции>

Begin

<операторы>{ раздел инструкций основной программы }

End.

Любой раздел, кроме раздела операторов, может отсутствовать. Разделы описаний (кроме Uses, который всегда расположен после заголовка программы) могут встречаться в программе любое количество раз и следовать в произвольном порядке. Главное, чтобы все описания объектов программы были сделаны до того, как они будут использованы.

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

Пример:

Uses Crt, Printer, My_Lib;

Раздел меток (Label). Любой выполняемый оператор может иметь метку. Метки могут обозначаться целыми числами в диапазоне от 0 до 9999 или идентификаторами. Все метки должны быть описаны в разделе Label. Разделов Label может быть несколько, и стоять они могут где угодно до начала основного блока.

Общая форма записи:    Label список меток;

Пример:

Label 25, M1, K750, A;

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

Пример:

A1:  X:=X*Sin(Y);

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

Раздел типов (Type). Является необязательным разделом. В нем описываются типы переменных, отличающиеся от стандартных, т.е. перечисляемые, интервальные, массивы, записи и т.д. В этом разделе могут быть использованы константы из блока Const. Если это так, то раздел Type может быть расположен где угодно, но не выше соответствующего раздела Const. Если же описания типов ни с чем не связаны, то они могут быть помещены в любом месте между другими разделами, но выше того места, где будут использованы.

Раздел переменных (Var) формально тоже необязателен и может отсутствовать. Реально он объявляется и содержит список глобальных переменных программы и их типов. Разделов Var может быть несколько, но переменные в них не должны повторяться. Если в программе описываются процедуры или функции, то их определение должно предшествовать основному разделу (разделу операторов).

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

Операторы языка Паскаль не привязаны к определенной позиции строки. В одной строке можно указывать несколько описаний и операторов. Исполняемые операторы отделяются друг от друга ";". Точка с запятой не ставится после Begin и перед End, так как они являются не операторами, а операторными скобками.  В операторах цикла точка с запятой не ставится после While, Repeat, Do и перед Until. В условных операторах ";" не ставится после Then и перед Else. Допускается перенос с одной строки на другую частей операторов и описаний, но без разделения ключевых слов.

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

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

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

Program Lin;

Var A, B, C : Real;

W, X : Real;

Begin

A := 1.03;

B := 2.91e-03; { Ввод исходных данных }

X := 5.27e-2;

W := Exp(7 * Ln(A));

W := Abs(W);

W := Ln(W) / Ln(10);

C := Exp(3 * Ln(X));

C := ArcTan(C);

C := C * Pi * A / Sqrt(Abs(A + X));

C := C * (B - Cos(A / B));

W := W + C;

Writeln('Исходные данные к задаче:');

Writeln('a= ',A : 4 : 2,' b=',B : 9,' x=',X : 9);

Writeln;

Write('Результат: w=',W : 13)

End. {Ответ: W=9.008913E-02}

Контрольные вопросы

1. Что такое алгоритм и как он обычно представляется?

2. Что включает в себя алфавит языка Турбо Паскаль?

3. Какие типы констант и переменных существуют в языке Турбо Паскаль?

4. Что такое арифметическое выражение и в каком порядке в нем выполняются вычисления?

5. Какие правила существуют при возведении в степень?

6. Что такое стандартные функции Турбо Паскаля?

7. Что такое арифметический оператор присваивания? Его назначение и правила выполнения арифметических выражений.

8. Каково назначение операторов ввода-вывода?

9. Опишите структуру программы на языке Паскаль.


 

А также другие работы, которые могут Вас заинтересовать

45244. Информационные ПР-акции: функции, формы, каналы коммуникации 29.5 KB
  Формы: пресс-конференция конференция брифинг семинар симпозиум день открытых дверей телемост имиджевые теле и радио интервью и т. Теле и радио интервью: информационные цели – формирование информационного имиджа; представление руководства. Классификация интервью: интервьюмнение интервьюфакт имиджевое интервью. Инициаторы интервью: журналисты прессслужба.
45245. Брифинг как информационная ПР - акция: цели, аудитория, методика подготовки 28 KB
  Брифинг как информационная ПР акция: цели аудитория методика подготовки Брифинг это плановое мероприятие которое проводится с регулярной периодичностью и посвящается распространению текущей информации о деятельности организации или компании. Например брифинги регулярно проводит министерство иностранных дел. На брифингах министерства внутренних дел проходящих раз в неделю можно услышать официальную статистику ДТП раскрытых преступлений узнать о планируемых профилактических мерах по борьбе с организованной преступностью. Еще одна...
45246. Методика подготовки и проведения пресс-конференций 34.5 KB
  Методика подготовки и проведения пресс-конференций Тема: социально-значимая и актуальная не коммерческая дискуссионная диалог спор. Пресс-конференция проводится по мере накопления информации или при наличии глобальных новостей. Мотивация: мотивация организации пресс-конференции; мотивация журналистов статусные персоны корпоративность – присутствие всех СМИ наличие компромата самопрезентация. Прессконференция проводится при хорошем знании журналистов критическая масса – 30 – 40.
45247. Корпоративные коммуникации и материалы корпоративной прессы: виды, функции, принципы организации 34 KB
  В результате оглашения конкретных цифр и фактов сотрудники получают полное представление о готовых итогах развития и перспективах роста компании. Такой отчет может содержать: письмо руководителя в котором выражается благодарность сотрудникам и описывается работа компании ее основные достижения в течение года; отчет об использовании фондов. Этот документ часто оформляется в виде графиков и диаграмм характеризующих использование организацией поступивших средств; анализ финансового положения предприятия; отчет об участии компании в...
45248. Деятельность корпоративной радиостанции и ТВ-центра: приоритеты, аудитория, содержание коммуникации 26.5 KB
  Обычно это организаци-ипартнеры со схожими корпоративными стандартами и принципами. Приоритеты: Главным приоритетом в деятельности корпоративной радиостанции и ТВ центра является формирование корпоративной культуры организации. Сообщения транслируемые по радио и ТВ должны отвечать на следующие вопросы: что происходит в организации почему это происходит в организации что должно произойти в организации Аудитория: Обычно эти самые радиостанции пли ТВ центры находятся на территории самой компании и вещают только на их территории то...
45249. Цели и содержание деятельности корпоративного сайта 28.5 KB
  Цели которые преследуют создатели сайтов: улучшение имиджа и поднятие престижа компании; продвижение торговой марки; доступность информации о продуктах и ценах для клиентов; поддержка дилерской сети доступность информации о продуктах и ценах для дилеров; прямая продажа продукции в Internet организация виртуального магазина; доступность внутренней информации для сотрудников работающих вне офиса; другое. служит дополнительным элементом фирменного стиля; укрепляет имидж и престиж поскольку в российских условиях не каждая...
45250. Информационное, организационное и финансовое обеспечение ПР- акции 28 KB
  Информационное организационное и финансовое обеспечение ПР акции 1. Формы опосредованной маркетинговой коммуникации нередко играют важнейшую роль в обеспечении акции. 3 этап формирование плана в основе которого лежат конкретные ПР-акции которые должны быть спланированы по времени и иметь свое отражение в СМИ репортажи интервью аналитический обзор и т. Организационное обеспечение также предполагает написание сценарного плана акции который включаете: а открытие акции включая представления гостей б содержание и последовательность...
45251. Представительские акции в ПР-технологиях: функции, формы, этапы подготовки 22.5 KB
  Представительский обед 7-8 часов вечера прибытие по приглашению не более чем за 10 минут до начала не опаздывать; 1 банкетный стол или несколько; приглашение с указанием места; правила рассадки – дамы и кавалеры сидят последовательно; приветственные тосты и рассадка от самых серьезных по убыванию. Время проведения около часа с переменой блюд: горячий стол музыкальная пауза сладкий стол кофе уход. Фуршет перед началом возможны некоторые объявления пока не сели за стол.
45252. Презентация как форма PR-акции: функции, этапы разработки и реализации 33 KB
  Полная готовность к проведению презентации –11 часов на час раньше назначенного времени – остается время на устранение мелких неполадок и недочетов. Приглашенных встречает первое лицо и ведущий презентации. Модератор ведущий выступает с предварительной речью приветствие и обращение к аудитории оглашение тем презентации представление участников президиума оглашение регламента проведения презентации представительский блок. Примечание: Все участники президиума имеют на руках специально подготовленные папки с материалами презентации...