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



Скачать 380.37 Kb.
страница1/3
Дата12.10.2012
Размер380.37 Kb.
ТипДокументы
  1   2   3
ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКА ПАСКАЛЬ
1. Алфавит языка Паскаль. Под алфавитом понимается упорядоченная определенным образом совокупность взаимно различимых знаков — символов. Набор символов языка Turbo Pascal 7.0 является подмножеством набора символов кода ASCII. Алфавит языка программирования Паскаль состоит из следующего набора символов:

  • 26 прописных букв латинского алфавита (A...Z), имеющие коды ASCII от 65 до 90;

  • 26 строчных букв латинского алфавита (a…z), имеющие коды ASCII от 97 до 122;

Примечание. Компилятор языка Паскаль не различает прописные и строчные буквы латинского алфавита.

  • арабские цифры (0, 1, ... 9), имеющие коды ASCII от 48 до 57;

  • 32 прописные и 32 строчные буквы русского алфавита (А...Я, а…я);

Примечание. Буквы русского алфавита, как и все остальные символы расширенного набора кодов ASCII (т.е. от 128 до 255), не применяются ни для построения лексем, ни для их разделения.

  • специальные символы: + , -, *, /, =,  ., ,,  :,  ;,  ', <, >, (, ), [, ];

  • символ пробела (код ASCII 32);

  • управляющие символы (коды ASCII от 0 до 31);

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

Лексемы — это минимальные единицы языка, имеющие смысловое значение.

К лексемам языка Паскаль относятся: специальные символы, а также пары специальных символов: :=, .., <=, >=, (*, *), (., .), слова, числа, метки (числовые и символьные), строковые константы и комментарии. Лексемы (*, *), (., .) эквивалентны лексемам {, }, [, ] соответственно.

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

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

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

Служебные (зарезервированные, ключевые) слова — это слова, которые имеют строго определенное назначение в языке Паскаль, которое не может быть изменено. Их нельзя использовать для других целей (Program, Var, Begin, end).

Упражнение. Загрузите Turbo Pascal 7.0. Выберите команду Reserved words из меню Help. Просмотрите список служебных слов.

Имя — последовательность латинских букв, арабских цифр и символов подчеркивания _, начинающаяся с буквы или символа подчеркивания.

Например, А4R, ELENA, Max, Kara_Kum, Primer1 являются именами, а 4AR, ЕЛЕНА, Макс, Kara Kum, Primer 1 — не являются.

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

Имена бывают стандартные (предопределенные) и создаваемые программистом (пользовательские).  

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

Пример. Стандартными именами являются:

  • имена встроенных функций и процедур (Read, Write, Sin, Cos, Exp и т.д);

  • имена встроенных типов (Integer, Real, Char, Boolean и т.д.);

  • имена встроенных директив (Absolute, Forward и т.д.).

Упражнение. Загрузите Turbo Pascal 7.0. Выбрав Turbo Pascal Language из меню Help главного меню, просмотрите список всех встроенных директив (Directives). Выбрав команду Procedures and functions, просмотрите алфавитный перечень процедур и функций языка Turbo Pascal 7.0.

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

Примечание. Если в программе какое-либо имя не описано, то компилятор выдаст следующее сообщение об ошибке: “Error #3: Unknown identifier” (т.е. неизвестный идентификатор. Имя не было описано). Если в программе делается повторное описание уже описанного выше имени, то компилятор выдаст сообщение: “Error #4: Duplicate identifier” (т.е. Повторный идентификатор. Этот идентификатор уже представляет собой или имя программы, или модуля, или константы, или переменной, или типа, или процедуры или функции).

2. Структура программы языка Паскаль. Неформально структура программы на языке Паскаль имеет следующий вид:

Program { Заголовок программы}

{$ …} {Глобальные директивы (т.е. сообщения, команды) компилятору}

Uses { Список подключаемых модуле}

Label { Подраздел описания меток}

Const { Подраздел описания констант}

Type { Подраздел описания типов}

Var { Подраздел описания переменных}

Procedure { Подраздел описания процедур}

Function { Подраздел описания функций}

Begin { Основной блок программы}

end.

Строка заголовка программы состоит из зарезервированного слова Program и имени программы. Необходимо помнить, что в теле программы не должны встречаться объекты, имя которых совпадает с именем программы, после которого ставится точка с запятой (;). Строка заголовка программы необязательна.

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

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

Пример. Uses Crt, Graph;

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

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

  • целые (числа в диапазоне от -32768 ..+32767);

  • вещественные (числа в диапазоне от 2.9*10-39 .. 1.7*1038);

  • текстовые (литерные, строковые). Пример. 'а', 'ELEMENT', 'Программа'.

  • логические: True (истина), False (ложь).

 Пример. Cоnst Pi=3.14; High=100; Stroka='АБВГДЕ';

