Ir para conteúdo
Fórum Script Brasil
  • 0

Exercicio Sobre Vetor


laurinha2004

Pergunta

Olá, estou precisando de uma ajuda urgente....meu professor me passou esse exercicio de vetor pra entregar...n consegui fazer d jeito nenhum....será q tem alguém q poderia me dar uma mao? ta ai o enunciado:

-Escreva um algoritmo que faça reserva de passagens aéreas de uma companhia. Além da leitura do número dos vôos e quantidades de lugares disponíveis, ler vários pedidos de reservas, constituídos do número da carteira de identidade do cliente e do número do vôo desejado.

Para cada cliente, verificar se há disponibilidade no vôo desejado. Em caso afirmativo, imprimir o número da identidade do cliente, e o número do vôo, atualizando o número de lugares disponíveis. Caso contrário, avisar ao cliente da inexistência de lugares.

Indicando o fim dos pedidos de reserva, existe um passageiro cujo número da carteira de identidade é 9999. Considere fixo e igual a 37 o número de vôos da companhia. Estrutura de dados necessária: Vetor para os Vôos e Lugares.

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Um vetor não é nada mais que uma variável que possui um nome comum e índices que podem variar. Um exemplo:

    int numeros[5];
    
    for (int i=0; i<5; i++) {
        printf("Digite um número: ");
        scanf("%i", &numeros[i]);
    }

    for (int i=0; i<5; i++) {
        printf("\nNúmero digitado: %i", numeros[i]);
    }
    
    system("pause");

Já da pra ter uma idéia? E, é em C ou C++ que você deve fazer?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Você pode estabelecer valores para indicar isso. Por exemplo, todas as cadeiras disponíveis tem valor 0 e todas as ocupadas tem valor 1. Daí, bastaria acessar a posição no vetor correspondente ao lugar que o passageiro deseja e verificar se lá está 0 ou 1. Se estiver 0, o cliente vai ficar com esse lugar mesmo (que vai passar a ser 1), e se estiver 1, o cliente deverá escolher outro lugar.

Certo? wink.gif

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, consegui fazer algumas coisas, mas tem outras q estao dando errado....vou explicar....

são 37 voos, então eu criei 37 vetores. Ai o usuario vai digitar o numero do voo que ele deseja.... então eu vou ter q fazer 37 if? eu tentei colocar dentro do case, mas n deu certo....porque dentro de cada case teria q executar esses comandos:

printf("\nLugares disponiveis do voo 1\n\n");
      for(i=0;i<10;i++)
      {
        if(voo1[i]==0) 
        {  
          lugvazios[i] = i;
          printf("%d  ",lugvazios[i]);
        }
      }
      printf("\n\nDigite o numero da poltrona: "); scanf("%d",&numca);
      printf("Digite o numero da identidade: "); scanf("%s",&doc);
      voo1[numca] = 1;
      printf("\n\nCadeira %d comprada com sucesso!!!",numca);
      printf("\nComprador = %s",doc);
      printf("\n\n\n");
      system("pause"); clrscr();
e eu fiz somente para 2 ifs so pra testar.....Ai no final tem a linha:
while(doc != 9999);
e n esta dando certo também, o programa n esta parando e esta dando um erro assim: "[Warning] comparison between pointer and integer". O codigo todo do meu programa esta a seguir...
/* Vetor
2-Escreva um algoritmo que faça reserva de passagens aéreas de uma 
companhia. Além da leitura do número dos vôos e quantidades de lugares 
disponíveis, ler vários pedidos de reservas, constituídos do número 
da carteira de identidade do cliente e do número do vôo desejado.
Para cada cliente, verificar se há disponibilidade no vôo desejado. 
Em caso afirmativo, imprimir o número da identidade do cliente, e o 
número do vôo, atualizando o número de lugares disponíveis. Caso 
contrário, avisar ao cliente da inexistência de lugares.
Indicando o fim dos pedidos de reserva, existe um passageiro cujo 
número da carteira de identidade é 9999. Considere fixo e igual a 37 
o número de vôos da companhia. Estrutura de dados necessária: Vetor 
para os Vôos e Lugares.
*/

