jueves, 1 de julio de 2010

Sedgewick2.8 (Máximo Común Divisor de Tres Números)





 //Ultima modificacion: 1 de julio de 2010
 //Este programa usa el ejemplo que viene en el capitulo 2 del libro de
 //Sedgewick, solo hay que hacer una pequena modificacion al algoritmo de
 //Euclides.
 //Nota: Este ingenioso algoritmo fue desarrollado por el matematico Euclides
 //y esta presente en los Elementos. Su problema consistia en encontrar, dada
 // dos varas de longitudes distintas, la longitud de una tercera vara con la
 // cual pudiera medirse las dos anteriores, de tal forma que esta entrara un
 // numero entero de veces tanto en una como en otra.


 #include <iostream>
 using namespace std;

 int mcd(int, int, int);


 int main()

 {
 int a, b, c, mayor, comun;

 cout << "\n\nEste programa calcula el maximo comun divisor de tres numeros. " << endl;
 cout << "Introduzca tres enteros: "<<endl;
 cin >> a >> b >> c;


 mayor = a;

 if ( b > mayor )

 {

 mayor = b;
 b = a;

 }

 if ( c > mayor )

 {

 mayor = c;
 a = mayor;

 }


 comun = mcd(mayor, b, c);

 cout <<"\nEl maximo comun divisor es: "
      <<comun << endl;

 return 0;

 }

 int mcd(int z, int u, int v)

 {
 int t, maximo;

 while (u > 0)

 {
 if (u < v)

 {
 t = u;
 u = v;
 v = t;

 if(0 == z%v)
 maximo = v;

 }

 u = u - v;

 }

 return maximo;

 }

Propósito (Ejercicios resueltos Deitel en Java y C++)

A continuación presento algunos ejercicios de programación. En particular comenzaré con algunos del famoso libro de Paul y Harvey Deitel: JAVA Cómo Programar, Séptima Edición aunque tengo muchos también resueltos para C++ Cómo Programar, cuarta edición, que iré subiendo conforme tenga el tiempo para hacerlo. De igual manera tengo algunos de El Lenguaje de Programación C, de Kernighan y Ritchie, y me interesan los algorítmos, por lo cual también tengo pensado subir algunos problemas de Algoritmos en C++, de Robert Sedgewick. Supongo que la mayoría de estos problemas pueden conseguirse fácilmente, en la red, ya que se trata de textos clásicos, y sin embargo, va un modesto aporte de mi parte esperando no privar a nadie del placer de poder realizar por sí mismo estos problemas. Entiendo que Java, C y C++ son lenguajes obligados en carreras de ingeniería y ciencias, y deberían serlo en otras, por lo cual trataré de agregar notas y comentarios que, además de beneficiar a quien lee por primera vez el código, ¡me servirán principalmente para poner en orden mis propias ideas! Programar, según lo entiendo, es una de las mejores actividades a las que uno se puede dedicar, yo lo hago por puro gusto y espero que así lo hagan quienes se encuentran en necesidad de aprender.
Nada me sería más agradable que poder transmitir algo del gusto que tengo por la programación. Si logro hacerlo, aunque sólo sea de manera mínima, este esfuerzo habrá valido la pena.


Acerca de mi: No soy profesional ni diletante de la computación. Tengo estudios en ciencias físicas pero actualmente me he decidido a estudiar una carrera en cómputo y desarrollo de software, soy mexicano y tengo 28 años.

Acerca de los programas:Todo el código de este blog es mío y nadie más ha contribuído a escribirlo. Con él puede hacer lo que quiera, ya que mi intención es compartir el trabajo para que otros se beneficien de los pocos aciertos y eviten los muchos errores, un poco siguiendo las ideas de Richard Stallman. Si lo usa y da el crédito al blog me sentiré muy contento.

Aunque sobra decirlo debo aclarar que NO soy responsable en absoluto del código aquí presentado. Es posible que subsistan errores a pesar de que he tratado de reducirlos al mínimo. No me hago responsable por exámenes reprobados, tareas mal calificadas y disgustos que pueda acarrear el uso de la información que aquí se presenta.

Los programas fueron escritos, casi todos, en el editor de textos VI, se usaron los compiladores g++ y gcc en sistemas UNIX.
Related Posts Plugin for WordPress, Blogger...