ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

LOGICA DE PROGRAMACION


Enviado por   •  3 de Octubre de 2013  •  18.117 Palabras (73 Páginas)  •  254 Visitas

Página 1 de 73

IF :

Posts guardados en "if else":

Devolver cambio en C++

Guardado en: Programas el 10 de febrero del 2011 Etiquetas: if else, while

¿Han pagado algún recibo en una máquina automática y se han preguntado cómo será el programa que les devuelve el cambio? Lo más seguro es que no, pero pues resulta que el profesor de Miguel Ángel le encargó un programa que simulara eso, en sus propias palabras:

“Supón que una maquina de monedas de 10,5,2,1 y 50 centavos. Debes escribir un programa que decida cuantas monedas dará de cambio, dando prioridad las de mayor denominación. Debe recibir como entrada la cantidad de dar a cambio. Ejemplo: para $40.50 será 4 de 10, 0 de 5, 0 de 2, 0 de 1 y 1 de 50 centavos.”

Así que el primer problema se presenta con la entrada ¿cómo hacer que el usuario introduzca sólo cantidades como $50 o $43.50 y no cantidades como $23.45 o $9.70?

Lo que se me ocurrió es pedir la cantidad en una variable float (cambio), en otra variable convertir esa cantidad a tipo int (cambioint). En ese proceso se perderá la parte decimal del número, así que si la resta cambio – cambioint es igual a 0 o igual a 0.50, la cantidad que introdujo el usuario es correcta.

La otra parte es sencilla, sólo se necesita ver si la variable cambio es mayor que 10. Si si, se le restan 10 a la variable y se aumenta un contador. Luego se hace lo mismo con las demás monedas.

Pero bueno, el programa es este:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41 #include<iostream>

using namespace std;

int main()

{

float cambio; int cambioint, m10=0, m5=0, m2=0, m1=0, m50c=0;

do

{

cout << "Cambio?: "; cin >> cambio;

cambioint = (int)cambio;

}while((cambio - cambioint) != 0 && (cambio - cambioint) != 0.50);

while(cambio != 0)

{

if(cambio>=10)

{

m10++;

cambio-=10;

}

else if(cambio>=5)

{

m5++;

cambio-=5;

}

else if(cambio>=2)

{

m2++;

cambio-=2;

}

else if(cambio>=1)

{

m1++;

cambio-=1;

}

else if(cambio>=0.5)

{

m50c++;

cambio-=0.5;

}

}

cout << m10 << ", " << m5 << ", " << m2 << ", " << m1 << ", " << m50c;

}

Solo le faltaría darle un poco de formato a la salida, pero pues ya es cuestión de gustos y ya saben, cualquier duda aquí están los comentarios abajo.

25 Comentarios

Primo o no ¡SIN CICLOS! en C++

Guardado en: Programas el 9 de septiembre del 2010 Etiquetas: if else, primos

Me preguntaban en los comentarios de este post: Primo o no, que si habría alguna forma de hacer ese mismo programa pero sin ciclos. Mmmm…

Pues mi primera respuesta es no. Pero hay una forma muy burda de aproximarse a él. El siguiente programa es para calcular si un número es primo o no sin ciclos y es infalible hasta el 168, a partir de ahí puede que le atine o puede que no.

#include<iostream>

using namespace std;

int main()

{

int n;

cout << "Introduce un numero: "; cin >> n;

...

Descargar como (para miembros actualizados)  txt (114 Kb)  
Leer 72 páginas más »
Disponible sólo en Clubensayos.com