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

для т

.pdf
Скачиваний:
6
Добавлен:
14.05.2015
Размер:
557.02 Кб
Скачать

32. Оператор безусловного перехода goto.

Оператор безусловного перехода goto имеет следующую форму:

goto метка

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

label1: оператор

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

label 1,2,3;

Например, в результате выполнения программы

label 1,2; begin

var i := 5;

2: if i<0 then goto 1; write(i);

Dec(i); goto 2; 1:

end.

будет выведено 543210.

Метка должна помечать оператор в том же блоке, в котором описана. Метка не может помечать несколько операторов.

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

Использование оператора безусловного перехода в программе считается признаком плохого стиля программирования. Для основных вариантов использования goto в язык Паскаль введены специальные процедуры: break - переход на оператор, следующий за циклом, exit - переход за последний оператор процедуры, continue - переход за последний оператор в теле цикла.

Единственный пример уместного использования оператора goto в программе - выход из нескольких вложенных циклов одновременно. Например, при поиске элемента k в двумерном массиве:

var a: array [1..10,1..10] of integer;

...

var found := False; for var i:=1 to 10 do for var j:=1 to 10 do if a[i,j]=k then begin

found := True; goto c1;

end;

c1: writeln(found);

26. Реализация ветвления в ЯП. Оператор условного перехода

Оператор условного перехода в Турбо Паскаль имеет вид:

if условие then оператор 1 else оператор 2;

условие - это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1 пропускается. После выполнения указанных операторов программа переходит к выполеннию команды, стоящей непосредственно после оператора if.

Необходимо помнить, что перед ключевым словом else точка с запятой никогда не ставится!

else - часть в операторе if может отсутствовать:

if условие then оператор 1;

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

Следует помнить, что синтаксис языка допускает запись только одного оператора после ключевых слов then и else, поэтому группу инструкций обязательно надо объединять в составной оператор (окаймлять операторными скобками begin ... end). В противном случае возникает чаще всего логическая ошибка программы, когда компилятор языка ошибок не выдает, но программа тем не менее работает неправильно.

9. Логический тип

Базовый тип данных - данные логического типа.

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

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

Способы представления (хранения).

B

PA

C

AS

SC

не

IC

AL

в

не

ы

вм. де

ыпе ле

де

р.>

н,

ле

:bo

но

н,

ole

но

an;

ст

"ис

ин

ст

ти

а"

ина =

на

"=t

1

"=

rue

-1

о

"ож ж

ло ь"= ь"

жfals =

ь" e

0

=це

0ло

це

го

ло

ти

го

па

ти

 

па

 

Основные операции. (Образование сложных условий.)

При работе с логическими данными используются операции:

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

отрицание │ A │not A│

─┼───┼─────┼

0 │ 1 │

1 │ 0 │

Имеются бинарные (с двумя аргументами) операции:

not a

not a

отрицание

a and b

a and b

логическое И

a or b

a or b

логическое ИЛИ

a xor b

a xor b

исключающее ИЛИ

Эти операции реализованы и в бейсике, и в паскале.

Операции

a imp b

-

импликация (следование)

a eqv b

-

эквивалентность

имеются только в бейсике.

Специалисты по математической логике знают, как любую логическую формулу представить в виде набора операций, состоящих из конъюнкций (логическое «И»), дизъюнкций (логическое «ИЛИ») и отрицаний (логическое «НЕ»).

таблицы истинности бинарных операций

A │ B │and│ or│xor│eqv│imp

──┼───┼───┼───┼───┼───┼───

0 │ 0 │ 0 │ 0 │ 0 │ 1 │ 1

0 │ 1 │ 0 │ 1 │ 1 │ 0 │ 1

1 │ 0 │ 0 │ 1 │ 1 │ 0 │ 0

1 │ 1 │ 1 │ 1 │ 0 │ 1 │ 1

BASIC

PASCAL

not a

not a

отрицание

a and b

a and b логическое И

a or b

a or b логическое ИЛИ

a xor b

a xor b исключающее ИЛИ

a imp b

-

импликация (следование)

a eqv b

-

эквивалентность

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

Если тип упорядочен, допустимы сравнения: > , >= , < , >= .

Вязыке PASCAL есть функция определения четности числа: odd(x) = true , если аргумент четный,

=false , если аргумент нечетный.

Вязыке BASIC можно перемешивать данные числовых и логического типа: функция y=F(x) при x>a

=G(x) при x<=a

может быть записана y=-F(x)*(x>a)-G(x)*(x<=a).

34. Переменные.

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

Переменная имеет:Имя (x, text, bm,), значение (число, текст, символ ) ,тип (целый, вещественный, символьный, строковый)

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

В объектноориентированных языках программирования и алгоритмическом языке Basic переменные используются для хранения и обработки данных в программах.

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

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

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

Определение переменной заключается в указании ее имени (идентификатора) и типа.

Имя и тип разделяются двоеточием.

После объявления и описания переменной должен стоять символ ";".

Концом блока описания будет начало какого-либо другого блока программы или описание процедур и функций.

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

Тип переменной

Целый тип (Byte, Integer)– для использования целых чисел

Вещественный тип (Real)– для использования дробных чисел

Символьный тип (Char)– это любые буквы алфавита, символы и цифры 0-9 (один символ). Использование отдельных символов, заключаются в знаки апострофов, например 'а', '4', '+', '-', либо код символа #126

Строковый тип (составной) (String)– для использования наборов символов, заключенных в знаки апострофов, например 'тип', '123'

Напомним, что каждый модуль (процедура, функция, программа) состоит из заголовка (procedure…, function…, program…) и блока.

Если блок какой-либо процедуры p1 содержит внутри процедуру p2, то говорят, что p2 вложена в p1.

Любые идентификаторы, введенные внутри какого-либо блока (процедуры, функции) для описания переменных, констант, типов, процедур, называются локальными для данного блока. Такой блок вместе с вложенными в него модулями называют областью действия этих локальных переменных, констант, типов и процедур.

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

27. Реализация выбора в ЯП. Оператор выбора

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

case выражение of

вариант : оператор;

...

вариант : оператор;

end;

или

case выражение of

вариант : оператор;

...

вариант : оператор;

else оператор

end;

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

31. Процедуры и функции пользователя в ЯП.

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

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

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

Процедуры

Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова procedure, идентификатора (имени) процедуры и необязательного, заключенного в круглые скобки, списка формальных параметров с указанием типа каждого параметра. Имя процедуры – идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичный программе.

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