| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 
 | 
#include <iostream>
using namespace std;
double* PedirDatos (double* x,int num);
double CalcArea (double* x,double* y,int num);
void Imprimedatos (double* x,double* y, double area,int num);
void main()
{
	int num;
	double area;
	cout<<"¿El área encerrada entre cuántos puntos quiere calcular?: ";
	cin>>num;
	if (num <= 0){exit(0);}
	system("cls");
	double *x = new double[num];
	double *y = new double[num];
	if (x == NULL) {cout<<"Error, no hay emoria"; exit(0);}
	if (y == NULL) {cout<<"Error, no hay emoria"; exit(0);}
	
	cout<<"Vamos a recoger las coordenadas X de sus "<<num<<" coordenadas:\n";
	x = PedirDatos ( x, num);//1A
	cout<<"Vamos a recoger las coordenadas Y de sus "<<num<<" coordenadas:\n";
	y = PedirDatos ( y,  num);//1B
	system("cls");
	area = CalcArea ( x, y, num);//2
	Imprimedatos (x, y, area,num);//3
	delete [] x; 
	delete [] y; 
}
//hacer el vector dinamico. (Los argumentos de entrada van a ser x e y
//por lo qu ese va a "invocar" dos veces a la función "PedirDatos"
double* PedirDatos (double* x,int num)
{
	for (int i = 0 ; i<=num-1 ; i++) 
	{
		cout<<i+1<<") = ";
		cin>>x[i];
		cout<<endl;
		system("cls");	
	}
	return x;
}
double CalcArea (double* x,double* y,int num)
{
	double area = 0;
	double estacionario = 0;
	for (int ii = 0 ; ii<=num-2 ; ii++) 
	{
	estacionario = ((x[ii]*y[ii+1])-(y[ii]*x[ii+1]));
	if (estacionario<0){area =area + estacionario * (-1);}else{area = area + estacionario;}
	}
	area = area / 2;
	return area;
}
void Imprimedatos (double* x,double* y, double area,int num)
{
	cout<<"\t *** CALCULO DE AREAS***\n\n";
	cout<<"AREA = "<<area<<"."<<endl;
	for (int j = 0 ; j<num ; j++) 
	{
		cout<<j<<"(X"<<j<<",Y"<<j<<") = "<<"( "<<x[j]<<" , "<<y[j]<<")";
		cout<<endl;
	}
}
 |