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




Простые типы данных

 

К простым типам данных относятся: порядковые, вещественные типы и тип даты/времени.

 

Порядковые типы

 

К порядковым типам относятся: целые, логические, символьные, перечислимые типы и тип-диапазон. [7]

Для выражений порядкового типа определены следующие функции:

  • Ord (x) – возвращает порядковый номер значения данного выражения. Для целых чисел это число совпадает со значением, для символьных типов совпадает с кодом символа, а для логического типа 0 – для False, 1 – для True. Для перечислимого типа будет возвращаться значение от 0 до 65535, для типа-диапазона результат зависит от свойст базового порядкового типа.
  • Pred (x) – возвращает величину, предшествующую значению данного выражения.
  • Succ (x) – возвращает величину, следующую за значением данного выражения.

Следует отметить, что функции Pred и Succ не определена для самого меньшего и самого большего значения.

Для константы или переменной порядкового типа так же определены следующие функции:

High(x) – возвращает максимально возможное значение для x.

Low(x) – возвращает минимально возможное значение для x. [7]

 

Числовые типы

 

Числовые типы могут быть целыми и вещественными.

Целые типы данных предназначены для представления целых чисел. Каждый тип целых чисел имеет различные диапазоны значений, а так же занимает различное количество байтов. Рассмотрим целочисленные типы данных в Lazarus.[7]

 

Тип Диапазон значений Размер (в байтах)
Integer -2147483648...2147483647  
Cardinal 0..4294967295  
Shortint -128...27  
Smallint -32768.. 32767  
Longint -2147483648..2147483647  
Int64 -263..263-1  
Byte 0..255  
Word 0..65535  
LongWord 0..4294967295  

 

Отметим, что 32-х разрядные процессора наиболее быстро работают с 4-х байтными типами данных: Integer, Cardinal, LongWord, LongInt. Предполагаю, что на 64-х разрядных процессорах наиболее быстро будут работать типы данных 8-ми байтовые – int64.

 

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

 

Тип Диапазон значений Количество значащих цифр Размер (в байтах)
Real 5.0*10-324..1.7*10308 15-16  
Single 1.5*10-45..3.4*1038 7-8  
Double 5.0*10-324..1.7*10308 15-16  
Extended 3.6*10-4951..1.1*104932 19-20  
Comp -263..263-1 19-20  
Currency -922337203685477.5808.. 922337203685477.5807 19-20  

 

Тип Comp и Currency применяется для бухгалтерских расчётов. В типе Comp дробная часть отсутствует, а в типе Currency она ограничивается четырьмя цифрами. [7]

 

Логические типы

 

В Object Pascal логические типы могут принимать два типа: true (верно), false (ложь).

 

Тип Размер (в байтах)
Boolean  
ByteBool  
WordBool  
LongBool  

 

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

 

 

Операторы

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

 

К составным операторам относится группа операторов, которые расположены между операторными скобками (begin … end). Составной оператор используется тогда, когда правилами Pascal можно использовать один оператор, а необходимо выполнить ряд операторов. Это происходит с операторами: if, while, with, for и т.п.[7]

 

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

 

Условный оператор предназначен для выполнения выбора по заданному условию. Формат данного оператора:

if <условие> then <оператор> else <оператор>;

или

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

 

Оператор выбора CASE

 

Оператор Case позволяет выполнить выбор из ряда значений.

Формат данного оператора:

 

Case <переменная> of

<значение 1>: <оператор>;

<значение 2>: <оператор>;

<значение 3>: <оператор>;

<значение 4>: <оператор>;

<значение 5>: <оператор>;

...

else <оператор>

end;

 

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

 

 

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

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

Формат данного оператора: goto <метка>;

Метка – это идентификатор, который определён с помощью ключевого слова label.

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

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

 

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

Листинг программы, реализующей данную задачу:

 

program consple_laz;   {$mode objfpc}{$H+} {$AppType CONSOLE}   label s1; // Объявление метки var NumberMonth: Byte; // Номер месяца begin s1: // Метка для повторного выполнения программы write('Month Number: '); // Запрашиваем номер месяца readln(NumberMonth); // Ввод Номера месяца Case NumberMonth of // По номеру месяца определяем его название 1: writeln('January'); // Январь 2: writeln('February'); // Февраль 3: writeln('March'); // Март 4: writeln('April'); // Апрель 5: writeln('May'); // Май 6: writeln('June'); // Июнь 7: writeln('July'); // Июль 8: writeln('August'); // Август 9: writeln('September'); // Сентябрь 10: writeln('October'); // Октябрь 11: writeln('November'); // Ноябрь 12: writeln('December'); // Декабрь else writeln('Error of month!'); // Ошибочно задан месяц End; writeln; // Добавляем пустую строку   goto s1; // Повторяем выполнение программы   end.

 

На компакте Вы данный проект можете найти в папке Month.

Данная программа «зациклен» и выполняется до бесконечности, чтоб прервать её выполнение необходимо нажать Ctrl+Break или Ctrl+F2 (из среды разработки), так же можно просто закрыть окно приложения.

 

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

 

Операторы циклов нужны для повторного выполнения одинаковых операций. В Паскале предусмотрено три опратора циклов: for (цикл с параметром), white (цикл с предусловием), repeat (цикл с постусловием).

Оператор For

 

Оператор цикла for предназначен для выполнения количества циклов заранее известного количества.[7]

Формат цикла for:

for <переменная-счётчик>:=<начальное значение> to <конечное значение> do <оператор>;

Переменная-счётчик будет увеличиваться на 1 до тех пор, пока не достигнет конечного значения. Цикл выполняется столько раз, насколько цифра конечного значения отличается от начального значения.

Если, необходимо, чтоб значение счётчика не возрастало, а убывало, тогда вместо to ставится downto.

 

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

Листинг программы [7]:

 

program consple_laz;   {$mode objfpc}{$H+} {$AppType CONSOLE}   var s, i, j: integer; // Переменные-счётчики begin for i:=1 to 10 do // Цикл по строкам begin for j:=1 to 10 do // Цикл по столбцам write(i*j:4); // Выводим цифру с форматированием в 4 символа writeln; // Переходим на следующую строку end;   Readln; // Ожидаем нажатия клавиши end.

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

 

1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100

 

Оператор цикла While

 

Оператор цикла While выполняется до тех пор, пока верно логическое условие. Если логическое условие с самого начала не выполнятеся, тогда цикл не выполняется ни разу. Формат опрератора цикла While:

 

while <условие> do <оператор>;

 

Оператор цикла Repeat

 

Оператор цикла Repeat имеет вид:

 

Repeat

<оператор>;

<оператор>;

<оператор>;

<оператор>;

until <условие>;

 

Компилятор вначале выполняет все операторы, заключённые между repeat..until, после этого, делается проверка условия и если условие верно, тогда повторяется цикл. Таким образом, операторы в теле цикла выполняются по крайней мере один раз.

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: