[Hilo Oficial] Esto también es otro arte...el ARTE de programar
#42
Cita
Acabo de ver el fallo. Esperad un momento.


EDITO: Ya está. En el segundo IF, asignaba a M5 3*I en vez de 5*I (por hacer un copypaste descarado xD)

El código correcto:

Código:
WITH Ada.Integer_Text_IO;
USE Ada.Integer_Text_IO;
WITH Ada.Text_IO;
USE Ada.Text_IO;

PROCEDURE Suma_M3_M5_Hasta_1000 IS

┬á  --- Declaración de variables ("---" es para comentarios en Ada. Vale con un simple -)
┬á  I,
┬á  SumaMult,
┬á  ContM3,
┬á  ContM5,
┬á  ContMC,
┬á  M3,
┬á  M5┬á ┬á ┬á  : Integer;

┬á  Check3,
┬á  Check5 : Boolean;

BEGIN

┬á  --- Asignación a variables

┬á  SumaMult := 0;
┬á  ContM3 := 0;
┬á  ContM5 := 0;
┬á  ContMC := 0;
┬á  M3 := 0;
┬á  M5 := 0;
┬á  I := 1;
┬á  Check3 := False;
┬á  Check5 := False;

┬á  --- Calculador

┬á  WHILE Check3 /= True OR Check5 /= True LOOP

┬á ┬á ┬á --- Miramos que los múltiplos no sean mayores que 1000.
     
      IF (3*I) >= 1000 THEN
┬á ┬á ┬á ┬á  M3 := 0;
┬á ┬á ┬á ┬á  Check3 := True;
┬á ┬á ┬á ┬á  ELSE
┬á ┬á ┬á ┬á  M3 := 3*I;
┬á ┬á ┬á ┬á  ContM3 := ContM3 + 1;
      END IF;

┬á ┬á ┬á  IF (5*I) >= 1000 THEN
┬á ┬á ┬á ┬á  M5 := 0;
┬á ┬á ┬á ┬á  Check5 := True;
┬á ┬á ┬á ┬á  ELSE
┬á ┬á ┬á ┬á  M5 := 5*I;
┬á ┬á ┬á ┬á  ContM5 := ContM5 + 1;
      END IF;

   
   
┬á ┬á ┬á --- Hacemos el cálculo
   

      IF M3 = M5 and Check3 = False and Check5 = False THEN
┬á ┬á ┬á ┬á  SumaMult := SumaMult + M3;
┬á ┬á ┬á ┬á  ContMC := ContMC + 1;
      ELSE
┬á ┬á ┬á ┬á  SumaMult := SumaMult + M3 + M5;
      END IF;
     
┬á ┬á ┬á --- I es la variable que indica el múltiplo
      I := I + 1;

┬á  END LOOP;

┬á  --- Solución

┬á  Put("La suma de los múltiplos de 3 y los múltiplos de 5 es: "); Put(SumaMult);
┬á  New_Line;
┬á  Put("El número de múltiplos de 3 menores que 1000 es: "); Put(ContM3);
┬á  New_Line;
┬á  Put("El número de múltiplos de 5 menores que 1000 es: "); Put(ContM5);
┬á  New_Line;
┬á  Put("El número de múltiplos comunes de 3 y 5 es: "); Put(ContMC);

┬á  END Suma_M3_M5_Hasta_1000;




EDITO 2: Me pasa lo mismo que a Ifar. Me da mal la suma y no me cuenta los múltiplos iguales. Seguiremos informando.
(Ultima edición: 24-10-2012 22:29 por Nikayuri.)


Mensajes en este tema
Re:Esto también es otro arte...el ARTE de programar - por Juntacadaveres - 25-10-2012 15:34
Re:Esto también es otro arte...el ARTE de programar - por Corona Radiata - 27-10-2012 03:00
Re:Esto también es otro arte...el ARTE de programar - por Juntacadaveres - 24-10-2012 16:47
Re:Esto también es otro arte...el ARTE de programar - por Nikayuri - 24-10-2012 22:24

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)