Gadgets, Celulares, Telefonia, Electronic Music y mucho más…

Recordando C++

Estaba en una de esas madrugadas en las que me quedo web-eando, leí­a unos artí­culos en un par de blogs, algo de Motorola Modding y respondia algunas preguntas en un par de foros... de repente una amiga en el msn messenger me pide ayuda con un programa en C++...

C++ lo deje de usar hace como 3 años, ultimamente me la he pasado con PHP y Java no recordaba siquiera como hacer algunas cosas básicas en C++.

El algoritmo pedia un programa capaz de hacer el área de un cí­rculo, un cuadrado y un triángulo; adicionalmente a esto se debia decir de que tipo era el triangulo (Equilátero, Isóceles, Escaleno), para una persona que lleva un tiempo programando esto no significa un reto, en realidad es bastante sencillo. Como era tarea de la escuela, le pidieron que lo hiciera usando funciones.

Mi amiga me mostró que tení­a hecho, le hicimos unas correcciones y metimos un pequeño menu y el primer modulo en funciones. Me dí­ cuenta que se atormentaba con el lenguaje, no lo entedia, le costaba mucho trabajo plasmar el procedimiento en el código. Lo que me lleva a una pregunta que me han hecho muchas veces...

Quiero aprender a programar ¿Como le hago?

Yo pienso que programar no es aprender un lenguaje, a lo largo de mi vida he visto a chicos de preparatoria intentando resolver algoritmos y a chicos de carrera teniendo los mismos errores que los de preparatoria.

Siempre he comentado que programar no es cosa de aprender el lenguaje que quieras C++, JAVA, PHP, ActionScript; para mi programar es el arte de hacer de una cosa compleja miles de cosas sencillas, que es una ecuación si no un montón de sumas, restas, divisiones, multiplicaciones.

Alguna vez impartí­ clases de Algoritmos a los chavos de 6to Semestre en el CONALEP (una suplencia) les puse algoritmos tan sencillos y clásicos como los factoriales, elevar una base a un exponente, el famoso palindromo, la serie de fibonacci, fue un tanto frustrante ver como se liaban con algo tan sencillo.

Programar no es saber JAVA, Pyton, Perl, programar es saber pensar de manera metódica, organizada y estructurada, seguir una secuencia de pasos para alcanzar objetivos intermedios que nos lleven a la solución de un problema.

Sinceramente ese clásico ejemplo de "Describe lo mas detalladamente posible que haces cuando te levantas y vas a la escuela" si funciona! piensenlo... aprende a pensar con lógica y ningún lenguaje de programación podrá detenerte; un lenguaje cualquiera lo aprende, cualquiera puede leer acerca de un ciclo while y decirte como funciona, pero no cualquiera sabe estructurar su pensamiento y plasmarlo en el código.

Esto ha sido producto de mis años de estudiante de ingenierí­a en sistemas, en la preparatoria odiaba los Diagramas de flujo y el pseudocódigo me daba pereza, ahora me doy cuenta que hecharle ganas a esas materias me ayudaron a pensar de la manera correcta a la hora de programar.

El ejemplo más claro se los pongo a continuación:

C++:
  1. //Wikipedia dice que un Triangulo Isoceles es aquel que tiene
  2. //dos lados iguales y dos ángulos interiores iguales
  3.      if (((angulo1==angulo2 && angulo1!=angulo3) || (angulo1==angulo3&&angulo1!=angulo2) || (angulo2==angulo3&&angulo2!=angulo1)) && ((lado_base==lado2 && lado_base!=lado3)||(lado_base==lado3&&lado_base!=lado2)||(lado2==lado3&&lado2!=lado_base)))
  4.         cout<<"\nTipo de Triangulo: ISOCELES";

Como verán una frase tan sencilla como "dos lados iguales y dos ángulos interiores iguales" se convirtió en una enorme comparación lógica (no supe como llamarla si alguien sabe que me diga por favor), lo complicado no es ponerlo en C++, es ponerlo en claro en tu mente.

Y para ti ¿Que es programar?

Acerca del Algoritmo

No es la gran ciencia... se los dejo por si quieren revisarlo.

