Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornye_raboty_PASKAL.doc
Скачиваний:
15
Добавлен:
25.03.2015
Размер:
969.22 Кб
Скачать

Функции

5) copy(S,POZ,N) - выделение из строки S подстроку длиной N символов, начиная с позиции POZ.

'Abcdef' copy(s,2,3) 'bcd'

6) concat(S1,S2,...,SN) - сцепление строк S1,S2,...,SN в указанном порядке. Сумма символов не должна превышать 255.

concat('AA','XX',' YZ') 'AAXX YZ'

7) length(S) - вычисление длины в символах строки S. Результат имеет целочисленный тип.

'System' length(s) 6;

8) pos(S1,S2) - обнаружение первого появление в строке S2 подстроки S1. Результат имеет целочисленный тип и равен номеру позиции первого символа подстроки S1. Если подстроки S1 не найдено, результат равен 0.

'ABCDEF' pos('DE',S2) 4

'ABCDEF' pos('Г',S2) 0

9) upcase(C) - преобразование строчной латинской буквы в прописную. Параметр и результат имеют литерный тип.

'n' upcase(C) 'N'

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

Пример 30. В заданной последовательности символов, предшествующих первому символу ! (восклицательный знак), заменить все символы + на *.

Программа имеет вид:

program pr30;

uses crt; var x:char;

BEGIN CLRSCR;

WRITELN('ВВЕДИ ПОСЛЕДОВАТЕЛЬНОСТЬ СИМВОЛОВ'); READ(X);

while x <> ‘!’ do begin

if x =’+’ then write(‘*’) else write(x);

read(x) end;

writeln;

x:=readkey

end.

Пример 31. В заданной последовательности символов, предшествующих первой точке, удалить все цифры и удвоить знаки + и *.

Программа имеет вид:

program pr31;

uses crt;

VAR C:CHAR;

BEGIN CLRSCR;

WRITELN('ВВЕДИ ПОСЛЕДОВАТЕЛЬНОСТЬ СИМВОЛОВ'); READ(С);

repeat

if (c=’+’) or (c=’*’) then write(c,c)

else if (c<’0’) or (c>’9’) then

WRITE(C); READ(C)

until c=’.’; writeln;

c:=readkey

end.

Пример 32. Дана последовательность символов х1, х2,...,хn. Выяснить, есть ли среди этих символов пара соседствующих букв МА.

Программа имеет вид:

program pr32;

uses crt;

label 1;

const n=30;

type mas=array[1..n] of char;

VAR X:MAS; I:INTEGER; C:CHAR;

BEGIN CLRSCR;

WRITELN('ВВЕДИ ПОСЛЕДОВАТЕЛЬНОСТЬ СИМВОЛОВ');

FOR I:=1 TO N DO READ(X[I]); WRITELN;

WRITELN('ПОСЛЕДОВАТЕЛЬНОСТЬ СИМВОЛОВ:');

for i:=1 to n do write(x[i]); writeln;

for i:=1 to n-1 do

if (x[i]=’m’) and (x[i+1]=’a’) then

BEGIN

WRITELN('MA-Є'); GOTO 1

END;

WRITELN('MA-НЕТ');

1: c:=readkey

end.

Пример 33. Приведем текст программы простейшей лингвистической обработки строк, в котором к строковым данным применяются приведенные выше процедуры и функции.

program PR33;

uses crt;

var a,b,c:string[12];s:string[40];ch:char; N:integer;

begin clrscr;

a:='electronic'; b:='digit'; c:='machine';

ch:=copy(a,1,1); writeln(ch);

ch:=upcase(ch); writeln(ch);

s:=concat(a,b,c); writeln(s);

delete(s,1,1);writeln(s);

INSERT(CH,S,1); INSERT(' ',S,11); INSERT(' ',S,17);

WRITELN(S); N:=POS('А',S);

WRITELN('ПЕРВАЯ БУКВА "A" ПОЯВИЛАСЬ В ПОЗИЦИИ',N);

N:=LENGTH(S); WRITELN('ДЛИНА СТРОКИ=',N);

ch:=readkey

end.

Результатом работы программы будет:

ch - e

ch - E

s - elektronicdigitmachine

s - lektronicdigitmachine

s - Elektronic digit machine

Первая буква 'А' появилась в позиции 19

Длина строки = 24

Пример 34. Дан текст s. Определить количество слов в данном тексте.

Программа имеет вид:

program PR34;

uses crt;

var s:string; ch:char; I,N,K:integer;

begin clrscr;

READ(S);

S:=’ ’+S;

n:=length(s);

FOR I:=1 TO N-1 DO

IF (S[I]=’ ‘) AND (S[I+1]<>’ ‘) THEN K:=K+1;

WRITELN('В ДАННОМ ТЕКСТЕ ',K:3,' СЛОВ');

ch:=readkey

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]