ejercicio de tipos de tornillos, doble ciclo

19
Introducción a la Computación Programa: Análisis de Sistemas Profesora: Erys Piñero Profesor: Vladimir Camacaro C1. Introducción a la Computación Profs. Vladimir Camacaro y Erys Piñero. 1

Upload: erysintroduccion

Post on 13-Jul-2015

389 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Ejercicio de tipos de tornillos, doble ciclo

Introducción a la Computación

Programa: Análisis de Sistemas

Profesora: Erys Piñero

Profesor: Vladimir Camacaro

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 1

Page 2: Ejercicio de tipos de tornillos, doble ciclo

Ejercicio Una ferretería distribuidora de tornillos, recibe de cada uno de sus vendedores la

información referente a sus ventas. Los tornillos se venden por paquetes de una docena. Los datos disponibles son: Código del vendedor Precio del tornillo (por paquetes de una docena) Tipo de tornillos (para maderas, para paredes) Cantidad de tornillos ( se venden paquetes de una docena)Cada vendedor tiene tantas entradas como ventas realizadas Se requiere de un informe que contenga: Por vendedor: Monto total Promedio de lo facturado Por ferretería: Código del vendedor con mayor facturación Total monto facturado Que tipo de tornillo ( para maderas o para paredes) se vendió en mayor

cantidad

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 2

Page 3: Ejercicio de tipos de tornillos, doble ciclo

Solución:Análisis del problema:Lista Clasificación Ventas ------------------------------------ Clase Código -------------------------------------- Atributo/Vendedor TipoTornillos (para maderas, para paredes) -- Atributo/Vendedor Precio---------------------------------------- Atributo/Vendedor Cantidad ------------------------------------ Atributo/Vendedor

Vendedor--------------------------------------------------- ClaseCalcular monto total facturado------------------------ Método/InformeCalcular promedio de lo facturado------------------- Método/Informe

Ferretería -------------------------------------------------- ClaseCalcular vendedor con mayor facturación --------- Método/FerreteríaCalcular tipo de tornillo que se vendió en mayor cant Método/FerreteríaCalcular total monto facturado----------------------- Método/Ferretería

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 3

Page 4: Ejercicio de tipos de tornillos, doble ciclo

f.u.(1) 1) Inicializar (Mayor, AcumMontoF, CantMaderas, CantParedes) f.m.(2) 2) Inicializar (AcumMF, ContVenta) f.m.(2) 3) Leer(CodigoVend) f.m.(3) 4) Leer (TipoTornillos, Precio, Cantidad)f.m.(3) 5) Acumular Monto Facturado: AcumMF AcumMF + Precio*Cantidadf.m.(3) 6) Contar venta: ContVenta ContVenta + 1f.m.(3) 7) Acumular según tipo de tornillo si(TipoTornillos=”Para maderas”) CantMaderas← CantMaderas + Cantidad sino si(TipoTornillos=”Para paredes”) CantParedes← CantParedes + Cantidad

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 4

Page 5: Ejercicio de tipos de tornillos, doble ciclo

f.m.(4) 8) Imprimir monto total facturado (AcumMF)f.m.(4) 9) Calcula e imprime Promedio facturado del vendedor Promedio ← AcumMF/ContVentaf.m.(4) 10) Determinar vendedor con mayor facturación si (Mayor<AcumMF) inicio Mayor ← AcumMF MayorVen ← Código fin f.m(4) 11) Acumular monto facturado por Ferretería AcumMontoF ← AcumMontoF + AcumMF f.u. (5) 12) Imprimir Codigo del vendedor con mayor facturación (MayorVen) f.u. (5) 13) Imprimir tipo de venta con mayor facturación si (CantMaderas > CantParedes) Mensaje ← “Las tornillos para maderas se vendieron en mayor cantidad” si (CantMaderas < CantParedes) Mensaje ← “Los tornillos para paredes se vendieron en mayor cantidad” sino Mensaje ← “Los tornillos para maderas y paredes se vendieron en igual

cantidad” f.u. (5) 14) Imprimir el total facturado de la empresa (AcumMontoF)

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 5

Page 6: Ejercicio de tipos de tornillos, doble ciclo

1 HayDato←”Si”

repetir mientras (HayDato=“si”)

Resp←”Si”

repetir mientras (Resp=“Si”)

leer Resp

4

leer HayDato

121314

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 6

23

891011

4567

Page 7: Ejercicio de tipos de tornillos, doble ciclo

Ventaalfanumérico Código

alfanumérico TipoTornillos real Precioentero Cantidad

AsignarCódigo(alfanumerico ↓ Cod)

AsignarTipoTornillos(alfanumerico ↓ TB)

AsignarPrecio(real ↓ Pc)

AsignarCantidad(entero ↓ Cant)

alfanumerico SacarCodigo()

alfanumerico SacarTipoTornillos()

real SacarPrecio()

entero SacarCantidad()

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 7

Page 8: Ejercicio de tipos de tornillos, doble ciclo

Vendedor

real AcumMFentero ContVentaInicial()real SacarAcumMF()entero SacarContVenta()Acumular (Vendedor ↓ Vend)Contar()real CalcPromedio()

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 8

Page 9: Ejercicio de tipos de tornillos, doble ciclo

