Определить угаданные и неугаданные числа
Задача
Компьютер генерирует пять чисел в диапазоне от 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.