Ir ao conteúdo

Posts recomendados

Postado

Boa tarde pessoal, estou fazendo um trabalho de faculdade e estou com uma questão que não estou conseguindo interpretar e fazer, a questão é a seguinte, que deve ser feita em pseudocódigo:

 

Considere que, para cada um dos hotéis fazenda da região, se tenha registrado o nome do hotel, a sua distancia do centro da cidade, o numero medio de visitantes no ultimo feriado e o tipo de acesso ao hotel (0 - acesso não asfaltado; 1 - acesso asfaltado). Construa um algoritmo que forneça:

 

a) O numero de hotéis que distam mais de 15km do centro;

b-) A quantidade média de visitantes no ultimo feriado, nos hotéis com acesso não asfaltado;

c) O nome e a distancia do centro em Km, de todos os hotéis de acesso asfaltado que tiveram menos de 1.000 visitantes

Ex: HA, DA=10, V=100, AC=0

      BA, DA=20, V=50, AC=1

 

Se poderem me ajudar eu agradeço!

Abraço

  • Curtir 1
Postado

@Allyson Cardoso      o que você precisa fazer primeiro  é a entrada de dados, então use uma matriz de caracteres para guardar os dados digitados,  veja um exemplo  :

e para pegar os dados use esse formato aqui :

escreva("Digite O Nome Do Hotel ")
leia(hoteis[a,1])

para pegar a distancia coloque hoteis [ a , 2 ]  e assim para os outros

Algoritmo "hoteis"
Var
  hoteis  : vetor[1..100,1..4] de caractere
  a,b,c,h : inteiro
  f,g,d   : real
  s       : caractere
Inicio
  s:="s"
  repita
    a:=a+1    // a é o contador
    limpatela
         .
         .
     aqui você pede para digitar os dados que você quer
             o nome do hotel
             a distancia 
             o número de visitantes
             se acesso é asfaltado
         .
         .
    escreval("Vai Querer Cadastrar Mais Um Hotel ? S/N")
    leia(s)
    se s="s" ENTÃO
      se a > 100 ENTÃO
        escreval("Só Pode Cadastrar No Máximo 100 Hoteis")
        s:="n"
      fimse
    fimse
  ate s="n"
  limpatela
  para b de 1 ate a faca
    //quantidade de hoteis com mais de 15 Km
        .
        .
   aqui você calcula a qtd de hoteis com mais de 15 km
        .
        .
    //media de visitantes em hotes sem asfalto
        .
        .
   aqui você calcula a média de visitantes
        .
        .
    //nome e distancia de hoteis com menos de 1000 visitantes
        .
        .
   aqui você imprime o nome e distancia dos hoteis com menos de 1000 visitantes
        .
        .
  fimpara
  se d>0 ENTÃO
    g:=f/d //media de visitantes em hotel sem asfalto
  fimse
  escreval
  escreval("O Número De Hoteis Que Distam Mais De 15 Km é ",c)
  escreval
  escreval("A Média De Visitantes Em Hoteis Sem Asfalto é ",g)
Fimalgoritmo

para calcular  a quantidade de hotéis com mais 15 km  e com menos de 1000 visitantes e a quantidade de hotéis sem asfalto você precisa usar a função caracpnum  assim :

(caracpnum(hoteis[b,2]))

com esse comando aí você pega na matriz a distancia do hotel.

  • Curtir 1
Postado

Então eu to tentando fazer deste modo agora, mas não estou conseguindo encaixar a questão C), como faço pra armazenar e mostrar o nome de todos os hoteis inseridos.

ALGORITMO "QUESTÃO4"
VAR
distcid,medferi,resposta,acesso,contdist,nasfaltado,visinas,asfaltado:REAL
nomehotel: caractere
INICIO
      REPITA
ESCREVAL ("VOCÊ TEM ALGUM HOTEL PARA CADASTRAR? ")
ESCREVAL ("1. SIM")
ESCREVAL ("2. NÃO")
LEIA(RESPOSTA)
      ESCOLHA (RESPOSTA)
      CASO 1