C++:
  1. #include <iostream.h>
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include <stdlib.h>
  5.  
  6. //Prototipos de funciones.
  7. //Sirven para declarar la forma que tendrá una funcion
  8. //que posteriormente definiremos.
  9. int menu ();
  10. float circulo (float);
  11. float cuadrado (float);
  12. void triangulo (float, float, float, float, int, int, int);
  13.  
  14.  
  15. //Inicia el Programa
  16. int main(){
  17.     int opcm=0, angulo1=0, angulo2=0, angulo3=0;
  18.     float radio=0, lado=0, altura_t=0, lado_base=0, lado2=0, lado3=0;
  19.     opcm=menu ();
  20.     while (opcm!=4){
  21.         switch (opcm){
  22.         case 1: { system("cls");
  23.                   cout<<"Triangulo\n\nAltura: ";
  24.                   cin>>altura_t;
  25.                   cout<<"\nLado Base: ";
  26.                   cin>>lado_base;
  27.                   cout<<"Lado 2: ";
  28.                   cin>>lado2;
  29.                   cout<<"Lado 3: ";
  30.                   cin>>lado3;
  31.                   cout<<"Angulo 1: ";
  32.                   cin>>angulo1;
  33.                   cout<<"Angulo 2: ";
  34.                   cin>>angulo2;
  35.                   cout<<"Angulo 3: ";
  36.                   cin>>angulo3;
  37.                  triangulo (altura_t,lado_base,lado2,lado3,angulo1,angulo2,angulo3);
  38.                   break;
  39.                 }
  40.                
  41.         case 2: { system("cls");
  42.                   cout<<"Circulo\n\nPi = 3.1416\nRadio: ";
  43.                   cin>>radio;
  44.                   cout<<"Area= "<<circulo(radio);
  45.                   getch();
  46.                   break;
  47.                 }
  48.                
  49.         case 3: { system("cls");
  50.                   cout<<"Cuadrado\n\nLado: ";
  51.                   cin>>lado;
  52.                   cout<<"Area= "<<cuadrado(lado);
  53.                   getch();
  54.                   break;
  55.                 }
  56.                
  57.         case 4: { cout<<"Salir"; break; }
  58.        
  59.         default: cout<<"Opcion Invalida"; break;
  60.         }
  61.     opcm=0;
  62.     opcm=menu();
  63.     }
  64.  return 0;
  65. }
  66.  
  67. //Apartir de Aquí­ van las funciones.
  68. int menu (){
  69.     system("cls"); //Borra la pantalla
  70.     int opc = 0;
  71.     cout<<"[1] Triangulo\n[2] Circulo\n[3] Cuadrado\n[4] Salir\n\nOpcion: ";
  72.     cin>>opc;
  73.     return opc;
  74. }
  75.  
  76. float circulo (float radio){
  77.     return 3.1416*radio;
  78.    
  79. }
  80.  
  81. float cuadrado (float lado){
  82.       return lado*lado;
  83. }
  84. //Se usa triangulo (altura, lado_base, lado, lado, angulo, angulo, angulo);
  85. void triangulo (float altura, float lado_base, float lado2, float lado3, int angulo1, int angulo2, int angulo3){
  86.      float area=lado_base*altura/2;
  87.      cout<<"Area= "<<area;
  88. //Wikipedia dice que un Triangulo Equilatero es aquel que tiene
  89. //todos sus lados iguales y sus angulos interiores iguales a 60 grados.
  90.      if ((angulo1==60 && angulo1==angulo2 && angulo2==angulo3)&&(lado_base==lado2&&lado2==lado3)){
  91.         cout<<"\nTipo de Triangulo: EQUILATERO";
  92.         }
  93.      else
  94. //Wikipedia dice que un Triangulo Isoceles es aquel que tiene
  95. //dos lados iguales y dos angulos interiores iguales
  96.      if (((angulo1==angulo2 && angulo1!=angulo3) || (angulo1==angulo3&&angulo1!=angulo2) || (angulo2==angulo3&&angulo2!=angulo1)) && ((lado_base==lado2 && lado_base!=lado3)||(lado_base==lado3&&lado_base!=lado2)||(lado2==lado3&&lado2!=lado_base)))
  97.         cout<<"\nTipo de Triangulo: ISOCELES";
  98.      else
  99. //Wikipedia dice que un Triangulo Escaleno es aquel que tiene
  100. //todos sus lados diferentes y sus angulos interiores diferentes.
  101.         cout<<"\nTipo de Triangulo: ESCALENO";
  102.      getch();
  103. }

Esta compilado con Dev-C++ y no admite funciones de Borland como la usada "clrscr();" ya que usa los compiladores gcc y g++

¿Te ha gustado este artículo? Subscribete vía Email, para ¡recibirlos en tu correo!

¿No encontró lo que buscaba? ¡Use el buscador!

 
Escrito para el 23 de April de 2007
RSS 2.0 Trackback

