Автор разработки: Камалова Нафиса Ахатовна, учитель...

Preview:

DESCRIPTION

k:= Pos (W, St); Delete (St, k, Length (W)); Insert (V, St, k). Begin If s[i]=q1 Then k1:=k1+1 Else If s[i]=q2 Then k2:=k2+1 End;. While i

Citation preview

Автор разработки: Камалова Нафиса Ахатовна, учитель информатики МАОУ «СОШ №5» МО «ЛМР» РТ

2012 – 2013 учебный год

Обработка строк с Обработка строк с использованием подпрограммиспользованием подпрограмм

k:= Pos (W, St);k:= Pos (W, St); Delete (St, k, Length Delete (St, k, Length (W));(W)); Insert (V, St, k)Insert (V, St, k)

СодержаниеСодержание

Str1:=‘ABCDEF’;Str1:=‘ABCDEF’;Str2:=‘abcdef’;Str2:=‘abcdef’;

Insert (Str1, Str2, 3);Insert (Str1, Str2, 3);Результат:Результат:

Str1:=‘ABCDEFGH’;Str1:=‘ABCDEFGH’;Delete (Str1, 3, 4);Delete (Str1, 3, 4);

Writeln (Str1);Writeln (Str1);Результат:Результат:

Str1:=‘CDE’Str1:=‘CDE’Str2:=‘ABCDEFGH’;Str2:=‘ABCDEFGH’;

K1:= Pos (Str1, Str2);K1:= Pos (Str1, Str2);K2:= Pos (Str2, Str1);K2:= Pos (Str2, Str1);

Результат:Результат:

Str1:=‘ABCDEFGH’;Str1:=‘ABCDEFGH’;Str2:= ‘Str2:= ‘Мама мыла Мама мыла

рамураму’;’;K1:= Length (Str1);K1:= Length (Str1);K2:= Length(Str2);K2:= Length(Str2);

Результат:Результат:

Str2 = ‘abABCDEFcdef’Str2 = ‘abABCDEFcdef’ Str1=‘ABGH’Str1=‘ABGH’

K1=3;K1=3;K2=0K2=0

K1 = 8;K1 = 8;K2 = 15K2 = 15

Блок-схема решения задачи:

ВводS

Delete (S, i, 1)ВыводS

Конец

i ≤ Length (S)

i := 2

Начало

ДаНет

Задача.Задача. Дана строка символов. Удалить из нее Дана строка символов. Удалить из нее символы, расположенные на четных местах.символы, расположенные на четных местах.

i := i + 1

ВводS

Delete (S, i, 1)ВыводS

Конец

i ≤ Length (S)

i := 2

Начало

Программа:

Program Example;Var S: String; i: Integer;Begin Write (‘S=‘); Readln (S); i := 2; While i <= Length (s) Do Begin Delete (S, i, 1); i := i +1; End; Writeln (‘S=‘, S); ReadlnEnd.

Задача.Задача. Дана строка символов. Удалить из нее Дана строка символов. Удалить из нее символы, расположенные на четных местах.символы, расположенные на четных местах.

Задача 1.Задача 1.Удалить из первой строки все символы “k”, из второй – символы “a”.

Основной алгоритмОсновной алгоритм

Del (s, c)Del (s, c)

i ≤ Length(S)i ≤ Length(S)

S[ i ] = cS[ i ] = c

Delete (S[i], i, 1Delete (S[i], i, 1))i := i + 1i := i + 1

КонецКонец

НачалоНачало

Ввод Ввод S1S1

Del (S1, ‘k’)Del (S1, ‘k’)

Вывод Вывод S1S1

Ввод Ввод S2S2

Del (S2, ‘a’)Del (S2, ‘a’)

Вывод Вывод S2S2

КонецКонец

i := i + 1i := i + 1

ДаДаНет

Программа:Программа:

Program Example_1;Var S1, S2: String;Procedure Del (Var S: String; c: Char);Var i: Integer; {i – локальный параметр}Begin i := 1; While i <= Length (S) Do If S[i] = c Then Delete (S, i, 1) Else i := i + 1;i := i + 1;End;Begin Write (‘Введите строку S1: ’); Readln (S1); Del (S1, ‘k’); {S1, ‘k’ – фактические параметры} Writeln (‘S1=‘, S1); Write (‘Введите строку S2: ’); Readln (S2); Del (S2, ‘a’); {S2, ‘a’ – фактические параметры} Writeln (‘S2= ‘, S2); ReadlnEnd.

Задача 2.Задача 2.Даны две строки. Встречаются ли в первой строке буква Даны две строки. Встречаются ли в первой строке буква “a” “a” и и буква буква “o”, “o”, а во второй строке – буква а во второй строке – буква “d”“d” и буква и буква “h”“h”??

