Travei nesse exercicio!

  1. Uma loja de discos anota diariamente durante o mês de abril a quantidade de discos
    vendidos. Determinar em que dia desse mês ocorreu a maior venda e qual foi a quan-
    tidade de discos vendida nesse dia. Faça ao menos uma simulação passo a passo da
    execução de sua solução.

import java.util.Scanner;

public class Exe11{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int x, n=0, i, dia=0, venda=0;
System.out.println("Digite a quantidade de dias do mês: ");
x=in.nextInt();
for(i=0;i<x;i++){
System.out.println("Digite a quantidade de discos vendidos no dia: “);
n=in.nextInt();
if(n>0){
dia=n++;
n–;}//if
else if(dia>n){
venda=dia;
}//else
}//for
System.out.println(”\nDias de maior venda foi: "+dia);
System.out.println("Quantidade vendida: "+venda);
}//main
}//class

O que é o x e o que é o n?

Não precisa perguntar quantos dias o mês tem.
Abril sempre tem 30 dias.

Crie uma variável para guardar o dia com maior venda e uma pra guardar o valor da maior venda.

Inicialize a variável valorMaiorVenda com 0

Quando ler os valores das vendas realizadas nos dias, verifique se aquela venda é maior que o valor da variável valorMaiorVenda, se for então valorMaiorVenda recebe o valor daquela venda e a variável diaMaiorVenda recebe aquele dia.

Uma forma de resolver:

/**
* Exercício: 11
* Título: Loja de Discos
* Lista de Exercício: 1
* Disciplina: Programação Orientada a Objetos
* Data de resolução: 23/08/2019
* Autor: João
*/

import java.util.Scanner;

public class LojaDeDisco {
	public static void main(String[] args){
		final short DIAS_MES = 30;
		short[] dia = new short[DIAS_MES];
		short[] qtdeVendida = new short[DIAS_MES];
		short diaMaiorVenda = 0;
		//Defino arbitrariamente que a maior quantidade está na posição zero
		short maiorVenda = qtdeVendida[0]; 
		
		Scanner entradaUsuario = new Scanner(System.in);
		
		System.out.println("\n\n============= ABRIL =============");
		
		for(short i = 0; i < DIAS_MES; i++){
			/*Lê o dia (deve ser diferente de zero)*/
			System.out.print("Data: ");
			dia[i] = entradaUsuario.nextShort();
			
			/*Verifica a *flag*, ou seja, a condição de parada do `for` que é dia igual zero*/
			if(dia[i] == 0){
				for(short j = 0; j < qtdeVendida.length; j++){
					//Verifica se a quantidade atual é maior que maiorVenda arbitrária
					if(qtdeVendida[j] > maiorVenda){ 
						//Se for, maiorVenda recebe esse valor
						maiorVenda = qtdeVendida[j];
						//Guarda o índice dessa maior venda
						diaMaiorVenda = j;
					}
				}
				//Imprime o dia da maior venda e o número de discos vendidos
				System.out.println("\n\nNo dia " + dia[diaMaiorVenda] 
					+ " vendeu-se " + qtdeVendida[diaMaiorVenda] + " discos!");
					
				return;
			}
			
			//Lê a quantidade de discos vendidos
			System.out.print("Discos vendidos: ");
			qtdeVendida[i] = entradaUsuario.nextShort();
			System.out.print("\n");
		}
	}
}

1 curtida

muito obrigado!!!

Alguém pode me ajudar a resolver esse problema?

Crie um programa Java para cálculo do salário de um trabalhador para uma empresa fictícia,
conforme os requisitos abaixo:

O programa deve solicitar as seguintes entradas:
• Valor da remuneração por hora (VH)
• Horas semanais trabalhadas (HS)

Obs: O número de horas semanais trabalhadas não deve ser superior a 44horas.
O programa deve calcular:

a. Salário (S)
• Salário Bruto (SB): obtido pela fórmula VH * HS * 4,5
• Salário Líquido (SL): obtido pela fórmula SB – INSS – IRRF

b. Descontos (D)
• INSS: calculado pela fórmula SB*A, conforme tabela abaixo, limitando-se ao teto de
R$ 621,03.

Salário Bruto (SB) Alíquota (A)
Até R$ 1.693,72 8%
De R$ 1.693,73 a R$ 2.822,90 9%
De R$ 2.822,91 até R$ 5.645,80 11%

• IRRF: Calculado pela fórmula (SB*A)-Dd, conforme a tabela a abaixo.
Salário Bruto (SB) Alíquota (A) Dedução (Dd)
Até 1.903,98 - -
De 1.903,99 até 2.826,65 7,5% R$ 142,80
De 2.826,66 até 3.751,05 15% R$ 354,80
De 3.751,06 até 4.664,68 22,5% R$ 636,13
Acima de 4.664,68 27,5% R$ 869,36

O programa deve exibir, após o cálculo, as seguintes informações:
• Valor da remuneração por hora (VH)
• Horas semanais trabalhadas (HS)
• Salário Base (SB)
• Descontos (INSS e IRRF)
• Salário Líquido (SL)

Posta o que você já fez.
Qua é a dúvida exatamente?

1 curtida

Staroski, eu não consegui fazer, a parte que eu fiz o professor disse que está errado, to nervosa pois não vou conseguir entregar o trabalho

Posta que daí dá pra te mostrar o que está errado e como arrumar.

eu não tenho mais o código

Oi fiz um esboço:
real VH; // valor remuneração por hora. ler do usuário
real HS; // horas semanais

real SB; //salário bruto
real SL; //salário líquido

real INSS, IRPF, A, Dd;

SB = VH * HS * 4.5;

//calcular INSS

if (SB <= 1693,72)
A = 0.08;
else if (SB <= 2822.90)
A = 0.09;
else
A = 0.11;

INSS = SB * A;
if (INSS > 621.03)
INSS = 621.03;

//calcular IRRF

// PRECISO DE AJUDA NESSA PARTE

//…

SL = SB - INSS - IRRPF;

O código é um pouco confuso se você ler meio com pressa, mas acho que entendi, perceba que a tua formula usa três valores:

Salario base = usuário informa
Aliquota = calcular com base na tabela 
Dedução = calcular com base na tabela

Pois bem, pra calcular esses é só fazer if e else como mostra abaixo