9 Comentarios este tema es Hot

  1. chuidiang Dijo:

    Hola:

    Tienes infinita raz



    Escrito el 23 de April de 2007 a las 14:59
    Usando Mozilla Firefox Mozilla Firefox 2.0.0.3 en Windows Windows 2000
  2. stopa Dijo:

    nadamas de escuchar C++ se me enchila la piel U_U

    quede traumado con C++…

    [va con el psicologo]



    Escrito el 23 de April de 2007 a las 17:00
    Usando Mozilla Firefox Mozilla Firefox 1.5.0.8 en Windows Windows XP
  3. Bleend Dijo:

    A ver si encuentran el/los fallos!

    (r



    Escrito el 23 de April de 2007 a las 18:18
    Usando Mozilla Firefox Mozilla Firefox 2.0.0.3 en Windows Windows XP
  4. DaHouseCat Dijo:

    Me encanta este chico Bleend, amigo que te parece si te propongo un reto, haz una funcion que corrija el error y yo ahre una funci



    Escrito el 23 de April de 2007 a las 22:53
    Usando Mozilla Firefox Mozilla Firefox 2.0.0.3 en Windows Windows XP
  5. Ren H Dijo:

    Quisiera comentar (de manera constructiva) que el c



    Escrito el 24 de April de 2007 a las 20:28
    Usando Mozilla Firefox Mozilla Firefox 2.0.0.3 en Windows Windows XP
  6. DaHouseCat Dijo:

    Gracias por el comentario Ren y como bien me comentaste por el msn el problema inicia desde las primeras clases en C y C++ que nisiquiera el maestro sabe que ense



    Escrito el 24 de April de 2007 a las 21:17
    Usando Mozilla Firefox Mozilla Firefox 2.0.0.3 en Windows Windows XP
  7. carlos ni Dijo:

    es muy bueno



    Escrito el 19 de June de 2007 a las 17:32
    Usando Internet Explorer Internet Explorer 6.0 en Windows Windows XP
  8. Carlos Dijo:

    No sé en que conalep impartiste clase pero a mí me toco un maestro muy chingon que te explicaba todo de c++
    Yo comento que también depende mucho la forma de enseñar de un maestro



    Escrito el 13 de November de 2007 a las 2:15
    Usando Mozilla Firefox Mozilla Firefox 2.0.0.8 en Windows Windows XP
  9. teffy Dijo:

    Jajajajaja..lei los comentarios y son chistosos, hice semestre cero para entrar a la carrera de ingenieria, todo era fácil excepto la programación…Jaamáaas en mi vida la habia visto!! Todo era confuso y la maestra solo decia LA I-ÉSIMA COLUMNA Y EL Í-ÉSIMO RENGLON! fUE los mas horrible ke haya vivido!!.
    Ahora ke ya estoy mas avanzada y de nuevo llevo C++ mi profe es chido y encontre mi problema…PENSABA KE EL C++ ERA COMO UNA CALCULADORA KE SOLO DABA VALORES Y ME RESOLVIA LA VIDA!!, el chiste está en razonarlo!! Salu2!



    Escrito el 24 de February de 2008 a las 15:59
    Usando Internet Explorer Internet Explorer 7.0 en Windows Windows Vista

Deja un Comentario

Hey tu! usar emoticones te hace más cool!
                                         

Comparar precios y encontrar el mejor Telefono movil con twenga !
Descarga Musica, Videos, mp3 y mucho más Tutoriales de Fireworks en Español Guirichop Bucaneros de Campeche, Baloncesto Profesional Aeromental We Love Geeks! Licencia Creativa

Escriba su e-mail:

Reciba en su correo electrónico lo más reciente
en DaHouseCats Blog

Comentarios

Suscríbete

  •  
  • Add to Twitter
  • Add to Google Reader or Homepage
  • Add to Technorati Favorites

Disclaimer:

  • DaHouseCat, no se hace responsable acerca del mal uso que se le dé a la información contenida en los artículos y / o tutoriales, quedando en absoluta responsabilidad del usuario.

Administración

  • DaHouseCat
    Posts: 499 - 100%
    Comentarios: 4666 - 100%
    Pingbacks: 96 - 100%
    Score: 10119
499 posts, generados por 1 autores.

Buscar

 

M. Instántanea

B. de Blogueros

DaHouseCat en:

Blogs Amigos

Blogs Campeche

Webs Amigas

Categorías




Archivo

Recomendados

Este blog utiliza Worpress y fue diseñado por DaHouseCat - 2007
El contenido y algunas imagenes de DaHouseCat's Blog estan bajo la licencia de
Reconocimiento-NoComercial-SinObraDerivada 2.5