• Publicidad

Correción de errores de código

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Correción de errores de código

Notapor leonardocollado » 2012-11-29 12:56 @580

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. print "Ingrese un numero en base 2: ";
  3. $num   = <stdin>;
  4. $b4    = 0;
  5. $pot11 = 1;
  6. $pot1  = 1;
  7. $sum1  = 0;
  8. $b8    = 0;
  9. $pot22 = 1;
  10. $pot2  = 1;
  11. while ( $num != 0 ) {
  12.     $a    = int( $num / 10 );
  13.     $d    = $num - 10 * $a;
  14.     $num  = $a;
  15.     $sum1 = $sum1 + $d * $pot1;
  16.     $sum2 = $sum2 + $d * $pot2;
  17.     $pot1 = $pot1 * 2;
  18.     $pot2 = $pot2 * 2;
  19.     if ( $pot1 == 4 ) {
  20.         $b4    = $b4 + $sum1 * $pot11;
  21.         $pot11 = $pot11 * 10;
  22.         $pot1  = 1;
  23.         $sum1  = 0;
  24.     }
  25.     if ( $pot2 == 8 ) {
  26.         $b8    = $b8 + $sum2 * $pot22;
  27.         $pot22 = $pot22 * 10;
  28.         $pot2  = 1;
  29.         $sum2  = 0;
  30.     }
  31. }
  32. $b4 = $b4 + $sum1 * $pot11;
  33. $b8 = $b8 + $sum2 * $pot22;
  34. print "El numero en base 4 es $b4\n\nEl munero en base 8 es $b8\n\n"
  35. $b16  = 0;
  36. $p3   = 1;
  37. $sum3 = 0;
  38. while ( $num = !0 ) {
  39.     $a1   = int( $num / 10 );
  40.     $d1   = $num - 10 * $a1;
  41.     $num  = $d1;
  42.     $sum3 = $sum3 + $d1 * $pot3;
  43.     $pot3 = $pot3 * 2;
  44.     if ( $p3 == 16 ) {
  45.         if ( $sum3 == 10 ) {
  46.             $sum3 = a;
  47.         }
  48.         if ( $sum3 = 11 ) {
  49.             $sum3 = b;
  50.         }
  51.         if ( $sum3 == 12 ) {
  52.             $sum3 = c;
  53.         }
  54.         if ( $sum3 == 13 ) {
  55.             $sum3 = d;
  56.         }
  57.         if ( $sum3 == 14 ) {
  58.             $sum3 = e;
  59.         }
  60.         if ( $sum3 == 15 ) {
  61.             $sum3 = f;
  62.         }
  63.         if ( $sum <= 9 )
  64.             $b16 = $sum3 . $b16
  65.             $sum3 = 0;
  66.         $p3 = 1;
  67.     }
  68. }
  69. print "el numero con base 16 es $b16\n";
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Esta programa me dice los siguientes errores
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Scalar found where operator expected at ./tarealab.pl line 38, near "$b16"
        (Missing semicolon on previous line?)
Scalar found where operator expected at ./tarealab.pl line 75, near ")
     $b16"
        (Missing operator before $b16?)
Scalar found where operator expected at ./tarealab.pl line 76, near "$b16
     $sum3"
        (Missing operator before $sum3?)
syntax error at ./tarealab.pl line 38, near "$b16"
syntax error at ./tarealab.pl line 75, near ")
     $b16"
Execution of ./tarealab.pl aborted due to compilation errors.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Ojalá me ayuden para solucionarlo.
Última edición por explorer el 2012-11-29 17:28 @769, editado 2 veces en total
Razón: Formateado de código con Perltidy y poner marcas Perl
leonardocollado
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2012-11-17 23:17 @012

Publicidad

Re: Correción de errores de código

Notapor explorer » 2012-11-29 17:51 @785

Los mensajes de error se refieren a que hay líneas que no están terminadas en ';', o como en el caso de un if(), le faltan llaves.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 25 invitados