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

Автор: Пользователь скрыл имя, 27 Марта 2013 в 11:59, лекция

Краткое описание

СОСТАВ ЯЗЫКА. Обычный разговорный язык состоит из четырех основных
элементов: символов, слов, словосочетаний и предложений. Алгоритми-
ческий язык содержит подобные элементы, только слова называют элемен-
тарными конструкциями, словосочетания-выражениями, предложения-опера-
торами.

Файлы: 1 файл

Лекции по Паскалю.doc

— 405.00 Кб (Скачать)

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

меньше < .

   К аргументам целого типа  применимы следующие стандартные  (встроен-

ные) функции, результат выполнения которых имеет целый тип:

  

        Abs(X),   Sqr(X),   Succ(X),   Pred(X),

  

и которые определяют соответственно абсолютное значение Х,  Х в квад-

рате, Х+1, Х-1.

   Следующая группа стандартных  функций для аргумента целого  типа да-

ет действительный результат:

  

        Sin(X), Cos(X), ArcTan(X), Ln(X), Exp(X), Sqrt(X).

  

   Эти функции вычисляют  синус,  косинус и арктангенс  угла, заданного

в радианах,  логарифм натуральный, экспоненту и корень квадратный со-

ответственно.

   Результат выполнения функции  проверки целой величины на  нечетность

Odd(X) имеет    значение истина,  если аргумент нечетный,  и  значение

ложь, если аргумент четный:

  

        X=5    Odd(X)=TRUE ,    X=4    Odd(X)=FALSE.

  

   Для  быстрой работы с целыми числами  определены процедуры:

  

    Inc(X)     X:=X+1

    Inc(X,N)   X:=X+N

    Dec(X)     X:=X-1

    Dec(X,N)   X:=X-N

 

   ДЕЙСТВИТЕЛЬНЫЕ  типы  определяет  те  данные,   которые реализуются

подмножеством действительных чисел, допустимых в  данной ЭВМ.

  

   Тип           Диапазон        Количество  цифр     Требуемая

                 значений            мантиссы      память (байт)

---------------------------------------------------------------

Real         2.9e-39 .. 1.7e+38        11                6

Single       1.5e-45 .. 3.4e+38         7                4

Double      5.0e-324 .. 1.7e+308       15                8

Extended   3.4e-4932 .. 1.1e+4932      19               10

Comp        -9.2e+18 .. 9.2e+18        19                8

---------------------------------------------------------------

  

   Тип Real определен в стандартном  ПАСКАЛЕ и  математическим  сопро-

цессором не поддерживается.

   Остальные действительные  типы определены стандартом IEEE 457 и ре-

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

   Для их использования  при наличии сопроцессора или  при  работе  на

ЭВМ типа 80486 необходимо компилировать  программу с ключом {$ N+},  а

при отсутствии сопроцессора - с ключами {$N-,E+}.

   Тип  Comp  хотя  и относится к действительным  типам,  хранит только

длинные целые  значения.

   Над  действительными операндами можно выполнять следующие арифмети-

ческие  операции, дающие действительный результат:

  

    сложение + ,  вычитание - ,  умножение  * ,  деление / .

  

   К  величинам действительного типа  применимы все операции отношения,

дающие  булевский результат.

   Один  из операндов, участвующих в  этих операциях, может быть  целым.

   К  действительным аргументам применимы  функции, дающие действитель-

ный результат:

   

     Abs(X), Sqr(X), Sin(X), Cos(X),  ArcTan(X),  Ln(X),  Exp(X),

Sqrt(X), Frac(X), Int(X), Pi.

   

   Функция Frac(X) возвращает  дробную часть X, функция Int(X) - целую

часть X.

   Безаргументная функция  Pi  возвращает  значение числа  Пи действи-

тельного типа.

   К аргументам действительного  типа применимы также функции

   

     Trunc(X) и Round(X),

   

дающие целый  результат.  Первая из них выделяет целую часть действи-

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

аргумент до ближайшего целого.

 

   ЛОГИЧЕСКИЙ тип (Boolean)  определяет те данные, которые  могут при-

нимать логические значения TRUE и FALSE.

   К булевским операндам  применимы следующие логические  операции:

   

     not     and      or     xor.

   

   Логический тип определен  таким образом, что FALSE < TRUE. Это  поз-

воляет применять к булевским операндам все операции отношения.

   В ТУРБО ПАСКАЛЬ введены  еще разновидности логического  типа:

