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

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

Форум «Всё о Паскале» _ Задачи _ ПРОЦЕДУРА

Автор: sds 27.05.2007 2:15

Народ помогите, а то я чето туплю

пусть даны три слова. необходимо определить буквы, которые встречаются во всех 3 словах (для нахождения множества символов, образующих слово, используйте процедуру).

Заранее спасибо.

Автор: мисс_граффити 27.05.2007 2:57

Так?

type mnog=set of char;
var mn1,mn2,mn3: mnog;
s1,s2,s3: string;
ch: char;
procedure StrToSet(const s: string; var mn: mnog);
var i: byte;
begin
mn:=[];
for i:=1 to length(s) do
include(mn,s[i]);
end;

begin
s1:='abcd'; {можешь сделать ввод и с клавиатуры... }
s2:='dafa';
s3:='klfd';
StrToSet(s1,mn1);
StrToSet(s2,mn2);
StrToSet(s3,mn3);
mn1:=mn1*mn2*mn3;
for ch:='a' to 'z' do {можешь добавить A..Z и что тебе еще нужно}
if ch in mn1 then
writeln(ch);
readln;
end.

Автор: klem4 27.05.2007 13:05

Или вот так:

function GetChars(const a, b, c: String): String;
var
res: String;
i: Byte;
begin
res := '';
for i := 1 to Length(a) do
if (Pos(a[i], b) * Pos(a[i], c) > 0) and (Pos(a[i], res) = 0)then
res := res + a[i];
GetChars := res;
end;

var
s1, s2, s3: String;

begin
readln(s1); readln(s2); readln(s3);
writeln(GetChars(s1, s2, s3));
end.


Автор: мисс_граффити 27.05.2007 14:12

Не совсем по заданию sad.gif

Цитата
для нахождения множества символов, образующих слово, используйте процедуру

Автор: klem4 27.05.2007 17:07

Ну это ведь не значит что нужно именно тип _множество_ использовать.

Автор: volvo 27.05.2007 17:08

Цитата
для нахождения множества символов, образующих слово, используйте процедуру
Это по-твоему значит, что надо использовать функцию?

Автор: klem4 27.05.2007 17:57

ой smile.gif

тогда можно вот так:

procedure GetChars(const a, b, c: String);
var
i: Byte;
begin
for i := 1 to Length(a) do
if (Pos(a[i], b) * Pos(a[i], c) > 0) and
(Pos(a[i], copy(a, 1, i - 1)) = 0) then writeln(a[i]);
end;

var
s1, s2, s3: String;

begin
readln(s1); readln(s2); readln(s3);
GetChars(s1, s2, s3);
end.