Вспомогательный алгоритмВспомогательный алгоритмОсновной алгоритмОсновной алгоритм

i <= i <= длина (длина (SS))

S[i] = q1S[i] = q1

K2 := k2 + 1K2 := k2 + 1

(k1<>0) (k1<>0) and (k2<>0and (k2<>0

t := Truet := True

Opr := tOpr := t

КонецКонец

S[i] = q2S[i] = q2

K1 := k1 + 1

КонецКонец

Opr (s,q1,q2)

i := 1i := 1

t := Falset := False

K1 := 0

K2 := 0K2 := 0

Вывод Вывод t1, t2t1, t2

НачалоНачало

Ввод Ввод S1, S2S1, S2

t1 := Opr (S1, ‘a’, ‘o’)t1 := Opr (S1, ‘a’, ‘o’)

t2 :=Opr (S2, ‘d’, ‘h’)t2 :=Opr (S2, ‘d’, ‘h’)

Да

Да

Да

Нет

Нет

Нет

Function Opr (S: String; q1, q2: Char): Boolean;Var i, k1, k2: Integer; t: Boolean;Begin i:=1; t:=false; k1:=0; k2:=0; While i<= Length (s) Do Begin If s[i]=q1 Then k1:=k1+1 Else If s[i]=q2 Then k2:=k2+1 End; If (k1<>0)and(k2<>0) Then t:= true; Opr:=tEnd;

Program Example;Var S1, S2: String; t1, t2: Boolean;Function Opr (S: String; q1, q2: Char): Boolean;…End;Begin Write ('S1= '); Readln (S1); Write ('S2= '); Readln (S2); t1:=Opr (S1, 'a','o'); t2:=Opr (S2, 'd', 'h'); Writeln ('t1= ', t1, 't2= ', t2); ReadlnEnd.

K:= Pos (W, St)K:= Pos (W, St)

Delete (S,k, Length (w))Delete (S,k, Length (w))

Insert (V, St, k)Insert (V, St, k)

КонецКонец

Stroki (W,V,St)Stroki (W,V,St)

Pos (W, V) <> 0Pos (W, V) <> 0Ввод Ввод SS

Stroki (W,V,S)Stroki (W,V,S)

Вывод Вывод S S

Ввод Ввод WW

НачалоНачало

КонецКонец

Ввод Ввод VV

Вспомогательный алгоритмВспомогательный алгоритм Основной алгоритмОсновной алгоритм

ДаНет

Задача 3.Задача 3. Заменить все вхождения подстроки Заменить все вхождения подстроки W W в строке в строке S S на подстроку на подстроку V.V.

Программа:Программа:

Program Example_3;Var W, S, V: String;Procedure Ins (W,V: String; Var St: String);Var k: Byte;Begin While Pos (W, St)<>0 Do Begin k:= Pos (W, St); Delete (St, k, Length (W)); Insert (V, St, k) End;End;Begin Writeln (‘Введите строки’); Readln (W); Readln (S); Readln (V); Ins (W, V, S); {{Вызов процедурыВызов процедуры}} Writeln (‘S=‘, S);Readln End.

Вариант 2. Вариант 2. Даны две строки. В первой Даны две строки. В первой строке заменить сочетание строке заменить сочетание “no’ на сочетание “da”, во “no’ на сочетание “da”, во второй строке – сочетание второй строке – сочетание “as” на сочетание “ne”. “as” на сочетание “ne”.

Вариант 1.Вариант 1.Даны две строки Даны две строки символов. Проверить, символов. Проверить, содержится ли в первой содержится ли в первой строке символ-цифра, во строке символ-цифра, во второй строке – строчная второй строке – строчная латинская буква.латинская буква.

Вариант 3.Вариант 3. Даны две строки. Какая Даны две строки. Какая буква встречается буква встречается раньше: “раньше: “aa” или “” или “oo” в ” в первой строке, и “первой строке, и “ww” или ” или ““uu” во второй?” во второй?

Вариант 4.Вариант 4. Даны две строки символов. Даны две строки символов. В первой строке перед В первой строке перед сочетанием “сочетанием “fofo” вставить ” вставить символ “символ “rr”, во второй ”, во второй строке – перед сочетанием строке – перед сочетанием ““gogo” вставить символ “” вставить символ “tt”.”.

Задача. Задача. Подсчитать сумму Подсчитать сумму цифр, встречающихся цифр, встречающихся в двух строках, в двух строках, состоящих из состоящих из символов-букв и символов-букв и символов-цифр.символов-цифр.

Recommended