Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Презентация на тему Строки в Pascal в формате powerpoint.ppt
Скачиваний:
13
Добавлен:
11.04.2014
Размер:
536.06 Кб
Скачать

Удаление символов из строки

20

Задача 9 Удалить из строки введенной с клавиатуры все буквы R (латинские, заглавные).

Program

Подготавливаем

 

 

Uses

дополнительную

 

 

переменную

Если на i-ом месте

var

 

 

не стоит R то

 

 

 

 

 

прибавляем эту

begin

 

 

букву к тому, что

 

 

есть в B

ClrS

 

 

 

 

 

Write('

 

 

 

 

 

b:='';

 

 

 

 

 

 

for i:=1 to length(a) do

if (a[i]<>‘R') then b:=b+a[i];

 

 

a:=b;

 

 

То, что получилось в

 

 

writeln(a);

 

 

 

В перемещаем

end.

 

обратно в А

Удаление символов из строки

21

 

Начало

 

 

Ввод A

 

 

B=''

Блок-схема к

 

 

задаче

i,1,length(A)

удаления букв

 

 

R из строки

Нет

A <>'R'

 

 

i

 

 

Да

 

 

B=B+ Ai

 

 

A=B

 

 

Вывод А

 

 

Конец

 

Вложенные условия.

22

Задача 10. В заданном тексте везде букву "а" заменить на букву "б", а букву "б" - на букву "а".

begin

Из всей строки нам

нужно выбрать

clRscr;

только А и Б

Readln(s);

 

for i:=1 to length(s) do

 

if (s[i]='а') or (s[i]='б') then

if (s[i]='а') then s[i]:='б' else s[i]:='а';

writeln(s);

end. И только после осуществлять

замену

Вложенные условия

23

Начало

 

Si ='а' или Si ='б'

Ввод S

 

 

 

i, 1, length(S)

 

 

Нет

Да

 

Да

Si ='а'

Нет

 

 

Si ='б'

 

Si ='а'

Вывод S

 

Блок-схема к задаче

 

 

Конец

замены А на Б и наоборот

 

 

Вложенные циклы

24

Задача 11. Дана строка символов, содержащая знаки препинания. Подсчитать какие и сколько знаков препинания содержит строка.

begin

Внешний цикл,

Тело внешнего

 

ClrScr;

 

цикла содержит

 

Write('ВВеди строку ');

 

цикл, отвечающий

 

s1:=',.;:"!?-';

за перебор

 

 

 

 

символов

 

for i:=1 to length(s1) do begin

 

введенной строки

 

 

 

 

 

 

k:=0;

 

 

 

for j:=1 to length(s) do if (s[j]=s1[i]) then

:=k+1;

 

 

 

if (k<>0)

then writeln(s1[i],' - ',k:5,' раз');

 

 

end;

 

 

end.

 

Вложенные циклы

 

 

25

 

Начало

 

 

 

 

Ввод S

 

 

 

 

s1=',.;:"!?-'

 

 

 

i, 1, length(S1)

 

 

 

K=0

 

 

 

 

j, 1, length(S)

 

Конец

 

Sj = S1i

Да

K=K+1

 

 

 

 

 

Нет

 

 

Нет

 

Да Вывод S1i,K

Блок-схема к задаче

K<>0

подсчета знаков

 

 

 

 

препинания