Conferencia 4
Upcoming SlideShare
Loading in...5
×
 

Conferencia 4

on

  • 222 views

 

Statistics

Views

Total Views
222
Views on SlideShare
171
Embed Views
51

Actions

Likes
0
Downloads
0
Comments
0

5 Embeds 51

http://perlmaestria-orestes.blogspot.com 45
http://www.perlmaestria-orestes.blogspot.com 2
http://perlmaestria-orestes.blogspot.de 2
http://perlmaestria-orestes.blogspot.com.es 1
http://perlmaestria-orestes.blogspot.com.ar 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Conferencia 4 Conferencia 4 Presentation Transcript

  • Lenguaje Perl Dr. Orestes Febles Díaz Conferencia 4
  • Introducción •Solución a la Prueba Práctica. •Entrada y Salida •Subrutinas Temas generales
  • Introducción •Deben ser capaces de crear subrutinas usando la sintaxis del lenguaje PERL. Objetivos
  • Introducción • Un estudiante universitario de 5to año tiene en este semestre 5 asignaturas (Matemáticas, Ciencias, Historia, Perl y Java). Además tiene un listado con los nombres de los profesores de cada una de esas asignaturas. • a) Declare una lista asociativa que incluya las asignaturas con sus respectivas notas (del 1 al 100). • b) Declare un arreglo con los nombres de los profesores de las 5 asignaturas. • c) Si la nota de Perl es menor que 60 y el profesor de Java contienen una “p” en su nombre agregar al final del listado de profesores la cadena “Aprobado”. • d) Si la longitud del nombre del profesor de Historia no es igual a 7 agregarle la cadena “Incompleto” al inicio del listado de profesores. • e) Imprima la lista de profesores ordenada alfabéticamente. Bat A
  • Introducción • La liga española de futbol se ha mantenido solamente a 5 equipos (Madrid, Barcelona, Valencia, Sevilla y Getafe). Además mantiene actualizados la lista con los 5 mejores goleadores del torneo. • a) Declare una lista asociativa que incluya los nombres de los equipos junto con los puntos que llevan en lo que va de torneo. • b) Declare un arreglo con los nombres de los goleadores de la liga. • c) Si el Barcelona tienen menos puntos que el Madrid y Messi es el máximo goleador (el primero en la lista), se debe eliminar el último nombre en la lista de goleadores. • d) Si el nombre del máximo goleador tienen más de 10 caracteres, se debe insertar un nombre entrado por el usuario (por consola) al inicio del listado de goleadores. • e) Imprima la lista de goleadores a la inversa. Bat B
  • IntroducciónSolución
  • IntroducciónElementos Anteriores •Open •Close •Split •Filehandles •Loops
  • Introducción open(PUNTERO, "modo de acceso + nombre de archivo"); Donde: nombre de archivo -> puede tener cualquiera de los prefijos definidos , estos prefijos indican el modo de acceso al archivo (si no se pone ningún prefijo es que se toma el modo de acceso por defecto que es el de lectura) Open
  • Introducción open(IN, "data.txt"); open(OUT, ">out.txt"); while($linea = <IN>) { # manipula los caracteres leídos y puestos en la variable $ linea. #Ejemplo convertir los caracteres a minúsculas $linea =~ tr/A-Z/a-z/; # escritura del resultado print OUT $linea; } Ejemplo
  • Introducción $entrada="entrada.txt"; $salida ="salida.txt"; open (ENTRADA,"<$entrada") || die "ERROR: No puedo abrir el fichero $entradan"; open (SALIDA,">$salida") || die "ERROR: No puedo abrir el fichero $salidan"; while ($linea=<ENTRADA>) { print SALIDA $linea; } close (ENTRADA); close (SALIDA); Copiar de un fichero a otro
  • Introducción • El archivo "/etc/passwd" contiene la descripción de cada login. Cada línea del archivo passwd está compuesta por: el nombre que usa el usuario para entrar (login), la contraseña encriptada (password), número que identifica al usuario (uid), número que identifica al grupo al que pertenece el usuario (gid), información sobre el usuario (User_Information), directorio inicial del usuario (login_directory) y el interprete de comandos usado por dicho usario (login_shell). Visualizar en la consola el nombre de cada usuario y su directorio predeterminado. login:password:uid:gid:User_Information:login_directory:login_shell
  • Introducción open(PASSWD, "/etc/passwd"); while ($p = <PASSWD>) { # lee una línea del archivo chop($p); #quitamos el salto de línea @field = split(/:/, $p); print " Usuario $field[0] y su directorio es $field[5]"; } close(PASSWD); Solución en PERL
  • IntroducciónEjercitación •Declaración de listado de deportes •Por cada deporte se pregunta al especialista si es con balón. •De ser cierto, se escribe ese deporte en un fichero previamente creado en la dirección que el usuario introdujo.
  • IntroducciónSubrutinas •Una subrutina puede definirse como un programa dentro de un programa, un subprograma. •Es un trozo de código que tiene vida propia, con sus propios algoritmos y sus propias variables, que puede estar declarado dentro de otro programa Perl, dentro de un módulo o dentro del intérprete Perl.
  • IntroducciónSubrutinas Para ejecutar una subrutina hay que invocarla por su nombre, y si fuera necesario sus parámetros.
  • IntroducciónDefiniendo una subrutinas Para definir una subrutina se debe utilizar la palabra sub después el segmento de código que sería el cuerpo de la subrutina. sub marino { $n += 1; # variable global $n print “Hola marinero número $n!n"; }
  • IntroducciónDefiniendo una subrutinas &marino; &marino; &marino; &marino;
  • IntroducciónSubrutinas • Muchas veces es necesario cuando se llama a una subrutina, realizer alguna tarea con el resultado que esta arroja. • Las subrutinas de Perl deben en su mayoría tener algún valor de retorno. • Como hizo Larry?. • Donde último se calculan datos en una subrutina…será tomado automáticamente como retorno de la subrutina.
  • IntroducciónEjemplo sub suma { print “Hola estas sumando!n"; $aprobados + $suspensos; # valor de retorno } $aprobados = 30; $suspensos = 40; $total= &suma; # total será 70 print .$total;
  • IntroducciónQue ocurre? sub suma { $aprobados + $suspensos; # valor de retorno print “Hola estas sumando!n"; } Se debe ser cuidadoso al agregar instrucciones al final de las subrutinas.
  • IntroducciónParámetros • La subrutina suma pudiera ser mucho mejor si no trabajara solamente con las variables globales $aprobados y $suspensos. Sería útil el uso de parámetros para efectuar la suma con diferentes sumandos. • $total= &suma(10,80);
  • IntroducciónQue ocurre? sub suma { $_[0] + $_[1]; # valor de retorno } $total= &suma(12,7); Perl hace posible el uso de una lista dentro de las subrutinas. Para ello utiliza el array @_ • La variable @ es privada para la subrutina. • Desechará parámetros sobrantes.
  • IntroducciónSubrutinas • Las subrutinas pueden ser ubicadas en cualquier lugar del programa. • Es común que muchos programadores que usan Perl (con influencia anterior de C o de Pascal) coloquen las subrutinas al inicio del programa. • La definición de las subrutinas es global. • Cómo utilizar variables privadas dentro de las subrutinas?
  • IntroducciónSubrutinas • Se pueden crear variables privadas llamadas variables léxicas con el operador my. sub maximo { my($m, $n); # variables privadas ($m, $n) = @_; # asigna parámetros if ($m > $n) { $m } else { $n } }
  • IntroducciónMayor print &max(3, 5, 10, 4, 6); sub max { my($mayor) = shift @_; foreach (@_) { if ($_ > $ mayor) { $ mayor = $_; } } $ mayor; }
  • IntroducciónReturn my @nombres= qw/ fred barney betty dino wilma pebbles bamm-bamm /; my $resultado = &busqueda("dino", @nombres); sub busqueda{ my($nombretemp, @lista) = @_; foreach (0..$#lista) { if ($nombre eq $lista[$_]) { return $_; # retorna posicion } } –1; # elemento no encontrado(retorno opcional) }
  • IntroducciónEjercicio • Clase Trabajador (POO) • Declare una subrutina de dada una cadena si su longitud es par deje solo la mitad de los elementos , si es múltiplo de 5 deje en la cadena solo 3 elementos. • Declare una subrutina que sume todos los elementos de un arreglo que recibe por parámetros.
  • Introducción •PERL permite crear subrutinas que después pueden ser utilizadas en cualquier parte del programa. •Permite la declaración de variables privadas dentro de los programas. Conclusiones