Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ МНожества

Автор: vadim(b) 15.12.2006 1:10

задание вывести все эти буквы ['q','w','e','r','t','y']которые НЕ входят более чем в одно слово,а я смог сделать чтобы выводил буквы которые входят хотябы в одно слово. Какие исправления необходимо внести??


var
str:string;
a:set of char;
i:integer;
l:char;
begin
writeln('STR: ');
readln(str);
for i:=1 to length(str) do
begin
if str[i] in ['q','w','e','r','t','y'] then
include(a,str[i]);
end;
for l:='a' to 'z' do
if l in a then writeln(l);
readln;

end.


Автор: volvo 15.12.2006 4:11

Тогда я бы делал так:

type
char_set = set of char;
const
letter = ['q','w','e','r','t','y'];
no_one_word: char_set = [];
no_more_one: char_set = [];

var
current: char_set;
s: string;
i: integer;

begin
readln(s);
{ s := 'qwer wert erty rty tyui twwer'; }

s := s + ' ';
current := [];
for i := 1 to length(s) do begin
if s[i] = #32 then begin
current := current * letter;
no_more_one := no_more_one + no_one_word * (letter - current);
no_one_word := no_one_word + (letter - current) - no_more_one;
current := [];
end
else include(current, s[i]);

end;

for i := 0 to 255 do
if chr(i) in no_more_one then write(chr(i));
writeln;
end.
rolleyes.gif

Автор: Lapp 15.12.2006 9:41

Извиняюсь что вмешиваюсь в разговор, я только хотел заметить vadim(b), что его программа совершенно не работает со словами (собственно, его постановка вопроса этого и не требует), даже не делит строку на слова, поэтому на вопрос:

Цитата(vadim(b) @ 14.12.2006 22:10) *

Какие исправления необходимо внести??

- ответить практически невозможно. Лучше написать программу заново (что volvo и сделал со свойственной ему легкостью smile.gif).