Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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

Лекция №5 Представления основных структур программирования: итерация, ветвление, повторение.

Расширение диапазона значений вещественных переменных

Расширение диапазона значений целых переменных

 

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

Так, если тип integer устанавливает диапазон целых значений от -32768 до 32767, то целый тип longint расширяет его от -2147483648 до 2147483647.

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

 

Целые типы

 

Длина, байт Название типа Диапазон значений
  byte 0... 255
  shortint -128... 127
  word 0... 65535
  integer -32768... 32767
  longint -2147483648... 2147483647

 

При использовании процедур и функций с целочисленными параметрами следует руководствоваться "вложенностью" типов, т.е. везде, где может использоваться WORD, допускается использование BYTE (но не наоборот), в LONGINT входит INTEGER, который, в свою очередь, включает в себя SHORTINT.

 

 

 

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

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

 

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

 

Длина, байт Мантисса Название типа Диапазон значений
  11-12 real ± 2.9E-39... ± 1.7E38
  7-8 single ± 1.5E-45... ± 3.4E38
  15-16 double ± 5.0E-324... ± 1.7E308
  19-20 extended ± 3.4E-4932... ± 1.1E4932

 

Для работы программы с использованием расширенных типов single, double и extended необходимо переключать модель генерации чисел с плавающей точкой. Это делается с помощью добавления в программу директивы {$n+} перед словом program:

{$n+}

program abc;

var a:single;

Без данной директивы попытка присвоить переменной расширенного вещественного типа какое-либо значение закончится ошибкой вида:

Error 116: Must be in 8087 mode to compile this.

(Ошибка 116: Должен быть в 8087 режиме чтобы компилировать это.)

 


 

 

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

Оператор перехода имеет вид: goto <метка>. Здесь goto - зарезервированное слово (перейти на... [метку]).

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

Например:

goto 2341, goto 23, goto 1, goto bl1, goto mnk3, goto n56.

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

label <список меток>.

 

Например: label 2341; label 1, 2; label bl1, 18, mnk.

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

1: writeln('Число не содержит цифру 2');

 

Оператор можно помечать несколькими метками, которые в этом случае отделяются друг от друга двоеточием.

1: 25: a:= b div 10;

 

Итак, оператор перехода изменяет последовательность выполнения операторов - они выполняются не в том порядке, как написаны в тексте программы.

Оператор if... then... else

 

Для реализации принимаемых решений на языке Паскаль могут быть использованы операторы if (если), then (тогда) и else (иначе).

После оператора if записывается условие, а после операторов then и else - команды, которые необходимо выполнить.

Перед оператором else точка с запятой не ставится.

Если после оператора then записано несколько команд, в нём устанавливаются операторные скобки:

 

begin

........

end;

 

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

Блок-схемы, изображающие условные операторы:

 

 

Цикл с предыдущим условием. Оператор while... do...

 

Циклы в математике - явление очень часто встречающееся.

Например, пока натуральные числа меньше 10, тогда надо суммировать их. Другими словами, мы находим сумму чисел от 1 до 10.

В этом примере повторяется сложение натуральных чисел, пока выполняется условие (числа меньше 10).

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

Цикл в программировании - это многократно выполняемая группа команд, часть программы.

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

На языке Паскаль возможны циклы с предусловием, которые организуются с помощью оператора: while (пока)... do (выполнять)...

Формат оператора: while <условие> do <операция>.

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

Если операция содержит не один оператор, а несколько, то их объединяют с помощью операторных скобок begin и end, например;

while <условие> do

begin

S1; S2; S3;...

end;

 

В этом примере символами s1, s2, s3,... обозначены операторы.

Действие цикла while... do... можно изобразить графически следующей схемой:

 

 

Цикл с последующим условием. Оператор repeat...until...

 

Оператор цикла с последующим условием (постусловием) похож на оператор цикла с предусловием, но условие вычисляется и проверяется после выполнения операторов, составляющих тело цикла.

Общий вид оператора цикла с постусловием такой:

repeat

s1; s2; s3;..

until <условие>,

 

где s1, s2, s3,... - операторы тела цикла; <условие> - логическое выражение.

Переводится: repeat - повторять, until - до тех пор пока.

Такой цикл начинается с выполнения операторов внутри цикла, а уже затем вычисляется выражение, записанное в условии.

Если значение этого выражения истинно, тогда осуществляется выход из цикла, если значение ложно, то цикл продолжается, и снова выполняются операторы

В отличии от цикла while... do, в цикле repeat... until... операторные скобки begin... end могут не использоваться, хотя и использование их возможно. Оператор цикла repeat... until.... не требует операторных скобок begin... end.

Действие цикла repeat...until...можно изобразить графически следующей схемой:

 

 

<== предыдущая лекция | следующая лекция ==>
Константы | Различия между циклом - while и циклом – repeat
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 426; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.