Партнерка на США и Канаду, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Если операция применяется к процедуре или функции или методу в объекте, то ее результатом будет адрес точки входа в эту процедуру (функцию, метод). Этот адрес можно использовать только в подпрограмме, написанной на ассемблере или фрагментах inline.

Операторы языка

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

-  простые;

-  структурированные.

Простые операторы

Простыми являются операторы, которые не содержат в себе других операторов:

-  оператор присваивания;

-  обращение к процедуре;

-  оператор безусловного перехода GOTO;

-  пустой оператор.

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

С помощью этого оператора переменной или функции присваивается значение выражения. Знак присваивания := . Слева записывается имя переменной или функции, справа выражение, значение которого вычисляется перед присваиванием. Допустимо присваивание значений переменным и функциям любого типа, за исключением типа файл.

Тип выражения и тип переменной (или функции) должны быть совместимы.

Пример

X:=Y;

Z:=A+B;

Res:=(I>0) and (I<100);

I:=Sqr(Z) + I*K;

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

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

Метки в Турбо Паскале могут быть 2 типов:

-  целое число в пределах от 0 до 9999;

-  обычный идентификатор.

Все используемые метки должны быть перечислены в разделе объявления меток. Раздел начинается словом label (зарезервированное слово):

label 1,2,3,4, ABCA;

Одной меткой можно пометить только один оператор. Метка от помеченного оператора отделяется двоеточием.

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

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

Пустой оператор

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

Структурированные операторы

Так называются операторы, которые состоят из других операторов.

К ним относятся:

-  составной оператор;

-  условный оператор if;

-  условный оператор case;

-  оператор цикла repeat;

-  оператор цикла while;

-  оператор цикла for;

-  оператор над записями with.

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

Составной оператор представляет собой совокупность последовательно выполненных операторов, заключенных в операторные скобки begin и end. Перед end ; можно не ставить.

Структура оператора

begin

<оператор1>;

<оператор2>;

……………..

<операторN>

end.

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

Оператор if реализует алгоритмическую конструкцию РАЗВИЛКА и изменяет порядок выполнения операторов в зависимости от истинности и ложности некоторого условия. Возможны два варианта оператора:

-  if s then a else b; - полная развилка;

-  if s then a; - укороченная развилка,

где

s – логическое выражение, истинность которого проверяется;

a – оператор, который выполняется, если выражение s истинно;

b – оператор, который выполняется если выражение s ложно.

Ни перед then, ни перед else ; ставить нельзя.

Структура оператора

Оператор if – средство ветвления вычислительного процесса:

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

 

произвольное выражение логического типа

Пример

Program EXAMPLE4;

label out;

var

x, y,res:integer;

begin

write(‘введите делимое:’);

readln(x);

write(‘введите делитель:’);

readln(y);

if y=0 then

begin

writeln(‘Деление на ноль!’);

goto out;

end;

res:=x div y;

writeln(‘частное равно:’,res);

out:

end.

Пример Вложенный условный оператор

var

a, b,c, d:real;

begin

writeln(‘введите a, b,c, d ’);

readln(a, b,c, d);

if a>b then {1 вариант}

if c<d then

if c<0 then

c:=0;

else

a:=b

{if a>b then {2 вариант}

if c<d then

if c<0 then

c:=0

else

else

else

a:=b;}

writeln(a,’ ’,b,’ ‘,c,’ ‘,d);

end.

1 вариант

a

b

c

d

 

1)

1<

2

3<

4

 

1

2

3

4

 

2)

2

1

3<

4

 

1

1

3

4

 

3)

2>

1

4>

3

 

2

1

4

3

 

4)

2

1

-3

4

 

2

1

0

4

 

2 вариант

a

b

c

D

1)

1<

2

3<

4

2

2

3

4

2)

2>

1

3<

4

2

1

3

4

3)

2>

1

4>

3

2

1

4

3

4)

2

1

-3

4

2

1

0

4

Любая встретившаяся часть else соответствует ближайшей к ней «сверху» части then условного оператора.

НЕ нашли? Не то? Что вы ищете?

program solod_1 ;

var

x, y:integer;

begin

writeln(‘введите x’);

readln(x);

if x<=0 then y:=-x;

if x<=1 then y:=x;

if x<=2 then y:=1;

if x<=3 then y:=-2*x+5;

writeln(‘y’,y)

end.

program solod_2;

label 1;

var

x, y: real;

begin

writeln(‘введите x’);

readln(x);

if x<=0 then y:=-x

else

if x<=1 then y:=x

