IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Записи, ... и только записи
DD
сообщение 21.05.2005 20:56
Сообщение #1


Гость






Программа:

type поле=record верт:(a,b,c,d,e,f,g,h);
гориз: 1..8
end;
Описать логическую функцию ходферзя (n1,n2), проверяющая, может ли ферзь за один ход перейти с поля n1 шахматной доски на поле n2

код:

Код


Program laba4;

type pole=record vert:(a,b,c,d,e,f,g,h);
                gor: 1..8;
                end;

var
n1,n2 :pole;

function hodferzya(n1,n2:pole) : boolean;
begin

if ((n1.vert)=(n2.vert)) and (n1.gor=n2.gor)
then hodferzya:=true
else hodferzya:=false;
end;

begin
readln(n1,n2);
case n1 of
hodferzya(n1,n2);
end.



что не то? поправьте.. как всё же правильно описать условие проверки хода ферзя?
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Дож
сообщение 22.05.2005 10:06
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

Репутация: -  1  +


Ах да!
Цитата
как всё же правильно описать условие проверки хода ферзя?

А я думал он просит разобраться с компиляцией проги. huh.gif


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
DD
сообщение 22.05.2005 19:27
Сообщение #3


Гость






Ну вот, вроде что-то сделал.. даже работает.. Кстати, суммировать правильно, но надо было ещё и вычитание делать.. так как ферзь может и по другой диагонали ходить...

Единственный вопрос остался, а вот горизонталь никак в (a,b,c,d,e,f,g,h) переделать нельзя?

Код


Program laba4;
Uses Crt;

type         pole=record
             vert: 1..8;
              gor: 1..8;
              end;

var
n1,n2 :pole;

function hodferzya(n1,n2:pole) : boolean;

begin
   If (n1.vert=n2.vert) or (n1.gor=n2.gor) or
   (abs(n1.vert-n1.gor)=abs(n2.vert-n2.gor)) or
   (abs(n1.vert+n1.gor)=abs(n2.vert+n2.gor))
   then hodferzya:=true
   else hodferzya:=false;
   If (n1.vert=n2.vert) and (n1.gor=n2.gor)
   then hodferzya:=false
end;

begin
clrscr;
Writeln ('Расположение Ферзя');
Writeln('Введите вертикальную координату (a,b,c,d,e,f,g,h)');
readln(n1.vert);
Writeln('Введите горизонтальную координату (1..8)');
readln(n1.gor);
writeln;
Writeln ('Куда переместить Ферзя?');
Writeln('Введите вертикальную координату (a,b,c,d,e,f,g,h)');
readln(n2.vert);
Writeln('Введите горизонтальную координату (1..8)');
readln(n2.gor);
writeln;
If hodferzya(n1,n2) then writeln('Возможный ход!') else writeln('Не возможный ход!');
readln;
end.

 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 26.07.2025 5:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"