IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> задача на поиск букв, встречающихся один раз
Shumaher
сообщение 26.10.2006 16:57
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


ЛЮДИ! ПОЖАЛУЙСТА ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ:

Задан текст из латинских букв. Вывести в алфавитном порядке все буквы, которые встречаются в тексте только один раз.

Заранее спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 26.10.2006 17:11
Сообщение #2


Гость






const
  len = 26;
var
  i, p: integer;
  ch: char;
  s: string;

begin
  s := 'which letters will be here?';
  for i := 0 to pred(len) do begin

    ch := chr(ord('a') + i);
    p := pos(ch, s);
    if p <> 0 then begin
      p := p * pos(ch, copy(s, p + 1, length(s)));
      if p = 0 then write(ch);
    end;

  end;
  writeln;
end.


rolleyes.gif

Shumaher, попробуй объяснить, КАК эта программа работает...
 К началу страницы 
+ Ответить 
Гость
сообщение 26.10.2006 17:47
Сообщение #3


Гость






Цитата(volvo @ 26.10.2006 17:11) *

Shumaher, попробуй объяснить, КАК эта программа работает...

var s,r:string;
i,j:integer;
begin
  s := 'which letters will be here?';
for i:=1 to length(s) do
if (pos (s[i],copy(s,1,i-1))=0) and
      (pos (s[i],copy(s,i+1,255))=0) and
       (s[i] in ['a'..'z']) then begin
       j:=1; while byte(r[j])<byte(s[i]) do inc(j);
       r:=copy(r,1,j-1)+s[i]+copy(r,j,255);
       end;
writeln( r );
end.

Вот так, имхо, еще веселее объяснять smile.gif
 К началу страницы 
+ Ответить 
Malice
сообщение 26.10.2006 17:48
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Я это был, забыл войти smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shumaher
сообщение 26.10.2006 22:30
Сообщение #5





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Огромное спасибо за решение!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 18.07.2025 10:13
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"