else

if x<=2 then y:=1

else

if x<=3 then y:=-2*x+5

else goto 1;

writeln(‘y=’,y);

1:

end.

program solod_3;

label 1;

var

x, y: real;

begin

writeln(‘введите x’);

readln(x);

if x<=0 then y:=-x;

if (x>0)and(x<=1) then y:=x;

if (x>1)and(x<=2) then y:=1;

if (x>2)and(x<=3) then y:=-2*x+5;

if x>3 then goto 1;

writeln(‘y=’,y: 0:4);

1:

end.

Ниже представлены блок-схемы каждой из трех приведенных программ program solod_1, program solod_2, program solod_3 соответственно.

Блок-схема программы program solod_1

Блок-схемы программы program solod_2

Входные данные

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

Solod_1

Solod_2

Solod_3

x

Y

Y

Y

-2

9

2

2

0.5

4

0.5

0.5

1.5

2

1

1

2.5

0

0

0

8

0

0

0

Блок-схема программы program solod_3

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

С помощью этого оператора можно выбрать вариант из любого количества вариантов.

Структура оператора

case s of

C1: instruction 1;

C2: instruction 2;

………………….

CN: instruction N;

else instruction

end.

s - выражение порядкового типа, значение которого вычисляется;

C1, C2, CN - константы, с которыми сравнивается значение s;

instruction 1, instruction 2, instruction N - операторы, из которых выполняется тот, с константой которого совпадает значение выражения s;

instruction - оператор, который выполняется, если значение s не совпадает ни с одной из констант C1, C2, ..., CN.

Ветвь оператора else является необязательной. Если она отсутствует и значение выражения s не совпадает ни с одной из перечисленных констант, то весь оператор рассматривается как пустой. В отличие от оператора if перед else ; ставить можно. Если для нескольких констант выполняется один оператор, то они записываются через запятую. Возможно указать диапазон.

Структура оператора

case <ключ выбора> of<список выбора>

[else <оператор>] end;

Пример

case i of

0, 2, 4, 6, 8:writeln(‘четная цифра’);

1, 3, 5, 7, 9: writeln (‘нечетная цифра’);

10..100: writeln(‘число от 10 до 100’);

else

Writeln(‘отрицательное число или больше 100’);

end.

Работа оператора CASE

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

Оператор цикла REPEAT ( с постпроверкой условия)

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

Структура оператора

repeat

instruction 1;

instruction 2;

instruction N

until s;

repeat ….. until - своеобразные операторные скобки;

instruction 1, instruction 2,…, instruction N - выполняемые операторы, составляющие тело цикла;

s - логическое выражение, истинность которого проверяется в конце каждого цикла;

; ставить перед until необязательно.

Пример

function UpCase (ch: char): char;

{Преобразует строчную латинскую букву в заглавную. ch - выражение типа char, которое находится в пределах a.. z. Если ch - не в указанных пределах, функция не выполняет никаких действий.}

Program EXAMPLE 6;

var

x, y, sum: real;

ch: char;

begin

repeat

write (‘введите числа x и y’);

readln (x, y);

sum:=x+y;

writeln(‘сумма чисел равна’, sum);

write(‘завершить программу?’);

readln(ch);

until (UpCase(ch)=’Y’) or (ch=’д’) or (ch=’Д’)

end.

Структура оператора

repeat <тело цикла> until <условие>

Работа оператора REPEAT

Операторы выполняются хотя бы один раз, после чего вычисляется выражение s (<условие>). Если его значение FALSE, то оператор повторяется. Если TRUE, то работа оператора завершается.

Пример

Program Calc;

var

operation:char;

x, y,z: real;

stop:Boolean;

begin

stop:=false;

repeat

writeln;

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.

Оператор цикла WHILE (с предпроверкой условия)

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

Структура оператора

while s do

instruction;

s - логическое выражение, истинность которого проверяется в начале каждой итерации;

instruction – выполняемый оператор цикла.

Структура оператора

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

 


Выражение логического типа

произвольный оператор

Работа оператора WHILE

Если выражение s(<условие>) имеет значение True, то выполняется оператор, затем выполняется выражение S, его проверка повторяется. Если <условие> имеет значение False, оператор While прекращает свою работу.

Пример

program EXAMPLE7; {Найти все делители

целого положительного числа,

кроме 1 и его самого}

var

x, half, divider, i: integer;

begin

repeat

write('Введите число > 0');

readln(x);

if x<=0 then

writeln ('Неправильный ввод');

until x>0;

