Algoritmo estrutura de repetição

17 respostas
D
/*Um rede de supermercados deseja saber o valor médio de vendas de cada uma das suas 30 filiais.
Para isso, solicitou a criação de um programa que calcular a média de 10 vendas consecutivas
ocorridas em cada uma de suas filiais.
O programa deve mostrar a média de cada filial, juntamente com o número da loja vencedora.*/


import java.util.*;
public class exercicio4 {
public static void main(String[] args) {
Scanner e=new Scanner(System.in);
int zero=0, cont=1,x=1, filial=1,vencedor=0, acumulamedia=1, itens=0, mediaparcial=0,acumulador=0, vendas;
 double media = 0, getmedia = 0;
do {

System.out.println("Entre com os valores das vendas da  filial Número  "+filial);

System.out.println("Entre com os valores  das vendas dessa Filial ?");
for(vendas=1;vendas<=10;vendas++){
System.out.println("Venda numero "+vendas);
itens=e.nextInt();
acumulador=(itens+acumulador);
mediaparcial=acumulador/10;
//zero valor do acumulado para o loop
if (vendas==10){
acumulador=zero;
}
 
if (mediaparcial>x){
vencedor=mediaparcial;
}

}

System.out.println("MEDIA PARCIAL da filia numero "+filial+" é de "+mediaparcial);

filial++;
acumulamedia++;
}//fim do

while (filial<=30);

System.out.println("A MEDIA DE VENDA MAIOR DA LOJA VENCEDORA FOI DE "+vencedor);

//Gera media
 
//Saidas
System.out.println("Valor acumulado das Vendas  "+acumulador);
System.out.println("A média de Vendas é de  "+media);
System.out.println("Valor da GETMEDIA  "+getmedia);
}
 
}

eu fiz esse algoritmo mais acho que ele não esta certo de acordo com o exercício alguém pode me ajudar a corrigi - lo? obrigado

17 Respostas

D

eu queria fazer esse exercicio com while como sera q seria? obrigado!!

nel

Oi,

vamos a problemática:

/Um rede de supermercados deseja saber o valor médio de vendas de cada uma das suas 30 filiais.
Para isso, solicitou a criação de um programa que calcular a média de 10 vendas consecutivas
ocorridas em cada uma de suas filiais.
O programa deve mostrar a média de cada filial, juntamente com o número da loja vencedora.
/

Bom, lendo isso penso no seguinte:

1 - Terás um vetor de tamanho 30, que irá armazenar a média de cada filial
2 - Terás um vetor de tamanho 10, que irá armazenar o valor de cada venda
3 - Após digitado os 10 valores, deve gerar a média entre eles e em seguida, armazenar na primeira posição do vetor
5 - Zerar o vetor das vendas (algo como double[] compras = new double[10]:wink:
4 - Irá solicitar novamente os 10 valores da filial seguinte
5 - Repetir os passos 3 e 4 até encerrar a entrada das 30 filiais

O vetor das filiais e vendas devem ser um double, pois a média pode não ser precisa.
De resto, é aplicar lógica. Esses passos eu dei sem solicitar qual filial tu deseja cadastrar primeiro e etc, você simplesmente segue a ordem e pode realizar isso com um for, while, enfim, qualquer laço de repetição.

Acho que isso ajuda você em sua lógica.
Abraços.

Lucas_Abbatepaolo

Qual a duvida?? ou vc quer que alguem faça o trabalho para vc??

D

claro que não né pq ja comecei :X

D

obrigada neo não cheguei em vetores ainda pq esse é um algoritmo de primeiro semestre
ainda mais eu vou tentar pegar seu racicínio e tentar fazer mais simples obrigada!

igor_ks

oloco, o nel colocou os passos tudo certinho, trabalho de escola mais pronto do que isso, só codificando o que ele disse,

mas ai tb ja eh demais né? =D

D
/*Um rede de supermercados deseja saber o valor médio de vendas de cada uma das suas 30 filiais.
Para isso, solicitou a criação de um programa que calcular a média de 10 vendas consecutivas
ocorridas em cada uma de suas filiais.
O programa deve mostrar a média de cada filial, juntamente com o número da loja vencedora.*/

import java.util.*;

public class exercicio4{
	public static void main(String args[]){
		Scanner dado = new Scanner(System.in);
		
		double mediavenda = 0,mediafilial,venda = 0,acumulavenda = 0,maior = 0;
		int num,i,j;
		
		for(i = 1; i<=3;i++){
			System.out.println("digite os valores para a filial "+i);
			for(j = 1;j<=10;j++){
				System.out.println("digite o valor da venda "+j);
				venda = dado.nextDouble();
				
				acumulavenda = acumulavenda + venda;
				mediavenda = acumulavenda/10;
				
			}if(venda > maior){
				maior = venda;
			}
				System.out.println("a média das vendas da filial foi "+mediavenda);
		}
		System.out.println("a loja vencedora foi "+maior);
	}
}

eu mudei o algoritmo e fiz assim não sei se ficou correto o raciocínio pode ajudar???

D

ta três 3 no loop pq estava fazendo um teste…

D
/*Um rede de supermercados deseja saber o valor médio de vendas de cada uma das suas 30 filiais.
Para isso, solicitou a criação de um programa que calcular a média de 10 vendas consecutivas
ocorridas em cada uma de suas filiais.
O programa deve mostrar a média de cada filial, juntamente com o número da loja vencedora.*/

    import java.util.*;  
      
    public class exercicio4{  
        public static void main(String args[]){  
            Scanner dado = new Scanner(System.in);  
              
            double mediavenda = 0,mediafilial,venda = 0,acumulavenda = 0,maior = 0;  
            int num,i,j;  
              
            for(i = 1; i<=3;i++){  
                System.out.println("digite os valores para a filial "+i);  
                for(j = 1;j<=10;j++){  
                    System.out.println("digite o valor da venda "+j);  
                    venda = dado.nextDouble();  
                    
                    acumulavenda = acumulavenda + venda;
                    mediavenda = acumulavenda/10; 
                    acumulavenda = 0;
                } 
                System.out.println("a média das vendas da filial foi "+mediavenda);
            }
                
            if(venda > maior){  
                    maior = venda;  
                }  
                    System.out.println("a loja vencedora foi "+maior);
            }    
        }
D

esta assim agora mais ainda acho q não esta correto obrigado!

nel

Oi Dani.

Já que não pode usar vetor terás de simplesmente apresentar a média a cada filial dada.
Não olhei atentamente o seu algoritmo, mas veja que no laço de repetição que você pede o valor da venda (10 vezes no caso) você está calculando a média.
Está errado. Você acumula a venda, como está fazendo, mas calcula a média fora desse laço de repetição, ou seja, após ter somado todos os valores da venda (que no caso são 10).

Feito isso, você calcula a média e apresenta ao usuário e após isso, volta a pedir os valores de cada venda para a próxima filial, calcula a média e volta tudo.
Vai repetir isso por 30 vezes, já que são 30 filiais, perfeito ? :slight_smile:

Diguinho.Max

nel:
Oi Dani.

Já que não pode usar vetor terás de simplesmente apresentar a média a cada filial dada.
Não olhei atentamente o seu algoritmo, mas veja que no laço de repetição que você pede o valor da venda (10 vezes no caso) você está calculando a média.
Está errado. Você acumula a venda, como está fazendo, mas calcula a média fora desse laço de repetição, ou seja, após ter somado todos os valores da venda (que no caso são 10).

Feito isso, você calcula a média e apresenta ao usuário e após isso, volta a pedir os valores de cada venda para a próxima filial, calcula a média e volta tudo.
Vai repetir isso por 30 vezes, já que são 30 filiais, perfeito ? :)