Тип константы очевиден из ее значения. Константы не могут изменять свои значения в процессе работы программы.

В разделе описания типов Type программист определяет новые типы в программе.

Тип данных — именованное множество величин (значений данных), объединенных совокупностью допустимых операций, которое используется при описании переменных и констант.

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

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

Примечание. Разделы Label, Const, Type, Var могут располагаться в произвольном месте программы.

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

Основной блок программы состоит из одного или последовательности операторов. Тело основного блока программы ограничено операторами Begin и end. После end ставится точка. Операторы в основном блоке программы разделяются точкой с запятой (;). После Begin и перед end точка с запятой не ставится.

Примечание. Если в программе пропущена точка с запятой, то при компиляции компилятор выдаст следующее сообщение об ошибке: “Error #85: “;” expected” (т.е. ожидалась точка с запятой). Если после последнего end в программе не поставлена точка, то компилятор выдаст следующее сообщение об ошибке: “Error #10: “Unexpected end of file”” (т.е. неожиданный конец файла”, если же там стоит “;”, то компилятор выдаст сообщение: “Error #10: “.” expeted” (т.е. ожидалась точка).

Для пояснения программы или отдельных ее частей используются комментарии. Комментарии ограничены слева и справа фигурными скобками {} или лексемами (* и *). Наличие комментариев делает программу более понятной и удобной для чтения. При выполнении программы комментарии игнорируются и не влияют на выполнение программы.

 3. Типы данных языка Паскаль. Все типы данных разделяются на простые (скалярные) и структурные (составные).

Простой тип — это тип данных, значения которых не содержат составных частей (компонентов).

Простые типы — базовые, на их основе строятся более сложные типы. Рассмотрим простые (стандартные) типы данных, которые являются встроенными (предопределенными) в язык Turbo Pascal 7.0.

Integer — целый тип. Диапазон значений от –32 768 до 32 767.

Над целыми переменными типа integer можно проводить арифметические операции +, -, *, /, div (деление нацело), mod (вычисление остатка от целочисленного деления). Определены операции отношения: =, <>, >, <, >=, <=, вырабатывающие результат булевского типа. С аргументом целого типа можно использовать следующие стандартные функции.

Имя функции

Значение

Тип результата

Sin (x)

Sin x

Real


Pred(x)

Предыдущее целое число.

Integer

Real — вещественный (действительный) тип. Данные этого типа могут иметь две формы записи: с фиксированной точкой и с плавающей точкой (для значений с десятичным порядком). Числа с фиксированной точкой записываются в виде целой и дробной частей числа, разделенных десятичной точкой. Например, 1.23, 12.56. Числа с плавающей точкой используются для записи чисел, изменяющихся в широком диапазоне значений (от очень маленьких до очень больших). Например, 1.23Е000, 1.256Е001, -1.6Е4. Диапазон значений от 2.9*10-39 до 1.7*1038 . Над переменными вещественного типа определены арифметические операции +, -, *, / и операции отношения. С аргументом вещественного типа могут использоваться стандартные арифметические функции (смотри функции целого аргумента, кроме функций Odd, Pred, Succ). Все они вырабатывают результат вещественного типа. Кроме них, существуют стандартные функции преобразования значения вещественного типа в значение целого типа: Trunc (х) — отбрасывание у значения вещественной переменной x дробной части; Round (х) — округление значения вещественной переменной х до ближайшего целого.

Примеры.

Значение х

Trunc(х)

Round(х)

21.53

21

22


-2.2

-3

-2

Boolean — логический тип. Данные этого типа могут принимать только два значения: True (истинно) и False (ложно).

Над переменными определены три логические операции:

  • and — конъюнкция (логическое умножение);

  • or — дизъюнкция (логическое сложение);

  • not — отрицание.

Булевский тип определен так, что False < True. Таким образом, данным булевского типа можно применять операции отношения. Определены следующие значения стандартных функций:

  • Ord(True)= 1;

  • Ord(False)= 0;

  • Succ(False)= True;

  • Pred(True)= False.

Char — данные символьного (литерного) типа могут принимать значение только одного символа, имеющегося в наборе данной ЭВМ.

Существуют две стандартные, обратные по отношению друг к другу, функции преобразования:

  • Ord (S) — возвращает порядковый номер символа S в упорядоченном множестве символов;

  • Chr (I) возвращает символ, стоящий под номером I, в упорядоченном множестве символов.

Пример. Ord ('A')=65, Chr (65)= 'A'.

Справедливы следующие формулы:

Chr(Ord (S))= S, Ord(Chr (I))= I.

