Слайд 2
Какие функции понадобятся
Length(Str) - определение длины строки
Copy(Str, n,
m) – копирование символов
Пусть a:=‘Информатика’, b;=‘форма’, что будет
на экране?
n:=length(a)
m:= length(a)-length(b)
c:=copy(a,1,1)
x:=copy(a, 1, length(b))
n:= 11
n:= 6
c:= ‘и’
x:= ‘инфо’
Слайд 3
Задача №1
Составить программу подсчета количества вхождений буквы "а"
в заданном тексте
Тестирование программы
Слайд 4
program s41;
var a:string; i,s:integer;
Begin
write(Исходный
текст='); readln(a) ;
for i:=1 to
length(a) do
if copy(a,i,1)='a' then s:=s+1;
writeln ('a=', s);
end.
Исполнение
Слайд 5
Задача №2
Составить программу подсчета в заданном тексте количества
вхождений символов из заданного набора.
Тестирование программы
Слайд 6
program s42;
var a, b, s, c
:string; i, j, n :integer;
Begin
write(‘Исходный текст=');
readln(a) ;
write(‘Набор символов ='); readln(b) ;
for j:=1 to length(b) do begin
s:= copy(b,j,1); n:=0;
for i:=1 to length(a) do begin
c:= copy(a,i,1);
if c=s then n:=n+1;
end;
writeln ('s=',s,' ', n);
end;
End.
Исполнение
Слайд 7
Задача №3
Составить программу подсчета в заданном тексте количество
вхождений заданного сочетания символов.
X1:=length(a)
X2:=length(b) m:=(X1-X2)+1
Тестирование программы
Слайд 8
program s43;
var a,b: string; i, n,
m: integer;
Begin
write(‘=');readln(a) ; write(‘=');readln(b) ;
m:= length(a)-length(b)+1 ;
for i:=1 to m do begin
writeln(copy(a, i, length(b)));
if copy(a, i, length(b))=b then n:=n+1;
end;
writeln (‘=‘,n);
end.
Исполнение
Слайд 9
Ответить на вопросы
1. Что является результатом каждой функции,
предназначенной для выполнения операций над строками?
2. Может
ли значение функции ((length(a)) быть равным 300?
3. Верно ли, что символы "А" и "а" имеют одинаковые коды?
4. Верно ли равенство (a:=copy(a,1,lendth(a))?
5. Какое слово называется пустым?
6. Найдите слово русского языка, которое больше, чем слово "ПАР", и меньше, чем слово "ПАРУС«?
Числа или символы
Нет, символов 256
Разные
Исполнение
‘’
парк
Слайд 10
Ответить на вопросы
1) Будет ли данная программа подсчитывать,
сколько раз встречается в тексте прописная буква "А"?
2)
Что нужно изменить в программе, чтобы она подсчитывала, сколько раз в предложенном тексте встречалась буква "Б«?
Слайд 11
Задачи
Работа с элементами текстового редактора
на удаление
и вставку
на поиск и замену
Слайд 12
Введение
Лев Николаевич Толстой роман
переписывал девять раз, и эта напряженная работа заняла у
него шесть лет жизни.
Интересно, насколько бы упростился труд великого писателя, имей он на рабочем столе компьютер?
Или, может быть, наоборот, под воздействием компьютерного дурмана он никогда бы не смог завершить свое грандиозное творение?
Так или иначе, но тем, кому доводилось работать с хорошим текстовым редактором, уже не может двигать рукой, вырисовывая буквы.
Работа с текстом на компьютере подкупает также легкостью внесения исправлений и перестановки фрагментов текста.
Чтобы лучше понять, как создаются текстовые редакторы, воспроизведем одну из типовых операций по обработке текстов.
Слайд 13
Какие функции понадобятся
Delete (Str, n,m), - Удаление символов
с n число m
Insert(Str1,Str2,n) – Вставка стр1 в стр2
с n символа
Pos(str1,str2) – в строке str2 ищет № вхождения str1
Пусть a:=‘Информатика’, b;=‘форма’, что будет на экране?
c:=delete(a,1,10)
x:=insert(b, a, 11))
c:= ‘a’
x:= ‘информатикаформа’
Слайд 14
Задача №1
Составить программу устранения лишних пробелов в тексте.
Лишним будем считать каждый пробел, следующий непосредственно за пробелом.
Исполнение
Слайд 16
program s44;
var a:string; i:integer;
Begin
write(‘Исходный
текст='); readln(a) ;
i:=1;
repeat
if copy(a,i,2)=' ' then
a:=copy(a,1,i)+copy(a, i+2, length(a))
else i:=i+1;
until (i>length(a));
writeln ('a=',a);
end.
Слайд 17
Задача №2
По общим правилам оформления машинописных работ и
служебных документов после знаков препинания (,.:;!?) пробел обязателен. Составить
программу, добавляющую недостающие пробелы.
Исполнение
Слайд 18
program s45;
var a,b:string; i:integer;
Begin
write(‘Исходный текст='); readln(a)
;
i:=1;
repeat
b:=copy(a,i,1);
if
((b='.') or (b=',')or (b='!') or (b='?') )and (copy(a,i+1,1)<>' ')
then a:=copy(a,1,i)+' '+copy(a,i+1,length(a)-i);
i:=i+1;
until i>=length(a);
writeln ('a=',a);
readln;
end.
Слайд 19
Задача №3 (дополнительно)
Убрать из данного текста уже встречающиеся
символы. (Произвести "выжимку" текста)
Исполнение
Слайд 20
program s46;
var a,b,c: string; i,l:integer;
Begin
write(‘Исходный текст=');readln(a) ;
b:='';
for i:=1 to
length(a) do begin
c:=copy(a,i,1);
if pos(c,b)=0 then b:=b+c;
end;
writeln ('b=',b);
readln;
end.
Слайд 21
Пример 4
Выясните, сколько раз в заданном слове
встречается каждый символ. (Один и тот же символ дважды
не использовать)
Исполнение
Слайд 22
program s47;
var a,b,c:string; i,l,j:integer;
Begin
write(‘Исходный
текст, a='); readln(a) ;
b:='';
for i:=1
to length(a) do begin
c:=copy(a,i,1);
if pos(c,b)=0 then b:=b+c;
end;
writeln ('b=',b);
for i:=1 to length(b) do begin
L:=0;
for j:=1 to length(a) do begin
if copy(b,i,1)=copy(a,j,1) then l:=l+1;
end;
writeln(copy(b,i,1),'-',l);
end;
readln;
end.
Слайд 23
Задача №5
Составить программу, заменяющую в заданном тексте одну
подстроку на другую.
Исполнение
Слайд 24
program s48;
var a,b,c:string; i:integer;
Begin
write(‘Исходный текст a='); readln(a) ;
write(‘Заменяемый b='); readln(b) ;
write(‘Заменяющий c='); readln(c) ;
i:=1;
repeat
if copy(a,i,length(b)) = b then
a:=copy(a,1,i-1)+ c+ copy(a,i+length(b),length(a));
i:=i+1;
until i>length(a)- length(b)+1;
writeln ('a=',a);
readln;
end.
Слайд 25
Фрагменты программ для решения часто встречающихся задач
Слайд 26
1. Удаление пробелов (или любых других
символов) из символьной строки.
IF COPY(S,I,1)=’ ‘ THEN S:=COPY(S,1,I-1)+COPY(S,I+1,N-I)
2. Подсчет количества вхождений символа "А" (или любого другого символа) в строку.
IF COPY(S,I,1)=’A’ THEN K:=K+1;
Слайд 27
3. Выделение слова в тексте (т.е. групп символов,
за которыми следуют пробелы) и занесение их в дополнительный
массив
a:=a+’’; i1=1;k:=0;
repeat
i:=i+1;
if copy(a,i,1)=’ ‘ then
begin
k:=k+1; b[k]:= copy (a,i1,i-i1); i1:=i+1;
end;
until i>length(a);
Слайд 28
Предыдущую программу можно использовать в разных случаях. Рассмотрим
некоторые из них.
Пример 1. Реализовать на компьютере возможность автоматического
исправления слова <граматика> на <грамматика>).
Решение
Программой S48, введя в качестве заменяемого текста слово «граматика», а в качестве заменяющего – «грамматика».
Пример 2. Реализовать на компьютере операцию «вычитание» символьных величин (из введенного текста удаляются все вхождения некоторой строки).
Решение
В программе S48 надо ввести в качестве заменяющего текста пустую строку.