Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Ejercicios] Perl

  • 20 Respuestas
  • 8663 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« en: Noviembre 30, 2014, 05:07:46 pm »
Bueno pues, para darle más vida a esta sección, se me ha ocurrido hacer una serie de ejercicios. El primero sería hacer una pirámide en la que pides al usuario la altura de dicha pirámide y la dibujas, ej:

Introduciendo 5 en altura.

Código: [Seleccionar]
Introduce la altura del triangulo: 5
     *
    **
   ***
  ****
 *****

¡Animaros!
« Última modificación: Diciembre 05, 2014, 06:25:40 pm por Juan »

Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 876
  • Actividad:
    3.33%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #1 en: Diciembre 01, 2014, 07:48:12 pm »
Yo me animo, me lie un poco la cabeza, pero aqui esta.

Código: C
  1. // Programa "piramide" //
  2.  
  3. #include <stdio.h>
  4.  
  5. int main() {
  6.   int altura;
  7.   printf ("Introduce la altura del triangulo: ");
  8.   scanf ("%d",&altura);
  9.   for (int i=1; i <= altura; i++){
  10.     for (int a=1; a <= altura-i; a++){
  11.       printf(" ");
  12.     }
  13.     for (int c=1; c <= i; c++){
  14.       printf("*");
  15.     }
  16.     printf("\n");
  17.   }
  18. }
  19.  

EDITO

De paso dejo esto que escribe el contorno de un triangulo.

Código: C
  1. // Este programa dibuja el contorno de un triangulo de 'x' altura //
  2.  
  3. #include <stdio.h>
  4.  
  5. int main(){
  6.   int altura;
  7.   printf("Altura del triangulo: ");
  8.   scanf("%d",&altura);
  9.   for (int i = 1; i <= altura; i++){
  10.     if (i == 1){ // Hace la primera linea.
  11.       for (int a = 1; a <= altura-i ; a++){
  12.         printf(" ");
  13.       }
  14.       printf("*");
  15.     }
  16.     else if (i != 1 && i != altura){ // Hace las lineas interioes
  17.       for (int a = 1; a <= altura-i; a++){
  18.         printf(" ");
  19.       }
  20.       printf("*");
  21.       for (int a = 1; a <= i*2-3; a++){
  22.         printf(" ");
  23.       }
  24.       printf("*");
  25.     }
  26.     else{ // Hace la ultima linea
  27.       for (int a=1; a <= altura*2-1; a++){
  28.         printf("*");
  29.       }
  30.     }
  31.     printf("\n");
  32.   }
  33. }
« Última modificación: Diciembre 02, 2014, 03:26:18 pm por rollth »

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #2 en: Diciembre 02, 2014, 03:50:29 pm »
Pero, se suponía que era para hacerlo en perl...

Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 876
  • Actividad:
    3.33%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #3 en: Diciembre 02, 2014, 07:26:29 pm »
No se donde dices eso, de todas formas no se programar en perl.

Desconectado LKI

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • Ver Perfil
    • Email
« Respuesta #4 en: Diciembre 03, 2014, 06:28:36 pm »
No se donde dices eso, de todas formas no se programar en perl.

 La sección es de scripting específicamente de desarrollo en perl. Y Juan aclaro que para revivir un poco esta sección iba a proponer una serie de desafíos, se suponía que fueran acerca de este lenguaje..
Ser mejor cada día es mi meta

 =LKI=

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #5 en: Diciembre 03, 2014, 08:14:24 pm »
Código: Perl
  1. my $hasta;
  2.  
  3. print "Tamano de la piramide: ";
  4. $hasta = <>;
  5.  
  6. for ($i=1; $i<=$hasta; $i++) {
  7.     print " " x ($hasta - $i) . "*" x $i . "\r\n";
  8. }

Saludos!
« Última modificación: Diciembre 03, 2014, 08:16:51 pm por Once »

Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 876
  • Actividad:
    3.33%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #6 en: Diciembre 04, 2014, 09:52:29 am »
No se donde dices eso, de todas formas no se programar en perl.

 La sección es de scripting específicamente de desarrollo en perl. Y Juan aclaro que para revivir un poco esta sección iba a proponer una serie de desafíos, se suponía que fueran acerca de este lenguaje..

Cierto, no me fije que estaba en la subseccion de Perl.

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #7 en: Diciembre 04, 2014, 02:33:31 pm »
Muy buena solución Once!!! aprovechando las características de perl :)

El bucle podría ser así también:

Código: Perl
  1. for my $i (1..$hasta)

Que queda mas simple.

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #8 en: Diciembre 04, 2014, 04:26:26 pm »
Muy buena solución Once!!! aprovechando las características de perl :)

El bucle podría ser así también:

Código: Perl
  1. for my $i (1..$hasta)

Que queda mas simple.

Tienes razón, no conocía esa sintaxis.

PD: ¿Habrán más ejercicios?

Saludos!

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #9 en: Diciembre 04, 2014, 05:08:38 pm »
Once, pon tú otro si quieres en este mismo hilo, o en otro.

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #10 en: Diciembre 04, 2014, 05:25:16 pm »
Ok, entonces completar la piramide anterior

Citar
Tamano: 5
    *
   ***
  *****
 *******
*********

