• Publicidad

Matriz

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

Matriz

Notapor jairo15 » 2016-09-25 22:05 @962

Yo solía hacer matrices en C pero ahora en Perl veo que es algo diferente.

¿Cómo se puede hacer una matriz en la que el usuario ingrese el valor en cada posición?
jairo15
Perlero nuevo
Perlero nuevo
 
Mensajes: 31
Registrado: 2016-09-11 13:27 @602

Publicidad

Re: Matriz

Notapor explorer » 2016-09-25 23:09 @006

En Perl se hace de la misma manera: listas de listas de elementos.

my @matriz;

$matriz[0] = [ 1, 2, 3, ];

$matriz[1][2] = 42;

Más información en tu propio ordenador en perldoc perllol, y en la Web (traducido al español).
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: Matriz

Notapor jairo15 » 2016-09-26 14:25 @642

Al momento de imprimir una matriz de 5x5 me sale una línea hacia abajo con los valores, como si fuera solo una dimensión.

El código es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @matriz;
  2.  
  3. for ( $i = 1; $i <= 5; ++$i ) {
  4.     for ( $j = 1; $j <= 5; ++$j ) {
  5.         print "Ingrese el valor de la posición: [$i,$j]->";
  6.         $matriz[$i][$j] = <STDIN>;
  7.     }
  8. }
  9.  
  10. for ( $i = 1; $i <= 5; ++$i ) {
  11.     for ( $j = 1; $j <= 5; ++$j ) {
  12.         print "\t$matriz[$i][$j]";
  13.         print "\n";
  14.     }
  15. }
  16. <>;
  17.  
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4
Última edición por explorer el 2016-09-26 15:09 @673, editado 1 vez en total
Razón: Formateado de código con Perltidy
jairo15
Perlero nuevo
Perlero nuevo
 
Mensajes: 31
Registrado: 2016-09-11 13:27 @602

Re: Matriz

Notapor explorer » 2016-09-26 15:22 @682

Es porque estás almacenando los valores junto con el carácter de fin de línea (al pulsar la tecla Enter, en el <STDIN>).

La solución es quitar esos caracteres:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.         chomp($matriz[$i][$j] = <STDIN>);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Y luego, a la hora de imprimir, hay que poner el "\n" al final de cada línea de la matriz, así que tienes que mover la línea 13 por debajo de la 14 (final del bucle for() entre 11 y 14).

Quedaría un poco más corto así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @matriz;
  2.  
  3. for my $i (1 .. 5 ) {
  4. for my $j (1 .. 5 ) {
  5.         print "Ingrese el valor de la posición: [$i,$j]->";
  6.         chomp($matriz[$i][$j] = <STDIN>);
  7.     }
  8. }
  9.  
  10. for my $i (1 .. 5 ) {
  11. for my $j (1 .. 5 ) {
  12.         print "\t$matriz[$i][$j]";
  13.     }
  14.     print "\n";
  15. }
  16. <>;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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: Matriz

Notapor charlygarcia » 2017-02-27 16:32 @731

Alguna vez me hice un videillo, creo que se puede mejorar, pero en esa época era con fines ilustrativos.

Puedes revisarlo:

[text]¿Cómo lograr que no se seque una gota de agua? Arrojándola al mar. [/text] - Nota: Este tag no se puede utilizar en firmas.Samsara
Avatar de Usuario
charlygarcia
Perlero nuevo
Perlero nuevo
 
Mensajes: 54
Registrado: 2009-03-06 23:16 @011


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 9 invitados