- •Содержание:
- •Порядок выполнения лабораторных работ
- •Оператор присваивания
- •Операторы ввода-вывода
- •Условный оператор
- •Задание к лабораторной работе
- •Программирование разветвляющегося
- •Оператор цикла for
- •Нестандартные типы данных
- •Ограниченные типы данных
- •Оператор выбора варианта
- •Задание к лабораторной работе
- •Лабораторная работа 3 регулярные типы данных. Селективная обработка массивов
- •Регулярные типы данных
- •Сортировка массивов
- •Примеры выполнения задания лабораторной работы
- •Задание к лабораторной работе
- •Лабораторная работа 4 вложенные циклы. Обработка двумерных массивов
- •Общие указания
- •Задания к лабораторной работе
- •Лабораторная работа 5 процедуры и функции
- •Процедуры
- •Функции
- •Задание к лабораторной работе
- •Лабораторная работа 6 обработка символьных данных
- •Символьный тип данных
- •Строковый тип данных
- •Процедуры
- •Функции
- •'Abcdef' copy(s,2,3) 'bcd'
- •'System' length(s) 6;
- •Задание к лабораторной работе
- •Лабораторная работа 7 комбинированные типы данных
- •Задание к лабораторной работе
- •Лабораторная работа 8 файлы и файловые типы данных
- •Файловый тип данных
- •Процедуры обработки файлов
- •Файлы с типом
- •Процедуры для работы с файлами с типом
- •Функции для обработки файлов с типом
- •Задание к лабораторной работе
- •Список рекомендованной литературы
Функции
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.