    if (sb <= 1693.72) {
        //calculando aliquota
        a = sb * 0.08;
    }
    if (sb > 1693.72 && sb <= 2822.90) {
        a = sb * 0.09;
    }
    if (sb > 2822.90 && sb <= 5645.80) {
        a = sb * 0.11;
    } else {
        System.out.println("Não foi possivel calcular sua aliquota, pois não possui uma regra pra caso o valor seja maior que  5.645,80 reais");
    }

    //depois faço um if pra calcular a dedução
    //crie uma variavel pra armazenar a dedução, vou chamar a minha de Dd
    if (sb <= 1903.98) {
        //isento de dedução, logo
        Dd = 0;
    }
    if ((sb > 1903.98) && (sb <= 2826.65)) {
        Dd = 142.80;
    }
    if ((sb > 2826.65) && (sb <= 3751.05)) {
        Dd = 354.80;
    }
    if ((sb > 3751.06) && (sb <= 4664.68)) {
        Dd = 636.13;
    } else {
        Dd = 869.36;
    }

    //Agora que tenho o salário base, a dedução e a aliquota, vamos fazer por na formula e calcular o IRRF
    //(SB*A)-Dd
    //Crie uma variavel pra receber o calculo, vou chamar a minha de irrf
    irrf = (sb * a) - Dd;
    System.out.println("Aliquota calculada:" + a);
    System.out.println("Dedução calculada:" + Dd);
    System.out.println("IRRF calculado:" + irrf);