Язык програмирования Паскаль

Автор работы: Пользователь скрыл имя, 23 Декабря 2012 в 16:27, реферат

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

Pascal — это императивный язык программирования, разработанный Никлаусом Виртом в 1970 в качестве языка обучения структурному программированию. Название языку дано в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля. Первоначально язык компилировался в байт-код, подобно языку Java.
Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис интуитивно понятен даже при первом знакомстве с языком.

Прикрепленные файлы: 1 файл

Язык програмирования.doc

— 223.50 Кб (Скачать документ)

Для этого используется знак присваивания:= , слева от которого записывается имя переменной или функции, которой присваивается значение, а справа- выражение, значение которого вычисляется перед присваиванием.

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

X:=y;

z:=a+b;

r:=( i>0) and (i<100);

Оператор безусловного перехода goto. Использование меток.

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

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

  • целым числом в пределах от 0 до 9999;
  • обычным идентификатором.

Структурированными  операторами являются такие операторы, которые состоят из других операторов:

  • составной
  • условный оператор if
  • условный оператор case
  • оператор цикла repeat
  • оператор цикла while
  • оператор цикла for
  • оператор над записями with

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

Составной оператор представляет из себя совокупность последовательно выполняемых операторов, заключенных в операторные скобки begin и end;

begin

оператор1;

оператор2;

операторn;

end;

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

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

Условный оператор.

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

Структура условного  оператора имеет следующий вид:

IF<условие>THEN<оператор1>ELSE<оператор2>,

где IF, THEN, ELSE - зарезервированные  слова (англ.если,то,иначе);

<условие>-произвольное выражение  логического типа;

<оператор1>, <оператор2> - любые  операторы Паскаля.

Условный оператор работает по следующему алгоритму. Вначале выполняется условное выражение. Если результат есть TRUE,то выполняется <оператор1>, а<оператор2> пропускается; если результат есть FALSE, то, наоборот, <оператор1> пропускается, а выполняется <оператор2>.

Часть оператора ELSE <оператор2> может быть опущена. Тогда при значении условного выражения ТRUE выполняется <оператор1>, в противном случае этот оператор пропускается.

Поскольку каждый из операторов <оператор1> и <оператор2> может  быть оператором любого типа, в том  числе и условным, а в то же время не каждый из “вложенных” условных операторов может иметь часть ELSE <оператор2>, то возникает неоднозначность трактовки условий. Эта неоднозначность в Паскале решается следующим образом: любая встретившаяся часть ELSE соответствует ближайшей к ней “сверху” части THEN условного оператора. Например:

Пример программы, анализирующей принадлежит ли точка  с координатами x, y прямоугольнику с  координатами вершин x1,x2,y1,y2.

 

СТРОКИ. ОПИСАНИЕ ТИПА

 

Для обработки последовательностей  символов в ТУРБО – ПАСКАЛЕ предусмотрены строчные типы. Строчные типы - это структурные типы. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255. Для определения данных строкового типа используется идентификатор string, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если размер строки не указан, то он считается равным 255.

Переменную строкового типа можно определить через описание типа в разделе описания типов  или непосредственно в разделе описания переменных. Строковые данные могут использоваться также в качестве констант. Недопустимо применение строковых переменных в качестве селектора в операторе case. Строковая переменная занимает определённую максимальную длину байт в памяти плюс один байт, содержащий её текущую длину. Отдельные символы в строке индексируются от 1 до длины строки.

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

 

 

ПРОЦЕДУРЫ

 

Delete (St,Pos,N) - удаление N символов  строки St, начиная с позиции Pos. Если значение Pos > 255, возникает  ошибка.

Значение St Выражение  Результат 'река Волга' Delete (Str, 1, 5); 'Волга'

Insert(Str1,Str2,Pos) - вставка  строки Str1 в строку Str2, начиная с  позиции Pos.

Пример:

Var S1, S2, S3: string[11];

S1:= 'ЕС'; S2:= 'ЭВМ1841'; S3 := Insert (S1,S2,4);

Результат: 'ЭВМ  ЕС 1841'.

Str (IBR,St) - преобразование  числового значения величины IBR и помешение результата в строку St. После IBR может записываться формат, аналогичный формату вывода.

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

4.8E+03       Str(IBR:10,St);       ' 4800'

Val(St,IBR,Cod) - преобразует значение St в величину целочисленного или вещественного типа и помещает результат в IBR. Значение St не должно содержать незначащих пробелов в начале и в конце. Cod - целочисленная переменная.

Если во время  операции преобразования ошибки не обнаружено, значение Cod равно нулю, если ошибка обнаружена, Cod будет содержать номер позиции первого ошибочного символа, а значение IBR не определено.

Записи.

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

Например, чтобы  описать в программе время суток (10.45 утра или 7.15 вечера), можно использовать структуру данных следующего формата:

 

часы

минуты

до полудня


в которой 10.45 утра может храниться как 

10

45

true


 

а 7.15 вечера:

7

15

false


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

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

К каждому компоненту записи можно обратиться, используя имя переменной типа записи и имя поля, разделенные точкой: now.hour, later.befornoon;

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

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

год продажи: целое  в диапазоне 1900..2099;

код продукции: четырехзначное целое;

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

 

Массивы записей.

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

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

 

ПРОЦЕДУРЫ и  ФУНКЦИИ

 

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

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

 

ПОДПРОГРАММА - ПРОЦЕДУРА

 

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

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

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

Заголовок процедуры  имеет вид:

PROCEDURE имя (список формальных  параметров);

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

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

PROCEDURE имя;

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

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

В заголовке процедуры  с именем STEP1 перечислены параметры N, X, определяющие исходные данные программы  и параметр Y, обозначающий значение искомой степени - результат выполнения процедуры. Указан также тип всех формальных параметров. Подробней о параметрах будет расказано ниже.

Обращение к подпрограмме – процедуре.

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

имя (список формальных параметров);

где имя - имя вызываемой процедуры;

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

 

ФУНКЦИИ

 

Заголовок содеpжит  заpезеpвиpованное слово FUNCTION, идентификатоp (имя) функции, заключенный в кpуглые скобки, необязательный список фомальных паpаметpов и тип возвpащаемого функцией значения. FUNCTION <имя> {(фоpмальные паpаметpы)}: <тип pезультата>;

Имя функции - уникальный идентификатоp в пpеделах блока. Возвpащаемый pезультат может иметь любой скаляpный тип, тип string и тип “указатель”. Тело функции пpедставляет собой локальный блок, по стpуктуpе аналогичный пpогpамме:

function<имя>{(фоpмальные  паpаметpы)}:<тип pезультата>;

<pазделы описаний>

begin

<pаздел опеpатоpов>

end;

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

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