
Напишите на Паскале игру «Лотерея». 1. Программа приветствует пользователя и просит его ввести
любое целое семизначное число. 2. Программа разбивает введённое пользователем число на 7 цифр, например, если пользователь ввёл число 1735284, то первая цифра – 1, вторая – 7 и т.д. 3. Затем программа генерирует своё случайное семизначное число при помощи процедуры random. 4. Аналогично пункту 2 программа разбивает на цифры своё сгенерированное число.

Ответы на вопрос

1 Вариант (с процедурой)
program raf105;
var
a,b: array of integer;
i,x: integer;
procedure Divide7(x:integer; arr:array of integer);
begin
arr[0]:= x div 1000000;
arr[1]:= (x div 100000) mod 10;
arr[2]:= (x div 10000) mod 10;
arr[3]:= (x div 1000) mod 10;
arr[4]:= (x div 100) mod 10;
arr[5]:= (x div 10) mod 10;
arr[6]:= x mod 10;
end;
begin
SetLength(a,7);
SetLength(b,7);
writeln('Добро пожаловать в игру "Лотерея"!');
write('Введите семизначное число: ');
readln(x);
writeln;
Divide7(x,a);
x:= random(1000000,9999999);
Divide7(x,b);
write('Введённые числа: ');
for i:=0 to 6 do
write(a[i],' ');
writeln;
write('Сгенерированные числа: ');
for i:=0 to 6 do
write(b[i],' ');
end.
2 Вариант (без процедуры)
program raf105;
var
a,b: array[1..7] of integer;
i,x: integer;
begin
writeln('Добро пожаловать в игру "Лотерея"!');
write('Введите семизначное число: ');
readln(x);
writeln;
a[1]:= x div 1000000;
a[2]:= (x div 100000) mod 10;
a[3]:= (x div 10000) mod 10;
a[4]:= (x div 1000) mod 10;
a[5]:= (x div 100) mod 10;
a[6]:= (x div 10) mod 10;
a[7]:= x mod 10;
x:= random(1000000,9999999);
b[1]:= x div 1000000;
b[2]:= (x div 100000) mod 10;
b[3]:= (x div 10000) mod 10;
b[4]:= (x div 1000) mod 10;
b[5]:= (x div 100) mod 10;
b[6]:= (x div 10) mod 10;
write('Введённые числа: ');
for i:=1 to 7 do
write(a[i],' ');
writeln;
write('Сгенерированные числа: ');
for i:=1 to 7 do
write(b[i],' ');
end.
PascalABC 3.4.2



Код игры "Лотерея" на языке Паскаль:
goprogram Lottery;
var
userNum, compNum, tempNum: integer;
userDigits, compDigits: array[1..7] of integer;
i, j, count: integer;
begin
randomize; // инициализация генератора случайных чисел
writeln('Добро пожаловать в игру "Лотерея"!');
writeln('Введите любое целое семизначное число:');
readln(userNum);
// разбиваем число пользователя на цифры
tempNum := userNum;
for i := 7 downto 1 do
begin
userDigits[i] := tempNum mod 10;
tempNum := tempNum div 10;
end;
// генерируем случайное семизначное число
compNum := random(10000000);
// разбиваем число компьютера на цифры
tempNum := compNum;
for i := 7 downto 1 do
begin
compDigits[i] := tempNum mod 10;
tempNum := tempNum div 10;
end;
// выводим числа на экран
writeln('Ваше число:', userNum);
writeln('Число компьютера:', compNum);
// подсчитываем количество совпадений цифр
count := 0;
for i := 1 to 7 do
for j := 1 to 7 do
if userDigits[i] = compDigits[j] then
count := count + 1;
// определяем результат игры
if count = 7 then
writeln('Поздравляем! Вы выиграли главный приз!')
else if count >= 4 then
writeln('Вы выиграли! Количество совпадений цифр: ', count)
else
writeln('К сожалению, вы проиграли. Попробуйте ещё раз!');
readln;
end.
Примечание: в коде используется генератор случайных чисел, который инициализируется командой randomize
. Это не самый надежный способ генерации случайных чисел, но для целей данной игры достаточно. Если нужно получить более криптографически безопасные случайные числа, нужно использовать специальные библиотеки или сервисы.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili