Дано множество Х1, содержит целые числа из диапазона [1..255]. Сформировать новое множество Y путем выделения из множества Х1 нечетных чисел и чисел делящихся без остатка на 17.
Ozzя
22.03.2006 18:02
Код
type asd = set of 1..255; var x1 : asd; y : asd; i : integer; begin for i:=1 to 255 do begin if (i mod 17 = 0) or (odd (i)) then include(y,i); end; end.
klem4
23.03.2006 12:18
Оззя, ты не внимательно прочитал задание ...
Цитата
путем выделения из множества Х1
Цитата
Х1, содержит целые числа из диапазона [1..255]
- Это ведь не значит что они все есть в множестве x1.
Ozzя
23.03.2006 13:48
klem4 Согласен.
Код
type asd = set of 1..255; var x1 : asd; y : asd; i : integer; begin for i:=1 to 255 do begin if i in x1 then if (i mod 17 = 0) or (odd (i)) then include(y,i); end; end.
klem4
23.03.2006 13:50
Да, но всеже я имел в виду что перед проверкой, надо заполнить множество X1 вручную, хотя .. дождемся автора да и эта чать я думаю труда не составит.
Ozzя
23.03.2006 13:51
Автор раскидал эту задачу почти на всех паскалевских сайтах. Ленив?
@WARlock@
23.03.2006 15:55
Не ленив просто я не понимаю, как задачи некоторые решаются.
klem4
23.03.2006 16:13
Вот один из вариантов ...
uses crt;
var x, y : set of byte;
n : byte;
begin
clrscr;
n := 0;
x := []; y := [];
repeat readln(n); if n in [1..255] then include(x, n); until not(n in [1..255]); // ввод продолжается пока n >= 1 и n <= 255
for n := low(x) to high(x) do if (n in x) and ((n mod 17 = 0) or (odd(n))) then include(y, n);
write('y : '); for n := low(x) to high(x) do if n in y then write(n, ' ');
end.
@WARlock@
28.03.2006 15:00
klem4 , почему-то прога не запускается. Стопарится на low(x) и говорит "ordinal type expected".
klem4
28.03.2006 15:03
Куда смотреть я не понял ... в общем попробуй поменять все low(x) на 1, high(x) на 255 ...
Куда смотреть я не понял ... в общем попробуй поменять все low(x) на 1, higth(x) на 255 ...
@WARlock@
28.03.2006 15:09
klem4, a почему при запуске проги ни чво не происходит. Ни при вводе чисел, ни как.
Ozzя
28.03.2006 15:10
Цитата
Куда смотреть я не понял
Low, High не применимы для множеств
@WARlock@
28.03.2006 15:11
Цитата(klem4 @ 28.03.2006 19:03)
Куда смотреть я не понял ... в общем попробуй поменять все low(x) на 1, high(x) на 255 ...
Куда смотреть я не понял ... в общем попробуй поменять все low(x) на 1, higth(x) на 255 ...
усе заменил теперь запускается. Но при запуске ни чво не происходит.
Ozzя
28.03.2006 15:23
Происходит. Вводишь число, нажимаешь Enter. До тех пор пока не введешь число, выходящее за пределы [1..255] - 0 или 256
@WARlock@
28.03.2006 15:32
Вот именно вводишь число, нажимаешь Enter и курсор переходит на следующую строку и все. А должно получится множество Y сост. из нечетных чисел и чисел делящихся без остатка на 17.
Ozzя
28.03.2006 15:35
Вводишь СЛЕДУЮЩЕЕ число, нажимаешь Enter. До тех пор пока не введешь число, выходящее за пределы [1..255] - 0 или 256
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.