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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2013, 16:20   #1
krolik_21
 
Регистрация: 24.03.2013
Сообщений: 8
По умолчанию Шахматная головоломка о восьми Ферзях ( Turbo Pascal )

Помогите сделать курсовую рабрту

Содеррание

1. Введение
2. Обзор элементов языка программирования
3. Решение задачи
3.1. Общая постановка задачи
3.2. Описание программ комплекса
3.3. Укрупненная Блок схема комплекса
3.4. Таблица идентификаторов комплекса
3.5. Описание наборов данных
3.6. Структура записи в файл
3.7. Постановка Процедур
4. Комплекс технических средств для решения задачи
5. Инструкция пользователю при работе с программой
6. Заключение
7. Приложение

Постановка задачи
Шахматная головоломка о восьми Ферзях. Можно ли поставить на пустой шахматной доске восемь ферзей так, чтобы ни один из них не «атаковал» другого, т.е. никакие два ферзя не стояли бы на одном и том же столбце или на одной и той же строке или на одной и той же диагонали?

Задача
Код:
program Queens;
uses wincrt;
  const N=8;
  type Index=1..N;
        Rasstanovka=array [Index] of 0..N;
  var X:Rasstanovka;
      Count:word;

  function P(var X:Rasstanovka;k,y:Index):boolean;
    var i:Index;
  begin
    i:=1;
    while (i<k)and(y<>X[i])and(abs(k-i)<>abs(y-X[i])) do inc(i);
    P:=i=k
  end;


  procedure Backtracking(k:Index);
    var i,y,i2:Index;  j:byte;
        a:array [1..8,1..8] of byte;
  begin
    for y:=1 to N do
      if P(X,k,y) then
         begin
           X[k]:=y;
           if k=N then
             begin
               writeln(count+1,' растановка');
               for i:=1 to N do write(X[i]);
               writeln;
                for i:=1 to 8 do
                   for j:=1 to 8 do
                       a[i,j]:=0;
               J:=0;
               for i:=1 to n do BEGIN inc(j); a[x[i],j]:=1; END;
               for i:=1 to 8 do
                   begin
                   for j:=1 to 8 do
                       write(a[i,j]:3);
                   writeln;
                   end;
               writeln('To Enter...');
               readln;
               writeln;
               inc(Count);
               if count=8 then halt;
             end;
           Backtracking(k+1)
         end

  end;
begin
clrscr;
  Count:=0;
  writeln('Растановка ',N,' спосабами:');
  Backtracking(1);
end.

Последний раз редактировалось Stilet; 30.03.2013 в 16:47.
krolik_21 вне форума Ответить с цитированием
Старый 30.03.2013, 17:25   #2
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Что-то сейчас курсовые лёгкие. У меня такая программка была простой лабораторной на первом курсе. Правда мне нужно было сделать всё это оконным приложением с возможностью визуализации всех вариантов расстановки.
У вас есть какие-то конкретные вопросы, или вы хотите чтобы сделали за вас?
RomiKon вне форума Ответить с цитированием
Старый 30.03.2013, 17:38   #3
krolik_21
 
Регистрация: 24.03.2013
Сообщений: 8
По умолчанию

ну можно и за меня...)))
krolik_21 вне форума Ответить с цитированием
Старый 30.03.2013, 18:03   #4
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Я вообще-то серьёзно спросил. Если есть вопросы задавайте, а если сами думать не хотите, то в ветку "фриланс" вам дорога.
RomiKon вне форума Ответить с цитированием
Старый 30.03.2013, 18:10   #5
krolik_21
 
Регистрация: 24.03.2013
Сообщений: 8
По умолчанию

я не то что думать не хочу просто мне времени не хватит его сделать... если тебя не затруднит не мог бы подсобить!
krolik_21 вне форума Ответить с цитированием
Старый 30.03.2013, 19:12   #6
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Skype: shulz164
RomiKon вне форума Ответить с цитированием
Старый 31.03.2013, 09:35   #7
krolik_21
 
Регистрация: 24.03.2013
Сообщений: 8
По умолчанию

я сегодня вечером зайду и добавлю тебя
krolik_21 вне форума Ответить с цитированием
Старый 31.03.2013, 11:50   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Я бы добавил пункт:
3.2. Состав программного комплекса.
а нынешние пункты от 3.2 и дальше переименовал в 3.3...
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача turbo pascal на тему: файлы с произвольным доступом в Pascal ExCiTeC Паскаль, Turbo Pascal, PascalABC.NET 0 28.01.2013 20:36
Turbo Pascal и Free Pascal , в чем разница? antoxann Паскаль, Turbo Pascal, PascalABC.NET 31 09.11.2011 07:52
Задача о восьми ферзях на Nemerle natalya_57 Помощь студентам 3 08.07.2010 11:36
Pascal ABC - это просто головоломка! Mr_Liahkim Фриланс 9 03.02.2010 19:22
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28