Ferretería

real Mayoralfanumérico MayorVenentero CantMaderasentero CantParedesreal AcumMontoF

Inicializar()real SacarMayor()alfanumérico SacarMayorVend()entero SacarCantMaderas()entero SacarCantParedes()real SacarAcumMontoF() DetMayor TipoTornillos()AcumularMontoF(Inf)DetMayor(Vend,Inf)AcumularTB(Vend)

C1. Introduccion a la Computacion

Profs. Vladimir Camacaro y Erys Piñero. 9

Page 10: Ejercicio de tipos de tornillos, doble ciclo

// Definición de la estructura de la clase Ventaclase Venta inicio privado: alfanumérico Código, TipoTornillos real Precio entero Cantidad publico: AsignarCódigo(alfanumérico ↓ Cod) AsignarTipoTornillos(alfanumérico ↓ TB) AsignarPrecio (real ↓ Pc) AsignarCantidad (entero ↓ Cant) alfanumérico SacarCodigo() alfanumérico SacarTipoTornillos() real SacarPrecio() entero SacarCantidad() fin// Venta

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 10

Page 11: Ejercicio de tipos de tornillos, doble ciclo

//Definición de la estructura de la clase Informe clase Vendedor inicio privado: real AcumMF entero ContVenta publico: Inicial () real SacarAcumMF() entero SacarContVenta() Acumular(Vendedor ↓ Vend) Contar () real CalcPromedio () fin // Vendedor

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 11

Page 12: Ejercicio de tipos de tornillos, doble ciclo

//Métodos propios de la clase Vendedor

Vendedor Inicial ()

inicio

AcumMF ← 0

ContVenta ← 0

fin

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 12

Page 13: Ejercicio de tipos de tornillos, doble ciclo

real Vendedor SacarAcumMF() inicio retornar AcumMF finentero Vendedor SacarContVenta() inicio retornar ContVenta finVendedor Acumular(Vendedor ↓ Vend) inicio AcumMF ← AcumMF +Vend. SacarPrecio()* Vend. SacarCantidad() finVendedor Contar() Inicio ContVenta ← ContVenta + 1 fin

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 13

Page 14: Ejercicio de tipos de tornillos, doble ciclo

real Vendedor CalcPromedio()

inicio

real Promedio

si (contVenta =0)

promedio ← 0

sino promedio ← AcumMF/ContVenta

retornar promedio

fin

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 14

Page 15: Ejercicio de tipos de tornillos, doble ciclo

//Definición de la estructura de la clase Distribuidoraclase Ferreteria inicio privado: alfanumérico MayorVen real Mayor, AcumMontoF entero CantMaderas, CantParedes publico: Inicializar () alfanumérico SacarMayorVen() real SacarMayor() entero CantMaderas() entero CantParedes() real SacarAcumMontoF() DetMayor (Venta ↓ Vent,Vendedor ↓ Vend) AcumularTB(Venta ↓ Vent) DetMayorTornillos() AcumularMontoF(Vendedor ↓ Vend) fin//clase FerreteriaC1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 15

Page 16: Ejercicio de tipos de tornillos, doble ciclo

//Método propio de la clase Distribuidora

Ferreteria Inicializar ()

inicio

Mayor ← 0

CantMaderas ← 0

CantParedes ← 0

AcumMontoF ← 0

fin

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 16

Page 17: Ejercicio de tipos de tornillos, doble ciclo

alfanumerico Ferreteria SacarMayorVen() inicio retornar MayorVen finreal Ferreteria SacarMayor() inicio retornar Mayor finreal Ferreteria SacarCantMaderas () inicio retornar CantMaderas finreal Ferreteria SacarCantParedes inicio retornar CantParedes finreal Ferreteria SacarAcumMontoF() inicio retornar AcumMontoF fin

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 17

Page 18: Ejercicio de tipos de tornillos, doble ciclo

Ferreteria DetMayor (Venta ↓ Vent, Vendedor ↓ Vend) inicio si ( Mayor < Vend. SacarAcumMF) inicio Mayor ← Vend. SacarAcumMF() MayorVen ← Vent. SacarCodigo () fin finFerreteria AcumularTB (Venta ↓ Vent) inicio si (Vent. SacarTipoMaderas = “Para maderas”) CantMaderas ← CantMaderas + Vent. SacarCantidad() sino si (Vent. SacarTipoParedes = “Para paredes”) CantParedes ← CantParedes + Vent. SacarCantidad() fin

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 18

Page 19: Ejercicio de tipos de tornillos, doble ciclo

alfanumérico Ferreteria DetMayorTornillo() inicio alfanumérico Fact si CantMaderas> CantParedes) Fact ← “Los tornillos para maderas se vendieron en mayor cantidad” sino si CantMaderas< CantParedes) Fact ← “Los tornillos para paredes se vendieron en mayor cantidad” sino Fact ← “Los tornillos para maderas y paredes se vendieron en igual cantidad” retornar Fact finFerreteria AcumularMontoF(Vendedor ↓ Vend) inicio AcumMontoF ← AcumMontoF + Vend.SacarAcumMF() fin

C1. Introducción a la Computación

Profs. Vladimir Camacaro y Erys Piñero. 19