10 класс, Информатика, МНОГО !

1)С клавиатуры вводится предложение, в котором слова разделены пробелами.

Определите, сколько слов в этом предложении начинается и заканчивается на одну и ту

же букву.

2)Напишите функцию, которая удаляет из переданной ей символьной строки все

символы, заключенные в угловые скобки '<' и '>' (вместе с этими скобками).

Внимание!
Требуется решение для 10 класса без сложных функций.
ReadInteger, Ord, Char и другие такого рода функции не приветствуются. ​

Max325t Max325t    1   28.04.2020 11:29    5

Ответы
nkochneva1 nkochneva1  14.10.2020 00:26

1)

var i,j:integer;

s:string;

c:char;

begin

write('Введите предложение: ');

readln(s);

s:=s+' ';

j:=0;

c:=s[1];

For i:=1 to Length(s) do

If s[i]=' ' then

begin

If c=s[i-1] then

j:=j+1;

If i<Length(s) then

c:=s[i+1];

end;

Writeln('Начинается и заканчвается на одну и ту же букву ', j, ' слов(о)(а)' );

end.

2)

var s: string;

begin

writeln('Введите строку с угловыми скобками:');

readln(s);

delete(s, pos('<', s), pos('>', s) - pos('<', s) + 1);

writeln('Результат:');

writeln(s)

end.

ПОКАЗАТЬ ОТВЕТЫ
AnyRam AnyRam  14.10.2020 00:26

2)Pascal

var s: string;

i, f, g: integer;

begin

writeln('Введите строку с угловыми скобками:');

readln(s);

f := pos('<', s);

if f = 0

then begin

write('Нет "<"');

if pos('>', s) = 0

then writeln('и ">"')

else writeln

end

else begin

g := 0;

for i := length(s) downto 1 do

if s[i] = '>'

then begin

g := i;

break

end;

if g = 0

then writeln('Нет ">"')

else if f > g

then writeln('">" левее "<"')

else begin

delete(s, f, g - f + 1);

writeln('Результат:');

writeln(s)

end

end

end.

Если гарантированно, что в тексте есть только по одному правильно расположенному символу "<" и ">", то совсем просто:

Pascal

var s: string;

begin

writeln('Введите строку с угловыми скобками:');

readln(s);

delete(s, pos('<', s), pos('>', s) - pos('<', s) + 1);

writeln('Результат:');

writeln(s)

end.

0

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика