|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
21.12.2011, 20:08 | #1 |
Пользователь
Регистрация: 19.12.2011
Сообщений: 29
|
не знаю как исправить ошибку
program eight_queens;
{$APPTYPE CONSOLE} const max=7; m=2*max; type vector=array[0..max]of word; var solution:vector; //содержит номер занятой диагонали Q_row:array[0..max]of boolean; //занятая горизонталь Q_up_diag:array[-max..max]of boolean;//занятая вертикаль Q_down_diag:array[0..m]of boolean;//занятая диагональ done:boolean;// row,col,diag:integer;// total,count:word; procedure remove_queen;//удаление ферзя("обнуление" флаговых массивов) begin Q_row[row]:=false; Q_down_diag[col+row]:=false; Q_up_diag[col-row]:=false; end; procedure backtrack;// cобственно, перебор begin dec(col); row:=solution[col]; while (row=max)and(col>0)do begin remove_queen; dec(col); row:=solution[col]; end; if row<max then begin remove_queen; inc(row); end else done:=true; end; procedure print; begin write(′ANSWER ′,count:2,′: ′); write(′[′); for col:=0 to max do write(solution[col]:3); writeln(′]′); end; begin total:=0; count:=0; done:=false; for row:=0 to max do Q_row[row]:=false; for diag:=-max to max do Q_up_diag[diag]:=false; for diag:=0 to m do Q_down_diag[diag]:=false; row:=0; col:=0; repeat if Q_row[row]or Q_down_diag[col+row]or Q_up_diag[col-row] then if row=max then backtrack else inc(row) else begin solution[col]:=row; Q_row[row]:=true; Q_down_diag[col+row]:=true; Q_up_diag[col-row]:=true; if col=max then begin inc(total); inc(count); print; remove_queen; backtrack; end else begin inc(col); row:=0; end; end; until done; writeln; writeln(total);// количество решений readln; end. Почему выдает ошибку в строке "{$APPTYPE CONSOLE} " Invalid compile directive??? Помогите пожалуйста... |
21.12.2011, 20:11 | #2 |
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
Это директива компилятора для дельфи, если запускаете в паскале просто уберите эту строку.
|
22.12.2011, 09:55 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
1) Название темы *ОПЯТЬ* не соответствует правилам форума.
2) Код *ОПЯТЬ* не оформлен тегами! ЗАКРЫТО |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу найти ошибку... хотя я ее нашел... но не знаю как исправить))) ( удаление строки из файла) | dykatob | Общие вопросы C/C++ | 0 | 03.06.2011 10:42 |
Как исправить ошибку | yana33311 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 17.04.2011 21:07 |
Ошибка вроде простая, но не знаю, как её исправить | mobilitialex | Общие вопросы Delphi | 3 | 15.04.2011 12:51 |
Допущена ошибка,не знаю как исправить | sSilen | Помощь студентам | 8 | 08.01.2011 20:56 |
Как исправить ошибку? | True_girl | Помощь студентам | 0 | 19.04.2010 22:47 |