Вторник, 07.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

Помогите!
TODDДата: Четверг, 06.12.2007, 06:37 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 6
Репутация: 0
Замечания: 0%
Статус: Offline
Дана шахматная доска.Доска для мини-игры стандартная:столбики намеруются большыми латинскимы буквами од'A'до'H' ряды од 1 до 8 номерацыя начинается з нижнего левого угла.Данно король и две пешки и слон (Пешки могут стоять и в последних рядах.Помогите узнать сколько фегурам угражает слон)В стандартный поток записаны 2 символа -буква и номер столбика,на прехрестье каких находится слон,у следующих трьох рядах,по 2 символа у кождому - каардинаты караля и 2 пешек соответствено.Вивести одно целое число колтчесиво фигур,которым угрожает слон,или No если слон не угрожает ни одой фигуре.
 
PavelДата: Четверг, 06.12.2007, 09:22 | Сообщение # 2
Приближенный
Группа: Модераторы
Сообщений: 210
Репутация: 17
Замечания: 0%
Статус: Offline
Где-то я это уже видел! Сейчас что-нибудь придумаю.
 
PavelДата: Четверг, 06.12.2007, 09:32 | Сообщение # 3
Приближенный
Группа: Модераторы
Сообщений: 210
Репутация: 17
Замечания: 0%
Статус: Offline
Можно сделать так:
1. Переводишь входные данные в нужный формат. Допустим, если хочешь, чтоб входные данные были типа строки, то посимвольно преобразуешь эти данные в координаты ячейки массива (шахматной доски).
2. Как-нибудь запоминаешь какая фигура стоит в ячейке, допустим числовым кодом (пешка - 1, и т.д.).
3. Потом в цикле (одномерном) двигаешься до конца доски так, как ходит слон, т.е. по диагонали. Не забывай, что двигаться надо во все четыре стороны. Т.е. будет четыре цикла.

 
snaper1993Дата: Четверг, 06.12.2007, 23:22 | Сообщение # 4
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
А зделать можите(Пожалуста)!

Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
TODDДата: Пятница, 07.12.2007, 02:27 | Сообщение # 5
Новичок
Группа: Пользователи
Сообщений: 6
Репутация: 0
Замечания: 0%
Статус: Offline
вот я пытался сделать но она не все тесты проходит.Пожалуйста исправте ошибки.Желательно сегодня до 20:00.Буду благодарен
var x,x1,x2,x3:char;
y,y1,y2,y3:integer;
k,k1,k2,k3,rez:integer;
begin
rez:=0;
readln(x,y);readln(x1,y1);readln(x2,y2);readln(x3,y3);
case x of
'A':k:=1;'B':k:=2;'C':k:=3;'D':k:=4;'E':k:=5;'F':k:=6;'G':k:=7;'H':k:=8;end;
case x1 of
'A':k1:=1;'B':k1:=2;'C':k1:=3;'D':k1:=4;'E':k1:=5;'F':k1:=6;'G':k1:=7;'H':k1:=8;end;
case x2 of
'A':k2:=1;'B':k2:=2;'C':k2:=3;'D':k2:=4;'E':k2:=5;'F':k2:=6;'G':k2:=7;'H':k2:=8;end;
case x3 of
'A':k3:=1;'B':k3:=2;'C':k3:=3;'D':k3:=4;'E':k3:=5;'F':k3:=6;'G':k3:=7;'H':k3:=8;end;
if (abs(k-k1)=(y-y1))then rez:=rez+1;
if (abs(k-k2)=(y-y2))then rez:=rez+1;
if (abs(k-k3)=(y-y3))then rez:=rez+1;
if rez=0 then writeln('NO');
if rez<>0 then writeln(rez);
end.
 
SeqularДата: Пятница, 07.12.2007, 08:03 | Сообщение # 6
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Code
Program toTODD;
Uses CRT;
Type field = record
              x, y: Byte;
              end;
Const LITERA: String = 'ABCDEFGH';

Var slon, king, pesh1, pesh2: field;
     Rez: Integer;
     s: String[2];

Begin
ClrScr;
Write('Поле, где находится слон: '); Readln(s);
slon.x := Pos(s[1],LITERA);
Val(s[2],slon.y,Rez);

Write('Поле, где находится король: '); Readln(s);
king.x := Pos(s[1],LITERA);
Val(s[2],king.y,Rez);

Write('Поле, где находится первая пешка: '); Readln(s);
pesh1.x := Pos(s[1],LITERA);
Val(s[2],pesh1.y,Rez);

Write('Поле, где находится вторая пешка: '); Readln(s);
pesh2.x := Pos(s[1],LITERA);
Val(s[2],pesh2.y,Rez);

Rez := 0;
If (abs(slon.x - king.x) = abs(slon.y - king.y)) then Inc(Rez);
If (abs(slon.x - pesh1.x) = abs(slon.y - pesh1.y)) then Inc(Rez);
If (abs(slon.x - pesh2.x) = abs(slon.y - pesh2.y)) then Inc(Rez);
If (Rez = 0) then Writeln(#13#10,'NO') else Writeln(#13#10,Rez,' угроз');
ReadKey;
End.

Вот, сделал! Даж на пару не пошел :))

Оптимизировал ввод данных.
А твоя ошибка кажется в том, что ты ABS только в одной скобки условия использовал, а нужно в обоих.


Поддерживаю также проект сообщество молодых сисадминов
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;