Ir ao conteúdo

Posts recomendados

Postado
/*CABEÇALHO:
Arquivo: exer6 L5.c
Objetivo:Considere uma matriz de distância entre cidades 6 x 6:
         Considere também um vetor de viagem indo de Cuiabá (2) até Cáceres (0)
         Faça um programa que leia a matriz e o vetor e calcule a distância percorrida durante a viagem.
Autor(a):XXXXXXXXXXXXXXXXXXX
Versão:1.0*/

/*Importação de bibliotecas*/
#include <stdio.h>
#include <conio.h>

/*Função principal*/
int main(){

    /*Declaração de variáveis*/
    int distancias[6][6]={0,63,210,190,0,190,63,0,160,150,95,0,210,160,0,10,0,0,190,150,10,0,0,0,0,95,0,0,0,80,190,0,0,0,80,0};
    int cidades[6]={2,3,1,4,5,0};
    int vetor[6];
    int i;

    /*Processamento*/
    for(i=0;i<6;i++){
        vetor[i]=distancias[2][i]+distancias[i][0];

    }

    for(i=0;i<6;i++){
        printf("\n%d", vetor[i]);
    }


     getch();

     return 0;
     }

. Considere uma matriz de distância entre cidades 6 x 6: 1.(Cáceres) 2.(BBugres) 3.(Cuiabá) 4.(VGrande) 5.(Tangará) 6.(PLacerda) 1.(Cáceres) 63 210 190 190 2.(BBugres) 63 160 150 95 3.(Cuiabá) 210 160 10 4.(VGrande) 190 150 10 5.(Tangará) 95 80 6.(PLacerda) 190 80 Considere também um vetor de viagem indo de Cuiabá até Cáceres pela seguinte rota: Indice 1 2 3 4 5 6 Cidade 3 4 2 5 6 1 Faça um programa que leia a matriz e o vetor e calcule a distancia percorrida durante a viagem

Postado

Bom, eu imagino que o vetor cidades[] tem a ordem com que você vai fazer a viagem. Se for assim, o que eu faria seria o seguinte

 

int distancia = 0;

for(k = 1; k < 6; k++){
	distancia += distancias[cidades[k]][cidades[k-1]];
}

 

  • Curtir 1
  • 1 ano depois...
Postado

Algoritmo "semnome"
// Disciplina  :  [Linguagem e Lógica de Programação - VisualG]
// Professor   :  Gustavo Guanabara

// Descrição   : 29.    Considere uma matriz de
// distância entre cidades 6 x 6:

// 1.(Cáceres)    2.(BBugres)    3.(Cuiabá)
// 4.(VGrande)    5.(Tangará)    6.(PLacerda)
// 1.(Cáceres)        63    210    190        190
// 2.(BBugres)    63        160    150    95
// 3.(Cuiabá)    210    160        10
// 4.(VGrande)    190    150    10
// 5.(Tangará)        95                80
// 6.(PLacerda)    190                80

// Considere também um vetor de viagem indo de
// Cuiabá até Cáceres pela seguinte rota:

// Indice    1    2    3    4    5    6
// Cidade    3    4    2    5    6    1

// Faça um programa que leia a matriz e o vetor
// e calcule a distancia percorrida durante a viagem.

// Autor(a)    : Matheus de Oliveira Silva
// Data atual  : 11/16/2019
Var
// Seção de Declarações das variáveis
Matriz: Vetor[1..6, 1..6] de Inteiro
Vetor1: Vetor[1..6] de Inteiro
Contador, SomaDistancia: Inteiro
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
Matriz[2,1] <- 63
Matriz[1,2] <- 63
Matriz[3,1] <- 210
Matriz[1,3] <- 210
Matriz[4,1] <- 190
Matriz[1,4] <- 190
Matriz[6,1] <- 190
Matriz[1,6] <- 190
Matriz[3,2] <- 160
Matriz[2,3] <- 160
Matriz[4,2] <- 150
Matriz[2,4] <- 150
Matriz[5,2] <- 95
Matriz[2,5] <- 95
Matriz[4,3] <- 10
Matriz[3,4] <- 10
Matriz[6,5] <- 80
Matriz[5,6] <- 80

