Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Xanz en 11 Febrero 2011, 21:35 pm



Título: Problema Calculadora en Perl
Publicado por: Xanz en 11 Febrero 2011, 21:35 pm
Buenas,la verdad soy nuevo en perl y estoy intentando hacer una calculadora.
Estoy en terminandola pero algo esta mal y no se que es xD
Vean mi codigo y expliquenme que esta mal..
http://pastebin.com/iP6Wf12x

Muchas gracias de antemano.


Título: Re: Problema Calculadora en Perl
Publicado por: Edu en 11 Febrero 2011, 22:20 pm
Deja el codigo aca siempre ya q muyy largo no sera


Título: Re: Problema Calculadora en Perl
Publicado por: Shell Root en 11 Febrero 2011, 22:30 pm
Deberías de usar funciones, algo como esto.
Código
  1. #!/usr/bin/perl
  2.  
  3.  
  4. print "CALCURADORA\n\n";
  5. print "Teclea el numero de la accion que desees realizar:\n";
  6. print "0 - Salir\n";
  7. print "1 - Sumar\n";
  8. print "2 - Restar\n";
  9. print "3 - Multiplicar\n";
  10. print "4 - Dividir\n";
  11. $sAccion = <STDIN>;
  12.  
  13. print &sAcciones($sAccion)."\n";
  14.  
  15. # Functión para pedir números.
  16. sub sPedirNumeros{
  17.  $sCount = shift; # @Parametro 1, contador de números.
  18.  print "Ingrese número " . $sCount . ": ";
  19.  $sNumero = <STDIN>;
  20.  return $sNumero;
  21. }
  22.  
  23. # Functión para las acciones de la calculadora.
  24. sub sAcciones{
  25.  $sAccion = shift; # @Parametro 2, acción a realizar.
  26.  $sNum = 0;
  27.  if( $sAccion == "0" ){
  28.    return 0;
  29.  }else{
  30.    print "Cuantos números?\n";
  31.    $sCantNum = <STDIN>;
  32.    if( $sAccion == "1" ){
  33.      for($i=0; $i<$sCantNum; $i++){
  34.        $sNum = $sNum + &sPedirNumeros($i + 1);
  35.      }
  36.      return $sNum;
  37.    }elsif( $sAccion == "2" ){
  38.      for($i=0; $i<$sCantNum; $i++){
  39.        $sNum = $sNum - &sPedirNumeros($i + 1);
  40.      }
  41.      return $sNum;
  42.    }elsif( $sAccion == "3" ){
  43.      for($i=0; $i<$sCantNum; $i++){
  44.        $sNum = $sNum * &sPedirNumeros($i + 1);
  45.      }
  46.      return $sNum;
  47.    }elsif( $sAccion == "4" ){
  48.      for($i=0; $i<$sCantNum; $i++){
  49.        $sNum = $sNum / &sPedirNumeros($i + 1);
  50.      }
  51.      return $sNum;
  52.    }
  53.  }
  54. }

PD: Aún me falta, pero te servirá de guía.