www.perl.com

Programación con Operadores
 Pasos Para Programar en Perl
 Programación Básica
 Programas sobre Arreglos
 Programas sobre Operadores  Programas sobre Funciones
 Programas sobre Archivos
 Programas en la Red

 Ejercicio 1

            #! /usr/bin/perl
            do {
                print "1.- SUMA \n";
                print "2.- RESTA \n";
                print "3.- MULTIPLICACION \n";
                print "4.- DIVISION \n";
                print "5.- POTENCIA \n";
                print "6.- MODULO \n";
                print "7.- FACTORIAL \n";
                print "8.- Salir \n";
                print "Selecciona la opción deseada:";
                $resp=<STDIN>
                print "Introduce el primer Número:";
                chop($a=<STDIN>);
                print"Introduce el segundo Número:";
                chop($b=<STDIN>);
                if ($resp= = 1){
                    $res=$a + $b;  #suma
                }
                elsif ($resp= =2){
                    $res=$a -$b; #resta
                }
                elsif ($resp= =3){
                    $res=$a *$b; #multiplicación
                }
                elsif ($resp= =4){
                    $res=$a / $b; #división
                }
                elsif ($resp= =5){
                    $res=$a** $b; #potenciación
                }
                elsif ($resp= =6){
                    $res=$a %$b; #modulo
                }
                elsif ($resp= =7){
                    while ($a>1) {
                        $res=$res* $a --;} #calcula el factorial del primer número
                }
                else {$band=0; #si decidimos salir ponemos el flag a 1
                }
                print "El resultado es $res \n";
                }while ($band= = 1); #repetimos hasta que no salgamos

 Ejercicio 2

            #! /usr/bin/perl
            $sal = "salir \n";
            print " Escribe los elementos de un arreglo, cuando termines escribe \"salir\" \n";
            do {
            push (@lista, $elem); #lee los datos y los mete en una lista
            $elem = <STDIN>;
            } until ($elem eq $sal); #Pide datos hasta que escribamos "salir"
            @lista= (sort @lista); #ordena los datos
            print "Datos ordenados \n";
            print @lista;
            @reverselist= reverse (@lista); #invierte el orden de los datos
            print "Datos en orden contrario:\n";
            print @reverselist;
            $elem=pop(@lista);  #saca el elemento más a la derecha en la lista
            unshift(@lista,$elem); #mete el elemento por el lado izquierdo
            push (@lista,$elem);   # mete el mismo elemento por la derecha
            print "Ahora la lista es: \n @lista";
            $elem = shift(@lista); #saca el elemento más a la izquierda
            print "Y  ahora es : \n @lista";
            chop(@lista);
            print " finalmente lalista es : \n @lista";

 Ejercicio 3

            #! /usr/bin/perl
            print "Piensa un número entre el 1 y 99  \n";
            print "Yo trataré de adivinarlo \n";
            print "Escribe una \"i \" si lo he adivinado, es decir si es igual \n";
            print " \"g \"para indicar  que es mayor y \"p\" para indicar que es menor \n";
            while ($incr > 1) {
                printf " Tu número es más grande o más pequeño que  %2d ?\n ", $pregunta;
                $incr = $incr /2; #busqueda binaria
                chop ($ch = <STDIN>);
                if ($ch eq "i") { last; } #si lo adivinó saledel bucle
                elsif ($ch eq "g") {$pregunta = $pregunta + $incr;}
                else {pregunta = $pregunta - $incr;}
            }
            printf " \n El número es %2d ", $pregunta;

 Ejercicio 4

            #! /usr/bin/perl
            for ($y=1; $y<24; $y++); #columnas
                {
                    for ($x=1;$x<24; $x++); #filas
                        {
                            if ($x = = $y)
                            {
                                print "x";
                                next;    #como ya se escribió salta y continúa
                            }
                            if ($x = = 24 -$y)
                            {
                                print "x";
                                next;  #se escribe y salta
                            }
                            print " "; #en cualquier otro caso
                        }
                    print "\n";
                }

 

 



Cabecera