como disse nel a media da venda tem que estar fora da estrutura de repetição pois senao não faz sentido a cada posicao ele calcula e faz a media.

D
/*Um rede de supermercados deseja saber o valor médio de vendas de cada uma das suas 30 filiais.
Para isso, solicitou a criação de um programa que calcular a média de 10 vendas consecutivas
ocorridas em cada uma de suas filiais.
O programa deve mostrar a média de cada filial, juntamente com o número da loja vencedora.*/

    import java.util.*;  
      
    public class exercicio4{  
        public static void main(String args[]){  
            Scanner dado = new Scanner(System.in);  
              
            double mediavenda = 0,mediafilial,venda = 0,acumulavenda = 0,maior = 0;  
            int num,i,j;  
              
            for(i = 1; i<=3;i++){  
                System.out.println("digite os valores para a filial "+i);  
                for(j = 1;j<=10;j++){  
                    System.out.println("digite o valor da venda "+j);  
                    venda = dado.nextDouble();            
                }
                acumulavenda = acumulavenda + venda;  
                mediavenda = acumulavenda/10;  
                acumulavenda = 0;
                System.out.println("a média das vendas da filial foi "+mediavenda);
            }
                if(venda > maior){  
                    maior = venda;  
                }  
                System.out.println("a loja vencedora foi "+maior);  
            }  
        }

agora só esta faltando mostrar o número da loja vencedora que nao estou conseguindo mostrar

D

\o

nel

Dani,

o que acha de criar duas variavéis auxiliares?
Uma delas vai armezanar a média e a outra a filial.

Ambas você vai armazenar sempre o valor da média e a filial, mas você só vai atualizar esses valores quando a média superar a já existente, entende?
Mais ou menos assim, a idéia:

filial: 1
média: 150.10

filial: 2
média: 149.50

filial: 3
média: 151.48

Ops, a filial 3 possui uma média maior que a já existente (150.10), então atualiza. Sendo assim, suas variavéis auxiliares passam a ser:

filial: 3
média: 151.48

Abraços.

jgabrielff

kara da para vc usar variaveis tipo!

valor++ ( vai sair assim)

valor 1 ;

valor 2;

3,4 e etc

depois fas a media e joga a media em uma TextField nao precisa armazanar em vetores é simples!
:slight_smile:

nel

jgabrielff:
kara da para vc usar variaveis tipo!

valor++ ( vai sair assim)

valor 1 ;

valor 2;

3,4 e etc

depois fas a media e joga a media em uma TextField nao precisa armazanar em vetores é simples!
:)

Tu leu o tópico antes de escrever isso?
Não é possível que tu tenha lido.

Criado 10 de novembro de 2011
Ultima resposta 11 de nov. de 2011
Respostas 17
Participantes 6