ByteBool, WordBool и LongBool, которые занимают  в памяти ЭВМ один, два

и четыре байта соответственно.

 

   СИМВОЛЬНЫЙ тип (Char) определяет  упорядоченную совокупность симво-

лов, допустимых    в  данной ЭВМ.  Значение символьной переменной или

константы - это один символ из допустимого  набора.

   Символьная константа   может  записываться в тексте  программы тремя

способами:

    -как один символ, заключенный  в апострофы, например:

   

      'A'   'a'   'Ю'  'ю';

   

   -с помощью конструкции  вида #K, где K - код соответствущего  симво-

ла, при этом значение K должно находиться в пределах 0..255;

   -с помощью конструкции  вида ^C, где C - код соответствущего  управ-

ляющего  символа, при этом  значение  C должно быть на 64 больше

кода управляющего символа.

   К величинам символьного  типа применимы все операции  отношения.

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

     

        Ord(C)    Chr(K).

  

   Первая функция определяет  порядковый номер символа С  в наборе сим-

волов,  вторая  определяет по порядковому  номеру К символ, стоящий на

К-ом месте в наборе символов. Порядковый номер имеет целый тип.

   К аргументам символьного  типа применяются функции, которые опреде-

ляют предыдущий и последующий  символы:

   

      Pred(C)    Succ(C).   Pred('F') = 'E' ; Succ('Y') = 'Z' .

   

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

ответствующих функций не определено.

   Для литер из интервала 'a'..'z' применима функция UpCase(C), кото-

рая переводит эти литеры в верхний  регистр 'A'..'Z'.

   

   АДРЕСНЫЙ тип (Pointer) определяет  переменные, которые могут содер-

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

адреса требуются два слова (4 байта), одно из них определяет сегмент,

второе - смещение.

   Работа с адресными переменными  (указателями)   будет  рассмотрена

позже, сейчас  отметим,  что для  получения значения адреса какой-либо

переменной введена унарная операция @.

 

  

6.   К О Н С Т А Н  Т Ы

   

   Тип констант  в  языке  ПАСКАЛЬ определяется по их  виду:  константы

целого типа - это целые числа,  не содержащие десятичной точки, конс-

танты действительного  типа - действительные числа,  логические конс-

танты - логические значения TRUE и FALSE, символьные константы - либо

строки длиной в один символ, либо конструкции вида #K или ^K.

   Язык ПАСКАЛЬ допускает  использовать синонимы для обозначения  конс-

тант, в    этом  случае  текст  программы  содержит  раздел  описания

констант, например: {}

 

7.   П Е Р Е М Е Н  Н Ы Е.

И Н И Ц И А Л И З  А Ц И Я  П Е Р Е М  Е Н Н Ы Х

 

   Тип переменных определяется  пользователем в разделе описания  пере-

менных:{}

   В настоящее  время   в  профессиональном  программировании  принято

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

кой нотации.

   Венгерская нотация  -  это соглашение о наименованиях  переменных и

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

ках PASCAL, C и в среде WINDOWS.

   Венгерская нотация основывается  на следующих принципах:

   -имена переменных и функций  должны содержать префикс,  описывающий

их тип;

   -имена переменных  и функций  записываются полными словами  или сло-

восочетаниями или их сокращениями,  но так, чтобы по имени можно было

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

   Префиксы записываются малыми  буквами, первая буква каждого  слова -

заглавная, префиксы и слова записываются либо слитно, либо через сим-

вол _ (подчеркивание).

   Для языка  PASCAL  могут  быть рекомендованы следующие  префиксы для

скалярных переменных и функций:

 

Префикс     Тип

---------------------

by        Byte

sh        Shortint

i         Integer

w         Word

l         Longint

r         Real

si        Single

d         Double

e         Extended

c         Comp

ch        Char

b         Boolean

p         Pointer

x,у       координаты символа или точки  на экране

 

   Для  величин структурированного типа  могут быть использованы следу-

ющие префиксы:

 

a         Array

s         String

sz        Stringz

se        Set

re        Record

f         File

t         Text

 

   Например:

 

    rV, arVector[1..20], sName, iCount.

 

   В откомпилированной программе  для всех переменных отведено  место в

