| На каком уровне защиты информации находятся непосредственно средства защиты? |
Опубликован: 04.06.2007 | Уровень: для всех | Доступ: свободно
Дополнительный материал 1:
Выполнение аналога демоЕГЭ-2007
Дополнительный материал 1: 1234567891011121314151617181920212223242526272829303132 || Дополнительный материал 2 >
С4. Составить алгоритм удаления из заданного текста a всех символов, расположенных на нечетных местах другого заданного текста b.
Решение. Алгоритм (ШАЯ, Паскаль, Бейсик) запишется следующим образом.
ШАЯ:
алг C4(арг лит a, b, рез лит a)
дано | текст a и текст b
надо | из текста a удалить все символы, входящие в текст b и расположенные
| на нечетных позициях текста b
нач | начало алгоритма
цел i, | количество символов текста a
j, | количество символов текста b
d, | длина текста b
m | длина текста а
ввод(a,b) | ввод исходных текстов
m:=длина(a) | переменной m присваиваится длина a
d:=длина(b) | переменной d присваиваится длина b
i:=1 | начальный номер символа a
нц пока (i<m) | перебор элементов текста a
j:=1 | начальный нечетный номер символа b
нц пока (j<d+1) | перебор нечетных символов b
если (a[i]=b[j]) | если символ a совпадает с b
то | организуем цикл удаления i-го символа a:
нц для k от i до m-1 | этот цикл, последовательно сдвигает все
a[k]:=a[k+1] | следующие символы a на 1 позицию вперед
кц | конец цикла удаления символа из a
m:=m-1 | уменьшение длины текста a из-за удаленного символа
все | конец проверки совпадения символов
j:=j+2 | переход к следующему нечетному символу текста b
кц | конец цикла по элементам текста b
i:=i+1 | переход к следующему символу текста a
кц | конец цикла по элементам текста a
вывод("результирующий текст: ", a) | вывод результата
кон | конец алгоритма.Программа на Паскале (не комментируем и записываем компактно):
var
d, m, i, j: integer;
a, b: string;
begin
readln(a,b);
m:=length(a);
d:=length(b);
i:=1;
while (i<m) do
begin
j:=1;
while (j<d+1) do
begin
if (a[i]=b[j])
then begin
for k:=i to m-1 do
a[k]:=a[k+1];
m:=m-1
end;
j:=j+2
end;
i:=i+1
end;
writeln('результирующий текст: ', a);
end.Программа на Бейсике (не комментируем и записываем компактно):
dim
d, m, i, j as integer
a, b as string
input a, b
m = length(a)
d = length(b)
i = 1
while (i < m)
j = 1
while (j < d + 1)
if (a(i) = b(j))
then for k = i to m - 1: a(k) = a(k + 1): next k: m = m - 1
end if
j = j + 2
wend
i = i + 1
wend
print("результирующий текст:", a)
end.Дополнительный материал 1: 1234567891011121314151617181920212223242526272829303132 || Дополнительный материал 2 >