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

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

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

Автор: ilua_great 13.06.2008 17:27

Вообшем есть задача на множества:

Цитата
Дано произвольное множество целых чисел M в интервале 1..255 и массив 10х10, содержащий значения также в интервале 1..255. Удалить из исходного множества все элементы, входящие в массив.

И есть недоделаное решение:

program zzz3;
USES
CRT;
VAR
m1:array[1..255] of integer;
m2:array[1..20,1..20] of integer;
i,j :integer;
BEGIN
ClrScr;
randomize;
writeln('MASSIV 10x10');

for I:=1 to 10 do
Begin
writeln;
for J:=1 to 10 do
Begin
m2[I,J]:=round(random(505-255));
write(m2[I,J]:4,' ');
End;
End;

writeln;
writeln;
writeln('POSLEDOVATELNOST');
writeln;

for I:=1 to 10 do
begin
m1[i]:=round(random(505-255));
write(m1[i]:5);
end;
readkey;
END.


Вообшем прошу не помогать советами о том что и как сделать, а если не сложно исходный код готовой задачи. Т.к. сам в этом слабо соображаю, а надабы срочно give_rose.gif

Автор: Alеx J'Root 13.06.2008 18:06

program zzz3;
USES
CRT;
VAR
m1:array[1..255] of integer;
m2:array[1..20,1..20] of integer;
m3:array[1..255] of integer;
m4:array[1..255] of integer;
i,j,z,k,M:integer;
BEGIN
ClrScr;
randomize;
writeln('MASSIV 10x10');

for I:=1 to 10 do
Begin
writeln;
for J:=1 to 10 do
Begin
m2[I,J]:=round(random(505-255));
write(m2[I,J]:4,' ');
End;
End;

writeln;
write('Vvedite M: '); readln(M);
writeln;
writeln('POSLEDOVATELNOST');
writeln;

for I:=1 to M do
begin
m1[i]:=round(random(505-255));
write(m1[i]:5);
end;

z:=1;
For i:=1 to M do
Begin
For k:=1 to 10 do
Begin
For j:=1 to 10 do
Begin
If m1[i]=m2[k,j] then
Begin
m3[z]:=m1[i];
z:=z+1;
End;
End;
End;
End;
k:=0;
For i:=1 to M do
Begin
For j:=1 to z-1 do
Begin
If m1[i]<>m3[j] then
Begin
If m1[i]<>m4[k] then
Begin
k:=k+1;
m4[k]:=m1[i];
end;
end;
end;
end;
writeln;
writeln;
writeln('POSLEDOVATELNOST POSLE YDALENIYA');
writeln;
For i:=1 to k do
write(m4[i]:5);

readkey;
END.



Добавлено через 6 мин.
Только тут не множества получились, а массивы )))

Автор: ilua_great 13.06.2008 18:52

пасиба good.gif

Автор: volvo 13.06.2008 19:41

Alеx J'Root, а теперь слушай внимательно, и не говори потом, что тебя "притесняют и унижают"... dry.gif

1) массив и множество - совершенно разные вещи, и если ты этого не знаешь - учи матчасть.
2) даже если автор привел задачу, в которой используется 2 массива, он сам и сказал, что это -

Цитата
недоделаное решение
, коли ты взялся помогать - будь добр сделать правильно (в первую очередь - по заданию, поскольку автор будет доволен твоим решением ровно до тех пор, пока не покажет его преподавателю).
3) где минус, заслуженно полученный тобой за хамство? Остался во втором профиле? Ты думаешь, создание дубликатов профиля правилами разрешено? Я прошу администраторов/модераторов форума обратить пристальное внимание на манипуляции Alеx J'Root-а (первое лицо: http://forum.pascal.net.ru/index.php?showuser=11874 и второе: http://forum.pascal.net.ru/index.php?showuser=11933 ), и принять меры...

ilua_great, вот решение задачи, удовлетворяющее условию:
uses crt;

const
size = 10;
var
my_set: set of byte;
matr: array[1 .. 10, 1..10] of byte;

i, j: integer;

begin
ClrScr;
randomize;
writeln('MASSIV 10x10');

for I:=1 to 10 do
Begin
writeln;
for J:=1 to 10 do
Begin
matr[I,J] := random(255) + 1;
write(matr[I,J]:4,' ');
End;
End;

