sexta-feira, 30 de novembro de 2012

Caixa eletrônico em C. As notas consideradas são de 100, 50, 20, 10, 5, 2 e 1.

Escrever um algoritmo que leia um valor em Reais. A seguir, calcule o menor número de notas possíveis no qual o valor pode ser decomposto. As notas consideradas são de 100, 50, 20, 10, 5, 2 e 1. A seguir mostre o valor lido e a relação de notas necessárias.

Se você já está estudando vetores abaixo um exemplo de código que fiz. Se você não está estudando vetores, tem outro exemplo no blog que usa apenas variaveis.

Evidente que você pode incrementar o código com um do{ }while(); Também você pode trocar os cout e o cin por printf() e scanf()

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
using namespace std;

main (){

int cedulas[] = {100, 50, 20, 10, 5, 2, 1};
int quantidadeTotal = 0;
int valorReais = 0,i=0;
int qtdCedulas[7];
cout << “Valor a sacar “;
cin >> valorReais;

for(i = 0; i < 7; i++)
{
qtdCedulas[i] = (valorReais/cedulas[i]);
valorReais = valorReais % cedulas[i];
quantidadeTotal += qtdCedulas[i];
cout << qtdCedulas[i] << ” Cedulas de.: ” <<cedulas[i] << endl;
}
cout << “Total de Cedulas: ” << quantidadeTotal;

getch();

}

Queria mais? Então! É só isto! Pode parecer simples, mas, eu levei umas horas quebrando a cabeça de como pegar os valores, dividir, tirar inteiro, guardar no segundo vetor. E, funcionou!

Comentando o laço for() onde tudo acontece.

for(i = 0; i < 7; i++)
{
          qtdCedulas[i] = (valorReais/cedulas[i]);

Esta linha acima, o vetor qtdCedulas[i] recebe o resultado da variavel valorReais e dividido pelo valor do vetor cedulas[i], ou seja,  pega o valor que o usuário digita e divide por 100, depois, por 50, 20,10,5,2,1. Assim, cada posição do vetor qtdCedulas[i] armazena a sua quantidade de notas.

valorReais = valorReais % cedulas[i];

Esta linha acima pode ser substituída por esta outra abaixo:

            valorReais %= cedulas[i];

Aqui a variavel valorReais é modificada e passa a conter a cada laço o resto da divisão do valor digitado pelo usuário pelo conteúdo do vetor cedulas[i], ou seja, se você digitar: 254 na posição de cedulas[0] guardará 54, pois, 254/100 (100 é o valor de cédulas[0]).

Na segunda passagem do laço, valorReais receberá o conteúdo de 54/50 (50 é o valor de cédulas[1]), ou seja, resto 4.

E assim por diante.

            quantidadeTotal += qtdCedulas[i];

Esta variável vai contando a quantidade de cédulas armazenado no vetor qtdCedulas[].

cout << “Cedulas de …: ” << cedulas[i] << “\t Qtd …: ” << qtdCedulas[i] << endl;

Esta linha exibe na tela o resultado. E você pode usar o printf();

Isto é tudo!

Nenhum comentário:

Postar um comentário