Lista de discussão de MAC 2301


[Prévia por Data][Próxima por Data]
[Prévia por Assunto][Próxima por Assunto]
[Índice por Data][Índice por Assunto]
[Envie uma nova mensagem para a lista] [Responda esta mensagem]

RE: Entrada de Dados



Caros Alunos,
      Para que vocês não digam que eu não quero ajudá-los, vou
rsponder com código uma das dúvidas do André:

Alfredo

 > Professor ve se vc pode me ajudar. Não lembro direito como se manipula
 > arquivos de texto em C, lembro só que tenho que usar fopen, fscanf,
 > fprintf.... qualquer dica é lucro.

Ai vai um trecho do programa da Marina:

void main(int argc, char **argv) {
   int i, j, tmp, k, n;
   FILE *arquivo;
   no *raiz;
   char *bits, *vinicial, *vfinal;

   if (argc < 2) {
      printf("Uso: %s <arquivo>\n", argv[0]);
      exit(0);
   }   

   /** Abertura do arquivo de entrada **/
   arquivo = fopen(argv[1], "r");

   if (arquivo == NULL) {
      printf("Erro na abertura do arquivo\n");
      exit(0);
   }

   /** Leitura do k **/
   fscanf(arquivo, "%d", &k);
 
   /** Leitura da raiz da arvore **/
   bits = (char *) malloc(sizeof(char) * k + 1);
   fscanf(arquivo, "%s", bits);
....

   for (i = 0; i < n; i++)
      for (j = 0; j < n; j++) {
         fscanf(arquivo, "%d", &tmp);
         A[i][j] = tmp;

 > Quanto a segunda parte do EP, veja se minha solução tem futuro. Para a
 > aresta 001-011 por exemplo, eu abro a matriz de dados e vejo para o no 000
 > (1.a coluna) suas mensagens, para tanto crio sua arvore(com 000 como raiz)
 > e vejo se nela esta a aresta 001-011, neste caso e positivo o
 > resultado.Pego entao a sub-arvore com raiz 011(nó inferior da aresta),
 > confiro então para cada mensagem enviada se o nó destino esta contido nesta
 > sub-arvore, em caso positivo somo o tamanho da mensagem.
Sim, tem bastante futuro

 > Algumas dificuldades encontradas: Como criar uma matriz em alocaçâo
 > dinamica.
Não é difícil. Mas se você fizer uma matriz fixa a Marina não vai descontar
mais do que 2 pontos...

 > O Algoritmo de busca e meio chatinho....
Chatinho sim, difícil não...


Alfredo