Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие Delphi.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

3.9Строки

Строка-это последовательность символов, которая при использовании в выражениях заключается в апострофы.

Количество символов можно изменять, дописывая после служебного слова string в квадратные скобки требуемую длину строки. Если не указывать длину, то она будет по умолчанию равна 255.

Формат записи [3]:

var Имя_строки : string [Длина];

Для строк применимы операции отношения («+», «-», «>», «<», «>=», «<=», «=»). Так как строка – это массив элементов типа char, то к строкам применим оператор поэлементного вырезания символов :

Имя_строки [i], где i - номер символа в строке

Стандартные подпрограммы обработки строк:

Concat(s1,s2,...,sn:String):String - оператор сложения, также можно использовать оператор «+»;

Length (s:string):integer - определить длину строки в символах;

Copy (str:string; N,L:integer): string - возвращает часть строки str длиной L, начиная с позиции N;

Insert (s0:string; var s: string; N: integer) - в строку s вставляет строку s0, начиная с позиции N;

Delete (var s:string; N,L:integer) - в строке s удаляет L символов, начиная с позиции N;

Pos (s0, s:string): integer - возвращает позицию, начиная с которой строка s0 содержится в строке s или 0, если s0 не содержится в s;

Str (X: integer; var s:string) - преобразует число X в строку s;

Val (s:string; var X: integer; var error:integer); - преобразует строку s в число X. Если преобразовать удалось, error=0, иначе error=номеру первого непреобразуемого символа.

Пример 6.

В заданном тексте найти самое длинное слово.

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

stroka,max_Str:string;

i,n,j:integer;

begin

writeln('vvedite stroky');

readln(stroka);

max_Str:='nichego ne vvedeno!';

n:=0;

i:=1;

while i<=length(stroka) do

begin

while (i<=length(stroka)) and

(stroka[i]=' ') do inc(i); // находим букву

j:=i;

while (j<=length(stroka)) and

(stroka[j]<>' ') do inc(j); //находим пробел

if n<(j-i) then

begin

n:=j-i;

Max_Str:= copy(stroka,i,j-i);

end;

i:=j;

end;

Writeln('Max stoka ', Max_Str);

ReadLN;

end.

3.10Записи

Запись - это структурированный тип данных, состоящий из фиксированного числа компонентов. Описание записи начинается со служебного слова record, затем идут поля записи с указанием их типов, в конце описания находится служебное слово end.

Пример описания:

student=record

Imya: string[20];

Familiya:string[20];

Otchestvo:string[30];

Gruppa:string[10];

Ocenki:string[60];

End;

Обращение к записям происходит следующим образом student.imya:=’Ivan’. Если так обращаться ко всем полям, тем более, если их большое количество, то обращение становится очень объемным. Для упрощения обращения используют оператор with.

Пример работы оператора:

with student do

begin

Imya:=’Ivan’;

familia:=’Petrov’;

end;

Если в программе более одной записи одного вида, то удобнее создать новый тип:

type StudentType=record

//здесь перечисляются поля записи

end;

var

Student: StudentType;//переменная типа запись

// массив переменных типа запись

Tablica_studentov: array [1..30] of student;