writeln;
writeln;
writeln('POSLEDOVATELNOST DO:');
writeln;

for I:=1 to 10 do
begin
repeat
j := random(255) + 1;
until not (j in my_set);
include(my_set, j);
write(j:5);
end;

writeln;
writeln;
writeln('POSLE:');
writeln;

for i := 1 to size do
for j := 1 to size do
if matr[i, j] in my_set then exclude(my_set, matr[i, j]);

for I:= 0 to 255 do
if i in my_set then write(i:5);
writeln;
readkey;
END.

Автор: Alеx J'Root 13.06.2008 20:15

2 volvo: читай мою подпись. Блин, ты такой смешной... прям как ребёнок. "Первое лицо.... второе лицо" lol.gif Если у администации будут вопросы почему у меня два аккаунта (первый я уже не использую), то отвечать на них я буду администрации!!!!

Ещё заметил такую странность, что ты все время ждёшь, пока кто-нибудь выложит решение на заданную задачу, а ты потом найдёшь там ошибку и исправишь её.... smile.gif))

Цитата
1) массив и множество - совершенно разные вещи, и если ты этого не знаешь - учи матчасть.

Если ты не умеешь читать, я не виноват.
Цитата
Только тут не множества получились, а массивы )))

Автор: Michael_Rybak 13.06.2008 22:51

Alеx J'Root, ок, поведай нам всем (почему только администрации?), с чем связано создание тобой нового профиля?

Цитата
Блин, ты такой смешной... прям как ребёнок.


При переходе на личности пользуйся, пожалуйста, приватом.

Добавлено через 3 мин.
Цитата
Ещё заметил такую странность, что ты все время ждёшь, пока кто-нибудь выложит решение на заданную задачу, а ты потом найдёшь там ошибку и исправишь её....


Ну а это уже чистой воды провокация. Человека с такой же, как у Вольво, готовностью помогать в решении как интересных, так и не очень интересных ему задач - еще поискать надо. Если бы он каждый раз ждал, пока кто-то другой выложит решение, он бы часто не дожидался smile.gif Своими "выводами", основанными на двух или трех замеченных тобой случаях, ты ставишь в сомнительное положение себя самого.

Автор: Alеx J'Root 13.06.2008 22:59

Потому что только администрации, объяснять не буду, т.к. правила п.8

Автор: Michael_Rybak 14.06.2008 0:36

Ты нарушил этот самый пункт неоднократно.

Автор: andriano 14.06.2008 13:21

Цитата(Alеx J'Root @ 13.06.2008 17:15) *
Ещё заметил такую странность, что ты все время ждёшь, пока кто-нибудь выложит решение на заданную задачу, а ты потом найдёшь там ошибку и исправишь её.... smile.gif))
Ты недостаточно внимателен.
На форуме принято, что спрашивающий кроме условия задачи выкладывает свой (неверный/недоделанный) вариант решения. Так что если кто-то чего-то и ждет, то именно этого.
И это правильно, т.к. в конечном счете цель форума - повышение квалификации выпускников, а не ее снижение. (очевидно, что если помочь человеку разобраться, он будет знать больше, а если сделать за него задание - то меньше)
В то же время ты явно демонстрируешь:
1. Либо невнимательность, либо нежелание следовать традициям форума.
2. Уровень квалификации вряд ли достаточный для того, чтобы давать ответы.
3. Довольно задиристый норов и сомнительные моральные принципы (последнее - судя по странным манипуляциям с аккаунтом).
Не пора ли перестать искать (или выдумывать) чужие недостатки и переключиться на самоанализ?

Автор: kosyak 16.06.2008 21:53

Извините что вмешиваюсь, но просто смешно на вас...
Я конечно не админ и не модер, но вроде ясно написано:

5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
8. Спрашивайте и отвечайте четко и по существу!!!

Автор: Alеx J'Root 17.06.2008 6:25

Цитата
Я конечно не админ и не модер, но вроде ясно написано:

5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
8. Спрашивайте и отвечайте четко и по существу!!!

Ты только что их нарушил!

Автор: klem4 17.06.2008 13:57

Я предупреждал, тема закрыта, Alеx J'Root получает бан на 3 месяца, второй профиль заблочен навсегда, и не советую создавать другие профили, получишь бан по IP пожизненно.