Над переменными символьного типа определены операции отношения. Пусть С1 и С2 — переменные символьного типа. Отношение С1<С2 истинно тогда и только тогда, когда Ord(С1) < Ord(C2).

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

  • Pred (S) — возвращает предыдущий символ;

  • Succ (S) — возвращает следующий символ.

Пример. Succ ('A') = 'B', Pred ('B')= 'A'.

Справедливы равенства:

Pred (S)= Chr(Ord (S)-1), Succ (S)= Chr(Ord (S)+1).

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

  1. not;

  2. *, /, mod, div, and ;

  3. +, -, or;

  4. <, <=, >, >=, <>, = .

Операции одного достоинства выполняются слева направо.

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

Пример. Пусть Var NI, KL: integer; TER, X: Real; S: Char. Найдем значение выражения (TER - Ln(x) > 2.5 * KL) and (Ord(S) < NI).

Обозначим отдельно выполняемое действие через Ai. Результаты при выполнении действий рассматриваемого выражения примут следующие типы:

1.

A1:= Ln(x)

Real

2.

A2:= 2.5 * KL

Real

7.

A7:= A4 and A6

Boolean

4. Операторы языка Паскаль

4.1. Составной оператор. Объединение нескольких операторов в одну группу называется составным оператором. Форма записи данного оператора: Begin [ список операторов] end, где операторы в списке операторов разделяются точкой с запятой (;). После Begin и перед end точка с запятой не ставится. В этой конструкции служебные слова Begin и end называются операторными скобками.

4.2.Оператор присваивания. С помощью этого оператора переменной или функции присваивается значение выражения. Форма записи: переменная := выражение. Например, В:=60; А:=Sqrt(X). Переменная и выражение должны иметь одинаковый тип (исключение: тип переменной Real, тип выражения Integer).

Примечание. Нельзя с помощью одного оператора присваивать одно значение разным переменным. Запись правильная: i:=0;K:=0;j:=0. Запись не правильная: i,K,j:= 0.

4.3. Пустой оператор. Оператор, не выполняющий никакого действия, называется пустым оператором. Пустому оператору соответствует отсутствие записи на том месте, где по правилам должен быть какой-нибудь оператор. В этом случае ставится символ точки с запятой (;). Например, А:=4; В:=6; ; С:=В+А.

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

Для стандартного ввода данных используются встроенные процедуры: Read[ (список_имен_переменных)] и ReadLn [(список_имен_переменных)], — где список_имен_переменных состоит из имен переменных, которые разделяются запятой.

Процедуры стандартного ввода вызывает приостановку программы, переключение на экран пользователя и ожидание ввода значений из предопределенного текстового файла с именем InPut, который по умолчанию связан с клавиатурой. После набора всех вводимых значений и нажатия клавиши Enter происходит переключение на программу, и она продолжает свою работу. При вводе значений необходимо согласовывать типы вводимых значений с типами соответствующих переменных из списка переменных. Переменные, упоминаемые в списке имен переменных, могут быть типа Real, Integer, Char. Ввод переменных логического типа при помощи стандартных процедур не допустим. Значения переменных числовых типов, имена которых упоминаются в списке переменных оператора ввода, при вводе разделяются пробелом или нажатием клавиши Enter, а значения символьного типа вводятся без разделителей.

Пример. Пусть переменные CH1, CH2, CH3 типа Char. Тогда если записан оператор ReadLn(CH1, CH2, CH3), то пользователь вводит (без каких-либо) разделителей три символа, которые должны быть присвоены в качестве значений переменным CH1, CH2, CH3 и нажимает в конце клавишу Enter. В результате первый символ будет присвоен переменной CH1, второй — CH2, третий — CH3.

Примечание. Если при вводе значений переменных символьного типа, упоминающихся в списке переменных оператора ввода, разделить их пробелом или нажатием клавиши Enter, то переменные получат неверные значения. Так ASCII-кодом символа, присвоенного второй переменной в списке, будет совпадать с кодом #32 или #13, т.е. с ASCII-кодом символа пробела или клавиши Enter соответственно и т.д.

Рассмотрим примеры ввода числовых значений переменных для присвоения их переменным A, B, C.

Пример 1. Если записан один оператор ReadLn(A,B,C), то пользователь или вводит, разделяя пробелом, значения, которые должны быть присвоены переменным A, B, C в одной строке (в том же порядке как они перечислены в списке имен переменных оператора ReadLn), а затем нажимает клавишу Enter, или после набора каждого значения нажимает клавишу Enter (тем самым, вводя каждое значение в отдельной строке).

Примечание. Если при вводе, когда требуется ввести число, попытаться ввести число в неправильном числовом формате (например, стоит запятая вместо десятичной точки в вещественном числе), или букву, или специальный символ, то компилятор прервет выполнение программы и выдаст следующее сообщение об ошибке: “Error #106: Invalid numeric format” (т.е. неправильный числовой формат).