#include <stdio.h>
#include <conio.c>
main()
{

  int voo1[10], voo2[10], voo3[10], voo4[10], voo5[10], voo6[10],
      voo7[10], voo8[10], voo9[10], voo10[10], voo11[10], voo12[10],
      voo13[10], voo14[10], voo15[10], voo16[10], voo17[10], voo18[10],
      voo19[10], voo20[10], voo21[10], voo22[10], voo23[10], voo24[10],
      voo25[10], voo26[10], voo27[10], voo28[10], voo29[10], voo30[10],
      voo31[10], voo32[10], voo33[10], voo34[10], voo35[10], voo36[10],
      voo37[10];
  int num, i, numca, lugvazios[10];
  char doc[11];
  for(i=0;i<10;i++)
  {
    voo1[i] = 0; voo2[i] = 0; voo3[i] = 0; voo4[i] = 0;
    voo5[i] = 0; voo6[i] = 0; voo7[i] = 0; voo8[i] = 0;
    voo9[i] = 0; voo10[i] = 0; voo11[i] = 0; voo12[i] = 0;
    voo13[i] = 0; voo14[i] = 0; voo15[i] = 0; voo16[i] = 0;
    voo17[i] = 0; voo18[i] = 0; voo19[i] = 0; voo20[i] = 0;
    voo21[i] = 0; voo22[i] = 0; voo23[i] = 0; voo24[i] = 0;
    voo25[i] = 0; voo26[i] = 0; voo27[i] = 0; voo28[i] = 0;
    voo29[i] = 0; voo30[i] = 0; voo31[i] = 0; voo32[i] = 0;
    voo33[i] = 0; voo34[i] = 0; voo35[i] = 0; voo36[i] = 0;
    voo37[i] = 0;
  }
  do {
    printf("Digite o numero do voo(1-37) que quer comprar a passagem: "); 
    scanf("%d",&num);
    if(num == 1)
    {
      printf("\nLugares disponiveis do voo 1\n\n");
      for(i=0;i<10;i++)
      {
        if(voo1[i]==0) 
        {  
          lugvazios[i] = i;
          printf("%d  ",lugvazios[i]);
        }
      }
      printf("\n\nDigite o numero da poltrona: "); scanf("%d",&numca);
      printf("Digite o numero da identidade: "); scanf("%s",&doc);
      voo1[numca] = 1;
      printf("\n\nCadeira %d comprada com sucesso!!!",numca);
      printf("\nComprador = %s",doc);
      printf("\n\n\n");
      system("pause"); clrscr();
    }
    else if(num == 2)
    {
      printf("\nLugares disponiveis do voo 2\n\n");
      for(i=0;i<10;i++)
      {
        if(voo2[i]==0) 
        {  
          lugvazios[i] = i;
          printf("%d  ",lugvazios[i]);
        }
      }
      printf("\n\nDigite o numero da poltrona: "); scanf("%d",&numca);
      printf("Digite o numero da identidade: "); scanf("%s",&doc);
      voo2[numca] = 1;
      printf("\n\nCadeira %d comprada com sucesso!!!",numca);
      printf("\nComprador = %s",doc);
      printf("\n\n\n");
      system("pause"); clrscr();
    }
  } while(doc != 9999);
  getch();
}

Link para o comentário
Compartilhar em outros sites

  • 0

Opa!

Você pode dinamizar seu código através do uso de vetores bidimensionais, ou matrizes. Da mesma forma que vetores unidimensionais podem ser comparados a uma lista, os bidimensionais (matrizes) se assemelham a tabelas. Dessa forma, para acessar um elemento de uma matriz você deve fornecer dois valores: o número da linha na qual se encontra o elemento e o número da coluna.

No seu caso poderia-se criar uma matrizes chamada "voo" cujas linhas seriam os números dos vôos e as colunas as cadeiras de cada um desses vôos. Sendo assim, a declaração ficaria assim:

voo[ 37 ][ 10 ];
Com isso não terá a necessidade de fazer 37 tests com "ifs". Basta fazer assim:
...

scanf( "%d", &num_voo );

for ( i = 0; i < 10; i++ )
   if(voo1[ num_voo ][ i ] == 0 ) 
   {  
       lugvazios[i] = i;
       printf("%d  ",lugvazios[i]);
   }

...

Sabendo que "num_voo" seria a variável que armazenaria o número do vôo digitado pelo usuário.

Até mais!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, consegui fazer com q o codigo funcionasse, mas agora so tem um problema....quando o cara digitar no numero do documento 9999, o programa teria q sair do laco while...e ele n esta saindo, alguém sabe corrigir isso? Ta ai o codigo d novo prontinho....

#include <stdio.h>
#include <conio.c>
main()
{

  int voo[37][10];
  int num_voo, i, j, numca, lugvazios[37][10];
  char doc[11];
  for (i=0;i<37;i++)
  {
    for(j=0;j<10;j++)
    {
        voo[i][j] = 0;
    }
  }
  do {
       printf("Digite o numero do voo(0-36) que quer comprar a passagem: "); 
       scanf("%d",&num_voo);
       printf("\nLugares disponiveis do voo %d\n\n",num_voo);
    for (i=0;i<10;i++)
    {
       if(voo[num_voo][i] == 0 ) 
       {
        lugvazios[num_voo][i] = i;
        printf("%d  ",lugvazios[num_voo][i]);
       }
    }
        printf("\n\nDigite o numero da poltrona: "); scanf("%d",&numca);
        printf("Digite o numero da identidade: "); scanf("%s",&doc);
        voo[num_voo][numca] = 1;
        printf("\n\nCadeira %d comprada com sucesso!!!",numca);
        printf("\nVoo %d",num_voo);
        printf("\nComprador = %s",doc);
        printf("\n\n\n");
        system("pause"); clrscr();
  } while(doc != 9999);
  getch();
}

Link para o comentário
Compartilhar em outros sites

  • 0

a variável "doc" é do tipo String, e o operador != não compara Strings....

para isso voce pode usar uma função chamada strcmp(string1, string2)

esse função compara a string1 com a string2 e retorna 0 caso elas sejam idênticas e um número diferente de 0 caso contrário!!!

fica + ou - assim:

.
.
.
while(strcmp(doc, "9999"));
.
.
.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...