Buscar en el sitio


Analisis Problema y Diseño

 

No hay Informacion  Actualmente  dentro de una semana  estara listo Suerte. 

Problema 1

Dados dos puntos determinar si la recta es creciente, decreciente, vertical , horizontal.

Solucion:

Marco teórico: Sabemos que, dados dos puntos  P=\left(a,b\right) y Q=\left(c,d\right)entonces hay una recta que los contiene. La pendiente de esta recta es determinada por m=\frac{a-c}{b-d}. Podemos determinar si una recta es creciente, decreciente, vertical. horizontal analizando su pendiente, estos son los casos:

  1. Si m > 0, entonces la recta es creciente.
  2. Si m < 0, entonces la recta es decreciente.
  3. Si m = 0, entonces la recta es horizontal, es decir cuando a = c
  4. La recta sera vertical, si b = d.

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;
}