Здравствуйте, помогите с задачей ** PascalABC. Найти и вывести все шипящие буквы ( без...

0 голосов
63 просмотров

Здравствуйте,
помогите с задачей на PascalABC.

Найти и вывести все шипящие буквы ( без повторений ), которые встретились в самом длинном слове.


Информатика (17 баллов) | 63 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
var
  a: array [1..4] of char;
  s: string;
  i: byte := 1;
begin
  readln(s);
  while (i < length(s)) do
  begin
    if ((not(s[i] in ['ж', 'ч', 'ш', 'щ'])) or (pos(s[i], s) > i)) then
      delete(s, i, 1)
    else
      i += 1;
  end;
  writeln(s);
end.

Суть в том, чтобы удалить все нешипящие буквы, а также повторы шипящих, после чего просто вывести строку
(16.9k баллов)
0

Какая ошибка-то хоть? Ну, должен комп сказать это

0

Ошибки нет, она просто не работает, не делает, что должна

0

var s,max, a: String; k, i: Integer;
begin
write('s=');
readln(s);
k:=pos(' ',s);
if k > 0 then max:='' else max:=s;;
while k > 0 do
begin
if length(copy(s,1,k-1)) > length(max) then max:=copy(s,1,k-1);
delete(s,1,k);
k:=pos(' ',s);
end;

0

if length(s) > length(max) then max:=s;
for i := 1 to length(max) do
if (max[i] in ['ш','щ','х','ч']) then
if (pos(max[i], a) = 0) then
insert(max[i], a, 0);
writeln(a);
Readln;
End.

0

Так должно пойти тогда уж

0

Да, спасибо. Только в задании написано в самом длинном слове, а не во всех :(

0

Да, вроде, в самом длинном: находится самое длинное и в нём ищется

0

нет, во всех. Допустим сделать: шашка,хорошо
В слове "хорошо" - 6 букв. Значит должна вывестись только буква "х". А выводит ш,х

0

так пробел же, не запятая

0

Ну или запятая с пробелом