Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2014, 22:20   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию Информатика, задачи на логику

Здравствуйте, помогите решить пару логических задач по информатике, я нищеброд, поэтому обращаюсь в помощь студентам, или хотя бы подскажите путь к их решению. Спасибо!)

з.ы., со второй задачей могу сам справиться, были бы это шашки, в шахматы никогда не играл, так что код не прошу, просто как это решается?

з.з.ы. Сорь, почему-то не прикрепились картинки.
Изображения
Тип файла: jpg задча 2.jpg (10.3 Кб, 123 просмотров)
Тип файла: jpg задча 5.jpg (16.9 Кб, 119 просмотров)
Тип файла: jpg задча 3.jpg (21.9 Кб, 123 просмотров)
from dark to light)

Последний раз редактировалось Алексей_2012; 20.11.2014 в 01:13.
Алексей_2012 вне форума Ответить с цитированием
Старый 20.11.2014, 00:54   #2
Jurijus123
Заблокирован
 
Регистрация: 12.11.2014
Сообщений: 120
По умолчанию

Правила в шахматах очень просты, в отличие от игры, и высчитать все вариации и компьютеру не-под силу, 40 ходов комбинаций 2^120.
Рыбка 4 очень хорошая шахматная программа, надо как можно больше высчитать вораций.

Шахматы хорошо играть развивает мозги.
Правила:

Доска 64 клетки

16 фигур черных
и белых

из них пешек 8 штук стоят в во втором ряду
пешки самого начала имеет права ходить на два один хода перед, а других случаях на один ход в перед, а берут на право и налево по диагонали
Забирая фигуру становясь на ее место, если пешка пошла на два хода и с богу стоит пешка она имеет право взять это называется взять на проходе идешь в лево и в право, но заберешь с боку, но в то момент когда пешка противника сходила на два хода и ты имеешь только один шанс взять ее,
в шахматах брать необязательно.
По бокам стоят ладьи ходят они горизонтально и вертикально,
потом стоят кони ходят буквой г единственная фигура катороя прыгает
все фигуры забирают становясь на ее место в отличии от пешки "хода на проходе"
Кон двигается на две клетки и в сторону на одну или на одну потом на две буквой г,
потом стоят слоны ходят по диагонали каждый любит свой цвет дальше стоит король и ферзь она любит свой цвет
король без ценен его охранять всеми силами
он ходит на одну клетку в любую сторону шах это когда король находится на
линии удара фигуры короля не едят, если шах то надо защитить короля забрать фигуру или переместить короля, бывает двойной шах когда две фигуры атокуют короля, мат это когда фигура отковала и некуда ходить,
Пат это ничья некуда ходить фигурам вообще белым или черным
ферзь ходит как ладья и слон самая сильная фигура.
конь может сделать вилку, на пасть сразу много фигур.
в шахматах главное мат и игра закончена,
каждая фигура имеет свою ценность
Король без ценен
пешка стоит один
конь или слон 3 очка
ладья 5
ферзь 9

Последний раз редактировалось Jurijus123; 20.11.2014 в 01:00.
Jurijus123 вне форума Ответить с цитированием
Старый 20.11.2014, 01:15   #3
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Сорь, картинки не прикрепились почему-то, грузил с телефона, так что в первом посте поправки сделал, с шахматами так и не разобрался :D
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 20.11.2014, 02:05   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
с шахматами так и не разобрался
всё очень просто.
белый слон стоит в позиции (a,b)
черный король стоит в позиции (c,d)

чёрный король бьёт все клетки, расположенные не далее одной клетки по вертикали, горизонтали (в т.ч. и наискось).
поэтому, условие, что чёрный король бьёт белого слона выглядит так:
Код:
(abs(a-c)<=1) and (abs(b-d)<=1)
белый слон перемещается только по диагоналям.
значит, разница по вертикали, должна быть равна разнице по горизонтали.
т.е. белый слон бьёт черного короля, если выполняется условие:
Код:
abs(a-c)=abs(b-d)
таким образов, условие, что одна из фигур бьёт другую:
Код:
ПодБоем := (abs(a-c)<=1) and (abs(b-d)<=1) or (abs(a-c)=abs(b-d));
если что-то не понятно, спрашивайте..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.11.2014, 12:58   #5
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

С шахматами вроде все понятно, а я хотел использовать двумерный массив, спасибо) а ч Карлсоном как быть ?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 20.11.2014, 14:43   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а ч Карлсоном как быть ?
я бы не парился, решил банальным перебором.
числа 4-х значные, перебор всех чисел от 1023 до 9876,
в цикле проверяем
1) что все цифры числа разные
2) что каждое из заданных Мылышом значений даёт ровно нужное число совпадений.

если совпало, то увеличиваем счётчик подходящих чисел.
вот и всё.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.11.2014, 00:10   #7
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Про малыша и карлсона примерно так:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,count:word;
        s:string;
begin
                    count:=0;
for i:=1023 to 9876 do
begin
  s:=inttostr(i);
      if (s[1]<>s[2]) and  (s[2]<>s[3]) and (s[3]<>s[4]) then
      Inc (count);
end;

ShowMessage(IntToStr(count));

end;

end.
Получилось 6539, прав ли я?)

Спасибо!


А как с роботом задачи решить?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 21.11.2014, 03:54   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Во-первых, неправильная проверка на различность всех цифр (например, 1 и 4 цифра одинаковы, а число проверку пройдет). Во-вторых, а где подсчет совпадений для имеющихся попыток Малыша?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 21.11.2014, 08:38   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Алексей_2012
Получилось 6539, прав ли я?)
Нет, не прав.
Почему, смотри пост выше (с) BDA

Если что-то непонятно - спрашивай.

добавлено через 22 минуты
Кстати, помощь в написании процедуры проверки чисел должно помочь знание, что Малыш и Карлсон играли в игру,
известную как "Быки и коровы". Погуглите, найдёте решения по проверке совпадений

Последний раз редактировалось Serge_Bliznykov; 21.11.2014 в 09:00.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.11.2014, 23:13   #10
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Спасибо за ответы!)


Вроде код такой будет.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,count:word;
        s:string;
begin
                    count:=0;
for i:=1023 to 9876 do
begin
  s:=inttostr(i);
      if (s[1]<>s[2]) then
       if   (s[1]<>s[3]) then
       if  (s[1]<>s[4]) then
              if  (s[2]<>s[3]) then
                   if  (s[2]<>s[4]) then
                        if  (s[3]<>s[4]) then
      Inc (count);
end;

ShowMessage(IntToStr(count));

end;

А как это проверить?
Цитата:
что каждое из заданных Мылышом значений даёт ровно нужное число совпадений.
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на логику genrix Помощь студентам 1 25.02.2014 07:56
Информатика. Visual Basic. Вычисление выражения, задачи и суммы ряда. Tyler^ Помощь студентам 0 28.09.2011 18:21
Задачи на логику. Александр95 Помощь студентам 9 14.04.2011 18:27
Тест на логику xTANATOSx Свободное общение 5 21.10.2007 16:39