half:=x div 2;

divider:=2;

i:=0;

while divider<=half do

begin

if x mod divider=0 then

begin

inc(i);

writeln(i,'-й делитель равен:',divider);

end;

inc(divider);

end;

if i=0 then

writeln ('Делителей нет');

writeln ('Конец решения');

end.

Procedure Inc (var x [; n: longint]);

Увеличивает значение переменной;

x переменная порядкового типа;

n – величина, на которую увеличивается x.

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

Оператор цикла FOR организует выполнение одного оператора заранее известное число раз.

Структура оператора

for param:=start to finish do instruction;

for param:=start downto finish do instruction;

param - параметр цикла, является переменной порядкового типа;

start – выражение, определяющее начальное значение параметра цикла;

finish – выражение, определяющее конечное значение параметра цикла;

instruction – выполняемый оператор.

start и finish должны быть совместимы для присваивания с параметром цикла param.

Работа оператора FOR

Сначала вычисляются и запоминаются начальное start и конечное finish значения параметра цикла param. Затем параметру цикла param присваивается начальное значение start. Затем значение параметра сравнивается с finish. До тех пор, пока параметр цикла меньше или равен конечного значения (больше или равен конечного значения) finish, выполняется очередная итерация цикла. В противном случае осуществляется выход из цикла. Выполнение очередной итерации включает выполнение оператора instruction, затем присваивание param большего или меньшего значения.

Если start > (<) finish, оператор не выполняется ни разу. После выхода из цикла параметр цикла становится неопределённым, за исключением случая, когда выход из цикла осуществляется с помощью оператора GOTO или стандартной процедуры break.

Использование стандартных процедур break и continue

в операторах цикла repeat,while и for

В версии 7.0 Turbo Pascal используются две новые процедуры break и continue. Процедура break позволяет досрочно выйти из цикла, не дожидаясь условия выхода. Процедура continue позволяет начать новую итерацию цикла, даже если предыдущая не завершена.

Пример

program Example10;

const

N=10;

var

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

i:byte;

yes:boolean;

begin

writeln('введите элементы массива');

for i:=1 to N do

begin

write('mas[',i,']=');

readln(mas[i]);

end;

yes:=false;

for i:=1 to N do

begin

if mas[i]>=0 then

continue;

writeln('Первое отрицательное число=', mas[i], 'номер=', i);

yes:=true;

break;

end;

if not yes then

writeln (‘отрицательных чисел нет’);

readln;

end.

Структурированные типы данных

Структурированные типы данных определяют наборы однотипных или разнотипных компонентов. Типы компонентов образуются из других типов данных.

В Паскале существуют:

-  тип – массив;

-  тип – запись;

-  тип – множество;

-  тип – файл.

В Турбо Паскале существуют ещё два структурированных типа:

-  тип - строка string

} разновидности массива

-  тип - строка Pchar.

Массив

Определение Тип массив представляет собой фиксированное количество упорядоченных однотипных компонент, снабжённых индексами.

Массив может быть одномерным и многомерным. Для задания используется зарезервированное слово array of. После array указывается тип индекса (ов) компонент в квадратных скобках и далее после слова of - тип самих компонентов.

type

<имя типа> = array [<тип индексов>] of <тип компонентов>;

type

arr = array [1..3] of real;

matrix = array [1..3,1..2] of integer;

После ввода (объявления) типа массива затем объявляются (задаются) по необходимости переменные или типизированные константы этого типа.

1 способ задания типа массива

type

mas = array [1..100] of integer;

var

M1: mas;

2 способ задания типа массива

var

M1: array [1..100] of integer;

Размерность типа может быть любой.

var

matr: array [1..3, 1..2, 0..1] of integer;

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

var

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

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

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

var

a: array [1..2, 1..2] of byte;

begin

a[1,1]:=1;

a[2,1]:=2; 1 3

a[1,2]:=3; 2 4

a[2,2]:=4;

end.

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

Основные характеристики массивов

-  размерность массива может быть любой;

-  компоненты массива могут быть любого типа, в том числе структурированного;

-  индекс(ы) могут быть любого порядкового типа, кроме типа longint и integer.

Константы – массивы

При задании значений константе-массиву компоненты указываются в круглых скобках, разделяются запятыми. Если массив многомерный, то множество констант соответствующих каждому измерению, заключаются в дополнительные скобки и отделяются от соседнего множества запятыми. В результате образуются вложенные структуры множеств. Глубина вложения должна соответствовать количеству измерений (размерности) массива. Самые внутренние множества констант связываются с изменением самого правого индекса массива.

