Быки и коровы - Pascal ABC
Формулировка задачи:
Решение задачи: «Быки и коровы»
textual
Листинг программы
program biki_i_korovi;//v.1.0 uses crt; var a, b: array [1..4] of integer; i,jj,ii: integer; ak:integer; procedure zag_hisl; var a: array [1..4] of integer; i, j, num: integer; flag: boolean; begin randomize; for i := 1 to 4 do begin flag := true; while flag do begin num := random(9); flag := false; for j := 1 to i - 1 do if a[j] = num then begin flag := true; break; end; end; a[i] := num; end; writeln(a); for i := 1 to 4 do b[i] := a[i]; end; procedure vvod_chisel; var num, i, io: integer; s: array[1..4] of integer; begin Writeln('vvedite 4-h znachnnoe chislo'); readln(num); s[4] := num mod 10; io := num div 10; for i := 3 downto 1 do begin s[i] := io mod 10; io := io div 10; end; for i := 1 to 4 do a[i] := s[i]; end; procedure korovi; var korovin, i: integer; begin korovin := 0; for i := 1 to 4 do begin if b[i] = a[1] then inc(korovin); end; for i := 1 to 4 do begin if b[i] = a[2] then inc(korovin); end; for i := 1 to 4 do begin if b[i] = a[3] then inc(korovin); end; for i := 1 to 4 do begin if b[i] = a[4] then inc(korovin); end; writeln('Коров=', korovin); if korovin=4 then ii:=11; end; procedure biki ; var bikin: integer; begin bikin := 0; if b[1] = a[1] then inc(bikin); if b[2] = a[2] then inc(bikin); if b[3] = a[3] then inc(bikin); if b[4] = a[4] then inc(bikin); writeln('Быков=', bikin); if bikin=4 then jj:=11; end; begin zag_hisl; writeln('Здраствуйте это супер интеллектуальная игра " Быки и коровы"'); writeln('Правила игры очень просты. '); writeln('1. Компьютер загадывает четырёхзначное число. Цифры в числе не повторяются. '); writeln('2. Вы пытаетесь это число угадать, называя наугад (и не очень) свои варианты загаданного числа. '); writeln('3. На каждую вашу попытку, компьютер Вам сообщает кое-что про соответствие между цифрами загаданного числа'); writeln(' и вашего варианта, а именно - количество "быков" и "коров": '); writeln('"Быки" - это те цифры вашего числа, расположение которых поразрядно совпадает'); writeln(' с цифрами загаданного числа; '); writeln('"Коровы" - это те цифры вашего числа, которые присутствуют в загаданном '); writeln(' числе'); writeln('Если вы поняли правила нажмите Enter '); readln; clrscr; repeat VVOD_CHISEL; BIKI; KOROVI; ak:=ak+1; if (jj=11) and (ii=11) then ak:=-1; until ak<0 ; end.
Объяснение кода листинга программы
Этот код представляет собой программу на языке Pascal ABC, которая реализует игру Быки и коровы
.
В программе используются следующие переменные:
- a, b: массивы из 4 чисел каждый, которые представляют собой возможные цифры загаданного числа.
- i, jj, ii: переменные для отслеживания количества
быков
икоров
. - ak: переменная для отслеживания общего количества цифр в загаданном числе. Процесс игры реализован через три процедуры:
- zag_hisl: эта процедура генерирует случайное четырехзначное число и проверяет, сколько цифр в вашем варианте числа совпадают с цифрами загаданного числа.
- vvod_chisel: эта процедура запрашивает у пользователя четырехзначное число и сохраняет его в массиве s.
- korovi: эта процедура подсчитывает количество
быков
икоров
в вашем варианте числа. Процедура biki: - Сначала проверяется, совпадают ли все цифры вашего варианта числа с цифрами загаданного числа. Если да, то увеличивается счетчик bikin.
- Затем проверяется, совпадают ли две цифры вашего варианта числа с цифрами загаданного числа. Если да, то увеличивается счетчик bikin.
- Аналогично проверяется совпадение трех и четырех цифр вашего варианта числа с цифрами загаданного числа. Если да, то увеличивается счетчик bikin.
- В конце процедуры выводится количество
быков
икоров
. Процедура korovi: - Эта процедура работает аналогично процедуре biki, но она проверяет только одну цифру вашего варианта числа с цифрами загаданного числа. Процедура vvod_chisel:
- Запрашивает у пользователя четырехзначное число и сохраняет его в массиве s. Процедура zag_hisl:
- Генерирует случайное четырехзначное число и сохраняет его в массиве a.
- Затем проверяет, сколько цифр в вашем варианте числа совпадают с цифрами загаданного числа.
- Если совпадают все цифры, то увеличивает счетчик zag_hisl.
- Если совпадают две или три цифры, то увеличивает счетчик zag_hisl.
- В конце процедуры выводится количество
быков
икоров
. В конце программы выводится сообщение с просьбой ввести четырехзначное число, после чего начинается цикл игры, который повторяется до тех пор, пока не будет достигнуто условие ak<0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д