Значение 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 |