Saludos!

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #11 en: Diciembre 04, 2014, 06:15:08 pm »
Código: Perl
  1. #!/usr/bin/perl
  2. print "Tamaño de la piramide: " and my $h = <>;
  3.      
  4. for (1..$h)
  5. {
  6.     print " " x ($h - $_) . "*" x (($_*2)-1) . "\n";
  7. }

Código: [Seleccionar]
x@x:~/Escritorio$ perl piramide.pl
Tamaño de la piramide: 7
      *
     ***
    *****
   *******
  *********
 ***********
*************

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #12 en: Diciembre 04, 2014, 06:25:14 pm »
Sip, pon otro.

Saludos!

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #13 en: Diciembre 05, 2014, 06:58:31 am »
Citar
El DNA es una hélice formada por dos cadenas, una complementaria de la otra, que avanzan en sentidos opuestos:

                5'    ACTCAGA    3'    à
        ß     3'    TGAGTCT    5'

En la cadena complementaria, las sustituciones de nucleótidos son las siguientes:
A    à    T
T    à    A
C    à    G
G    à    C

La dirección en la que siempre de deben dar las secuencias (por consenso) es 5' à 3'.

Escribe un programa que, dada una secuencia de DNA, calcule su complementaria.

    Secuencia de DNA: ACGGGAGGACGGGAAAATTACTACGGCATTAGC


Lo que está en rojo  ;D
« Última modificación: Diciembre 05, 2014, 07:00:09 am por Juan »

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #14 en: Diciembre 05, 2014, 01:16:26 pm »
Código: Perl
  1. my $cadena = "ACGGGAGGACGGGAAAATTACTACGGCATTAGC";
  2. my %tabla = ("A"=>"T", "T"=>"A", "C"=>"G", "G"=>"C");
  3. my $complementario;
  4.  
  5.  
  6. foreach (reverse(split("", $cadena))) {
  7.     $complementario .=  $tabla{$_};
  8. }
  9.  
  10. print $cadena . "\r\n";
  11. print $complementario;


Saludos!

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #15 en: Diciembre 05, 2014, 04:06:30 pm »
Esta es la mía  ;D

Código: Perl
  1. #!/usr/bin/perl
  2.  
  3. my $DNA = "ACGGGAGGACGGGAAAATTACTACGGCATTAGC";
  4.  
  5. $DNA =~ tr/ATCG/TAGC/;
  6.  
  7. print reverse($DNA) . "\n";
  8.  
  9.  

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #16 en: Diciembre 05, 2014, 04:47:26 pm »
Esta es la mía  ;D

Código: Perl
  1. #!/usr/bin/perl
  2.  
  3. my $DNA = "ACGGGAGGACGGGAAAATTACTACGGCATTAGC";
  4.  
  5. $DNA =~ tr/ATCG/TAGC/;
  6.  
  7. print reverse($DNA) . "\n";
  8.  
  9.  

Mi código es muy "pytónico"  :P
No entiendo (apenas estoy prendiendo Perl) ¿Son expresiones regulares?

PD: Para continuar, un script que le pida al usurio un número y le diga si el número es perfecto o no.

Saludos!

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #17 en: Diciembre 05, 2014, 06:08:09 pm »
Es lo que en perl se conoce como trasliteración.

Es decir, remplaza los caracteres que encuentra en el primer parámetro, con los que encuentra en el segundo parámetro, en su mismo orden.

Voy a cenar y hago el ejercicio que has propuesto tú  :)

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #18 en: Diciembre 05, 2014, 06:51:19 pm »
Aquí tienes mi solución.

Código: Perl
  1. #!/usr/bin/perl
  2.  
  3. my $num = <STDIN>;
  4. my $total = 0;
  5.  
  6. for (1..$num)
  7. {
  8.     $total += $_ if (($num % $_) == 0 and $num != $_)
  9. }
  10.  
  11. print "El numero es perfecto\n" if $total == $num;

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #19 en: Diciembre 05, 2014, 10:18:15 pm »
Es lo que en perl se conoce como trasliteración.

Es decir, remplaza los caracteres que encuentra en el primer parámetro, con los que encuentra en el segundo parámetro, en su mismo orden.

Voy a cenar y hago el ejercicio que has propuesto tú  :)

Gracias.

Pon otro.

Saludos!

 

¿Te gustó el post? COMPARTILO!



Tutorial perl desde cero By: Black Poision & Painboy

Iniciado por ProcessKill

Respuestas: 2
Vistas: 3460
Último mensaje Septiembre 02, 2011, 09:43:36 pm
por blozzter
[Perl] Verificando si es root para correr un script

Iniciado por c1st

Respuestas: 1
Vistas: 1715
Último mensaje Octubre 07, 2012, 06:01:39 pm
por ANTRAX
[Perl] Counter Strike 1.6 Servers List

Iniciado por BigBear

Respuestas: 0
Vistas: 1282
Último mensaje Noviembre 12, 2012, 07:32:11 pm
por BigBear
[Perl] Iframe DDos Attack Tool

Iniciado por BigBear

Respuestas: 0
Vistas: 1422
Último mensaje Julio 03, 2011, 10:06:45 pm
por BigBear
[Perl] Search in google for scan SQLI

Iniciado por BigBear

Respuestas: 0
Vistas: 1471
Último mensaje Julio 03, 2011, 09:49:49 pm
por BigBear