Ir ao conteúdo
  • Cadastre-se
MatheusNasci

Reduzir a quantidade de códigos usados

Recommended Posts

Boa noite,

Sou novo por aqui, me chamo Matheus.

Estou cursando Ciência da Computação e estou começando a aprender sobre programação em C.

 

Tenho um programa a ser feito, até o fiz, porém, meu código ficou muito "grande", e este é um exercício que tenho que entregar a mão para o professor.

Vou colocar meu código, e gostaria de saber, se tem como eu eliminar etapas repetitivas de meu código, pois usei o switch para 4 casos, e em todos casos, deu mais ou menos umas 20 linhas cada....

 

E possível eu fazer este código, utilizando menos linhas?

Segue o que é pedido no exercício:

 

Faça um programa que leia:

- código do produto;

- quantidade comprada;

Calcule e mostre:

- Preço conforme tabela 1;

- Preço total;

-Valor do desconto, conforme tabela 2;

-Preço final.

tabela 1                                                     tabela 2 

cod                preço                                   preço total                    % de desconto

1                     10,00                                ate 250,00                           5%

2                     15,00                                entre 250 e 500                 10%

3                     17,00                                   >=500                             15%

outro cod.       20,00

 

Abaixo segue o meu código:

Spoiler

/* Exercício 3*/
#include <stdio.h>
#include <stdlib.h>

main()
{
	float quant, pt1, pt2, pt3, pt4, pd1, pd2, pd3, pd4, un1, un2, un3, un4;
	char cod;
	printf("Informe o codigo do produto desejado: ");
	scanf("%s", &cod);
	printf("Informe a quantidade desejada: ");
	scanf("%f", &quant);
	un1=10.00;
	un2=15.00;
	un3=17.00;
	un4=20.00;
		switch (cod){
			case '1':
				pt1=quant*un1;
				printf("\nO preco unitario e de: R$ 10.00");
				printf("\nO preco total e de: %.2f", pt1);
				if (pt1 <= 250.00){
					pd1=pt1-(pt1*5)/100;
					printf("\nO valor do desconto e de: 5%%");
					printf("\nO preco final com desconto e de: %.2f\n", pd1);
				}else if (pt1 > 250.00 && pt1 < 500){
					pd1=pt1-(pt1*10)/100;
					printf("\nO valor do desconto e de: 10%%");
					printf("\nO preco final com desconto e de: %.2f\n", pd1);					
				}else if (pt1 >= 500){				
					pd1=pt1-(pt1*15)/100;
					printf("\nO valor do desconto e de: 15%%");
					printf("\nO preco final com desconto e de: %.2f\n", pd1);
				}
			break;
			case '2':
				pt2=quant*un2;
				printf("\nO preco unitario e de: R$ 15.00");
				printf("\nO preco total e de: %.2f", pt2);
				if (pt2 <= 250.00){
					pd2=pt2-(pt2*5)/100;
					printf("\nO valor do desconto e de: 5%%");
					printf("\nO preco final com desconto e de: %.2f\n", pd2);
				}else if (pt2 > 250.00 && pt2 < 500){
					pd2=pt2-(pt2*10)/100;
					printf("\nO valor do desconto e de: 10%%");
					printf("\nO preco final com desconto e de: %.2f\n", pd2);					
				}else if (pt2 >= 500){				
					pd2=pt2-(pt2*15)/100;
					printf("\nO valor do desconto e de: 15%%");
					printf("\nO preco final com desconto e de: %.2f\n", pd2);
				}
			break;
			case '3':
				pt3=quant*un3;
				printf("\nO preco unitario e de: R$ 17.00");
				printf("\nO preco total e de: %.2f", pt3);
				if (pt3 <= 250.00){
					pd3=pt3-(pt3*5)/100;
					printf("\nO valor do desconto e de: 5%%");
					printf("\nO preco final com desconto e de: %.2f\n", pd3);
				}else if (pt3 > 250.00 && pt3 < 500){
					pd3=pt3-(pt3*10)/100;
					printf("\nO valor do desconto e de: 10%%");
					printf("\nO preco final com desconto e de: %.2f\n", pd3);					
				}else if (pt3 >= 500){				
					pd3=pt3-(pt3*15)/100;
					printf("\nO valor do desconto e de: 15%%");
					printf("\nO preco final com desconto e de: %.2f\n", pd3);
				}
			break;
			default:
				pt4=quant*un4;
				printf("\nO preco unitario e de: R$ 20.00");
				printf("\nO preco total e de: %.2f", pt4);
				if (pt4 <= 250.00){
					pd4=pt4-(pt4*5)/100;
					printf("\nO valor do desconto e de: 5%%");
					printf("\nO preco final com desconto e de: %.2f\n", pd4);
				}else if (pt4 > 250.00 && pt4 < 500){
					pd4=pt4-(pt4*10)/100;
					printf("\nO valor do desconto e de: 10%%");
					printf("\nO preco final com desconto e de: %.2f\n", pd4);					
				}else if (pt4 >= 500){				
					pd4=pt4-(pt4*15)/100;
					printf("\nO valor do desconto e de: 15%%");
					printf("\nO preco final com desconto e de: %.2f\n", pd4);
				}
			break;
		}
	system("pause");
}

 

 

O código ja deu certo, so quero saber se tem como eu diminuir seu tamanho, utilizando menos linhas de códigos ou algo do tipo.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite. Uma ideia é criar um método que receba o preço e quantidade. Esse método serve para os 4 casos.

Dentro do case você só calcula o preço, com base no código digitado.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×