Значение S

Выражение

Результат

'ABCDEFG'

Copy(S, 2, 3)

'BCD'

'ABCDEFG'

Copy(S, 4, 4)

'DEFG'

• Функция Concat (SI, S2,..., SN) выполняет сцепление (конка­тенацию) строк S1,..., SN в одну строку. Например:

Выражение

Результат

Concat('AA', 'XX' , ' Y' )

'AAXXY'

• Функция Length (S) — определяет текущую длину строки S. Результатом будет являться значение целого типа. Например:

Значение S

Выражение

Результат

'test-5'

Length(S)

6

'(A+B)*C'

Length(S)

7

• Функция Pos(Sl,S2)— обнаруживает первое появление в строке S2 подстроки S1. В результате получают целое число, рав­ное номеру позиции, где находится первый символ подстроки S1. Если в S2 подстроки S1 не обнаружено, результат равен 0. Например:

Значение S2

Выражение

Результат

'abcdef'

Pos('cd', S2)

3

'abcdcdef'

Pos('cd', S2)

3

'abcdef'

Pos('k', S2)

0

• Процедура Delete (S, Poz, N) — удаляет N символов из стро­ки S, начиная с позиции Poz. Например:

Исходное значение S

Оператор

Конечное значение

'abcdefg'

Delete(S,3,2)

'abefg'

'abcdefg'

Delete(S,2,6)

'a'

В результате выполнения процедуры уменьшается текущая длина строки в переменной S.

• Процедура Insert (SI, S2, Poz) — вставляет строку SI в строку S2, начиная с позиции Poz. Например:

Начальное S2

Оператор

Конечное S2

'ЭВМ PC'

Insert('IBM-',S2,5)

'ЭВМ IBM-PC'

'Рис. 2'

Insert('N',S2,6)

'Рис. N2'

Порядок выполнения задания к лабораторной работе № 5

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

1. На основании теоретических сведений составьте программы в соответствии с заданием к лабораторной работе № 5 ( см. п. п. 1, 2, 3 раздела Задание к лабораторной работе № 5).

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

Program Slovo_1;

Var S11, S121 : String[10];

Begin

S11 := ‘ВЕЛИЧИНА’;

S12 := Copy (S11, 7, 2) + Copy (S11, 3, 4) + S11 [2];

WriteLn (S12)

End.

Program Slovo_2;

Var S1 : String[10];

Begin

S1 := ‘СТРОКА’;

Delete (S1, 3, 2);

Insert (‘E’, S1, 2);

WriteLn (S1)

End.

Program Stars;

Var A : String;

N, I : Byte;

Begin

Write (‘Введите число звёздочек’);

ReadLn (N);

A : ‘’;

For I:= 1 To N Do

A := A + ‘*’;

WriteLn (A)

End.

В последней программе строковой переменной А сначала присваивается значение пустой строки (' '), а затем к ней присоединяются звёздочки.

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

Лабораторная работа № 6П

Массивы в ТурбоПаскале.

Задание к лабораторной работе № 6П

Составить программу для вычисления среднегодовой температуры и ежемесячных отклонений от этого значения для заданного в табл. 1 массива среднемесячных температур Т[1…12].

Таблица 1.

Месяц года

1

2

3

4

5

6

7

8

9

10

11

12

Температура,

-21

-18

-7,5

5,6

10

18

22,2

24

17

5,4

-7

-18

Краткие теоретические сведения

Множество значений, содержащихся в таблице, обозначается следующим образом:

Порядковые номера элементов (1, 12, i и др.) называются индексами. Индексированные величины удобнее использовать при записи их для математической обработки. Например, для вычис­ления среднегодовой температуры используется следующая фор­мула:

В Паскале аналогом таблиц является структурированный тип данных, который называется регулярным типом, или массивом. Как и таблица, массив представляет собой совокупность пронумеро­ванных однотипных значений, имеющих общее имя. Элементы мас­сива обозначаются как переменные с индексами. Индексы запи­сываются в квадратных скобках после имени массива. Например:

Т[1], Т[5], Т[i].

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

Описание массивов. Переменная регулярного типа описывается в разделе описания переменных в следующей форме:

Var <идентификатор> : Array [<тип индекса>] Of <тип компонент>

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

Var Т : Array [1..12] Of Real;

Объем памяти, выделяемый под массивы, в ТурбоПаскале со­ставляет 64 Кбайт.

По аналогии с математикой одномерные числовые массивы часто называют векторами, а двухмерные — матрицами.

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

Для упрощения таких изменений индексные пара­метры определяют в разделе констант:

Const Imax = 10; Jmax = 20;

Var Mas : Array[1..Imax, l..Jmax] Of Integer;

В этом случае для изменения размеров массива Mas и всех операторов программы, связанных с этими размерами, достаточно отреда­ктировать только одну строку в программе — раздел констант.

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

в одномерный массив

For I := 1 То 12 Do

ReadLn[I]);

в двумерный массив

For I := 1 To IMax Do

For J := 1 To JMax Do

ReadLn(Mas[I, J]);

Здесь каждое следующее значение будет вводиться с новой стро­ки. Для построчного ввода вместо оператора ReadLn используется оператор Read.

Аналогично в цикле по индексной переменной организуется вывод значений массива. Например:

For I := 1 То 12 Do Write(T[I] : 8 : 4);

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