Informática, perguntado por edsomarpr739, 9 meses atrás

Estacionamento Um estacionamento deseja automatizar a cobrança de mensalistas. Para isso decidiu simplificar a forma de calcular o valor devido pelo seu cliente. A quantia a ser paga pelos seus usuários depende do número de entradas que o veículo realiza no estacionamento. A cada entrada, a placa do veículo é registrada. Ao final do mês, conta-se o número de entradas que o veículo realizou e faz-se o seguinte cálculo: Se o motorista realizou até 20 entradas, ele deve pagar R$ 10,00 por entrada realizada. Da vigésima primeira entrada em diante, cada entrada custa R$ 5,00 ao cliente. Agora, você vai deve ajudar na automatização da cobrança escrevendo duas funções. A primeira função se chama calcularNumeroDeEntradas(placa). Ela deve receber um único parâmetro que representa a placa de um carro. A função deve retornar o número de entradas que esse carro realizou no estacionamento. Em outras palavras, o número de vezes que a placa passada como parâmetro aparece no array placas. A segunda função se chama calcularValorDevido(placa). Ela deve receber um único parâmetro que representa a placa de um carro. A função deve calcular o valor que o proprietário do carro tem que pagar segundo a política de preços estabelecida. Naturalmente, será necessário utilizar a primeira função dentro da segunda.


ViictorSR388: function calcularNumeroDeEntradas(placa){
var entradas = 0
for (i=0; i < placas.length; i++) {
if (placas[i] == placa) {
entradas++
} return
}
}

function calcularValorDevido(placa){
var numeroDeEntradas = calcularNumeroDeEntradas(placa)
if (numeroDeEntradas <= 20) {
numeroDeEntradas * 10
} else if (numeroDeEntradas > 20) {
numeroDeEntradas - 20 * 10 + 200
} return
}

Soluções para a tarefa

Respondido por ayrtoncossuol
35

Resposta:

Olha como eu fiz.

Explicação:

var placas = [

  'RXB-2525', 'AKX-3333', 'ORO-7142','RXB-2525', 'AKX-3333', 'ORO-7142',

  'AKX-3333', 'RXB-2525', 'AKX-3333','AKX-3333', 'RXB-2525', 'AKX-3333',   'RXB-2525', 'AKX-3333', 'ORO-7142','AKX-3333', 'AKX-3333', 'RXB-2525',

  'AKX-3333', 'ORO-7142', 'ORO-7142','AKX-3333', 'AKX-3333', 'RXB-2525',

  'AKX-3333', 'AKX-3333', 'RXB-2525','AKX-3333', 'AKX-3333', 'RXB-2525',

  'AKX-3333', 'ORO-7142', 'ORO-7142','AKX-3333', 'ORO-7142', 'ORO-7142',

  'ORO-7142', 'RXB-2525', 'AKX-3333','AKX-3333', 'ORO-7142', 'ORO-7142',

  'AKX-3333', 'RXB-2525', 'AKX-3333','AKX-3333', 'RXB-2525', 'AKX-3333',

  'RXB-2525', 'AKX-3333', 'ORO-7142','AKX-3333', 'AKX-3333', 'RXB-2525',

  'AKX-3333', 'ORO-7142', 'ORO-7142','AKX-3333', 'AKX-3333', 'RXB-2525',

  'AKX-3333', 'AKX-3333', 'RXB-2525','AKX-3333', 'AKX-3333', 'RXB-2525'

]

function calcularNumeroDeEntradas(placa){

  var cont = 0;

  for (var i = 0 ; i < placas.length ; i++) {

     if (placas[i] == placa) {

        cont++;

     }

  }

  return cont;

}

 

function calcularValorDevido(placa){

  var numEntradas = calcularNumeroDeEntradas(placa);

  if (numEntradas <= 20) {

     return 10.00 * numEntradas;

  } else {

     return (200 + (numEntradas - 20) * 5);

  }

}


