Ejercicio para crear funciones

Ejercicio para crear funciones Programa para dar cambio en una maquina expendedora M.C. Bertha López Azamar 1 Algoritmo principal 1. 2. 3. Mostra...
3 downloads 0 Views 386KB Size
Ejercicio para crear funciones Programa para dar cambio en una maquina expendedora

M.C. Bertha López Azamar

1

Algoritmo principal 1. 2. 3.

Mostrar menu de productos (y opción de terminacion) Elegir producto ¿eligio la opcion 6 ?  

4. 5. 6.

V: ir a paso 7 F: ir a paso 4

Asignar costo del producto Pago del producto ¿Introdujo el pago completo? V: ¿hay que dar cambio? V: Dar cambio Dar el producto Acumular la venta

No: devolver las monedas 

¿eligio la opción 6 para hacer el corte? V: ir a paso 8 F: ir a paso 1

1. 2.

Mostrar el corte del dia FIN

M.C. Bertha López Azamar

2

A

INICIO

op es entero Listo es caracter

Pago, renta, cambio, son flotantes

acumpago, costo son flotantes

Venta = 0

Paso 1 y 2 Mostrar menu de productos Y Elegir producto

“1. Galleta: $3 2. Sabrita: $5” “1. refresco: $6 2. Paleta: $2” “1. Cacahuate: $3. Elije:”

op si

1

2

op6 “Maguina expendedora”

no si op==6

2

“Se realizará el corte del día”

no A

M.C. Bertha López Azamar

B

Z

3

B H

G

si Costo=3

op==1

C

F

no

si Costo=5

op==2 no

D

E

Paso 4. Asignar costo del producto

si Costo=6

op==3 no

E

C

si Costo=1

op==4 no

F I

si op==5

D

Costo=3

G

no

H

M.C. Bertha López Azamar

4

I

J

“ Se realiza el pago”

pago==1 O pago==2 O pago==5 O pago==10

acumpago=0

no

Paso 5. Pago del producto si “ Moneda invalida Dame otra:” pago

“ ¿Faltan monedas?

3

4 “ Introduce una moneda”

listo

acumpago = acumpago + pago

pago

si

3

listo==„s‟

4

no si costo > acumpago

“ Davolución de moneda”

“ porque el producto cuesta mas”

no

J

M.C. Bertha López Azamar

K

Y

5

K

M

Dar cambio

si

cambio = acumpago - costo

cambio > 5

“Arrojar moneda de $5”

cambio = cambio - 5

2Arrojar moneda de $2”

cambio = cambio - 2

N

no

5

si cambio > 2

si cambio > 0

no M

no

O

si cambio > 1

venta = venta + costo

“Arrojar moneda de $1”

cambio = cambio - 1

no

“Arrojar producto”

O Y N L

5 M.C. Bertha López Azamar

6

L

Z si Op 6

1

no “Se termino la venta. Se presenta”

“corte del dia”

“Venta total de: ”, venta

“No olvide insertar más productos”

FIN

M.C. Bertha López Azamar

7

 

Al crear la función, lo que se hace es separar el codigo, e introducir la llamada a la función. Lo que hace que el programa principal sea más legible, ya que cada función tendrá el funcionamiento detallado.

Observese como va reestructurandose el algoritmo.

(Nota: no se han considerado el ambito de las variables aun, solo la separación del código)

M.C. Bertha López Azamar

8

A

INICIO

op es entero Listo es caracter

Pago, renta, cambio, son flotantes

acumpago, costo son flotantes

Venta = 0

Paso 1 y 2 Mostrar menu de productos Y Elegir producto

“1. Galleta: $3 2. Sabrita: $5” “1. refresco: $6 2. Paleta: $2” “1. Cacahuate: $3. Elije:”

op si

1

2

op6 “Maguina expendedora”

no si op==6

2

“Se realizará el corte del día”

no A

M.C. Bertha López Azamar

B

Z

9

INICIO

INICIO MENU

Función para mostrar menu de productos y elegir producto

op es entero Listo es caracter Pago, renta, cambio, son flotantes

“Maguina expendedora”

2

acumpago, costo son flotantes

“1. Galleta: $3 2. Sabrita: $5”

Venta = 0

“1. refresco: $6 2. Paleta: $2”

1 “1. Cacahuate: $3. Elije:” MENU op si op==6

“Se realizará el corte del día”

si op6

2

no A

Z

no FIN

M.C. Bertha López Azamar

10

A H

G

si Costo=3

op==1

C

F

no

si Costo=5

op==2 no

D

E

Paso 4. Asignar costo del producto

si Costo=6

op==3 no

E

C

si Costo=1

op==4 no

F I

si op==5

D

Costo=3

