Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ericio

Arquivo em c

Recommended Posts

Considere n cidades numeradas de 0 a n - 1 que estão interligadas por uma série de estradas de mão única. As ligações entre as cidades são representadas pelos elementos de uma matriz quadrada Lnxn, cujos elementos Lij assumem o valor 1 ou 0, conforme exista ou não estrada direta que saia da cidade i e chegue à cidade j. Assim, os elementos da linha i indicam as estradas que saem da cidade i, e os elementos da coluna j indicam as

estradas que chegam à cidade j. Por convenção lii = 1. A gura mostra um exemplo para n = 5.

 

Minha duvida é: como faço para criar uma função que carrega os dados desta matriz (L) diretamente de um arquivo de texto.

 

:blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

O exercício é igual a este EXERCICIO N° 15

 

Clique aquiwww.ime.usp.br/~macmulti/exercicios/matrizes/index.htm

 

Com uma figura para n=4.

Não entendi muito bem como será gerada a matriz...

<_<

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK, mas ainda precisa saber como vai estar salva a matriz no arquivo de texto. Tu vai pegar e escrever lá na mão

1 0 0 0 1 0

0 1 0 1 0 0 etc...

 

Ou tu vai usar uma outra ferramenta (seja uma funcionalidade do teu programa ou um executável à parte) e utilizar escrita binária pra salvar essa matriz?

 

Imagino que seja a primeira forma, nesse caso tu vai criar uma matriz n por n (ou seja, int matriz[n][n]), vai abrir o arquivo e usar uns fscanf's pra ler os dados pra matriz.

Tenta fazer algo aí e posta aqui pra mim saber onde te ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK, mas ainda precisa saber como vai estar salva a matriz no arquivo de texto. Tu vai pegar e escrever lá na mão

1 0 0 0 1 0

0 1 0 1 0 0 etc...

 

Ou tu vai usar uma outra ferramenta (seja uma funcionalidade do teu programa ou um executável à parte) e utilizar escrita binária pra salvar essa matriz?

 

Imagino que seja a primeira forma, nesse caso tu vai criar uma matriz n por n (ou seja, int matriz[n][n]), vai abrir o arquivo e usar uns fscanf's pra ler os dados pra matriz.

Tenta fazer algo aí e posta aqui pra mim saber onde te ajudar

 

void Carregar_Matriz(int M[10][10])
{
	int i,j;

	arq1=fopen("arquivo1.txt","r");

	if(!arq1)
	{

		printf(" Nao foi possivel abrir o arquivo !\n");

		exit(1);
	}

	while (!feof(arq1))/* Enquanto não chegar ao final do arquivo le matriz */
	{
		for(i=0;i<10;i++)
		{

			for(j=0;j<10;j++)
			{

				fscanf(arq1,"%c",&M[i][j]);
			}
		}
	}

    fclose(arq1);
}

void Exibir_Matriz(int M[10][10])
{
	
	int i,j;

	for (i=0; i<10; i++)
	{
	
		for(j=0; j<10; j++)
		{
		
			printf("%c", M[i][j]);
	
		}

		printf( "\n" );
	}

Ok ,carregando uma matriz 10x10 de um arquivo de texto.

Agora,dado k, determinar quantas estradas saem e quantas chegam à cidade k.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para determinar essas estradas, você deverá fazer um outro loop.

Esse loop irá percorrer as colunas da sua matriz usando M[k], onde i é a variável do loop. k permanecerá constante de acordo com o que foi digitado.

Em cada repetição você deverá verificar se o elemento M[k] é igual a 1, escrevendo que a cidade i possui ligação com a cidade k.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.