Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2009, 17:01   #1
ApXoH
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 11
По умолчанию Задача на множества

Для двух строк введенных с клавиатуры создать и вывести множество цифр которые входятв первую строку и не входят во вторую.
Программа работает неверно( Не знаю как исправить чтобы она выдавала мне только цифры, и чтобы один знак в множестве 2 (например "C" или "1') убирал в множестве 1 все подобные знаки и на выводе было не так:
1: вввввваааа111233336789
2: вввваа1233
1-2: вваа11336789

а так:
1-2: 6789
Если вам не трудно - помогите - очень нужно!!!

Program p1;
uses crt;
Type Tmn=set of char;
Procedure Create(a:string;var b:Tmn);
var i:byte;
begin
b:=[];
for i:=1 to lenght(a) do
if not (a[i] in b) then b:=b+[a];
end;
Procedure Print (var b:Tmn);
var i:byte;
begin
for i:=1 to 255 do
if chr(i) in b then
write (chr(i) ,' ');
writeln;
end;
var s1,s2:string;
m1,m2:Tmn;
i:integer;
begin
clrscr;
write('s1: ');
readln(s1);
write('s2: ');
Create(s1,m1);
Print(m2);
writeln('Mnojestvo 1-2:');
m1:=m1-m2;
Print(m1);
readln;
end.
ApXoH вне форума Ответить с цитированием
Старый 11.05.2009, 17:20   #2
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Код:
uses crt;
type
	tmn=set of char;

procedure create(var x:tmn;str:string);
var
	i:integer;
begin
	for i:=1 to length(str) do
		x := x+[str[i]];
end;
	
Procedure Print (var b:tmn);
	var i:byte;
begin
	for i:=48 to 58 do
		if chr(i) in b then
			write (chr(i) ,' ');
	writeln;
end;

var
	s1,s2:string;
	m1,m2:Tmn;
	i:integer;

begin
	clrscr;
	write('s1: ');
	readln(s1);
	create(m1,s1);

	write('s2: ');
	readln(s2);
	create(m2,s2);
	
	Print(m1);	
	Print(m2);

	writeln('Mnojestvo 1-2:');
	m1:=m1-m2;
	Print(m1);

	readln;
end.
так что ли?
P.S. в мн-ве одинаковых элементов не содержится по определению... это не массив...
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 11.05.2009, 17:34   #3
ApXoH
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 11
По умолчанию

Огромное спасибо))) вроде так)))
ApXoH вне форума Ответить с цитированием
Старый 11.05.2009, 17:47   #4
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Да не за что..
Uguu~
__STDC__ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на Множества! prosport91 Помощь студентам 11 22.05.2009 23:39
Задача на множества Eisebio Помощь студентам 2 26.03.2009 10:49
Задача на множества innaa639 Помощь студентам 2 09.02.2009 10:32
Задача на множества Mastak Паскаль, Turbo Pascal, PascalABC.NET 2 11.12.2007 18:04