Ir para conteúdo
Fórum Script Brasil

Thiago10gr

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Thiago10gr

Thiago10gr's Achievements

0

Reputação

  1. Bom dia pessoal!!! não to conseguindo fazer um programa.... o exercício é esse aqui: "Escreva um programa em C usando a chamada fork() que gere a sequencia de Fibonacci no processo filho. O número da sequencia será fornecido na linha de comando. Por exemplo, se 5 for fornecido, os cinco primeiros números da sequencia devem ser exibidos pelo processo filho. O pai deve invocar a chamada wait() para esperar o filho ser concluído antes de sair do programa." até agora só consegui fazer o programa fibonacci que é a parte fácil.....não to conseguindo entender essa parte de processos se vocês puderem me ajudar e explicar... tmb não entendi o uso do wait().... se puderem ajudar ficarei muito grato!!!
  2. e ai beleza galera?! to tentando fazer um programa ke calcula o custo e exibe da rota mais barata, essa função bf é o algoritimo de bellman ford e ele retorna um vetor com o caminho mais barato de cada nó... eu ainda fiz a parte que soma a rota mais barata mas mesmo assim n ta funcionando, se algué puder me ajudar eu agradeço!!! #include <stdio.h> #include <stdlib.h> struct telemento{ int valor; struct telemento *prox; }; typedef int tgrafo[10][10]; int *bf(tgrafo *g, int v){ int k,j,i; int dist[10], pred[10], *resposta for(i=0;i<10;i++){ dist[i]= 99; pred[i] = -1; } dist[v]=0; for(k=1;k<10;k++){ for(i=0;i<10;i++){ for(j=0;j<10;j++){ if((*g)[i][j] && dist[j] > dist[i] + (*g)[i][j]){ dist[j] = dist[i] + (*g)[i][j]; pred[j]=i; } } } } for(i=0;i<10;i++){ for(j=0;j<10;j++){ if((*g)[i][j] && dist[j] > dist[i] + (*g)[i][j]){ return NULL; } } } resposta= ((int*)MALLOC(10*sizeof(int)); for(i=0;i<10;i++) resp[i] = pre[i]; return resposta } int main(){ int orig, dest, vet[10], aux1, aux2, i; float soma; tgrafo g1 = {{0,600,550,600,700,0,500,550,0,0}, {600,0,700,450,500,600,0,0,0,700}, {550,700,0,450,650,700,550,0,650,0}, {600,450,450,0,0,550,0,550,700,600}, {700,500,650,0,0,0,0,600,0,700}, {0,600,700,550,0,0,700,0,500,0}, {500,0,550,0,0,700,0,800,0,0}, {550,0,0,550,600,0,800,0,0,650}, {0,0,650,700,0,500,0,0,0,800}, {0,700,0,600,700,0,0,650,800,0}}; printf("Informe a origem:\n "); scanf("%d",&orig); printf("Informe o destino:\n "); scanf("%d",&dest); vet[i] = (*bf(&g1, orig)); soma=0; while(vet[i]!= -1){ for(i=orig;i<=10;i--){ if(dest == i){ aux1 = vet[i]; aux2 = i; soma = (soma + g1[aux1][aux2]); dest = vet[i]; } } } printf("\nCusto da viagem mais barata: %4.2f", soma); system("PAUSE"); return 0; }
×
×
  • Criar Novo...