Составьте программу, вычеркивающую из слова Х буквы, встречающиеся при написании слова Х...

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

Составьте программу, вычеркивающую из слова Х буквы, встречающиеся при написании слова Х ровно три раза. (паскаль)


Информатика (493 баллов) | 27 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Var s:string; c:char; i,j,k:integer;
begin
write('Слово: ');
readln(s);
writeln(s);
i:=1;
while i begin
 k:=0; c:=s[i];
 for j:=1 to length(s) do
  if c=s[j] then k:=k+1;
 if k=3 then 
  begin
  while pos(c,s)>0 do delete(s,pos(c,s),1);
  i:=i-1;
  end;
 i:=i+1;
 end;
writeln(s);
end.

Пример:
Слово: pnbouipobnpongnf
pnbouipobnpongnf
nbuibnngnf

(194k баллов)
0 голосов

// Паскаль
// Программа поддерживает латиницу, кириллицу и дефисы

const
  // Первая буквы, англ. "a" - 65, но может быть дефис #45
  first_letter = #45;
  // Последняя буквы, рус. "я"
  last_letter = #1103;

var
  x: string;
  i: integer;
  c: char;
  // Сколько раз встречает буква в слове
  count: array[first_letter..last_letter] of integer;
begin
  readln(x);
  // Обнуляем массив
  for c := first_letter to last_letter do
    count[c] := 0;
  // Подсчитываем буквы в слове
  for i := 1 to length(x) do
    inc(count[x[i]]);
  // Выводим слово без букв, встречающихся 3 раза
  for i := 1 to length(x) do
    if count[x[i]] <> 3 then
      write(x[i])
end.

(13.3k баллов)