• Portada
    • Recientes
    • Usuarios
    • Registrarse
    • Conectarse

    Necesito ayuda… con unas funciones del ADAgide para HASKEL!!!

    Programado Fijo Cerrado Movido
    Software
    3
    5
    1.4k
    Cargando más mensajes
    • Más antiguo a más nuevo
    • Más nuevo a más antiguo
    • Mayor número de Votos
    Responder
    • Responder como tema
    Accede para responder
    Este tema ha sido borrado. Solo los usuarios que tengan privilegios de administración de temas pueden verlo.
    • HitMakerH
      HitMaker
      Última edición por

      Buenas chicos.. necesito que me ayudeis a compilar 4 funciones bajo ADA para HASKEL.. no tengo ni idea de como hacerlas.

      Son:

      fSUma
      fProducto
      fNumeroCifrasPares
      fSumaCifrasPares

      Las 2 primeras tratan de sumar o multiplicar todas los digitos de la cifra que le meta:

      Ej: 355 –> 3 + 5 + 5 = 13 o 3 * 5 * 5 = 75

      La 3ª trata de que me dige cuantos digitos de la cifra son pares:

      EJ: 4576 --> el 4 y 6 pro lo tanto 2

      Y la 4ª es para que me sume esos digitos de la cifra que sean pares

      Alguna sabe? :nono:

      Saludos

      1 Respuesta Última respuesta Responder Citar 0
      • ptm56P
        ptm56
        Última edición por

        with ada.integer_text_io; use ada.integer_Text_io;
        procedure fsuma is
        n,m: integer;
        begin
        put ("introduce un numero: ");
        m:=0;
        while not end_of_line loop
        get(n);
        m:=m+n;
        end loop;
        new_line;
        put ("la suma de las cifras es: ");
        put (m);
        end fsuma;

        with ada.integer_text_io; use ada.integer_Text_io;
        procedure fproducto is
        n,m: integer;
        begin
        put ("introduce un numero: ");
        m:=1;
        while not end_of_line loop
        get(n);
        m:=m*n;
        end loop;
        new_line;
        put ("el producto de las cifras es: ");
        put (m);
        end fproducto;

        with ada.integer_text_io; use ada.integer_Text_io;
        procedure fnumerodecifraspares is
        n,m: integer;
        begin
        put ("introduce un numero: ");
        m:=0;
        while not end_of_line loop
        get(n);
        if mod 2 (n)=0 then –esta creo que era así, no me acuerdo mu bien 😛
        m:=m+1;
        end if;
        end loop;
        new_line;
        put ("En tu numero hay: ");
        put (m);
        put ("cifras pares.");
        end fnumerodecifraspares;

        with ada.integer_text_io; use ada.integer_Text_io;
        procedure fsumacifraspares is
        n,m: integer;
        begin
        put ("introduce un numero: ");
        m:=0;
        while not end_of_line loop
        get(n);
        if mod 2 (n)=0 then
        m:=m+n;
        end if;
        end loop;
        new_line;
        put ("La suma de las cifras pares es: ");
        put (m);
        end fsumacifraspares;

        Bueno, pues algo así creo que funcionaria (de lo que no estoy muy seguro es de que el mod funcionara así, pero bueno... Habrá más maneras de hacerlo, pero esta es la primera que se me ha ocurrido.

        1 saludo

        1 Respuesta Última respuesta Responder Citar 0
        • HitMakerH
          HitMaker
          Última edición por

          :muerto: 😮

          FLIPA:. ni guarra de nada de lo que has puesto

          Yo debo hacerlo asi:

          fSuma :: Integer -> Integer
          –PRE
          --fSuma
          --POST
          fSuma(num) = ....

          Y asi con las 4... con funciones matematicas... con div, mod.. con otherwise..

          Vamos algo simple.. te juro que eso ni lo entiendo... :nono:

          1 Respuesta Última respuesta Responder Citar 0
          • ptm56P
            ptm56
            Última edición por

            Mmmm, igual no estamos hablando de lo mismo 😛
            Lo que tu dices que es? para hacer un package o algo o es q… joder, no entiendo nada :muerto:
            Bueno, es igual. A ver si alguien te puede ayudar con lo que pides pues

            1 Respuesta Última respuesta Responder Citar 0
            • J_PJ
              J_P
              Última edición por

              ¿pero como que "ADAgide para HASKELL"?

              el adagide es un editor de ADA, puedes hacer programas de haskell usando cualquier editor…

              la 1ª:
              355 rem10 + (355 div 10) rem10 + ((355 div 10) div10) rem 10 = 5 + 5 + 3

              suma (num) = if num == 0 then 0 else num rem10 + suma (num div 10)

              la 4ª:
              sumapares (n) = if n == 0 then 0
              else if even (n rem10) then (n rem10) + sumapares (n div 10)
              else sumapares (n div 10)

              la 3ª hazla tú, que es muy fácil teniendo la 4ª

              para empezar con haskell lo mejor es que te mires el prelude.hs y hagas pruebecillas. tu no serás de la FI, ¿no?

              1 Respuesta Última respuesta Responder Citar 0
              • 1 / 1
              • First post
                Last post

              Foreros conectados [Conectados hoy]

              1 usuarios activos (0 miembros e 1 invitados).
              febesin, pAtO,

              Estadísticas de Hardlimit

              Los hardlimitianos han creado un total de 543.3k posts en 62.8k hilos.
              Somos un total de 34.8k miembros registrados.
              hsmith ha sido nuestro último fichaje.