Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab_rab_Pascal_OZO / Lab_10_Работа_со_строками

.doc
Скачиваний:
18
Добавлен:
21.03.2015
Размер:
45.06 Кб
Скачать

Лабораторная работа № 10.

Работа со строками.

Цель: изучение принципов работы со строками.

Оборудование и программное обеспечение: компьютер, Turbo Pascal 7.0.

Место проведения:

Время:

Пример 1: Дана строка, заканчивающаяся точкой. Подсчитать, сколько в ней слов.

Program Slova;

uses crt;

var st,st1,st2,st3:string;

a,i:byte;

begin

clrscr;

writeln('введите текст');

readln(st);

st1:='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’;

st2:=’авсдежзиклмнопрстуфхцчшщьъыэюяАВСДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЪЫЭЯ';

st3:=st1+st2;

for i:=1 to length(st) do

if ((pos(st[i],st3))>0) and ((pos(st[i+1],st3))=0)

then a:=a+1;

writeln('число слов=',a,'шт.');

readln;

end.

Пример 2: Строка содержит одно слово. Проверить является ли оно палиндромом.

program perevertish;

uses crt;

var st:string;

i,n,a:integer;

begin

clrscr;

write('Введите слово ');

readln(st);

n:=length(st);

a:=1;

for i:=1 to n do if st[i]<>st[n-i+1] then a:=0;

if a=1 then write('Палиндром') else write('Обыкновенное слово');

readln;

end.

Пример 3: Дана строка. Если в ней встречается последовательность ‘child’ то заменить её на ‘children’.

Program Zamena;

Uses CRT;

Var s1:String;

Begin

CLRSCR;

Readln(s1);

While Pos('child',s1)>0 do

Begin

Insert('*',s1,pos('child',s1));

delete(s1,pos('child',s1),length('child'));

End;

While Pos('*',s1)>0 do

Begin

Insert('children',s1,pos('*',s1));

delete(s1,pos('*',s1),length('*'));

End;

Writeln;

Writeln(s1);

Readln;

End.

Порядок выполнения работы:

Задание: Создать и отладить программу для решения следующую задачу (см. Приложение).

Содержание отчета по каждому заданию:

  • исходные данные (условие задачи);

  • алгоритм (блок-схема) решения задачи;

  • текст программы (или основной фрагмент программы);

  • результаты выполнения программы

Приложение: (ваш номер по журналу соответствует номеру варианта)

  1. Удалить из строки все цифры и дописать их в конец строки.

  2. После каждого третьего пробела вставить точку и удалить последние "лишние" символы.

  3. Перед каждым знаком '=' вставить символ, стоящий за ним, если таковой имеется.

  4. Удалить из строки все буквы 'а' и добавить в ее начало недостающее число пробелов.

  5. Заменить в строке все латинские буквы на следующие по алфавиту буквы, а букву 'z' заменить на 'a'.

  6. Заменить в строке все цифры предыдущими по значению цифрами, а '0' заменить на точку.

  7. Каждый символ, стоящий в нечетной позиции, обменять со следующим за ним символом строки.

  8. Если в строке цифр больше, чем латинских букв, заменить все цифры знаком '+'. В противном случае заменить все латинские буквы знаком '-'.

  9. Если в строке пробелов меньше, чем цифр, удвоить каждый пробел.

  10. Каждую закрывающую скобку ')', для которой нет парной открывающей '(', заменить на '?'.

  11. Если строка начинается и оканчивается одним и тем же символом, во всей строке заменить его четвертым символом строки.

  12. Если строка содержит больше пяти латинских 'а', заменить все латинские буквы строки следующими по алфавиту символами.

  13. Найти соотношение букв и цифр в строке, напечатать его и удалить все символы '*' из строки, добавив в конец такое же количество символов '!'.

  14. В строке все вхождения слова "Да" заменить на "Нет". Игнорируется разница между строчными и заглавными буквами.

  15. В строке убрать все лишние пробелы между словами, оставив только по одному.