activado Posted December 10, 2007 at 06:58 PM Report Share #153438 Posted December 10, 2007 at 06:58 PM Ola a todos. Gostava que me ajudassem no seguinte ponto: como hei-de fazer para criar uma matriz n*m , em que ao inicializar o compilador pergunte o numero de linhas e de colunas e esta seja feita de acordo com esse numero introduzido.(Estou a trabalhar na resoluçao do problema do Caixeiro Viajante ) Agradecia desde ja a ajuda Abraços a todos Link to comment Share on other sites More sharing options...
Rui Carlos Posted December 10, 2007 at 07:26 PM Report Share #153444 Posted December 10, 2007 at 07:26 PM Se estás a usar c99, basta pedires ao utilizador as dimensões antes de inicializares a matriz, e colocas esses valores numa variável que indica a sua dimensão. Em C ANSI, vais precisar de usar o malloc (ou algo parecido). Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
activado Posted December 10, 2007 at 08:58 PM Author Report Share #153476 Posted December 10, 2007 at 08:58 PM estou a usar ANSI. Mas como escreve o codigo para essa matriz? Sabes mais dicas boas para utilizar no caixeiro viajante? Link to comment Share on other sites More sharing options...
Warrior Posted December 10, 2007 at 09:06 PM Report Share #153479 Posted December 10, 2007 at 09:06 PM Queres que o compilador crie com esse tamanho? Faz uns #define's no inicio do código para definir o seu tamanho. O que o Rui Carlos sugeriu foi para criar as matrizes em runtime, o que é que pretendes afinal? Link to comment Share on other sites More sharing options...
activado Posted December 10, 2007 at 09:22 PM Author Report Share #153485 Posted December 10, 2007 at 09:22 PM criar uma matriz, de modo a o compilador quantas colunas e linhas deseja, e o compilador assim o fazer, ou seja, criar uma matriz que seja do tamanho que depois o utilizador introduza Link to comment Share on other sites More sharing options...
Triton Posted December 10, 2007 at 09:25 PM Report Share #153488 Posted December 10, 2007 at 09:25 PM criar uma matriz, de modo a o compilador quantas colunas e linhas deseja, e o compilador assim o fazer, ou seja, criar uma matriz que seja do tamanho que depois o utilizador introduza Usas o malloc() para alocar a quantidade de memória que necessitas. <3 life Link to comment Share on other sites More sharing options...
activado Posted December 10, 2007 at 09:47 PM Author Report Share #153499 Posted December 10, 2007 at 09:47 PM ou seja, pelo que percebi, crio uma matriz onde as variaveis de tamanho da coluna e da linha seja colocado pelo utilizador aquando de o compilador o perguntar. e para reservar memoria para tal uso a funçao malloc?? Desculpa pela insistencia 🙂 Link to comment Share on other sites More sharing options...
Warrior Posted December 10, 2007 at 09:56 PM Report Share #153507 Posted December 10, 2007 at 09:56 PM Ok, o teu problema é não saber bem o que é o compilador. O compilador é o programa responsável por transformar o teu código fonte num executável. Depois, o executável é corrido, e na interacção que se segue o compilador é deixado de lado, porque é uma interacção entre o teu programa e o utilizador. O compilador é chamado bem antes. O que tu pretendes é que o teu programa consiga alocar a memória dinamicamente, e para isso usas o malloc(). Por exemplo: int *a; a=(int*)malloc(4*(sizeof(int))); Cria um vector de inteiros com 4 posições. (O mesmo que fazer int a[4]) Mas repara que deste modo o valor "4" poderia ter sido lido antes pelo utilizador. O que tu agora pretendes é expandir isto para uma matriz. Para isso, lembra-te que uma matriz é um vector de vectores. (e que um vector é um apontador para um inteiro) Link to comment Share on other sites More sharing options...
activado Posted December 10, 2007 at 11:21 PM Author Report Share #153541 Posted December 10, 2007 at 11:21 PM So mais uma duvida: vou por este caso: tenho um conjunto de cidades e de distancias entre elas. Tendo a respectiva formula factorial das combinaçoes posiveis, como heide fazer para que o programa me diga qual a combinaçao que deu menor numero?(ou seja, distancia menor percorrida entre todas as cidades, voltando de onde partiu, e sem passar duas vezes na mesma) Link to comment Share on other sites More sharing options...
Warrior Posted December 10, 2007 at 11:25 PM Report Share #153544 Posted December 10, 2007 at 11:25 PM Depois de teres o dfs feito é só guardar qual o melhor resultado até ao momento. Se te interessar o caminho, tens que guardar o melhor caminho até ao momento e o resultado, caso contrário basta-te uma variável acumuladora. Não é muito fácil de explicar sem saber em que fase estás. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now