martes, 25 de marzo de 2014

miércoles, 19 de marzo de 2014

proyectos

Ejemplo 1

https://sites.google.com/site/programacionparaingeneria/ejemplo.zip?attredirects=0&d=1

Ejemplo 2

https://sites.google.com/site/programacionparaingeneria/ejemplo2.zip?attredirects=0&d=1

herencia

#include<iostream>
#include<cstdlib>
#include<string>
// CLASES: DECLARACION
using namespace std;
class FIGURA {
      private:
         string nombre;
      public:
         FIGURA(string s="objeto"){nombre=s;};
         void ingresar_nombre(string);
         void mostrar_nombre();
};
void  FIGURA::ingresar_nombre(string s){
      nombre=s;
}
void  FIGURA::mostrar_nombre(){
      cout<<nombre<<endl;

class TRIANGULO: public FIGURA{
      float base;
      float altura;
      public:
      TRIANGULO(float b=1,float a=1){
          ingresar_nombre("triangulo");
          base=b; altura=a;
      }
      float area(){ return base*altura*0.5; }
};
int main(){
    TRIANGULO t1(3,2),t2(5),t3;
    cout<<t1.area()<<endl
        <<t2.area()<<endl
        <<t3.area()<<endl;
    system("PAUSE");
}

declaracion de clases

#include<iostream>
#include<cstdlib>
#include<string>
// CLASES: DECLARACION
using namespace std;
class FIGURA {
      private:
         string nombre;
      public:
         FIGURA(string s="objeto"){nombre=s;};
         void ingresar_nombre(string);
         void mostrar_nombre();
};
void  FIGURA::ingresar_nombre(string s){
      nombre=s;
}
void  FIGURA::mostrar_nombre(){
      cout<<nombre<<endl;

int main(){
    FIGURA f("Poligono");
    //f.ingresar_nombre("Triangulo");
    f.mostrar_nombre();
    system("PAUSE");
}

miércoles, 12 de marzo de 2014

Ejemplos arreglos y funciones

#include<iostream>
#include<cstdlib>
using namespace std;
int posicion_del_menor(int[],int);//prototipo
int main(){
    int A[]={5,1,8,9,1,1,4,3};
    cout<<posicion_del_menor(A,8)<<endl;
    system("PAUSE");
}
//implementacion
int posicion_del_menor(int A[],int num){
   int x;
   int pos;
   x=A[0]; pos=0;
   for(int i=1;i<num;i++) {
      if (x>=A[i]){
          x=A[i];pos=i;
      }
   }
   return pos;
}




#include<iostream>
#include<cstdlib>
using namespace std;
float evalua(int [],int,float );
int main(){
    int p[]={5,1,8,9,1,1,4,3};//coeficientes
    int n=7;//grado del polinomio
    cout<<evalua(p,7,0.5)<<endl;
    system("PAUSE");
}
float evalua(int A[],int n,float x){
/*   p(x)=A[0]+x*t
    t = A[1]+x*t
    ...
    t=A[n-1]+x*t
    t=A[n]       */
   
   float t=A[n];
   for(int i=n-1;i>=0;i--){
     t=A[i]+x*t;
   }
   return t;  
}



#include<iostream>
#include<cstdlib>
using namespace std;
void imprime(int [],int );
int main(){
    int p[]={5,-1,8,9,-1,1,4,3};//coeficientes
    int n=7;//grado del polinomio
    imprime(p,7);
    system("PAUSE");
}
void imprime(int A[],int n){
   for(int i=0;i<=n;i++){
     string signo;
     signo="-";
     if ( (A[i]>0)&&(i>0)){
         signo="+";
     } 
     if (i==0)
         cout<<signo<<abs(A[i]);
     else {   
       if (abs(A[i])==1){
         cout<<signo<<"x^"<<i;        
       }
       else {
          cout<<signo<<abs(A[i])<<"x^"<<i;
       }
     }
   }
}

viernes, 7 de marzo de 2014

una solucion

float area_total=0;
 for (int k=0;k<num_tri;k++){
     float sp=0;
     int vert1,vert2,vert3;
     float a,b,c,area;
     float dx,dy;
     vert1=T[k][0];
     vert2=T[k][1];
     vert3=T[k][2];
     dx= P[vert2][0]-P[vert1][0];
     dy= P[vert2][1]-P[vert1][1];
     a=sqrt(dx*dx+dy*dy);
     dx= P[vert3][0]-P[vert2][0];
     dy= P[vert3][1]-P[vert2][1];
     b=sqrt(dx*dx+dy*dy);     
     dx= P[vert1][0]-P[vert3][0];
     dy= P[vert1][1]-P[vert3][1];
     c=sqrt(dx*dx+dy*dy);
     sp=0.5*(a+b+c)     ;
     area = sqrt(sp*(sp-a)*(sp-b)*(sp-c));
     area_total+=area;
 }
 cout<<"Area total"<<area_total<<endl;

tRABAJO GRUPAL

La siguiente gráfica representa un lago, cuya superficie ha sido triangulada en N triángulos y M vértices, los datos sobre los triángulos se guardan en 2 matrices:

P de orden Mx2, que almacena los vértices:

P= [  v1_x , v2_ x, v3_x, ..., vM_x ;
        v1_y , v2_ y, v3_y, ..., vM_y ]^t

T de orden Nx3, que almacena la numeración de los vértices de los triángulos

T = [ v1_1 v1_2 ... v1_N ;
        v2_1 v2_2 ... v2_N ;
        v3_1 v3_2 ... v3_N 
       ]^t

#include <cstdlib>
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
const int num_tri=628; 
const int num_ver=360;
int main(){
 ifstream arch_p("p.dat");
 ifstream arch_t("t.dat");
 float P[num_ver][2];
 int   T[num_tri][3];
 if (!arch_p) {
    cout<<"Error al abrir el archivo de vertices";
 } else {  
   for (int k=0;k<num_ver;k++){
     arch_p>>P[k][0];    
     arch_p>>P[k][1];
   }   
 }
 if (!arch_t) {
    cout<<"Error al abrir el archivo de triangulos";
 } else {  
   for (int k=0;k<num_tri;k++){
     arch_t>>T[k][0];    
     arch_t>>T[k][1];
     arch_t>>T[k][2];
   }   
 } 
 /*TAREAS
 1.- Hallar el area total del mallado
 2.- Hallar el area promedio
 3.- Hallar el triangulo de mayor area
 4.- Hallar el triangulo de menor area
 5.- Hallar los triangulos cuyas areas esten alrededor
     del 5% del area promedio
 6.- Hallar el triangulo con mayor perimetro
 7.- Hallar el triangulo con menor perimetro
 8.- Hallar el perimetro promedio.*/
 system("PAUSE");

miércoles, 5 de marzo de 2014

Ejercicios resueltos

#include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;
float serie(float , int);
int main(){
  float xx;
  int nn;
  do {
    cout<<"Ingrese x=";cin>>xx;
  } while ( (xx>=1) || (xx<=0));
  do{
    cout<<"Ingrese n=";cin>>nn;
  } while(nn<=0);
  cout<<"Serie= "<<serie(xx,nn)<<endl;
  system("PAUSE");
}
float serie(float x, int n){
      float suma=0;
      float termino=1;
      suma=termino;
      for (int i=1;i<=n;i++){
           termino*=x;
           suma+=termino;
      }
      return suma;
}




#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
float hipo1(float , float);
void hipo2(float , float, float &);
int main(){
  float a,b,c;
  cout<<"a=";cin>>a;
  cout<<"b=";cin>>b;
  cout<<"c="<<hipo1(a,b)<<endl;
  hipo2(a,b,c); 
  cout<<"c="<<c<<endl;
  system("PAUSE");
}
float hipo1(float a, float b){
  return sqrt(pow(a,2.0f)+pow(b,2.0f));
}
void hipo2(float a, float b, float& c){
  c=hipo1(a,b);
}

Laboratorio de funciones




lunes, 3 de marzo de 2014

Notas del examen parcial (actualizado)

Los estudiantes que hayan salido desaprobado en el parcial pueden presentar un ejercicio de los problemas propuestos en los laboratorios (3puntos)