• Publicidad

Condición while e if

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

Condición while e if

Notapor charlygarza » 2013-05-25 15:41 @695

Evaluar la posibilidad cuando el contenido del saco sea vaciado en su totalidad. Generar el mensaje “El saco está vacío, no hay más qué contar. Cargue un nuevo saco”.

#!/usr/bin/perl

$pesosaco=2.1;
$peso=1;
while($peso != 0) {


print "ingrese un peso: 0.70gr plástico 1 gr canicas \n";
$peso=<STDIN>;
chop($peso);
print "\n";
if ($totalp==$pesosaco){
print "el saco está vacío, no hay más qué contar. Cargue un nuevo saco";
}
else
{
if ($peso == 0){
print "total plástico es $totalp \n";
print "total canicas amarillas $totala \n";
print "total canicas rojas $totalr \n";
print "total canicas azules $totalaz \n";

}
else {
if ($peso != 0.70){
print "ingrese un color: A para amarillo, R para rojo, Az para azul \n";
$color=<STDIN>;
chop($color);
print "\n";

if (lc($color) eq "a"){
$totala= $totala +1;
}
elsif (lc($color) eq "r"){
$totalr= $totalr +1;
}
elsif (lc($color) eq "az"){
$totalaz= $totalaz +1;
}
}
else{
$totalp= $totalp + 0.70;

}
}
}

}
charlygarza
Perlero nuevo
Perlero nuevo
 
Mensajes: 26
Registrado: 2013-05-11 13:22 @598

Publicidad

Re: Condición while e if

Notapor explorer » 2013-05-25 16:52 @744

¿Cuál es el problema?

Por favor, te pido que le pongas marcas Perl a tu código, para que quede más legible. Mira:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. if ( $totalp == $pesosaco ) {
  2.     print "el saco está vacío, no hay más qué contar. Cargue un nuevo saco";
  3. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Tienes el botón Perl justo encima de la caja de edición del mensaje. Primero seleccionas el código, con el ratón o teclado, y luego pulsas el botón.
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

Re: Condición while e if

Notapor charlygarza » 2013-05-25 17:22 @765

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. $pesosaco = 2.1;
  4. $peso     = 1;
  5. while ( $peso != 0 ) {
  6.  
  7.     print "ingrese un peso: 0.70gr plástico 1 gr canicas \n";
  8.     $peso = <STDIN>;
  9.     chop($peso);
  10.     print "\n";
  11.     if ( $totalp == $pesosaco ) {
  12.         print "el saco está vacío, no hay más qué contar. Cargue un nuevo saco";
  13.     }
  14.     else {
  15.         if ( $peso == 0 ) {
  16.             print "total plástico es $totalp \n";
  17.             print "total canicas amarillas $totala \n";
  18.             print "total canicas rojas $totalr \n";
  19.             print "total canicas azules $totalaz \n";
  20.  
  21.         }
  22.         else {
  23.             if ( $peso != 0.70 ) {
  24.                 print "ingrese un color: A para amarillo, R para rojo, Az para azul \n";
  25.                 $color = <STDIN>;
  26.                 chop($color);
  27.                 print "\n";
  28.  
  29.                 if ( lc($color) eq "a" ) {
  30.                     $totala = $totala + 1;
  31.                 }
  32.                 elsif ( lc($color) eq "r" ) {
  33.                     $totalr = $totalr + 1;
  34.                 }
  35.                 elsif ( lc($color) eq "az" ) {
  36.                     $totalaz = $totalaz + 1;
  37.                 }
  38.             }
  39.             else {
  40.                 $totalp = $totalp + 0.70;
  41.  
  42.             }
  43.         }
  44.     }
  45.  
  46. }
  47.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Última edición por explorer el 2013-05-25 17:30 @771, editado 1 vez en total
Razón: Formateado de código con Perltidy
charlygarza
Perlero nuevo
Perlero nuevo
 
Mensajes: 26
Registrado: 2013-05-11 13:22 @598

Re: Condición while e if

Notapor explorer » 2013-05-25 17:29 @770

¿Y cuál es el problema?
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

Re: Condición while e if

Notapor charlygarza » 2013-05-25 17:34 @774

Está la evaluación que si el totalp == totalsaco que muestre que el saco está vacío... pero puedo seguir ingresando los 0.70 que pesa el plástico y lo voy acumulando en la variable totalp, pero en algún punto debería igualarse y mostrar ese mensaje lo cual no hace: puedo seguir ingresando.
charlygarza
Perlero nuevo
Perlero nuevo
 
Mensajes: 26
Registrado: 2013-05-11 13:22 @598

Re: Condición while e if

Notapor explorer » 2013-05-25 20:49 @909

Es posible que haya un error de redondeo...

Prueba con totalp >= totalsac
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 12 invitados