Возвращение функцией множества - Turbo Pascal
Формулировка задачи:
Всем привет, есть программа написанная на паскальабс и прекрасно там работающая. Но при переносе ее в турбо паскаль, множество set возвращаемое функцией vvod не хочет определяться. А теперь вопрос: Как вернуть множество из функции в турбо паскале?
Текст проги в паскальабс - кому интересно вводит 3 множества х1, х2, х3 мощностью 10(элементов), затем по формуле yy находится множество y, апасля из y вынимается еще одно множество четных чисел:
Решение задачи: «Возвращение функцией множества»
textual
Листинг программы
type TRange = 1..100; TSet = set of TRange; procedure vvod(var s: TSet); var e: TRange; n: Integer; begin s:=[]; n:=0; while n<=10 do begin Read(e); if not (e in s) then begin Include(s,e); Inc(n); end; end; end;
Объяснение кода листинга программы
- В начале объявляются типы данных
TRangeиTSet. - Затем объявляется процедура
vvod, которая принимает в качестве параметра переменнуюsтипаTSet. - Внутри процедуры объявляются две переменные
eиnтипаTRangeиIntegerсоответственно. - Затем идет цикл
while, который выполняется до тех пор, пока значение переменнойnне превысит 10. - Внутри цикла считывается значение переменной
eс помощью функцииRead. - Затем проверяется, содержится ли значение переменной
eв множествеsс помощью оператораin. - Если значение
eне содержится в множествеs, то оно добавляется в множество с помощью функцииInclude. - После этого увеличивается значение переменной
nна единицу с помощью функцииInc. - Цикл
whileповторяется до тех пор, пока значение переменнойnне превысит 10. - По завершении цикла значение переменной
sбудет содержать все уникальные значения из входного множества.