Что же вы никто множество-то не узнали?
С точки зрения синтаксиса всё нормально. Ненормально с точки зрения логики. Множество вводится, а дальше что?
uses crt; {Подключение модуля crt, который в программе не используется. Эту строку удалить! }
Var M:set of 1..50; {Объявление множества чисел от 1 до 50}
x,i:integer; {Объявление целочисленных переменных x и i}
Begin {Начало программы}
M:=[]; {Инициализация пустого множества}
For i:=1 to 10 do {Цикл с параметром. Выполняется 10 раз}
Begin {Начало цикла}
Writeln('введите ','i'); {Вывод в консоль подсказки "Введите (номер числа) "}
readln(x); {Ввод целого числа с клавиатуры}
M:=m+[x]; {Включение введенного числа в множество M}
end; {Конец цикла}
end. {Конец программы}