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

Компьютер генерирует четырехзначное число. Цифры в числе не должны повторяться! 0 может стоять на первом месте. Игрок делает
ходы, чтобы узнать это число. В ответ на каждый ход компьютер
показывает число отгаданных цифр, стоящих на своих местах
(число быков) и число отгаданных цифр, стоящих не на своих
местах (число коров). Игра продолжается до тех пор, пока число не
будет угадано. При это необходимо считать количество попыток,
которые потребовалось сделать игроку для угадывания числа,

Показать ответ
Ответ:
оркп
оркп
25.01.2021 18:25

Программа Pascal:

var ag,x,x1,s1,s2,sp:integer;

a1,a2:array[0..3] of integer;

begin

 

 while (a1[0]=a1[1]) or (a1[1]=a1[2]) or (a1[2]=a1[3]) or (a1[3]=a1[0]) or (a1[1]=a1[3]) or (a1[2]=a1[0]) do

 begin

 x:=random(8999)+1000;

 ag:=10000;

 for var i1:=0 to 3 do

   begin

   a1[i1]:= (x mod ag) div (ag div 10);

   ag:=ag div 10;

   end;

 end;

 

 while x<>x1 do

   begin

   x1:=0;

   while (x1<1000) or (9999<x1) do

     begin

     writeln; write('Введите 4ехзначное число = '); readln(x1);

     end;

   

   ag:=10000;

   for var i2:=0 to 3 do

     begin

     a2[i2]:= (x1 mod ag) div (ag div 10);

     ag:=ag div 10;

     end;

   

   s1:=0;

   if (a2[0]=a1[0]) then s1:=s1+1;

   if (a2[1]=a1[1]) then s1:=s1+1;

   if (a2[2]=a1[2]) then s1:=s1+1;

   if (a2[3]=a1[3]) then s1:=s1+1;

   writeln('Число быков = ',s1);

   

   s2:=0;

   if (a2[0]=a1[0]) or (a2[0]=a1[1]) or (a2[0]=a1[2]) or (a2[0]=a1[3]) then s2:=s2+1;

   if (a2[1]<>a2[0]) or (a2[1]<>a2[2]) or (a2[1]<>a2[3]) then

     if (a2[1]=a1[0]) or (a2[1]=a1[1]) or (a2[1]=a1[2]) or (a2[1]=a1[3]) then s2:=s2+1;

   if (a2[2]<>a2[0]) or (a2[2]<>a2[1]) or (a2[2]<>a2[3]) then

     if (a2[2]=a1[0]) or (a2[2]=a1[1]) or (a2[2]=a1[2]) or (a2[2]=a1[3]) then s2:=s2+1;

   if (a2[3]<>a2[0]) or (a2[3]<>a2[1]) or (a2[3]<>a2[2]) then

     if (a2[3]=a1[0]) or (a2[3]=a1[1]) or (a2[3]=a1[2]) or (a2[3]=a1[3]) then s2:=s2+1;

   writeln('Число коров = ',s2-s1);

   

   sp:=sp+1;

   writeln('Попытка ',sp);

   end;

 writeln; write('ПОЗДРАВЛЯЮ, ВЫ УГАДАЛИ ЧИСЛО!');

 

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота