Поменять местами значения множеств |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Поменять местами значения множеств |
wEDOK |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
Задали тут целую стопку задач, трудности с одной возникают:
Не используя дополнительных переменных, поменять местами значения переменных - множеств A и B |
wEDOK |
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
В общем, у меня получилось вот так, полностью, может кому пригодится, тут с рандомным заполнением и с четким числом элементов, заданным пользователем (спасибо Clientу, можно менять местами с одинаковыми значениями):
Код Uses crt; var A,B: set of Char; nA,nB,k,r:integer; Begin Repeat Write ('Vvedite kolichestvo simvolov vo mnogestve A, ne bolshe 255:'); Readln (nA); Until nA < 255; Repeat Write ('Vvedite kolichestvo simvolov vo mnogestve B, ne bolshe 255:'); Readln (nB); Until nB < 255; Randomize; Write('A: '); For k:=1 to nA do begin r:= 32+random(224); If (chr(r) in A) then nA:=nA+1 Else begin Include(A,chr(r)); Write(chr(r)); end; end; Writeln; Write('B: '); For k:=1 to nB do begin r:= 32+random(224); If (chr(r) in B) then nB:=nB+1 Else begin Include(B,chr(r)); Write(chr(r)); end; end; A:=A+B-A*B; B:=B-A+(A-B); A:=A-B+(B-A); Writeln; Writeln ('Posle zameni:'); Write('A: '); For r:=33 to 255 do If (chr(r) in A) then Write(chr(r)); Writeln; Write('B: '); For r:=33 to 255 do If (chr(r) in B) then Write(chr(r)); End. |
Текстовая версия | 23.09.2024 16:45 |