Найти и вывеести на экран группы с четным количеством символов. - Pascal ABC
Формулировка задачи:
Дана строка, состоящая из групп нулей и единиц. Каждая группа отделяется от другой одним или несколькими про-белами. Найдите и выведите на экран группы с четным количеством символов.
Решение задачи: «Найти и вывеести на экран группы с четным количеством символов.»
textual
Листинг программы
var c:char;
s,s1:string;
n,i,j,k:byte;
begin
writeln('Введите строку из 0,1 и пробелов, окончание ввода Enter');
s:='';
repeat
c:=readkey;
if c in ['0','1',' '] then
begin
write(c);
s:=s+c;
end;
if c=#13 then writeln;
until c=#13;
n:=length(s);
k:=0;
i:=1;
while i<n do
if(s[i]<>' ')and((i=1)or(s[i-1]=' ')) then
begin
s1:='';
j:=i;
while(j<=n)and(s[j]<>' ') do
begin
s1:=s1+s[j];
j:=j+1;
end;
if length(s1)mod 2=0 then
begin
writeln(s1);
k:=1;
end;
i:=i+length(s1);
end
else i:=i+1;
if k=0 then write('Нет групп четной длины');
end.
Объяснение кода листинга программы
- Ввод строки из 0,1 и пробелов, окончание ввода Enter.
- Создание переменной s и установка ее значения в пустую строку.
- Цикл repeat, который будет выполняться до тех пор, пока введенный символ не будет равен #13 (Enter).
- Внутри цикла проверяется, является ли введенный символ одним из допустимых (0, 1 или пробел). Если это так, то символ добавляется к строке s и выполняется повторный цикл.
- После ввода последнего символа, выполняется проверка на наличие групп четной длины.
- Если длина строки s четная, то выводится строка s1, и переменная k устанавливается равной 1.
- Если длина строки s нечетная, то выполняется дополнительная проверка на наличие групп четной длины.
- Если группа символов имеет четную длину, то выводится строка s1.
- Переменная k устанавливается равной 1.
- Если группа символов не имеет четной длины, то выводится сообщение
Нет групп четной длины. - Цикл while, который выполняется до тех пор, пока переменная i меньше длины строки s и последний символ в строке s не равен пробелу.
- Внутри цикла проверяется, является ли текущий символ в строке s допустимым (0, 1 или пробел).
- Если это так, то символ добавляется к строке s1, и переменная j устанавливается равной i.
- Пока переменная j меньше или равна длине строки s и последний символ в строке s равен пробелу, выполняется повторный цикл.
- Внутри повторного цикла проверяется, является ли текущий символ в строке s1 допустимым (0, 1 или пробел).
- Если это так, то символ добавляется к строке s1, и переменная j устанавливается равной j+1.
- Если последний символ в строке s1 равен пробелу, то выполняется проверка на наличие групп четной длины.
- Если группа символов имеет четную длину, то выводится строка s1.
- Переменная k устанавливается равной 1.
- Если группа символов не имеет четной длины, то выполняется дополнительная проверка на наличие групп четной длины.
- Если группа символов имеет четную длину, то выводится сообщение
Нет групп четной длины. - Конец программы.