Консультация № 176714
16.02.2010, 18:16
0.00 руб.
0 11 2
с помощью множeствa..дaны двe строки содeржaщиe строчныe лaт.буквы,построить строку S3,в которую войдут только общие символы S1 и S2.

Обсуждение

Неизвестный
16.02.2010, 18:51
общий
Сельвейстров Зезя Иванович:
var S1,S2:string;
i:integer;
begin
s1:='asdfasdf';
s2:='asdfa';
s3:='';
for i:=1 to length(s1) do
begin
if (s3='') or (pos(s1[i],s3)=0) then
if pos(s1[i],s2)>0 then s3:=s3+s1[i];
end;
end.

Вроде так...
давно
Профессор
401888
1232
16.02.2010, 20:08
общий
Если с помощью множеств, по условию, то формируем 2 множества из символов каждой строки, затем находим их пересечение.
Неизвестный
16.02.2010, 20:30
общий
нaпишитe прогрaмму..
Неизвестный
16.02.2010, 20:34
общий
это ответ
Здравствуйте, Сельвейстров Зезя Иванович.
Программа в приложении

Приложение:
{
с помощью множeствa..
дaны двe строки содeржaщиe строчныe лaт.буквы,
построить строку S3,в которую войдут только общие символы S1 и S2.
}
Uses
Crt;
Type
LowChars = Set of 'a'..'z';
Const
S1: String = 'a roza upala na lapu azora';
S2: String = 'argentina manit negra';
Var
S3 : String;
Set1, Set2, Set3 : LowChars;
ch: Char;
i: Byte;

begin
ClrScr;
for i:=1 to Length(S1) do Include(Set1, S1[i]);
for i:=1 to Length(S2) do Include(Set2, S2[i]);
Set3 := Set1 * Set2;
S3 := '';
for ch:='a' to 'z' do
if ch in Set3 then
S3 := S3 + ch;
Write('S3 = "', S3, '"');
readkey;
end.
5
давно
Мастер-Эксперт
319965
1463
16.02.2010, 20:45
общий
27.02.2010, 12:32
это ответ
Здравствуйте, Сельвейстров Зезя Иванович.

Вариант, в котором не нужно перебирать весь алфавит:
Код:
var
s1,s2,s3,s:string;
a,b,c:set of char;
i:integer;
begin
s1:='krokodil';
s2:='kubik';
s3:='';
a:=[];b:=[];
for i:=1 to Length(s1) do a:=a+[s1[i]];
for i:=1 to Length(s2) do b:=b+[s2[i]];
c:=a*b;
s:=s1+s2;
for i:=1 to Length(s) do
if (s[i] in c)and(Pos(s[i],s3)=0)
then s3:=s3+s[i];
Edit3.Text:=s3;
end;

Неизвестный
16.02.2010, 21:10
общий
Andrew Kovalchuk:
a рaционaльно чeрeз процeдуру
Неизвестный
16.02.2010, 21:20
общий
Сельвейстров Зезя Иванович:
Что хотел автор сказать/спросить таким набором слов?
Неизвестный
16.02.2010, 21:28
общий
Andrew Kovalchuk:
при вводe строк лучшe использовaть процeдуру.
Неизвестный
16.02.2010, 22:32
общий
Сельвейстров Зезя Иванович:
Вы вправе изменить предлагаемый вариант решения требуемым вам образом.
Стандартный вариант запроса исходных данных у пользователя довольно банален (read, readln).
Или вы хотите сказать, что для этой задачи еще и нужно делать оценку правильности/корректности ввода исходных данных? (только строчные буквы латинского алфавита)
давно
Мастер-Эксперт
319965
1463
27.02.2010, 18:25
общий
Модераторы:
Edit3.Text:=s3;

• Отредактировал: sir Henry, Старший модератор


А где редактирование? Нужно было убрать эту строчку.
Неизвестный
27.02.2010, 18:32
общий
star9491:
sir Henry дописал в объявлении переменных s3.
Форма ответа