Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции

.pdf
Скачиваний:
15
Добавлен:
11.04.2015
Размер:
764.74 Кб
Скачать

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

ТЕМА №1

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

Язык программирования Паскаль был разработан в 1968-1971 гг. Никлаусом Виртом в Цюрихском Институте информатики ( Щвейцария ) и назван в честь знаменитого математика Блеза Паскаля.

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

Алфавит состоит из заглавных и строчных латинских букв и символа подчеркивания.

A, B, C, D …..X, Y, Z a, b, c, ……x, y, z Десять арабских цифр от 0 до 9 Двадцать два специальных символа + - * / = > < . , ; : @ ‘ ( ) [ ] { } # $ ^

Символы из алфавита языка используются для построения базовых элементов программ – лексем.

Лексема – минимальная единица языка имеющая, имеющая самостоятельный смысл.

Классы лексем:

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

Служебные слова:

 

 

absolute

and

array

asm

assembler

begin

case

const

constructor

destructor

div

do

downto

else

end

external

file

for

forward

function

go to

if

implementation

in

inline

interface

interrupt

label

mod

nil

not

object

of

or

packed

private

procedure

program

record

repeat

set

shl

shr

string

then

to

type

unit

until

uses

var

virtual

while

with

xor

 

 

1

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

2. Идентификаторы (имена). Формируются по следующей диаграмме

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

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

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

5.Разделители – формируются из специальных символов. Комментарии – произвольная последовательность символов заключенных в разделители вида (* и *). Например (* Это комментарий *)

Структура Pascal программы

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

Программа снабжена заголовком, который задает имя программы и ее параметры. Текст программы должен завершатся символом ‘.’ (точка).

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

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

Блок = [раздел описания меток]

[раздел определения констант] [раздел определения типов] [раздел описания переменных]

[раздел описания процедур и функций] [раздел операторов]

2

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

Пример простой программы:

Программа вычисляет ряд вида R=1+1/2+1/3+…+1/N. Program example;

var

N: integer; R: real;

begin

readln(N);

R:=0;

While N>0 do begin R:=R+1./N; N:=N-1; end;

writeln(R);

end.

Раздел описания меток

Любой оператор в программе может быть помечен меткой. Метка ставится перед оператором и отделяется от него двоеточием. Метки должны быть описаны в разделе описания меток прежде чем они будут использованы. Синтаксис :

Раздел описания меток = “Label метка”; Метка = целое без знака

Пример Label 3, 100, 9999;

Использование меток при написании программы не приветствуется.

Раздел описания констант

Языки программирования допускают введение в программы объекты, внешне похожие на переменные, но которые, в отличие от них, не могут изменять свое значение. Такие объекты называются константами.

Синтаксис: Описание констант

Определение константы

3

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

Использование в программе идентификаторов констант вместо записи конкретных значений делает программу более «читабельной» и способствует лучшему ее пониманию.

Например:

const HIGH=100; Low=- HIGH;

В качестве констант разрешается использовать целые и вещественные значения, а так же строки

Const Pi=3.14151619; STR=’------‘;

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

Раздел описания переменных

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

Синтаксис:

Описание переменных

Определение переменных

Например:

var R1, R2, R3:integer; Xku, Jio: real; Word: char;

Раздел определения типов

Наряду с именами стандартных типов (которые не нуждаются в специальных определениях), программист может определять и использовать

4

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

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

Синтаксическая диаграмма

Определение типов

Например

Type Color = (RED, ORANGE, YELLOW, GREEN, BLUE, VIOLET); Day=(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday,

Sunday);

Целый тип

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

Синтаксическая диаграмма

Над целыми значениями допустимы следующие операции:

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

div деление нацело (с отбрасыванием дробной части), mod взятие остатка от целочисленного деления.

5

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

Следующие четыре стандартные функции дают результаты целого

типа:

ABS(х) – вычисляет абсолютную величину х, SQR(х) – вычисляет х2 ,

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

Trunc(2.5)=2,

Trunc(-4.7)=-4

 

Round(x) - х должно быть вещественного типа, результат целый тип,

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

 

Round(5.7)=6,

Round(-1.7)=-2.

 

Нельзя смешивать операнды целого и вещественного типа.

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

значений и размером занимаемой памяти.

 

 

 

Целые типы

 

Идентификатор типа

 

Диапазон значений

Размер памяти

shortint

 

128…127

1 байт

integer

 

-32768…32767

2 байта

longint

 

-2147483648 …

4 байта

 

2147483647

 

byte

 

0…255

1 байт

word

 

0…65535

2 байта

 

 

 

 

Вещественный тип

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

Пример описания

var K, Tr, Dfg: real;

Вещественные типы имеют следующие характеристики

Идентификатор

Диапазон

Число цифр

Размер памяти

типа

значений

мантисы

 

real

2,9e-29…1.7e38

11-12

4 байта

single

1,5e-45…3.4e38

7-8

2 байта

double

5,0e-324…1.7e308

