Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
informatic-hardquestions.docx
Скачиваний:
4
Добавлен:
26.09.2019
Размер:
85.75 Кб
Скачать

Алфавит, синтаксис, семантика turbo pascal

Описание каждого элемента языка задается его СИНТАКСИСОМ и СЕМАНТИКОЙ. Синтаксические определения устанавливают правила построения элементов языка. Семантика определяет смысл и правила использования тех элементов языка, для которых были даны синтаксические определения. 

Алфавит языка

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

Классификация типов данных в турбо паскале

I. Элементные:

    1) Стандартные:

         а) целые;

         б) вещественные;

         в) логические;

         г) символьные.

    2) Переменные:

         а) перечисляемые;

         б) интервальные.

II. Структурированные:

     1) Массивы;

     2) Файлы;

     3) Записи;

     4) Множества.

Структурные и простые операоры в турбо паскале

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

относятся:

- оператор присваивания;

- обращение к процедуре;

- оператор безусловного перехода GOTO;

- пустой оператор.

Структурированные операторы

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

К структурированным операторам относятся:

- составной оператор;

- условный оператор IF;

- условный оператор CASE;

- оператор цикла REPEAT;

- оператор цикла WHILE;

- оператор цикла FOR;

- оператор над записями WITH.

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

Если один оператор if может обеспечить выбор из двух альтернатив, то оператор выбора case позволяет сделать выбор из произвольного числа имеющихся вариантов.  Формат записи оператора case:

case <выражение-селектор > of <список значений1>: <оператор1;> <список значений 2>: <оператор2;> … <список значений N>: <операторN> else <оператор> end;

Оператор case работает следующим образом. Сначала вычисляется значение выражения-селектора, затем в последовательности операторов отыскивается такой, которому предшествует константа, равная вычисленному значению. Если ни одна из констант не равна вычисленному значению, выполняется оператор, стоящий за словом else. Если слово else отсутствует, выполняется оператор, находящийся за словом end, т. е. первый оператор за границей case. Селектор должен относиться к одному из целочисленных типов (находящихся в диапа-зоне — 32768..32767): булевскому, литерному или пользовательскому. Список констант выбора состоит из произвольного количества значений, или диапазонов, отделенных друг от друга запятыми. Границы диапазона записываются двумя константами через разграничитель " .. ". Тип констант в любом случае должен совпадать с типом селектора. В синтак-сическом описании, приведенном выше, предполагается использование одного оператора для каждой альтернативы, но при необходимости можно задать несколько операторов, сгруппировав их в составной оператор. В то же время ветвь else допускает использование последовательности операторов, разделенных символом ";". При использовании оператора выбора case должны .выполняться следующие правила: 1. Значения выражения "переключателя", записанного после служебного слова case, должны принадлежать дискретному типу (лат. discretus — прерывистый, дробный, состоящий из отдельных частей); для целого типа они должны лежать в диапазоне integer. 2. Все константы, предшествующие операторам альтернатив, должны иметь тип, совместимый с типом выражения. 3. Все константы в альтернативах должны быть уникальны в пределах оператора варианта (т. е. повторения констант в альтернативах не допускаются); диапазоны не должны пересекаться и не должны содержать констант, указанных в данной или других альтернативах.

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

Одномерные массивы

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

Массив в Паскале

<имя массива>:= array [<количество элементов>] of <тип переменной>; Каждый элемент массива в общем виде описывается как А[I], где А - имя массива, I - номер или индекс массива (0<=I<=N, но практически употребляется 1<=I<=N) A[I] - значение элемента массива.

Действия над массивами

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

    Например, если массивы А и В описаны как var А, В: array[1..20] of real; то применение к ним допустимых операций даст следующий результат:

    Выражение Результат

    А=В True, если значение каждого элемента массива А равно соответствующему значению элемента массива В

    А<>В True, если хотя бы одно значение элемента массива А не равно значению соответствующего элемента массива В

    А:=В Все значения элементов массива В присваиваются соответствующим элементам массива А. Значения элементов массива В остаются неизменны.

Действия над элементами массива

    После объявления массива каждый его элемент можно обработать, указав идентификатор (имя) массива и индекс элемента в квадратных скобках. Например, запись Mas[2], VectorZ[10] позволяет обратиться ко второму элементу массива Mas и десятому элементу массива VectorZ.

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

    Индексированные элементы массива называются индексированными переменными и могут быть использованы так же, как и простые переменные. Например, они могут находиться в выражениях в качестве операндов, использоваться в операторах for, while, repeat, входить в качестве параметров в операторы Read, Readln, Write, Writeln; им можно присваивать любые значения, соответствующие их типу.

Двумерные массивы

    Двумерным называется массив, элемент которого зависит от его местоположения в строке и в столбце. В общем виде элемент матрицы обозначается как A(I,J), где А — имя массива, I — индекс (номер) строки, J — индекс (номер) столбца.

Описание матрицы на языке Паскаль

    Матрицу можно задать двумя способами:

  1. <имя матрицы>: array [<количество строк>] of array [<количество столбцов>] of <тип переменной>;

  2. <имя матрицы>: array [<количество строк >,<количество столбцов>] оf <тип переменной>].

Соотношение индексов в квадратной матрице

I=J элементы матрицы расположены на главной диагонали I<J элементы матрицы расположены над главной диагональю I>J элементы матрицы расположены под главной диагональю I+J=N+I элементы матрицы расположены на побочной диагонали (N — количество строк или столбцов в квадратной матрице) I+J<N+I элементы матрицы расположены над побочной диагональю I+J>N+I элементы матрицы расположены под побочной диагональю.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]