памяти, и всем переменным присвоены нулевые значения.

   Для задания начальных  значений переменным (инициализации   перемен-

ных) TURBO PASCAL позволяет присваивать  начальные значения переменным

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

 

    имя переменной: тип = значение;

 

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

 

    const rWeight: Real = 0.4;

 

 

8.   В Ы Р А Ж Е Н  И Я

 

   Выражение состоит  из  констант,  переменных,  указателей  функций,

знаков операций и скобок. Выражение  задает правило вычисления некото-

рого значения.  Порядок вычисления определяется старшинством (приори-

тетом) содержащихся  в нем операций. В языке ПАСКАЛЬ принят следующий

приоритет операций:

 

  1. унарная операция  not, унарный  минус  -, взятие адреса  @

  2. операции типа умножения  *  /  div  mod  and  shl  shr

  3. операции типа сложения  +  -  or  xor

  4. операции отношения  =   <>   <    >   <=    >=  in

  {}

   Выражения входят в состав  многих операторов языка ПАСКАЛЬ,  а также

могут быть аргументами встроенных функций.

 

 

9.   О П Е Р А Т О  Р   П Р И С В А И  В А Н И Я

 

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

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

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

действительному типу.{}

10.   О П Е Р А Т О  Р Ы   В В О Д А

И   В Ы В О Д А

 

   Рассмотрим организацию   ввода и вывода данных с  терминального уст-

ройства. Терминальное устройство - это  устройство, с которым работает

пользователь, обычно это экран (дисплей) и клавиатура.

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

и вывода Read и Write, оперирующие стандартными последовательными файлами

INPUT и OUTPUT.

   Эти файлы разбиваются  на строки переменной длины,  отделяемые друг

от друга признаком конца  строки.  Конец строки задается нажатием кла-

виши ENTER.

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

 

         Read(A1,A2,...AK);

         ReadLn(A1,A2,...AK);

         ReadLn;

 

   Первый из них реализует чтение К значений исходных данных и  прис-

ваивание этих значений переменным А1,  А2,  ...,  АК. Второй оператор

реализует чтение К значений исходных данных, пропуск остальных значе-

ний до начала следующей строки, присваивание считанных  значений пере-

менным  А1,  А2, ..., АК. Третий оператор реализует  пропуск строки ис-

ходных  данных.

   При  вводе исходных данных  происходит  преобразование  из  внешней

формы представления  во внутреннюю, определяемую типом  переменных. Пе-

ременные, образующие  список ввода, могут принадлежать либо к целому,

либо к   действительному,  либо к символьному  типам.  Чтение исходных

данных  логического типа в языке ПАСКАЛЬ  недопустимо.

   Операторы  ввода  при чтении значений  переменных целого и

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

же время  эти операторы не пропускают пробелов,  предшествующих значе-

ниям символьных переменных,  так как пробелы  являются  равноправными

символами строк. Пример записи операторов ввода:

 

         var rV, rS: Real;

             iW, iJ: Integer;

             chC, chD: Char;

         ................

         Read(rV, rS, iW, iJ);

         Read(chC, chD);

 

   Значения исходных данных  могут отделяться друг от друга   пробелами

и нажатием клавиш табуляции и Enter.

   Для вывода результатов работы программы на экран используются

операторы:

 

         Write(A1,A2,...AK);

         WriteLn(A1,A2,...AK);

         WriteLn;

 

   Первый из этих операторов  реализует вывод значений переменных  А1,

А2,...,АК в   строку экрана.  Второй оператор реализует вывод

значений переменных А1,  А2,  ...,  АК и переход к  началу  следующей

строки. Третий   оператор реализует  пропуск строки и переход к  началу

следующей строки.

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

действительному, символьному или булевскому типам. В качестве элемен-

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

и строки.

   Вывод каждого  значения  в строку экрана происходит  в соот-

ветствии с шириной поля вывода,  определяемой конкретной  реализацией

языка.

   Форма представления значений  в поле вывода соответствует  типу  пе-

ременных и выражений:  величины целого типа выводятся как целые  деся-

тичные числа,  действительного  типа - как  действительные  десятичные

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

волов, логического типа - в виде логических констант TRUE и FALSE.

   Оператор вывода  позволяет   задать  ширину поля вывода  для каждого

элемента списка вывода.  В этом случае

элемент списка вывода имеет вид А:К, где

А - выражение или строка,  К - выражение либо константа целого  типа.

Информация о работе О с н о в н ы е п о н я т и я ал г о р и т м и ч е с к о г о я з ы к а