15-16

8 байт

extende

3,4e-493…1.1e493

20

10 байт

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

+ сложение, - вычитание,

6

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

* умножение, / деление.

Имеется развитая библиотека стандартных функций:

ABS(x), SQR(x), SIN(x), COS(x), LN(x), EXP(x), ARCTAN(x), SQRT(x).

Символьный литерный тип

Значениями символьного типа являются символы из множества ASCII (American Standard Code Information Interchange) состоящего из 256 различных символов. Описание типа производится с помощью стандартного идентификатора char. Например

Char hg1, jg, Lt67: char;

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

1.Для любого набора литер все литеры фиксированы и упорядочены.

2.Включены все прописные буквы латинского алфавита от A до Z. Это множество упорядочено по алфавиту.

3.Включены все строчные буквы латинского алфавита от A до Z. Это множество упорядочено по алфавиту.

4.Включены все десятичные цифры от 0 до 9. Это множество упорядочено по возрастанию цифр.

5.Включены литеры: пробел, запятая, точка, разделители строк и т.д. Литеры, заключенные в апострофы, являются константами литерного типа, для апострофа они повторяются дважды:

‘’’ ‘A’ ‘Y’ ‘6’ ‘3’

Упорядоченность букв означает ‘A’< ‘B’< ‘C’…<’Z’ ‘0’<’1’<’2’<…<’9’

Две стандартные функции преобразования:

ORD(C) – является порядковым номером литеры С из упорядоченного набора литер,

CHR(I) - является литерой с порядковым номером I. Порядковый номер литер – это значения целого типа, которые

определяется реализацией и задается путем отображения литерных значений

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

CHR(ORD(C))=C

ORD(CHR(I))=I

Пример: Прочитать последовательность цифр и преобразовать ее к виду целого числа.

program rdprint; var ch: char;

7

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

I, J: integer; begin

read(ch);

I:=0;

while(ch>=’0’) AND (ch<=’9’) do begin J=:ORD(ch)-ORD(‘0’); I:=10*I+J;

Read(ch);

end; writeln(‘Введено число -’, I); end.

Логический тип (булевский)

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

True (истина)

False (ложь)

Допустимая операция сравнения False < True

Логические переменные описываются с помощью слова boolean и занимают 1 байт памяти

var R, Dt, yut: boolean;

и могут принимать одно из значений False или True

Над аргументом логического типа определены следующие операции: NOT (не) – отрицание;

AND (И) – конъюнкция или логическое умножение;

OR (или) – дизъюнкция или логическое сложение. Операции отношения

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

var R: boolean; Y:integer;

R:=Y<5;

Переменная R получит значение True, если значение Y меньше 5, в противном случае False.

Старшинство операций: NOT затем AND затем OR, затем операции отношения. Порядок выполнения операций изменяется круглыми скобками. NOT P=Q означает (NOT P)=Q

P OR Q AND R означает P OR (Q AND R)

В языке программирования Паскаль нельзя записать двухстороннее неравенство 1<x<2 правильная запись (x>1) AND (x<2).

Стандартные логические функции:

8

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

ODD(x) – значение True, если х – целое нечетное число, False – если х – целое четное число.

EOF(f) - значение True, если файл f находится в состоянии “конец файла”, в противном случае False.

EOLN(f) - значение True, если файл f находится в состоянии “конец строки”, в противном случае False.

Оператор присваивания

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

Синтаксическая диаграмма

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

1.NOT

2.*, /, DIV, MOD, AND

3.+, -, OR

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

операции одинакового старшинства выполняются слева на право. Скобками задается желаемый порядок вычисления.

Переменные и выражения должны быть одного типа. Исключение для переменной real, тогда тип выражения может быть integer.

Например заданы следующие описания Var I, J, K:integer;

A, B, C:real; Ch1, ch2: char; Bool:bolean; Bool:=A=B; Ch1:=ch2; I:=K*J div 2; A:=K*J div 2;

Нельзя записать I:=A*B/C; т.к. I – переменная целого типа Преобразование вещественного типа в целый тип допустимо только через функции приведения типов

9

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

I:=round(A*B/C);

I:=trunc(A*B/C);

Соответствие между целыми типа и литерным типом задается функции приведения типов ORD() и CHR()

I:=ORD(Ch1)+ORD(ch2);

ch2:=CHR(I); Недопустимая запись

I:=J:=0; необходимо писать I:=0; J:=0;

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

Является простейшим структурным оператором и задает последовательность выполнения операторов, входящих в него в порядке «один за другим». Операторы, входящие в состав составного оператора, заключаются между служебными словами begin и end.

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

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

Выбирает и выполняет один из операторов входящих в состав условного оператора.

Выражение должно быть типа boolean. Если значение выражения true то выполняется оператор после служебного слова then, в противном случае выполняется оператор за служебным словом else. Если часть условного оператора, начиная со слова else, отсутствует, то управление передается оператору, следующему за условным оператором.

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

10

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