Вот полный код программы на языке Pascal, который выполняет все необходимые действия, описанные в задаче. Код написан с учетом генерации случайных неповторяющихся чисел, проверки ввода пользователя и подсчета совпадений:
program Loto;
uses Crt;
const
lt = 49; // Максимальное значение чисел (от 1 до 49)
shar = 6; // Количество чисел в массиве
var
lott: array[1.shar] of integer; // Массив для случайных чисел
userNumbers: array[1.shar] of integer; // Массив для чисел, введенных пользователем
i, j, temp, matches: integer;
isUnique: boolean;
begin
randomize; // Инициализация генератора случайных чисел
// Генерация массива из 6 случайных неповторяющихся чисел
for i := 1 to shar do
begin
repeat
temp := Random(lt) + 1; // Генерация числа от 1 до 49
isUnique := true;
// Проверяем, что число уникально
for j := 1 to i - 1 do
begin
if lott[j] = temp then
begin
isUnique := false;
break;
end;
end;
until isUnique;
lott[i] := temp;
end;
// Пользователь вводит 6 чисел
writeln('Введите 6 чисел от 1 до 49:');
for i := 1 to shar do
begin
repeat
write('Число ', i, ': ');
readln(temp);
isUnique := true;
// Проверяем, что число в диапазоне от 1 до 49
if (temp < 1) or (temp > lt) then
begin
writeln('Ошибка! Число должно быть от 1 до 49. Попробуйте снова.');
isUnique := false;
end;
// Проверяем, что числа не повторяются среди введенных
for j := 1 to i - 1 do
begin
if userNumbers[j] = temp then
begin
writeln('Ошибка! Число уже введено. Попробуйте снова.');
isUnique := false;
break;
end;
end;
until isUnique;
userNumbers[i] := temp;
end;
// Подсчет совпадений
matches := 0;
for i := 1 to shar do
begin
for j := 1 to shar do
begin
if userNumbers[i] = lott[j] then
begin
matches := matches + 1;
break;
end;
end;
end;
// Вывод результата
writeln;
writeln('Случайные числа:');
for i := 1 to shar do
write(lott[i], ' ');
writeln;
writeln('Вы ввели:');
for i := 1 to shar do
write(userNumbers[i], ' ');
writeln;
writeln('Количество совпадений: ', matches);
readln; // Ожидание, чтобы пользователь мог увидеть результат
end.
Пояснение работы программы:
Генерация случайных чисел:
- Используется массив
lott
для хранения 6 случайных чисел.
- Числа генерируются с помощью функции
Random
, и проверяется их уникальность в массиве.
Ввод чисел пользователем:
- Пользователь вводит 6 чисел, которые должны быть в диапазоне от 1 до 49.
- Проверяется, чтобы введенные числа не повторялись.
Подсчет совпадений:
- Каждый элемент из массива
userNumbers
(числа пользователя) сравнивается с элементами массива lott
(случайные числа).
- Если находится совпадение, счетчик совпадений увеличивается.
Вывод результата:
- На экран выводятся случайные числа, введенные числа и количество совпадений.
Программа полностью соответствует описанным требованиям.