Описание подмножества языка Паскаль

Автор работы: Пользователь скрыл имя, 06 Декабря 2011 в 12:18, реферат

Описание работы

Строчные и прописные буквы не различаются (например, NAME, Name и name будет означать одно и то же). Цифра не может стоять на первом месте в идентификаторе, а символ подчеркивания может находиться в любой позиции (например, name1 и name2item являются допустимыми идентификаторами, а 5name - нет; _name, name_, name_item - тоже допустимые названия). Длина идентификатора может быть любой, но значимыми являются только первые 63 символа. В качестве имен не допускается использовать служебные слова.

Файлы: 1 файл

паскаль.doc

— 111.00 Кб (Скачать файл)

Сипливец  Юля, КМ-72

СИСТЕМЫ ПРОГРАММИРОВАНИЯ

Описание  подмножества языка Паскаль 

  1. Имена (идентификаторы)

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

      - буквы латинского алфавита,

      - цифры

      - символ подчеркивания.

     Строчные  и прописные буквы не различаются (например, NAME, Name и name будет означать одно и то же). Цифра не может стоять на первом месте в идентификаторе, а символ подчеркивания может находиться в любой позиции (например, name1 и name2item являются допустимыми идентификаторами, а 5name - нет; _name, name_, name_item - тоже допустимые названия). Длина идентификатора может быть любой, но значимыми являются только первые 63 символа. В качестве имен не допускается использовать служебные слова. 

     2) Базовые типы данных

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

       Тип определяет:

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

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

     

     Пример  декларации: х1: real

     Пример  представления констант:

     45 – целое десятичное число

     -21 – отрицательное десятичное целое число 
 

     Пример  декларации: х1: single;

     Пример  представления констант:

     6; 1,43; 0; 8,467;

     

     Пример  декларации: х1: char;

     Пример  представления констант:

     ‘A’; ‘ ‘ – пробел, ‘; ’- точка с запятой 
 

  1. Операции  и выражения
 

      В табл.1 приведены операции Турбо Паскаля

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

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

     4) Типы данных пользователя и операции над ними

     Пользовательский  тип данных – массив.

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

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

     Декларация:

     Var <идентификатор,…> : array [тип индекса] of <тип компонент>;

Или

     Type

     <имя  типа>= [тип индекса]  of <тип компонент>;

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

     Пример:

     VAR

       M1 : array[1..200] of integer;  { М1, A1 - одномерные  массивы целых  и вещественных  чисел }

     A1 : array[100..200] of single;

     ch1 : array['A'..'Z'] of char;  { сh1, ch2 - одномерные массивы символов }

     ch2 : array[0..255] of char; 

     Примеры присвоения значения:

     M1[1] := 5;

     A1[101] := 0.2;

     ch1['B'] := 'C';

     Если  в описании массива задан один индекс, массив называется одномерным, если n индексов – n-мерным. 

     5) Операторы управления 

     ОПЕРАТОР  ПРИСВАИВАНИЯ:

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

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

Пример: x:=1; a:=5. 02; b := 32*a+Sin(x); S:= 'Иван Иваныч';

     СОСТАВНОЙ ОПЕРАТОР представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками begin и end.

     Декларация:

     Begin

       <оператор;>

             …

       <оператор>

     End;

     Пример:

     Begin

       A:=A*B+(N-D);

       Rez:=A+B*Pi;

       Writeln(Rez:12:6)

     End;

     ОПЕРАТОР  ВЫБОРА

     Декларация:

if логическое-выражение then оператор-1 [ else оператор-2 ]

    Пример:

    A:=2;

    B:=8;

    If A>B then writeln (‘A больше B’)

                else  writeln (‘А меньше или равно В’). 
     

     ОПЕРАТОР  ЦИКЛА С ПАРАМЕТРОМ

     Декларация:

     for целая-переменная := выражение-1 to выражение-2 do

     оператор 

     for целая-переменная := выражение-1 downto выражение-2 do

     оператор 

     ОПЕРАТОР  ЦИКЛА С ПРЕДУСЛОВИЕМ (ПОКА ИСТИНА)

     Декларация:

     while логическое-выражение do

     оператор 

     ОПЕРАТОР  ЦИКЛА С ПОСТУСЛОВИЕМ (ПОКА ЛОЖЬ)

     Декларация:

     repeat

     оператор-1; оператор-2; ... оператор-n

     until логическое-выражение

    Пример:

     D:=1; S:=0;

     Repeat

     S:=S+D;  D:=D+1;

     Until(D<100); 
 

     6) Управление данными

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

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

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

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

     Формат  описания процедуры имеет вид:  

     procedure имя процедуры (формальные параметры);

       раздел описаний процедуры

     begin

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

     end; 

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

     var имя праметра: имя типа 

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

     Пример  процедуры:

     Procedure Sphere; - {не требует формальных параметров}

     Procedure Sort(A: integer); {A – формальный параметр} 

     Вызов процедуры производится оператором, имеющим следующий формат:

     имя  процедуры(список фактических параметров); 

     Например, вызываем процедуру с фактическим параметром: 

     Sort(2); 

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

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

    • количество фактических параметров должно совпадать с количеством формальных;
    • соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу.
 

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

     var x,y,m,n: integer; 

     procedure MaxNumber(a,b: integer; var max: integer);

     begin

        if a>b then max:=a else max:=b;

     end; 

     begin

        write('Введите x,y ');

        readln(x,y);

        MaxNumber(x,y,m);

        MaxNumber(2,x+y,n);

Информация о работе Описание подмножества языка Паскаль