Programación en C++/Problemas Resueltos
Problema 1
Dados dos puntos determinar si la recta es creciente, decreciente, vertical , horizontal.
Solucion:
Marco teórico: Sabemos que, dados dos puntos y entonces hay una recta que los contiene. La pendiente de esta recta es determinada por . Podemos determinar si una recta es creciente, decreciente, vertical. horizontal analizando su pendiente, estos son los casos:
- Si , entonces la recta es creciente.
- Si , entonces la recta es decreciente.
- Si , entonces la recta es horizontal, es decir cuando
- La recta sera vertical, si .
Con esta información podemos entonces diseñar nuestro codigo.
#include <iostream>
using namespace std;
int main()
{ double a,b,c,d,m;
cout<<"Digite dos puntos P=(a,b) y Q(c,d):"<<endl<<endl;
cout<<"a : "; cin>>a; cout<<"b : "; cin>>b;
cout<<"c : "; cin>>c; cout<<"d : "; cin>>d;
cout<<endl;
if (b!=d)
{ m = (a-c)/(b-d);
if (m>0)
{cout<<"La recta determinada por estos dos puntos P=("<<a<<","<<b<<") y Q("<<c<<","<<d<<") es Creciente"<<endl;}
else
{cout<<"La recta determinada por estos dos puntos P=("<<a<<","<<b<<") y Q("<<c<<","<<d<<") es Decreciente"<<endl;}
if (m==0)
{cout<<"La recta determinada por estos dos puntos P=("<<a<<","<<b<<") y Q("<<c<<","<<d<<") es Horizontal"<<endl;}
}
else
{ if(a!=c)
{cout<<"La recta determinada por estos dos puntos P=("<<a<<","<<b<<") y Q("<<c<<","<<d<<") es Vertical"<<endl;}
else
{cout <<"Lo sentimos!. Por un mismo punto pasan infinitas rectas..."<<endl;}
}
cin.get(); /*Recuerda que esta linea es por si usas Windows*/
cin.get();
return 0;
}
Problema 2
Utilizar el método burbuja de ordenamiento sin recurrir a punteros
Solucion:
// ALGORITMO DE ORDENAMIENTO BURBUJA
// Creador por Joseph, 15 de mayo de 2010; licencia GNU
// increiblecrean.blogspot.com
#include <iostream>
using namespace std;
int main()
{
//DATOS
//establecer array a ordenar
int lista[6] = {1, 9, 3, 10, -6, 0};
//obtener tamaño array
int tamanyo = sizeof(lista)/sizeof(int);
// Variables temporales
int temp, a = 0;
//MOSTRAR ARRAY ORIGINAL
cout << "Este es el array original:" <<endl;
for (int n = 0; n < tamanyo; n++)
cout << lista[n] << ", ";
cout << endl << endl;
//ORDENAMIENTO
for (int limite = tamanyo - 1; limite >= 0;limite--)
{
while (a < limite)
{
/* Se puede cambiar el signo (> ó <)
para ordenar de menor a mayor o viseversa */
if (lista[a] < lista[a + 1])
{
temp = lista[a];
lista[a] = lista[a + 1];
lista[a + 1] = temp;
}
a++;
}
a = 0;
}
//MOSTRAR ARRAY MODIFICADO
cout << "Este es el array ordenado:" <<endl;
for (int n = 0; n < tamanyo; n++)
cout << lista[n] << ", ";
return 0;
}