![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Tauka |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 28 Репутация: ![]() ![]() ![]() |
Есть такие задачки:
Заданы координаты двух клеток на шахматной доске (x1,y1) i (x2,y2) a)проверить будут ли они одного цвета б) если на них разместить ферзей, будут ли они бить друг друга в) если на них разместить коней, будут ли они бить друг друга Спасибо за внимание! ![]() -------------------- С уважением,
Таука. |
VelarThind |
![]()
Сообщение
#2
|
Гость ![]() |
Ну тут не очень сложно. Там есть закономерность, если четность-нечетность совпадает, например у первой (1;5), второй (2;4) то они будут одного цвета, т.к. у одной оба числа четны у другой оба нечетны(так же если (1;2) и (3;8)), а вот если будет (3;5) и (4;7) то и цвет разный, т.к. нет пар у обоих. (а)
|
VelarThind |
![]()
Сообщение
#3
|
Гость ![]() |
Вот кое-что набил.
Код var x1_,x2_,y1_,y2_:byte; procedure ProverKa1(x1, x2, y1, y2 : byte); begin x1 := (x1 mod 2) + (y1 mod 2); x2 := (x2 mod 2) + (y2 mod 2); if (x1=x2) or (x1-x2=2) or (x1-x2=-2) then writeln('a) ODNOGO CVETA') else writeln('a) rasnogo'); end; procedure ProverKa2(x1, x2, y1, y2 : byte); begin if (x1 = x2) or (y1 = y2) then writeln('b) BIET') else if (x1 - y1) = (x2 - y2) then writeln('b) BIET') else if (x1 + y1) = (x2 + y2) then writeln('b) BIET') else writeln('b) Ne biet'); end; procedure ProverKa3(x1,x2,y1,y2 : byte); begin if (x1 - x2 = 1) and (y1 - y2 = -2) then writeln('c) BIET') else if (x1 - x2 = -1) and (y1 - y2 = -2) then writeln('c) BIET') else if (x1 - x2 = -2) and (y1 - y2 = -1) then writeln('c) BIET') else if (x1 - x2 = -2) and (y1 - y2 = 1) then writeln('c) BIET') else if (x1 - x2 = -1) and (y1 - y2 = 2) then writeln('c) BIET') else if (x1 - x2 = 1) and (y1 - y2 = 2) then writeln('c) BIET') else if (x1 - x2 = 2) and (y1 - y2 = 1) then writeln('c) BIET') else if (x1 - x2 = 2) and (y1 - y2 = -1) then writeln('c) BIET') else writeln('c) Ne biet'); end; begin readln(x1_,x2_,y1_,y2_); ProverKa1(x1_,x2_,y1_,y2_); ProverKa2(x1_,x2_,y1_,y2_); ProverKa3(x1_,x2_,y1_,y2_); readln; end. Можно и через масивы, но что-то потянуло на математику. VelarThind, теги [CОDE][/CОDE] для кого сделаны? Сообщение отредактировано: volvo - 8.04.2005 20:01 |
trminator |
![]()
Сообщение
#4
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
По-моему, ProverKa3 можно упростить примерно так:
Код begin if abs(x1 - x2) * abs(y1 - y2) = 2 then writeln('c) BIET') end; -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:23 |