Ir ao conteúdo
  • Cadastre-se

Visual Basic Criar algoritmo que calcula o tempo total de atendimento pelo Visualg <>


Posts recomendados

<>

Ola,criei um algoritmo para calcular o tempo do atendimento dos clientes,mas não sei qual é o erro. Vou mandar o algoritmo feito pelo visualg + enunciado
 

Em um dia normal de trabalho, uma pizzaria funciona durante 16 horas, ou 960 minutos. Durante o dia a
pizzaria recebe pedidos via um aplicativo para celular. Para cada pedido são registrados o número do cliente
e o minuto do dia em que o pedido foi recebido. Um pedido do cliente número 12 no minuto 1 de
funcionamento seria registrado como:
R 12 1
onde R é o código de um pedido recebido.
Enquanto prepara o pedido de um cliente a pizzaria pode, é claro, receber novos pedidos de outros clientes.
Então, um pedido do cliente 23 no minuto 3 seria registrado como:
R 23 3
Ao finalizar um pedido, a pizzaria registra o evento como:
E 12 14
onde E é o código de um pedido enviado, 12 é o número do cliente e 14 é o minuto em que o pedido foi
finalizado.
Você pode assumir os seguintes fatos a respeito do problema:
 Um cliente pode fazer diversos pedidos durante o dia, mas ele não faz um novo pedido enquanto o
pedido anterior não foi finalizado;
 A pizzaria tem no máximo 100 clientes, numerados de 1 a 100;
 Algumas vezes, por alguma falha interna, a pizzaria deixa de finalizar e entregar alguns pedidos;
Sua tarefa: Escreva um algoritmo que determine o tempo total de atendimento dos clientes que fizeram
pedidos durante o dia.
Entradas: A primeira linha da entrada contém um inteiro N, o número de registros. Cada uma das N linhas
seguintes descreve um registro e contém um caractere (R, E) seguido de um número inteiro C (cliente) e do
inteiro M (minuto).
Saídas: Para cada cliente que efetuou um pedido no dia, o algoritmo deve produzir uma linha na saída
contendo dois inteiros: o número do cliente e o tempo total de atendimento para este cliente (o somatório dos
diversos pedidos). Se um cliente terminou o dia com um pedido não entregue, o tempo total de atendimento
para este cliente é -1.
Exemplos (entradas em azul e saída em vermelho):

4
R 2 25
R 3 26
E 2 31
E 3 32

Saida
2 6
3 6
11
R 12 1
R 23 3
R 45 6
E 45 7
R 45 8
E 23 9
R 23 10
E 23 12
R 34 13
E 12 14
E 34 15

Saida
12 13
23 8
34 2
45 -1

 

Algoritmo:

 

VAR
  i,j,k:inteiro
vet:vetor [0..11] de inteiro
 n,R,Enviado,number_cliente,min,minutos:inteiro
 
  ////////////////////////////////////////////////////////////
 inicio
//ENTRADA DE DADOS 1
 //Dígitos:11
//R 12 1
//R 23 3   
//R 45 6   
//E 45 7   
//R 45 8   
//E 23 9   
//R 23 10   
//E 23 12   
//R 34 13   
//E 12 14   
//E 34 15
 
//SAÍDA DE DADOS
//12 13
//23 8
//34 2
//45 -1  

//ENTRADA DE DADOS 2:
  //Dígitos:4
//R 2 25
//R 3 26
//E 2 31
//E 3 32

//SAÍDA
//2 6
//3 6

escreva ("Digite o número de dígitos:")   


// Lê o numero n de Registros.

leia (n)   

// Laço de repetição de 1 até n

para i<-1 ate n faca     

   ESCREVA ("Digite o tipo (R ou E), o N° do cliente e o minuto do pedido")     

   // Lê o número do cliente que é está compreendido entre 1 <= vet[number_cliente] <= 100. E se quiserem registrar o cliente 0 ou cliente 101, dá algum erro?

   leia (vet[number_cliente])       

   // Lê o minuto que o cliente é atendido no pedido Recebido, o qual deve estar compreendido entre 0 <= vet[min] < = 960 min.E se for feito um pedido em 1000 minutos?

   leia (vet[min])       

   //Lê a opção de pedido Recebido ou Enviado.

   LEIA(vet[i])

fimpara


// Exemplo de vetor vet[i] totalmente preenchido de 1 até n com "R" ou "Enviado" e abaixo encontram-se os correspondentes vetores de número do cliente e tempo de atendimento. Cada uma das posições do vetor TIPO é o vetor vet[i]?

TIPO = [R, R, R, Enviado, R, Enviado, R, Enviado, R, Enviado, Enviado]   

   number_cliente = [12, 23, 45, 45, 45, 23, 23, 23, 34, 12, 34]   

   min = [1, 3 , 6, 7, 8, 9, 10, 12, 13, 14, 15]
    

   para i <- 1 ate n faca
           

      se vet[i] = R entao         

         // Aqui você está contando os clientes cujos pedidos foram recebidos, e como você conta a quantidade de pedidos que um determinado cliente realizou?

         pedidos[i] <- number_cliente[i]
                 

         // Aqui embaixo Você está fazendo uma varredura da posição i + 1 em diante para verificar se o pedido recebido do cliente em i já foi entregue em algum atendimento em j.

         para j <- i + 1 ate n faca
             
            se vet[j] = Enviado entao
                              

               se number_cliente[i] = number_cliente[j] entao                 

                  // Se os número do pedido recebido em i for igual ao número do pedido enviado em j, você deve calcular o TOTAL de minutos gastos com aquele cliente em todos os pedidos realizados por ele.

                  []minutos <- min[j] - min[i]         

                  fimse           

                  fimse           

                  proximo j         

               fimpara

               // Se ao menos um número do pedido recebido pelo cliente em i não for entregue até o fim do dia em algum j, o tempo total gasto com aquele cliente é igual a -1.         

               minutos <- -1         

               proximo i     

               fimpara     

               pedidos = [12, 23, 45, 34]   

               minutos = [13,  8, -1,  2]     

               para k <- 1 ate n         

                  escreva (pedidos[k]  + minutos[k])     

               fimpara

               pedido Recebido ou de um pedido Entregue


fimalgoritmo

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!