ESCREVAL("QUAL O NOME DO HOTEL?")
LEIA(nomehotel)
ESCREVAL("QUAL DISTANCIA DO HOTEL ATÉ O CENTRO EM KM?")
LEIA(distcid)
ESCREVAL("QUAL NUMERO MÉDIO DE VISITANTES NO ULTIMO FERIADO?")
LEIA(medferi)
ESCREVAL ("QUAL TIPO DE ACESSO AO HOTEL? (0)-NÃO ASFALTADO / (1)-ASFALTADO")
LEIA(acesso)
            se distcid > 15 então
            contdist <- contdist+1
            fimse
            se acesso = 0 então
            nasfaltado <- nasfaltado+1
            visinas <- (visinas+medferi)
            fimse
       FIMESCOLHA
ATE(RESPOSTA<>1)
Escreval ("O numero de hoteis que distam mais de 15km do centro é:",contdist)
Escreval ("A média de visitantes no ultimo feriado com acesso não asfaltado é",(visinas/nasfaltado))
FIMALGORITMO


 

 

  • Curtir 1
  • Membro VIP
Postado

Olá @Allyson Cardoso.

 

O comando caracpnum() é uma função que servirá para "converter" um dado do tipo caractere para o tipo numérico. Pode ser útil quando for efetuar "contas".

 

Como o dado está como caractere, o suposto número estará como um texto, para comparar seria algo assim:

se hoteis[a,2] >= "15" ENTÃO

Aqui funcionou! Ou seja, talvez nem seja preciso a conversão...

 

 

Mas se for necessário, poderia ser algo assim:

se caracpnum(hoteis[b,2]) >= 15 ENTÃO

Perceba que o 15 está agora sem as ""... ou seja, o "texto" (caractere) que está em hoteis[a,2] é enviado para a função através do parâmetro, que retornará, se tudo ocorrer bem, o valor correspondente em inteiro...  como é uma FUNÇÃO, o próprio procedimento funciona como uma espécie variável, logo, podendo usar diretamente no SE.

 

 

 

 

 

ADENDO

No caso, os dados do hotel estão armazenados numa mesma matriz, onde cada linha representa um hotel diferente, e cada coluna representa um dado do respectivo hotel (algo como: nome, distância, visitantes e acesso), correto? Todos esses dados estão sendo armazenados como caractere lá na matriz, pois "caractere" aceita dados alfanuméricos (números e letras) , mas a distância (e número de visitantes também) são dados do tipo numéricos. O computador entende esses dos tipos de formas diferentes... um número quando armazenado como caractere é considero como um caractere em si... como um "texto". Daí, para "trabalhar com esses dados", como efetuar "contas", as vezes é necessário converter antes para número. No exemplo lá de cima, vemos que o VisuAlg também consegue verificar que, por exemplo, o texto "20" é maior igual ao texto "15". Seria verificar que "GGG" é  maior que "DDD".

 

 

No aguardo.

  • Curtir 2
Postado

Entendi, você viu que eu acabei editando o meu ultimo post, e eu fiz o algoritmo de outra forma, mas não estou conseguindo encaixar a questão C, onde diz :

"O nome e a distancia do centro em Km, de todos os hoteis de acesso asfaltado que tiveram menos de 1000 visitantes", 

Como eu iria conseguir mostrar isso no final de todos os cadastros, mostrar todos os nomes dos hoteis, provavelmente deve ser com vetor, mas não eu conseguindo como escrever isso para funcionar.

 

Obrigado desde já.

  • Curtir 1
  • Membro VIP
Postado

Olá.

 

19 minutos atrás, Allyson Cardoso disse:

"O nome e a distancia do centro em Km, de todos os hoteis de acesso asfaltado que tiveram menos de 1000 visitantes", 

Como eu iria conseguir mostrar isso no final de todos os cadastros, mostrar todos os nomes dos hoteis, provavelmente deve ser com vetor, mas não eu conseguindo como escrever isso para funcionar.

 

É creio que tem maneiras mais práticas:

1- Baseando no seu código atual, utilizar um vetor para armazenar essas informações. Ou seja, a medida que encontrar um hotel com as características em questão, armazenaria seu "nome" e "distância". Ao final, exibiria esses dados. (usaria uma matriz de N por 2*)

2- Utilizando a matriz como antes, e ai era só processar os dados. Ou seja, como os dados estão cadastrados, verificaria quais hotéis se encaixam ao critério, e exibiria.

 

Como de praxe, sugiro tentar fazer das duas formas... estamos aqui para ajudar.

 

 

* Esse N por 2, seria tipo

hoteis : vetor[1..10,1..2] de caractere //até 10 hoteis, com nome e distância do centro para cada um

 

No aguardo.

 

 

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

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!