var

M1, M2 : arr;

mtr: matrix;

const

M3: arr = (1,2,3);

1 2

Mat: matrix = ((1,2), (3,4), (5,6)); 3 4

5 6

Типизированные константы

Пример

const

x: real = 0.1;

min : integer = 0;

max : integer = 10;

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

Пример

type

arr = array [1..3] of real;

matrix = array [1..3,1..2] of integer;

const

M3: arr = (1,2,3);

1 2

Mat: matrix = ((1,2), (3,4), (5,6)); 3 4

5 6

Пример

type

colors = (white, red, black); {перечисляемый тип}

const

colstr : array [colors] of string[5] = (‘white’, ’red’, ‘black’);

vector : array [1..5] of byte = (0,0,0,0,0);

Нельзя:

mas: array [min..max] of real; {нельзя использовать типизированные

константы в качестве границ диапазона}

a, b,c: byte = 0; {нельзя использовать список идентификаторов}

var

name : string [22] = 'prog. pas'; {нельзя объявлять типизированную константу

в разделе переменных}

Значение массива-константы типа char (одномерные массивы символов (не string)) может быть задано в виде символьной строки соответствующей длины.

Пример

const

digit : array [0..9] of char = (‘0’, ‘1’, ’2’, ’3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’);

digch : array [0..9] of char = ‘’;

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

Пример

var

a, b: array [1..5] of single;

begin

………………………

a:=b;

………………………

end.

Замечание

Тип single - один из 5 вещественных типов, 4 байта, диапазон: 1,5 ×10 -45 ¸3,4 ×10 38, 7-8 значащих цифр. Можно использовать в программах при наличии арифметического сопроцессора или включенном эмуляторе сопроцессора.

Эмуляция – имитация функционирования всей или части системы без потери функциональных возможностей или искажения получаемых результатов.

После выполнения этой операции присваивания пять элементов массива a получат те же значения, что и в массиве b.

Однако над массивами не определены операции отношения.

Нельзя

if a=b then ……

Сравнивать два массива можно поэлементно.

Пример

var

a, b : array [1..5] of single;

eq : boolean;

i : byte;

begin

……………….

eq:=true;

for i:=1 to 5 do

if a[i] <> b[i] then

eq:=false;

if eq then

……………….

end.

Замечание

Для массивов типа char можно использовать операции сравнения и объединения (конкатенации). Массивы можно использовать в операторах write и writeln.

Пример

const

a : array [1..5] of char = ‘aaaaa’;

b : array [1..3] of char = ‘bbb’;

………………………………………

if a>b then

writeln(a)

else

writeln(b);

………………………………………

Задача Дана квадратная матрица n*n, состоящая из натуральных чисел. Зеркально отразить её относительно горизонтальной оси симметрии. Вывести результаты на экран.

массив A

массив B

a11 a12 a13

a31 a32 a33

b11 b12 b13

a21 a22 a23

a21 a22 a23

b21 b22 b23

A31 a32 a33

a11 a12 a13

b31 b32 b33

индексы l, m

индексы i, j

Индексы столбцов после отражения не меняют своих значений j=m.

Индексы строк после отражения меняют свои значения i+l=n+1.

b[i, j] a[l, m] b32 a12

b[i, j] = a[n+1-l, j] b[3,2] = a[3+1-3,2]

const n=100;

var

a, b:array[1..n,1..n] of integer;

k, m,i, j:integer;

begin

write(‘введите размер матрицы M= ‘);

readln(m);

writeln(‘исходная матрица’);

k:=1;

for i:=1 to m do

for j:=1 to m do

begin

a[i, j]:=k;

k:=k+1;

if j<m then write(a[i, j]:4)

else writeln(a[i, j]:4)

end;

writeln(‘матрица после преобразования’);

for i:=1 to m do

for j:=1 to m do

begin

b[i, j]:=a[m+1-i, j];

if j<m then write(b[j, j]:4)

else writeln(b[i, j]:4)

end;

end.

Пояснение к решению задачи

-  формируем программу с описанием переменных ;

-  вводим размеры массива А и присваиваем значения его элементам;

-  присваиваем значения элементам матрицы В и выводим их на экран;

-  а, b – двумерные массивы;

-  m – количество строк и столбцов массива;

-  i, j – переменные цикла;

-  k – вспомогательная переменная.

Пример Самые внутренние множества констант связываются с изменением самого правого индекса массива.

var

i, j,k, l:byte;

const