Пример 2. Если записаны три оператора ReadLn(A); ReadLn(B); ReadLn(C), то после набора каждого значения необходимо нажимать клавишу Enter.

Пример 3. Если записаны три оператора Read(A); Read(B); Read(C), то действия такие же как и в примере 1, только после ввода значения переменной С курсор не перейдет на новую строку, а останется справа сразу после значения, которое было введено для назначения его переменной С.

Примечание. Оператор ReadLn без списка имен переменных можно использовать для организации задержки в работе программы до нажатия клавиши Enter.

Стандартный вывод выполняется в предопределенный текстовый файл с именем OutPut, который по умолчанию связан с дисплеем. Для стандартного вывода информации используется встроенные процедуры: Write [(список_выражений)] и WriteLn [(список_выражений)], — где список_выражений состоит из выражений (в частном случае, переменных и констант), разделенных запятой. Процедуры вывода позволяют выводить значения выражений (в том числе и переменных) типа Real, Integer, Char, Boolean и строковые константы. Окончание имени Ln означает, что после ввода или вывода курсор переходит в начало следующей строки, иначе он остается справа от выведенного значения.

Примеры различной организации вывода значений переменных А,В,С, при А=50, В=100, С=150:

  1. Write(A,B,C); Результат на экране: 50100150

  2. WriteLn(A,' ',B,' ',C); Результат на экране: 50 100 150

  3. WriteLn('Значение переменной А=',A);

WriteLn('Значение переменной В=',В);

WriteLn('Значение переменной С=',С); Результат на экране:

Значение переменной А=50

Значение переменной В=100

Значение переменной С=150

Примечание. Оператор WriteLn без списка вывода можно использовать для пропуска строки. Несколько таких операторов обеспечат вывод группы пустых строк.

Помимо стандартного формата вывода данных, который определен по умолчанию для данных стандартных типов, можно задавать свой формат вывода для каждого данного, путем указания ширины поля вывода и точности представления для вещественных чисел. Для организации форматного вывода на экран значений переменных в языке Паскаль существуют следующие средствами управления печатью. Для этого элементы списка выражений процедуры вывода должны иметь вид: выражение[:ширина_поля[:точность]], где ширина поля — это выражение целого типа, определяющее ширину поля вывода; точность — это выражение целого типа, определяющее точность представления вещественного числа (точность используется только при выводе значений выражений вещественного типа).
  1   2   3

Похожие:

Основные понятия языка паскаль iconЗанятие Ввод вывод. Операторы Read (Readln), Write (Writeln). Простейшие линейные программы 11 Операторы Write и WriteLn 11
Занятие Язык программирования Паскаль. Знакомство со средой программирования Турбо Паскаль. Основные понятия. Первая программа. Оператор...
Основные понятия языка паскаль iconЯзык программирования Паскаль. Строковый тип данных. Разработка программы Калькулятор
Изучить основные приемы работы со строковыми данными, процедурами и функциями пользователя, рекурсивными алгоритмами и научиться...
Основные понятия языка паскаль iconФормальные языки и грамматики
Основные положения иллюстрируются примерами различных формальных языков, в том числе языка программирования "Паскаль". Каждому студенту...
Основные понятия языка паскаль iconКомбинаторика и элементы теории вероятностей
Первые работы, в которых зарождались основные понятия теории вероятностей, представляли собой попытки создания теории азартных игр...
Основные понятия языка паскаль iconОсновные понятия языка Состав языка
Вторую половину занимают символы русского алфавита. Если требуется представлять символы другого национального алфавита (например,...
Основные понятия языка паскаль iconУрок №57-58 Языки и системы программирования. Начальные сведения о языке Turbo Pascal
...
Основные понятия языка паскаль iconУчитель информатики маоу сош №35 г. Улан-Удэ учебное пособие улан-Удэ 2010
Бейсику простому, дешевому и легко понимаемому. Паскаль же был аппаратно зависимым, дорогим и сложным в обращении. С появлением Турбо...
Основные понятия языка паскаль iconОсновные понятия и определения
Цели урока: дать основные понятия о принципах и методах сборки. Научиться составлять технологическую схему сборки
Основные понятия языка паскаль iconВопросы к зачету по I полугодию по спецматематике, 8 класс, 2007 Основные понятия и определения
Основные понятия и определения (уметь формулировать, применять, приводить примеры)
Основные понятия языка паскаль iconОсновные понятия и определения 4 Линейные пространства 4
Данная работа рассматривает основные понятия, свойства, определения и теоремы, связанные с одним из классов линейных операторов –...
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org