Programadores yo os invoco.

B

Hola, necesito ayuda con un problema se supone que sencillo para alguien que sepa de programación.

Cuando se compra una cajetilla de tabaco en una máquina y no se ingresa el
importe exacto, la máquina posee un algoritmo para devolver el mínimo número
de monedas.
Desarrollar un algoritmo considerando únicamente monedas
de 5, 10, 20 y 50 céntimos de €, de manera que lea desde el teclado el importe
de la cajetilla de tabaco y la cantidad de dinero introducida en la máquina,
y devuelva el número de monedas de cada tipo que hay que devolver.

Si alguien puede ayudarme se lo agradecería ya que es el último de una relación de 10 problemas.

El algoritmo es sencillo, hay que hacerlo en Pseudocódigo y solo utilizando Estructuras Secuenciales.

cHiv0rz

el metodo a utilizar es el voraz. Busca informacion por ahi
xP

Tema 3. El método Devorador (Voraz).

  • Introducción.
  • El método general: elementos y características generales.
  • El método en teoría de grafos.
  • Árbol de recubrimiento mínimo: algoritmos de Kruskal y Prim.
  • Caminos mínimos desde vértice común: algoritmo de Dijkstra.
  • Otras aplicaciones: El problema de la mochila (1).

algo asi

vasag0

o si vives en 2007 usa google:

http://es.wikipedia.org/wiki/Problema_de_las_monedas_con_programaci%C3%B3n_din%C3%A1mica

ReMaTxEs

A parte de foro equivocado.. Usa a tu amigo google =) Y si, lo de prime te debería de ser util

eaglexP

por voraz o por programacion dinamica. pero vamos, ke secundo la mocion de www.google.com (aunke yo tengo el algoritmo escrito en un pdf, pero paso de pegartelo xDDDDDDD)

SeiYa

No dije nada...

Ninja-Killer

Invocado estoy

XarevoK

si no consigues hacer eso por ti mismo, despidete de aprobar.

BLZKZ

libro de algoritmia, o libro de discreta. En los dos vienen algoritmos que te valen.

Unr3al

me suena a explotación de sistemas informáticos xddd

JuAn4k4

El google paste es un metodo de programacion muy utilizado, eso de usar la cabeza se lleva poco eh.

mientrasq importe != cantacumul hacer
aux = importe - cantacumul;

condicion ( aux )
aux >= 50 do
cantacumul = cantacumul +50
monedasde50++;

aux >= 20 and aux < 50 do

blablabla

M

Insuficiente en programacion... yo te invoco

S

#1 Tú avatar me produce nauseas, ah no, espera que este no era el hilo de comentar avatares..

Kr4n3oK

Joder , pide ayuda y no sois ni para guiarle un poco , yo sinceramente porque no sé aún de eso , si ya lo hubiera tocado..

Soltrac

Es q el algoritmo de devolución de monedas es mítico. Es el ejemplo que se pone en toda universidad de algoritmo voraz y es de cajón sabérselo de memoria si pretendes aprobar teoría de programación.

Así q es normal q la gente copie y pegue de google ^.

Algoritmos míticos? Quicksort, el problema de la mochila, el problema del viajante..pfff es q todos esos hay q sabérselos de memoria xDDD.

B

Bueno pues creo que ya lo he resuelto:

ALGORITMO Tabaco

VARIABLES
M50,M20,M10,M5,precio,cambio: ENTERO

  1. [Entrada de datos]

ESCRIBIR('Introduce el precio en múltiplos de 100, 1€=100')
LEER('precio')

  1. [Calculo]

M50 <- Precio/50
Cambio <- Precio%50

M20 <- Cambio/20
Cambio <- Cambio%20

M10 <- Cambio/10
Cambio <- Cambio%10

M5 <- Cambio/5
Cambio <- Cambio%5

  1. [Mostrar el resultado]

ESCRIBIR('El nº de monedas de 50 Cent. es',M50)
ESCRIBIR('El nº de monedas de 20 Cent. es',M20)
ESCRIBIR('El nº de monedas de 10 Cent. es',M10)
ESCRIBIR('El nº de monedas de 5 Cent. es',M5)

ESCRIBIR('Sobran',cambio,'centimos')

  1. [FIN]
ItNaS

y te saldran numero de monedas con decimales.

M50=redondear hacia abajo(precio/50)
cambio=precio%50
...

RiderBCN

ANORMAL!!!

KAKES

tioo! programacion 4ever xddd

facil.

B O R L A N D C o B A S I C XDDDDDdd

OMAAAAAAAAAAA:

suerte

Riu

#1 en esta web puedes ESTUDIAR y luego vas y luego nos dices que problema tienes aqui nadie esta para copiarte el codigo ni hacerte el programa asi nunca aprenderas una mierda.
PD: ODIO LAS PUTAS PRUEBAS DE ACCESO A GRADO SUPERIOR EN LAS QUE PASAN LA PUTA MANO.
http://scratchpad.wikia.com/wiki/PLE

B

bueno... yo ice este el año pasado en pascal.
Introduces un importe a pagar, introduces el dinero que te a dado el cliente y te devuelve el cambio.

tu solo deverias indicar la diferencia directamente

Program monedas2;
USES
crt;
CONST
a: array[1..15] of real = (500,200,100,50,20,10,5,2,1,0.5,0.2,0.1,0.05,0.02,0.01-0.0000001);
VAR
i,contador: byte;
importe,entregado,diferencia: real;
BEGIN
clrscr;
writeln('introduce el importe: ');
readln(importe);
writeln('introduce la cantidad entregada: ');
readln(entregado);
diferencia:= entregado - importe;
for i:=1 to 15 do begin
contador:=0;
while diferencia >= a do begin
diferencia:= diferencia - a;
contador:=contador+1;
end;
writeln(contador,' monedas de ',a:5:2);
end;
readln;
END.


PD: Me parece que es el bueno... esque no tengo el pascal en el portatil y esto lo tenia en una carpeta donde se supone que deberia aver como unos 25 ejercicios mas i solo ai 2... asi ke... lo mismo es alguno inacabado ke tenia xo no creo!

Usuarios habituales