matr: array[1..3,1..5] of byte=

((0,1,2,3,4),
(5,6,7,8,9),
(10,11,12,13,14));

cube:array[0..1,0..1,0..2] of {integer} byte=

(((0,1,2),(3,4,5)),

((6,7,8),(9,10,11)));

mas4:array[0..1,0..1,0.. 1,0..1 ] of {word}byte=

((((0,1),(2,3)),

((4,5),(6,7))),
(((8,9),(10,11)),

((12,13),(14,15))));

begin
for i:=1 to 3 do begin
for j:=1 to 5 do begin
write(matr[i, j]:3);

write('matr[',i, j,']=', matr[i, j]);

end;

writeln;

end;

writeln;

for i:=0 to 1 do begin
for j:=0 to 1 do begin
for k:=0 to 2 do begin
write(cube[i, j,k]:3);

write('cube[',i, j,k.']=', cube[i, j,k]);

end;

writeln;

end;

end;
writeln;

for i:=0 to 1 do begin
for j:=0 to 1 do begin
for k:=0 to 1 do begin
for 1:=0 to 1 do begin
write(mas4[i, j,k, l]:3);

write( 'mas4[' ,i, j,k, l, ']=’ , mas4[i, j,k, l]);

end;

writeln;

end;

end;

end;

writeln
end.

0matr[11]=0 1matr[12]=1 2matr[13]=2 3matr[14]=3 4matr[15]=5

5matr[21]=5 6matr[22]=6 7matr[23]=7 8matr[24]=8 9matr[25]=9

10matr[31]=10 11matr[32]=11 12matr[33]=12 13matr[34]=13 14matr[35]=14

0cube[000]=0 1cube[001]=1 2cube[002]=2

3cube[010]=3 4cube[011]=4 5cube[012]=5

6cube[100]=6 7cube[101]=7 8cube[102]=8

9cube[110]=9 10cube[111]=10 11cube[112]=11

0mas4[0000]=0 1mas4[0001]=1

2mas4[0010]=2 3mas4[0011]=3

4mas4[0100]=4 5mas4[0101]=5

6mas4[0110]=6 7mas4[0111]=7

8mas4[1000]=8 9mas4[1001]=9

10mas4[1010]=10 11mas4[1011]=11

12mas4[1100]=12 13mas4[1101]=13

14mas4[1110]=14 15mas4[1111]=15

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

Строки типа string

Тип string в Турбо Паскале широко используется для обработки текстов. Напоминает одномерный массив символов array [0..n] of char. Отличие: в массиве количество символов может меняться от 0 до n, где n – максимальное количество символов в строке. Значение n определятся объявлением типа string [n] и может быть любой константой порядкового типа, но не больше 255. Турбо Паскаль разрешает не указывать n. Тогда длина строки принимается максимально возможной n=255. Размер строки указывается в квадратных скобках.

Пример

var

str: string[80];

maxstr: string;

const

January: string[10]= ‘Январь’;

Для строк применимы операции конкатенации (+) и сравнения (=,<>,>,<,>=,<=,). Названные операции выполняются над двумя строками посимвольно, слева направо с учетом внутренней кодировки символов. Если одна строка меньше другой по длине, то недостающие заменяются значением CHR (0).

function CHR (x:byte):Char;

Возвращает символ с указанным кодом.

x – число, определяющее код символа.

Пример

Код’ ‘ ‘ = 39

Код’ . ‘ = 46

‘А’ > ‘j’

65  49

‘Turbo’ < ‘Turbo Pascal’

‘Паскаль’ > ‘Turbo Pascal’

Program EXAMPLE11;

const

Instance: array [1..12] of string [10]= (‘ЯНВАРЬ’,’ФЕВРАЛЬ’,’МАРТ’,’АПРЕЛЬ’,’МАЙ’,’ИЮНЬ’,’ИЮЛЬ’, ‘АВГУСТ’,’СЕНТЯБРЬ’,’ОКТЯБРЬ’,’НОЯБРЬ’,’ДЕКАБРЬ’);

Month: Boolean = False;

var

str: string [10];

i: integer;

begin

writeln(‘введите заглавные символы’);

readln(str);

for i:=1 to 12 do

if str = instance [i] then month:=true;

if month then writeln(‘введено имя месяца’)

else writeln(‘введено не имя месяца’);

end.

К любому символу в строке можно обратиться точно так же, как и к элементу одномерного массива array [0..n] of char.

Пример

var

st: string;

begin

………….

if st [5] = ‘A’ then

……………………

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

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4