Vetor1[1] <- Matriz[3,4]
Vetor1[2] <- Matriz[2,4]
Vetor1[3] <- Matriz[2,5]
Vetor1[4] <- Matriz[5,6]
Vetor1[5] <- Matriz[6,1]

Para Contador <- 1 ate 6 passo 1 faca
     SomaDistancia <- SomaDistancia + Vetor1[Contador]
Fimpara
Escreva("Soma da Distancia percorrida na viagem em KM ", SomaDistancia)
Fimalgoritmo

  • 1 ano depois...
Postado

@skyneGKL

As informações na matriz(6, 6) me parecem irracionais, eu não consegui encontrar significado.

E mais, as postagens posteriores não foram o suficiente para ajudar na minha interpretação, também.

 

 

Resta seu algoritmo.

 

Em 14/10/2018 às 20:07, mln_r disse:

/*Processamento*/

for( i = 0 ;    i < 6    ; i++ ){

              vetor[i] = distancias[2][i] + distancias[i][0];

}

 O nome adequado do vetor  é   cidades   .cada valor no elemento/subscrito dele é uma cidade, cada par de valor é o índice no subscrito da matriz que representa a distância entre elas.

 

Dessa maneira.

Em 14/10/2018 às 21:07, De Los Santos disse:

for( k = 1 ;   k < 6   ;  k++ ){

                distancia += distancias[cidades[ k ]][cidades[ k - 1 ]];

}

Cada valor em   'distancias'   é uma distância acessível por um par de cidades. A trajetória percorrida é a soma das distâncias entre cada cidade do vetor   cidades. O laço se repete 5 vezes acumulando 5 valores de distância.

Filézinho!

 

 

Pode acontecer uma variação de resposta em que a matriz real e lógica diferem em composição para coincidir os índices sem operações extras, ou seja, o índice 1 da matriz real é também o índice 1 da lógica, apenas para evitar operações aritméticas de adaptação.

 

int distancias[][7] = {
                    {0, 0, 0, 0, 0, 0, 0},
                    {0, 1, 2, 3, 4, 5, 6}, 
                    {0, 1, 2, 3, 4, 5, 6}, 
                    {0, 1, 2, 3, 4, 5, 6},
                    {0, 1, 2, 3, 4, 5, 6},
                    {0, 1, 2, 3, 4, 5, 6},
                    {0, 1, 2, 3, 4, 5, 6},
};

Uma linha e uma coluna extra ignorada para satisfazer a condição de não adaptar os índices do vetor  cidades.

 

Do contrário, terão que ser adaptados os índices do vetor durante entrada, na composição de vetores em C.

Em 14/10/2018 às 20:07, mln_r disse:

Índice:        1   2  3  4  5  6

Cidade:       3  4  2  5  6  1

Índice:       0  1  2  3  4  5
Cidade:       2  3  1  4  5  0

[:)]

Postado
Em 14/10/2018 às 20:07, mln_r disse:

um vetor de viagem indo de Cuiabá até Cáceres pela seguinte rota: Indice 1 2 3 4 5 6 Cidade 3 4 2 5 6 1 Faça um programa que leia a matriz e o vetor e calcule a distancia percorrida durante a viagem

 

como a matriz tem as distancias entre os pontos AB em matiz de (i-1,j-1) basta somar os valores de cada segmento...
 

cuiaba varzea barra tangara pontes caceres
  3       4     2     5        6      1    as cidades de 1 a 6
  2       3     1     4        5      0    os indices começam em 0

as parcelas

(2,3) = 7
(3,1) = 157
(1,4) = 78
(4,5) = 388
(5,0) = 227

soma =  857km

 

Considerando essa tabela
 

image.png.b4e10e1c0db6d2545749328c8dbb3c69.png

 

 

 

 

 

 

cortesia do Google Planilhas, com as distancias mais reais

 

 

 

Cortesia do Google Earth, o mapa

 

358214108_ascidades.thumb.png.10dbeba95916b1d0509b1b875a7c3472.png


E o percurso

 

caminho.thumb.png.0e705aaf0fa197aea9ee0e79972f8a71.png

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!