Определить угаданные и неугаданные числа

Задача: 

Компьютер генерирует пять чисел в диапазоне от 1 до 15 включительно. Человек пытается их угадать. Программа должна выводить угаданные и неугаданные числа из тех, что сгенерировала программа, а также ошибочные числа пользователя.

Программа на языке Паскаль: 

type
    t_1_15 = 1..15; // Диапазон загадываемых чисел
var
    num: t_1_15;
    n: 0..5;
    comp_nums,      // Множество загаданных компьютером чисел
    man_nums,       // Множество чисел, введенных человеком
    nums:      set of t_1_15;
begin
    n := 0;
    randomize;
    comp_nums := [];
    repeat
        num := random(15) + 1;
        if not (num in comp_nums) then begin
            n := n + 1;
            include(comp_nums, num)
        end;
    until n = 5;
    man_nums := [];
    for n:=1 to 5 do begin
        write('Type number: ');
        readln(num);
        include(man_nums, num);
    end;
    if comp_nums = man_nums then
        writeln('You guessed all numbers')
    else begin
        write('Guessed the numbers: ');
        nums := comp_nums * man_nums;
        for num:=1 to 15 do
            if num in nums then
                write(num:3);
        writeln;
        write('Did not guess the numbers: ');
        nums := comp_nums - man_nums;
        for num:=1 to 15 do
            if num in nums then
                write(num:3);
        writeln;
        write('Error numbers: ');
        nums := man_nums - comp_nums;
        for num:=1 to 15 do
            if num in nums then
                write(num:3);
        writeln;
    end;
readln
end.