• Portada
    • Recent
    • Users
    • Register
    • Login

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

    Scheduled Pinned Locked Moved Software
    5 Posts 3 Posters 1.5k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • HitMakerH Offline
      HitMaker
      last edited by

      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 Reply Last reply Reply Quote 0
      • ptm56P Offline
        ptm56
        last edited by

        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 Reply Last reply Reply Quote 0
        • HitMakerH Offline
          HitMaker
          last edited by

          :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 Reply Last reply Reply Quote 0
          • ptm56P Offline
            ptm56
            last edited by

            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 Reply Last reply Reply Quote 0
            • J_PJ Offline
              J_P
              last edited by

              ¿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 Reply Last reply Reply Quote 0

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              • 1 / 1
              • First post
                Last post

              Foreros conectados [Conectados hoy]

              1 usuarios activos (1 miembros y 0 invitados).
              febesin, pAtO, cobito, smith

              Estadísticas de Hardlimit

              Los hardlimitianos han creado un total de 543.8k posts en 62.9k hilos.
              Somos un total de 35.0k miembros registrados.
              zanzibarpickup ha sido nuestro último fichaje.
              El récord de usuarios en linea fue de 222 y se produjo el Mon Jul 27 2026.