Array

5 respostas
A

public class CaixaEletronico { public static void main(String[] args) { //Cedulas disponiveis no caixa eletronico int[] cedulas = {100, 50, 20, 10, 5, 2, 1}; //Quantidade total de cedulas entregues ao cliente int quantidadeTotal = 0; //valor a ser sacado pelo cliente int valorReais = 163; //Percorrendo todas as cedulas disponiveis no caixa eletronico for(int i = 0; i < cedulas.length; i++) { //Quantidade de cedulas para o valor cedulas[i] int quantidadeCedulas = valorReais/cedulas[i]; //Impressao da quantidade de cedulas System.out.println("Quantidadde de cedulas de "+ cedulas[i] + ": " +quantidadeCedulas ); //Resto da divisao valorReais %= cedulas[i]; //Quantidade total de cedulas entregues ao cliente quantidadeTotal += quantidadeCedulas; } //Impressao System.out.println("Quantidade total: "+quantidadeTotal); } }

Eu nao estou entendo a linha 13, tipo, qual seria o valor de cedulas[i]?

Obrigado

5 Respostas

Andre_Fonseca

Anhaya:
public class CaixaEletronico { public static void main(String[] args) { //Cedulas disponiveis no caixa eletronico int[] cedulas = {100, 50, 20, 10, 5, 2, 1}; //Quantidade total de cedulas entregues ao cliente int quantidadeTotal = 0; //valor a ser sacado pelo cliente int valorReais = 163; //Percorrendo todas as cedulas disponiveis no caixa eletronico for(int i = 0; i < cedulas.length; i++) { //Quantidade de cedulas para o valor cedulas[i] int quantidadeCedulas = valorReais/cedulas[i]; //Impressao da quantidade de cedulas System.out.println("Quantidadde de cedulas de "+ cedulas[i] + ": " +quantidadeCedulas ); //Resto da divisao valorReais %= cedulas[i]; //Quantidade total de cedulas entregues ao cliente quantidadeTotal += quantidadeCedulas; } //Impressao System.out.println("Quantidade total: "+quantidadeTotal); } }

Eu nao estou entendo a linha 13, tipo, qual seria o valor de cedulas[i]?

Obrigado

o valor de i começa com 0 e vai sendo incrementado de 1 até que chegue ao tamanho do vetor celulas

ou seja,

primeiro celulas[i] = celulas[0] = 100

depois celulas[i] = celulas[1] = 50

e assim por diante

programadora
O valor de cedulas[i] vai variar (nas passagens pelo loop for) de acordo com a posição do i no array cedulas, ou seja, se:

i= 0 --> cedulas[i] (cedulas[1]) = 100 (primeiro elemento do vetor)

i= 1 --> cedulas[i] (cedulas[2]) = 50 (segundo elemento)

i= 2 --> cedulas[i] (cedulas[3]) = 20 (terceiro elemento)…

E por aí vai até que o loop tenha passado a quantidade de elementos contidos no vetor.

A

sim, entendi, mas seguindo a estrutura do comando, nao entendi pq da os resultados abaixo, fui fazendo e nao da o que esta dando.

Result

Quantidadde de cedulas de 100: 1 Quantidadde de cedulas de 50: 1 Quantidadde de cedulas de 20: 0 Quantidadde de cedulas de 10: 1 Quantidadde de cedulas de 5: 0 Quantidadde de cedulas de 2: 1 Quantidadde de cedulas de 1: 1 Quantidade total: 5

programadora

O que acontece… ele vai fazendo a divisão do valor em reais pelo valor da cédula.

int quantidadeCedulas = valorReais / cedulas[i]; System.out.println("Quantidadde de cedulas de " + cedulas[i] + ": " + quantidadeCedulas);
Tipo, na primeira passagem (i = 0) cedulas[i] = 100, ele pega o 163 (valor em reais) e divide por 100 (valor da cédula) para descobrir quantas cédulas de 100 são necessárias pra chegar ao valor 163. O resultado dessa divisão é 1 (lembre-se que essa divisão não é exata, possui um resto aí) isso quer dizer q ele precisa de 1 nota no valor de 100 reais para compor o valor de 163 reais. Aí logo na linha seguinte, ele atualiza o valor em reais com o resto da divisão:

valorReais %= cedulas[i];

na primeira passada o valorReais é atualizado de 100 para 63, na segunda, de 63 para 13 (pq ele usa uma nota de 50), na terceira de 13 para 3 (pq usa uma nota de 10)… e assim vai…

Não sei se consegui responder sua dúvida…

A

entendi, é que estava fazendo na calc do PC 63/50, e me estava dando 1,26… achei que 26 seria o resto, viajei^^, mas eu entendi sim, brigado.

:slight_smile:

Criado 9 de fevereiro de 2011
Ultima resposta 9 de fev. de 2011
Respostas 5
Participantes 3