G

no

H

M.C. Bertha López Azamar

11

A

Función para asignar costo del producto INICIO Costos

H

Costos si op==1 I

no

Costo=3

C

Costo=5

D

si op==2

G

F E

no

si Costo=6

op==3

E

D no

si Costo=1

op==4 no

F

C

si op==5

Costo=3

G

FIN

no H

M.C. Bertha López Azamar

12

I

J

“ Se realiza el pago”

pago==1 O pago==2 O pago==5 O pago==10

acumpago=0

no

Paso 5. Pago del producto si “ Moneda invalida Dame otra:” pago

“ ¿Faltan monedas?

3

4 “ Introduce una moneda”

listo

acumpago = acumpago + pago

pago

si

3

listo==„s‟ no

4

si costo > acumpago

“ Davolución de moneda”

“ porque el producto cuesta mas”

no

J

M.C. Bertha López Azamar

K

Y

13

Función para el pago del producto

I

INICIO Pagos

J

Pagos “ Se realiza el pago”

pago==1 O pago==2 O pago==5 O pago==10

costo > acumpago acumpago=0

no

K

“ Davolución de moneda”

no

pago

4 “ Introduce una moneda”

Y

listo

acumpago = acumpago + pago

pago

si listo==„s‟

4

3

no

J

M.C. Bertha López Azamar

“ Moneda invalida Dame otra:”

“ ¿Faltan monedas?

3

“ porque el producto cuesta mas”

si

FIN

14

K

M

Dar cambio

si

cambio = acumpago - costo

cambio > 5

“Arrojar moneda de $5”

cambio = cambio - 5

2Arrojar moneda de $2”

cambio = cambio - 2

N

no

5

si cambio > 2

si cambio > 0

no M

no

O

si cambio > 1

venta = venta + costo

“Arrojar moneda de $1”

cambio = cambio - 1

no

“Arrojar producto”

O Y N L

5 M.C. Bertha López Azamar

15

Funcion para dar cambio

K

INICIO DarCambio cambio = acumpago - costo si cambio > 5

5

“Arrojar moneda de $5”

cambio = cambio - 5

N

no si cambio > 0

si DarCambio

cambio > 2

no

2Arrojar moneda de $2”

cambio = cambio - 2

O

no si

5 cambio > 1 venta = venta + costo

“Arrojar moneda de $1”

no “Arrojar producto”

Y

cambio = cambio - 1

O N

L

M.C. Bertha López Azamar

FIN

16

L

Z si Op 6

1

no “Se termino la venta. Se presenta”

“corte del dia”

“Venta total de: ”, venta

“No olvide insertar más productos”

FIN

M.C. Bertha López Azamar



Reestructurando y separando las funciones se tiene el algoritmo principal que se muestra a continuación. 17

A

K

INICIO Pagos

op es entero Listo es caracter

Z si

“ Davolución de moneda”

costo > acumpago

Pago, renta, cambio, son flotantes

si Op 6

1

no acumpago, costo son flotantes

“ porque el producto cuesta mas”

cambio = acumpago - costo

Venta = 0

5

Y si

1 cambio > 0 MENU

no

“Se termino la venta. Se presenta”

DarCambio

“corte del dia”

5

“Venta total de: ”, venta

no si

op==6

no

“Se realizará el corte del día”

Costos

Z

venta = venta + costo

“No olvide insertar más productos”

“Arrojar producto”

Y A

M.C. Bertha López Azamar

FIN

K

18

INICIO MENU

INICIO Costos

H si

“Maguina expendedora”

op==1 no

2

no

Costo=5

D

G

F E

si Costo=6

op==3

“1. refresco: $6 2. Paleta: $2”

C

si op==2

“1. Galleta: $3 2. Sabrita: $5”

Costo=3

E

D no

“1. Cacahuate: $3. Elije:”

si Costo=1

op==4 no

op

op6

C

si op==5

si

F

Costo=3

G

FIN

no

2

no FIN

M.C. Bertha López Azamar

H

19

INICIO Pagos

J

“ Se realiza el pago”

“ ¿Faltan monedas?

acumpago=0

listo

INICIO DarCambio si cambio > 5

cambio = cambio - 5

no si

3

“Arrojar moneda de $5”

cambio > 2

acumpago = acumpago + pago

N

2Arrojar moneda de $2”

no

“ Introduce una moneda”

cambio = cambio - 2

si listo==„s‟

pago

3 si

no

4

O

cambio > 1

FIN

“Arrojar moneda de $1”

no pago==1 O pago==2 O pago==5 O pago==10

si “ Moneda invalida Dame otra:”

no

pago

J M.C. Bertha López Azamar

4

cambio = cambio - 1

O N FIN

20