jonatasoliveiravasco: Man, eu fiz isso, beleza deu certo, o que eu fico imaginando é que, são 3 carros diferentes, então na teoria deveriam ser 3 contadores, minha lógica está errada?
jonatasoliveiravasco: Antes de tentar com 1 contador, eu tentei com 3 separados. o resultado ate da certo, contudo a plataforma não aceita
marlonballa07: Imagina se tivesse 500 carros?
1º - Criar uma função que identifica as placas e armazena elas em outro vetor.
2º -passar essas informações para a função que faz a contagem das entradas e para a função que calcula o valor devido (poderiam ser transformadas em apenas uma).
3º - retornar o valor.

Para "passar esses valores" você poderia utilizar um laço de repetição e obter como retorno os valores devidos de cada placa, poderia escolher qual placa quer passar ou perguntar para o usuário.
rafaelpietra: Cara , o argumento pesquisa 1 placa por vez, sacou ? Vc entra com o valor da string placa e ele executa as 2 funções e retorna o valor para aquela placa. Quando vc informa outra placa ele não quer saber se o valor da placa foi armazenado ou não.
Respondido por Elprogrammer
10

Resposta:

var placas = [

  'RXB-2525', 'AKX-3333', 'ORO-7142','RXB-2525', 'AKX-3333', 'ORO-7142',

  'AKX-3333', 'RXB-2525', 'AKX-3333','AKX-3333', 'RXB-2525', 'AKX-3333',   'RXB-2525', 'AKX-3333', 'ORO-7142','AKX-3333', 'AKX-3333', 'RXB-2525',

  'AKX-3333', 'ORO-7142', 'ORO-7142','AKX-3333', 'AKX-3333', 'RXB-2525',

  'AKX-3333', 'AKX-3333', 'RXB-2525','AKX-3333', 'AKX-3333', 'RXB-2525',

  'AKX-3333', 'ORO-7142', 'ORO-7142','AKX-3333', 'ORO-7142', 'ORO-7142',

  'ORO-7142', 'RXB-2525', 'AKX-3333','AKX-3333', 'ORO-7142', 'ORO-7142',

  'AKX-3333', 'RXB-2525', 'AKX-3333','AKX-3333', 'RXB-2525', 'AKX-3333',

  'RXB-2525', 'AKX-3333', 'ORO-7142','AKX-3333', 'AKX-3333', 'RXB-2525',

  'AKX-3333', 'ORO-7142', 'ORO-7142','AKX-3333', 'AKX-3333', 'RXB-2525',

  'AKX-3333', 'AKX-3333', 'RXB-2525','AKX-3333', 'AKX-3333', 'RXB-2525'

]

function calcularNumeroDeEntradas(placa){

var numeroEntradas = 0

   for(i = 0; i < placas.length; i++){

      if(placas[i] == placa){

         numeroEntradas ++;

      }else {

      }

   }

   return numeroEntradas;

}

function calcularValorDevido(placa){

 var entradas = calcularNumeroDeEntradas(placa);

 if (entradas < 21){

    return   entradas * 10

 }else if (entradas >= 21){

    return entradas * 20

 }

}

Explicação:


renovamente: Completei só metade do código e aceitou.Aconteceu com mais alguém?
renovamente: Aceitou só com isso.
function calcularNumeroDeEntradas(placa){
// Seu código vem aqui...
var placa1= []
var placa2 = []
var placa3 = []
for(var i = 0; i < placas.length; i++){
if (placas[i] == 'AKX-3333')
placa1.push(placas[i])
} if (placas[i] == 'ORO-7142' ){
placa2.push(placas[i])
} else if (placas[i] == 'RXB-2525' ) {
placa3.push(placas[i])
}
return placa(placa1,placa2,placa3)
}
himheartagram: So com a primeira funcao.
function calcularNumeroDeEntradas(placa){
// Seu código vem aqui...
for(i =0; i < placas.length; i++) {
var nEntradas = placas[i] - 20
return nEntradas;
}

}

var valor = 10.00
function calcularValorDevido(placa){
// Seu código vem aqui...
var valor = valor + placas * nEntradas
return valor;
}
LERELLES: o meu também aceitou apenas a primeira função
Perguntas interessantes