Смекни!
smekni.com

Курс лекций по основам программирования Учебно-методическое пособие (стр. 5 из 9)

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

3.3 Выражения.

Выражение – это последовательность констант, переменных и функций соединённых знаками операций. Тип и значение данных, используемых в выражении, определяют тип выражения в целом.

3.3.1. Арифметические выражения

АВ формируется из данных числового типа и соответствующих знаков операций. Так как числовой тип может быть как вещественным, так и целым, то знаки операций так же делятся на вещественные и целые. К вещественным операциям и в Бэйсике, и в Паскале относятся "+" - сложение, "-" - вычитание, "*" – умножение и "/" – деление. Кроме того, в Бэйсике имеется операция возведения в степень – "^". К операциям целого типа относятся те же операции, кроме деления, а так же имеются операция получения частного от деления двух целых чисел ( в Бэйсике - “\”, в Паскале – "div" ) и операция получения остатка от деления двух целых чисел – "mod" и в Бэйсике, и в Паскале (например, 17 mod 7, результат равен 3 ).

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

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

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

1. Вычисления начинаются с самых внутренних скобок.

2. Вычисляются значения функций.

3. Возведение в степень.

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

5. Сложение и вычитание в порядке записи

3.3.2.Логические выражения.

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

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

В отношении 2 арифметические выражения связаны знаком отношения.

> >= =

< <= <>

Результатом операции отношения является истина (1) или ложь (0).

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

Знаков логических операций в языках программирования от 5 до 8 штук. Рассмотрим основные из них, общие для Pascal и Basic – OR, AND и NOT.

OR и AND - двуместные операции(связывают два высказывания и делают одно),

Not-одноместная операция.

X Y X not Y X and Y Not X Not Y
f f F f t t
f t T f t f
t f T f f t
t t T t f f

Результат логического сложения есть истина, если хотя бы одно из слагаемых истина.

Результат логического умножения истина, если оба сомножителя истинны.

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

Порядок вычисления логических выражений:

В Basic:

1.вычисляется операция отношения

2.операция not

3.операция and

4.операция OR

В Pascal:

1.высисляются арифметические выражения

2.вычисляется операция not

3.операция and

4.операция OR

5.операция отношения

3.3.3 Строковые выражения.

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

Всего одна операция- +-конкатенация (объединение, склеивание).

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

"Маша" + "Вася"→ «МашаВася» (Basic)

'Маша'+'+'+'Вася'→'Маша+Вася' (Pascal)

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

3.4.Основные исполняемые операторы языков.

Термин «исполняемые» взят из Basic.

Неисполняемый оператор: DIM.

В Pascal нет понятия неисполняемый оператор. Там все операторы исполняемые.

Среди неисполняемых операторов в Basic существует так же оператор REM (от слова Remark -помечать)-оператор для вставки комментариев на русском языке в текст Бейсик-программы. Его формат:

REM <любая последовательность символов>

Кроме того, если в строке Бейсик-программы встретился знак ' – апостроф, то все символы за апострофом считаются комментарием.

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

Теперь об исполняемых операторах:

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

Этот оператор соответствует блоку присваивания в блок-схемах


Оператор присваивания имеет следующий формат в Бейсике:

<имя переменной> = <выражение>

и в Паскале

<имя переменной>: = <выражение>;

Например: y:=x+1, x:=x+1 , y=y-3

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

1.вычисляется значение выражения справа от знака присваивания

2.результат вычисления присваивается переменной слева от знака присваивания.

Поэтому запись х=х+1 имеет в программировании вполне определенный смысл – увеличение величины х на 1, и не следует его путать с подобным алгебраическим уравнением, не имеющим решения.

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

Этот оператор соответствует условному блоку блок-схем:

В Бейсике существуют два формата записи этого оператора:

1) Оператор "в строчку":

IF <условие> THEN<операторы”да”> [ELSE <операторы”нет”>]

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

2) Оператор "в столбец"

IF <условие> THEN

<операторы”да”>

[ELSE

<операторы”нет”>]

ENDIF

В Pascal:

If <условие> then <оператор”да”> [else <оператор”нет”>];

Отличия:

В Basic каждый оператор, как правило, записывается в строчку. Несколько коротких операторов можно записать в одну строку, разделяя их двоеточием. Это правило распространяется на оператор IF "в строчку", где после слов THEN и ELSE можно записать группу операторов через двоеточие.

В Pascal операторы отделяются друг от друга двоеточием. При этом допустимо оператор начинать в одной строчке, а заканчивать в другой, пробелов в написании операторов может быть сколько угодною.Особенностью оператора IF в Паскале является то, что после слов THEN и ELSE может быть записан только один оператор. Если надо записать несколько операторов, то они должны быть заключены в так называемые операторные скобки beginend, образуя тем самым единственный оператор, который в Паскале называется составным.

3.4.3 Оператор выбора по ключу.

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

k→k1, k2,…km.

Выполнение этого оператора происходит в соответствии со следующей блок-схемой:

Формат записи оператора выбора по ключу таков:

Для Basic :

SELECT CASE < ключ >

CASE < К1 > : < Oператор 1 >

CASE < К2 > : < Oператор 2 >

. . .

CASE < Кm > : < Oператор m >

CASE ELSE : < Oператор “ иначе ” >

END SELECT

Для Pascal :

CASE < ключ > of

< К1 > : < Oператор 1 > ;

< К2 > : < Oператор 2 > ;

. . .

< Кm > : < Oператор m > ;

ELSE : < Oператор “ иначе ” > ;

END ;

В качестве примера запишем выполнение арифметического действия над числами a и b, заданного знаком операции в переменной znak (на Паскале):

Сase znak of

“+” : c : = a + b;

“-” : c : =a – b;

“ ” : c : = a * b;

“/” : if b < > 0 then c : = a / b else Writeln( ‘ b = 0 ‘ )

else Writeln ( ‘ ошибка в знаке ’ ) ;

end ;

3.4.4 Операторы цикла

Цикл – это группа операторов программы, которые повторяют своё выполнение циклически при истинности ( или ложности ) некоторого логического выражения (условия) и заканчивают свое выполнение, когда условие меняет свое значение.

а)Цикл с предусловием ( или цикл "до" )

в Basic:

While < условие цикла >

<Операторы в цикле>

Wend

в Pascal:

While < условие > do < оператор в цикле>;

Как и в случае с оператором if…then…else после слова do в операторе цикла должен записываться один оператор, в том числе и составной.