Форум программистов, компьютерный форум CyberForum.ru

Латинский квадрат - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.79
Серёжик
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 14
02.12.2009, 03:35     Латинский квадрат #1
Помогите составить программу генерации построения латинского квадрата.
Что такое латинский квадрат:
Латинским квадратом называется квадратная матрица m x n (m вводится) при чем элементами лат. кв. есть целыми числами от 1 до n каждое из чисел не повторяются. В каждой строке и столбце матрицы каждое из чисел передвигают 1 раз.
Миниатюры
Латинский квадрат  
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
02.12.2009, 11:39     Латинский квадрат #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
int main()
{
    int **mas, n, i, j;
    cout<<"Vvod n= ";
    cin>>n;
    mas=new int*[n];
     for(i=0; i<n; i++)
       mas[i]=new int[n];
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            mas[i][j]=(i+j)%n+1;
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
            cout<<mas[i][j]<<" ";
        cout<<endl;
    }  
  return 0;
}
Предупреждаю, что миниатюру не смотрел.
Shtolz
 Аватар для Shtolz
5 / 5 / 0
Регистрация: 10.10.2008
Сообщений: 138
07.04.2010, 21:12     Латинский квадрат #3
а можно еще рекурсивный алгоритм т.е. алгоритм с возвратом типа задачи "о ходе коня"
OKS_by_V
1 / 1 / 0
Регистрация: 15.05.2011
Сообщений: 78
01.12.2012, 13:25     Латинский квадрат #4
Цитата Сообщение от valeriikozlov Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
int main()
{
    int **mas, n, i, j;
    cout<<"Vvod n= ";
    cin>>n;
    mas=new int*[n];
     for(i=0; i<n; i++)
       mas[i]=new int[n];
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            mas[i][j]=(i+j)%n+1;
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
            cout<<mas[i][j]<<" ";
        cout<<endl;
    }  
  return 0;
}
Предупреждаю, что миниатюру не смотрел.
а по идее трудно построить ортогональный сгенерированный квадрату?

Не мог бы ты мне помочь очень надо просто
tatarin4555
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 155
Записей в блоге: 1
17.06.2013, 12:11     Латинский квадрат #5
Цитата Сообщение от OKS_by_V Посмотреть сообщение
а по идее трудно построить ортогональный сгенерированный квадрату?

Не мог бы ты мне помочь очень надо просто
выводит вот такую ошибку(
1>------ Построение начато: проект: 4лаб, Конфигурация: Debug Win32 ------
1>Построение начато 17.06.2013 12:10:33.
1>InitializeBuildStatus:
1> Обращение к "Debug\4лаб.unsuccessfulbuild".
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1> 4лаб.cpp
1>d:\учеба\2семестр\лабы с++\4лаб\4лаб\4лаб.cpp(2): fatal error C1083: Не удается открыть файл включение: iostream.h: No such file or directory
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.46
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
17.06.2013, 12:16     Латинский квадрат #6
#include <iostream.h> заменить на #include <iostream>
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,865
Записей в блоге: 2
Завершенные тесты: 1
17.06.2013, 12:18     Латинский квадрат #7
Цитата Сообщение от tatarin4555 Посмотреть сообщение
выводит вот такую ошибку
вместо
C++
1
#include <iostream.h>
напишите
C++
1
2
#include <iostream>
using namespace std;
чтобы остальной код не менять.

А вообще, лучше почитать книжку
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.06.2013, 12:30     Латинский квадрат #8
Цитата Сообщение от OKS_by_V Посмотреть сообщение
а по идее трудно построить ортогональный сгенерированный квадрату?
имеются некоторые рекурсивные алгоритмы. например, в книге
Холл. Комбинаторика
tatarin4555
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 155
Записей в блоге: 1
17.06.2013, 13:26     Латинский квадрат #9
Цитата Сообщение от Croessmah Посмотреть сообщение
вместо
C++
1
#include <iostream.h>
напишите
C++
1
2
#include <iostream>
using namespace std;
чтобы остальной код не менять.

А вообще, лучше почитать книжку
спасибо, а как сделать чтоб не закрывалась программа в конце сама? вроде стоит ретурн 0 а все равно ответ не видишь сама закрывается
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,865
Записей в блоге: 2
Завершенные тесты: 1
17.06.2013, 13:37     Латинский квадрат #10
Цитата Сообщение от tatarin4555 Посмотреть сообщение
все равно ответ не видишь сама закрывается
Окно появляется на доли секунды и исчезает
tatarin4555
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 155
Записей в блоге: 1
17.06.2013, 13:44     Латинский квадрат #11
я уже нашел) system("pause");

Добавлено через 1 минуту
Цитата Сообщение от valeriikozlov Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
int main()
{
    int **mas, n, i, j;
    cout<<"Vvod n= ";
    cin>>n;
    mas=new int*[n];
     for(i=0; i<n; i++)
       mas[i]=new int[n];
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            mas[i][j]=(i+j)%n+1;
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
            cout<<mas[i][j]<<" ";
        cout<<endl;
    }  
  return 0;
}
Предупреждаю, что миниатюру не смотрел.
А ограничения по программе есть какие нибудь? у или какое максимальное n можно ввести чтоб прога работала?
tatarin4555
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 155
Записей в блоге: 1
15.10.2013, 19:14     Латинский квадрат #12
valeriikozlov, вот когда вводишь n к примеру 11 то квадрат не получается, столбцы не совпадаю(съезжает из-за того что 2 знака) как сделать чтоб столбцы совпадали?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2014, 14:20     Латинский квадрат
Еще ссылки по теме:

C++ Разработать программу, которая формирует латинский квадрат
Судоку (латинский квадрат) C++
Комментарии к программе латинский квадрат C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
qwertun
6 / 6 / 1
Регистрация: 22.12.2012
Сообщений: 446
13.01.2014, 14:20     Латинский квадрат #13
Цитата Сообщение от tatarin4555 Посмотреть сообщение
спасибо, а как сделать чтоб не закрывалась программа в конце сама? вроде стоит ретурн 0 а все равно ответ не видишь сама закрывается
перед ретурном напиши
C++
1
system("pause");
Yandex
Объявления
13.01.2014, 14:20     Латинский квадрат
Ответ Создать тему
Опции темы

Текущее время: 16:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru