Ir al contenido

Programación en C++/Problemas Resueltos

De Wikilibros, la colección de libros de texto de contenido libre.

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:

  1. Si , entonces la recta es creciente.
  2. Si , entonces la recta es decreciente.
  3. Si , entonces la recta es horizontal, es decir cuando
  4. 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;
}