martes, 31 de diciembre de 2013

Examen Sustitutorio: Viernes 10 de enero a las 10am en el B3-11

Un examen anterior https://sites.google.com/site/programacionparaingeneria/es-progra-2013-1.pdf

Solucion

#include<iostream>
using namespace std;
float precioUnitario(int codProd){
// devuelve el precio del producto dado el codigo
float prec;
switch (codProd){
// 5 PUNTOS
case 1: prec=150;break;
case 2: prec=250;break;
case 3: prec=500;break;
case 4: prec=750;break;
default : prec=0;
}
return prec;
}
float obtenerDescuento(int codProd, int cant){
// devuelve el descuento de acuerdo al codigo y
// la contidad de product
float desc;
switch (codProd){
// 5 PUNTOS
case 1: if (cant>=50)
          desc=0.20;
else if (cant>15)
 desc=0.15;
else if (cant>=5)
 desc=0.10;
else
 desc=0;
break;
case 2: if (cant>=30)
          desc=0.20;
else if (cant>15)
 desc=0.15;
else if (cant>=10)
 desc=0.10;
else
 desc=0;
break;
case 3: if (cant>=50)
          desc=0.20;
else if (cant>25)
 desc=0.15;
else if (cant>=15)
 desc=0.10;
else
 desc=0;
break;
case 4: if (cant>=100)
          desc=0.20;
else if (cant>70)
 desc=0.15;
else if (cant>=35)
 desc=0.10;
else
 desc=0;
break;
default : desc=0;
}
return desc;
}
int validarCodigo(int codProd){
// si codigo esta entre 0 y 4 devuelve 1
// en caso contrario devuelve 0
// 5 PUNTOS
return (codProd>=0 & codProd<=4)?1:0;
}
void obtenerDatosProducto(int& codProd, int& cantProd){
//pide al usuario los datos del producto, los valida y almacena
int result;
// 5 PUNTOS
do {
cout<<"Ingrese codigo del producto: ";
cin>>codProd;
result=validarCodigo(codProd);
if (!result)
  cout<<"Error: Intente de nuevo."<<endl;
} while (!result);
cout<<"Ingrese cantidad del producto: ";
cin>>cantProd;
}
int main(){
int codProd, cantProd;
float totalVentas,desc;
codProd=1;
totalVentas=0;
while(codProd){
obtenerDatosProducto( codProd, cantProd);
if (codProd>0){
desc=obtenerDescuento(codProd, cantProd);
totalVentas+=cantProd*precioUnitario(codProd)*(1-desc);
}
}
cout<<"Venta total: "<<totalVentas<<endl;
cin.get();cin.get();
}

lunes, 23 de diciembre de 2013

Notas finales del curso



Las practicas domiciliarias clonadas se califican con 00, el examen sustitutorio, los temas son diagramas de flujo, funciones, if, for, while, no entra clases.

Tarea academica = practica mas alta
PP = promedio de practicas
LAB=PP

PF=promedio final = 0.25*EP+0.25*EF+0.2*PP+0.2*LAB+0.1*TA


jueves, 12 de diciembre de 2013

Practica domicilaria

Completar la practica 3 con un ejemplo que use las clases VEHICULO y TALLER, es decir haga una funcion main, mande el codigo c++, junto con su codigo y nombre a lroca@untecs.edu.pe hasta el dia jueves 19.



UNIVERSIDAD NACIONAL TECNOLOGICA
DEL CONO SUR DE LIMA

PROGRAMACION PARA INGENIERIA

PRACTICA  3

Prof Luis Roca                                                                                                                     12/12/2013

Crear una clase TALLER que

1.      (2ptos) Contenga dos variables miembro privadas de tipo entero llamadas max_vehiculos y num_vehiculos respectivamente.
2.      (2ptos) Contenga un puntero privado p_veh de tipo VEHICULO.
3.      (2ptos) Tenga una funcion constructor con un parametro de entrada de tipo entero llamado num que inicialize la variable  max_vehiculos en num y la variable num_vehiculos en cero, ademas  le asigne al puntero p_veh un arreglo de tipo VEHICULO de longitud max_vehiculos.
4.      (4ptos) Contenga una funcion publica de tipo void llamada meter que tenga un parametro de tipo VEHICULO, tal funcion copia los datos de parametro de entrada en la posicion num_vehiculos del arreglo administrado por p_veh, y luego aumenta en 1 el valor de num_vehiculos, si num_vehiculos es mayor o igual que max_vehiculo entonces la funcion no hace nada.
5.      (2ptos) La clase VEHICULO debe tener variable publicas color y marca de tipo cadena.
6.      (2ptos) La clase VEHICULO debe tener una funcion publica void de nombre arrancar sin parametros que imprima el mensaje “Vehiculo en movimiento”.
7.      (2ptos) La clase VEHICULO debe tener una funcion publica void de nombre parar sin parametros que imprimir el mensaje “Vehiculo detenido”.
8.      (2ptos) La clase VEHICULO debe tener una funcion publica void de nombre estacionar sin parametros que imprima el mensaje “Vehiculo estacionado”.
9.      (2ptos) La clase VEHICULO debe tener un contructor sin parametros que imprima el mensaje “Vehiculo creado”.


jueves, 5 de diciembre de 2013

Tercera practica

El jueves 12 es la tercera practica calificada, temas: clases, herencia, constructores.

hora: 8am

material para estudio aqui: http://www.jlmarina.net/metodos2/   sesion 4, 17, 18 y 19

tb se les dejara una practica domiciliaria.

Graficos en C++

descargar la guia

https://sites.google.com/site/programacionparaingeneria/graficos%20en%20%20c%2B%2B.pdf?attredirects=0&d=1

descargar la libreria

https://docs.google.com/file/d/0B3EixLPe-NyLLWVyYkx1WC16OVE/edit

Proyecto geometria: archivo principal.cpp

#include<iostream>
#include"poligono.h"
using namespace geometria;
int main(){
    POLIGONO* p = new RECTANGULO();
    p->imprimir();
    std::cout<<geometria::notable.area();
    std::cin.get();
}

Proyecto geometria archivo poligono.h

//archivo poligono.h
namespace geometria{
class POLIGONO{
    int numlados;
    public:
    virtual float area(){
    }
    POLIGONO(int numlados=3){
        this->numlados=numlados;
    }
    virtual void imprimir(){
        std::cout<<"un poligono de "<<numlados
        <<" lados."<<std::endl;
    }
};
class RECTANGULO:public POLIGONO{
    float ancho, alto;
    public:
    float area(){
        return ancho*alto;
    }
    virtual void imprimir(){
        std::cout<<"un rectangulo, ";
        POLIGONO::imprimir();
    }
    RECTANGULO(float ancho=1,float alto=1){
        POLIGONO(4);
        this->ancho=ancho;
        this->alto=alto;
    }
   
};
class TRIANGULO:public POLIGONO{
    float base, altura;
    public:
    float area(){
        return base*altura;
    }
    virtual void imprimir(){
        std::cout<<"un triangulo, ";
        POLIGONO::imprimir();
    }
    TRIANGULO(float base=1,float altura=1){
        POLIGONO(3);
        this->base=base;
        this->altura=altura;
    }
   
};
TRIANGULO notable(4,3);
}