Ir ao conteúdo
  • Cadastre-se

anacraudia_BR

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

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

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!