Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория кратко.docx
Скачиваний:
8
Добавлен:
27.02.2021
Размер:
44.82 Кб
Скачать

2.4. Оператор выбора

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

Структура:

Case <ключ выбора> Of <список выбора> [Else <операторы>] End

Список выбора – это одна или более конструкций вида:

<константа выбора> : <оператор>;

Константа выбора – константа того же типа, что и выражение ключ выбора.

Вначале вычисляется значение выражения <ключ выбора>, а затем в последовательности операторов <список выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается оператору, стоящему за Else (часть Else может опускаться – тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора завершит работу).

Program Calc;

{Программа вводит два числа и один из знаков + - * / и выводит на

экран результат арифметического действия}

var

operation : char;

x, y, z : real;

stop : boolean; {признак ошибочной операции и останова}

begin

stop:=false;

repeat

Write(‘x,y=’);

ReadLn(x,y);

Write(‘Операция’);

ReadLn(operation);

Case operation of

‘+’ : z:=x+y;

‘-’ : z:=x-y;

‘*’ : z:=x*y;

‘/’ : z:=x/y;

else stop:=true;

end;

if not stop then

WriteLn(‘Результат=’,z);

Until stop

End.

2.5 Метки и операторы перехода

Оператор перехода

Goto <метка>

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

Lable

Lb1, Lb2;

Begin

goto lb1;

lb1:

lb2:

goto lb2;

Действие оператора Goto состоит в передаче управления соответствующему меченому оператору.

3. Массивы

В Турбо Паскале могут использоваться объекты, содержащие множество однотипных элементов. Это массивы – формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое.

При описании массива необходимо указать общее число входящих в массив элементов и тип этих элементов.

Var

a : array [1..10] of real;

b : array [0..40] of char;

c : array [-2..2] of boolean;

При описании массива используются зарезервированные слова Array Of. За словом Array в квадратных скобках указывается тип-диапазон, с помощью которого компилятор определяет общее число элементов массива. Тип-диапазон задается левой и правой границами изменения индекса массива, так что массив a состоит из 10 элементов, b – из 41, c – из 5. За словом Of указывается тип элементов, образующих массив.

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

Var

a : array [1..10] of real;

b : array [0..40] of char;

c : array [-2..2] of boolean;

k : integer;

begin

b[17] :=’F’;

c[-2]:=a[1]>a[2];

for k:=1 to 10 do

a[k]:=0;

end.

Индекс не должен выходить за пределы, определенные типом-диапазоном (нельзя использовать a[0], c[40]).

Program Mas;

{Программа создает массив из N случайных чисел, распределенных в

диапазоне от 0 до MAX_VALUE-1, подсчитывает среднее

арифметическое этих чисел, минимальное и максимальное из них}

const

N=1000;

MAX_VALUE=100+1;

Var

m : array [1..N] of integer;

i : integer; {индекс массива}

max, min : integer;

s : real;

begin

{наполняем массив случайными числами}

for i:=1 to N do

m[i]:=random(MAX_VALUE);

{задаем начальное значение переменных}

s:=0;

max:=m[1];

min:=m[1];

{цикл вычисления суммы всех случайных чисел и поиска

минимального и максимального}

for i:=1 to N do

begin

s:=s+m[i];

if m[i]<min then

min:=m[i]

else if m[i]>max then

max:=m[i]

end;

WriteLn(‘Min=’,min,’Max=’,max,’Sred=’,s/N)

End.

Функция random(Max) используется для создания массива и возвращает случайное целое число, равномерно распределенное от 0 до Max-1 (Max – параметр обращения).

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

Var

A:array [1..2,1..2] of integer;

Begin

A[1,1]:=1;

A[2,1]:=2;

A[1,2]:=3;

A[2,2]:=4;

End.

В памяти друг за другом будут расположены байты со значениями 1,3,2,4.

Строка – это одномерный массив символов. К любому символу в строке можно обратиться как к элементу одномерного массива.

Var

St:string;

Begin

If st[5]=’A’ then

End.

Самый первый байт в строке имеет индекс 0 и содержит текущую длину строки. Первый значащий символ строки занимает второй байт и имеет индекс 1.