jueves, 11 de julio de 2013

Solución al Primer Ejercicio Práctico en Clase

#!/usr/bin/perl

#Ingreso de Datos e Impresion de Longitud
#################################################
#Solicita Nombre
print "Ingrese el Nombre:";
$nombre = <stdin>;
#Elimina el salto de linea del nombre
chop($nombre);

#Solicita Apellido
print "Ingrese el Apellido:";
$apellido = <stdin>;
#Elimina el salto de linea del apellido
chop($apellido);

#Solicita Edad
print "Ingrese la Edad:";
$edad = <stdin>;
#Elimina el salto de linea de la edad
chop($edad);

#Solicita Sexo
print "Ingrese el Sexo (M|F):";
$sexo = <stdin>;
#Elimina el salto de linea del sexo
chop($sexo);

#Solicita DPI
print "Ingrese el numero de DPI:";
$dpi = <stdin>;
#Elimina el salto de linea del DPI
chop($dpi);

#Solicita Universidad
print "Ingrese la Universidad:";
$universidad = <stdin>;
#Elimina el salto de linea de la universidad
chop($universidad);

#Solicita Especialidad
print "Ingrese la Especialidad:";
$especialidad = <stdin>;
#Elimina el salto de linea de la especialidad
chop($especialidad);

#Solicita Centro de Trabajo
print "Ingrese el Centro de Trabajo:";
$trabajo = <stdin>;
#Elimina el salto de linea del centro de trabajo
chop($trabajo);

#Solicita Salario
print "Ingrese el Salario (Quetzales):";
$salario = <stdin>;
#Elimina el salto de linea del Salario
chop($salario);

#Inicializa Gustos
@Gustos = ("Deporte","Comida","Vehiculos","Viajar","Juegos de Mesa");

#Inicializa Carga de Trabajo
%Carga = ("Lunes",8,"Martes",4,"Miercoles",4,"Jueves",6,"Viernes",7,"Sabado",0,"Domingo",0);

#Concatena todos los datos
$total = $nombre.$apellido.$edad.$sexo.$dpi.$universidad.$especialidad.$trabajo.$salario;

#Imprime la Longitud de la Cadena Completa
print "Longitud Total de Datos: ".length($total)."\n";

#Obtiene el Nombre Completo de la Persona
$nombre_completo= $nombre." ".$apellido;

#Si la edad es mayor a 37, cambia variable asociativa de dia martes
if (($sexo == "F") || (($sexo == "M") && ($edad > 37))){
$Carga{"Martes"} = 0;
}
print "Carga del Martes: ".$Carga{"Martes"}."\n";

#Si la edad es mayor a 40, le agrega el trato
if ($edad > 40){
if ($sexo eq "M"){
$trato = "Sr. ";
}
else{
$trato = "Sra. ";
}
}
else{
$trato = "";
}
$nombre_completo = $trato.$nombre_completo;
print "Nombre Completo: ".$nombre_completo."\n";

#Agrega longitud de universidad al DPI
$long = length($universidad);
$long--;
$dpi = $dpi.$long;
print "DPI: ".$dpi."\n";

#Verifica si es mujer mayor de 20 y la carga del miercoles es par
if (($sexo == "F") && ($edad > 20) && ($Carga{"Miercoles"}%2 == 0)){
$salario = $salario * 3;
}
print "Salario: ".$salario."\n";

#Verifica la primer aparicion de a y la ultima de e
$primer_a = index($nombre_completo, "a");
$ultima_e = rindex($nombre_completo, "e");
#No se encuentra la letra a
if ($primer_a == -1){
print "No se encontro la letra a\n";
}
#Letra a encontrada
else{
print "Posicion de la primera letra a: $primer_a\n";
}
#No se encuentra la letra e
if ($ultima_e == -1){
print "No se encontro la letra e\n";
}
#Letra e encontrada
else{
print "Posicion de la ultima letra e: ".$ultima_e."\n";
}

#Encuentra el espacio entre apellidos
$espacio = index($apellido, " ");
#Obtiene Primer Apellido
$primer_apellido = substr($apellido, 0, $espacio);
$segundo_apellido = substr($apellido, $espacio + 1);
#Comparacion entre primer apellido y universidad
$comparacion = $primer_apellido cmp $universidad;
#Verifica valor de comparacion
if ($comparacion == 0){
print "Universidad y Primer Apellido Iguales (0)\n";
}
else{
if ($comparacion == 1){
print "Primer Apellido Mayor que Universidad (1)\n";
}
else{
print "Primer Apellido Menor que Universidad (".$comparacion.")\n";
}
}

#Obtiene espacio de nombre
$espacio = index($nombre," ");
if ($espacio == -1){
$espacio = 3;
}
#Subcadena de nombre
$subcadena = substr($nombre, $espacio);
#Concatena con Segundo Apellido
$subcadena = $subcadena." ".$segundo_apellido."\n";
print "Subcadena del Nombre: ".$subcadena."\n";

No hay comentarios:

Publicar un comentario