[Hilo Oficial] Esto también es otro arte...el ARTE de programar
#41
Cita
@Babul, puede. Yo estuve estudiando Python por mi cuenta y riesgo mientras estaba en la ESO, y es muuuuuuuuuuuy sencillo.

Lo de interpretado... Es un lenguaje normal, lo que pasa es que no "compila" persé. Traduce cada línea de código a medida que la lee y la ejecuta, no como Java y estos que lo traducen de golpe y luego ejecutan.



Sobre el programa

Lo he implementado directamente en Ada, pero no me da lo que "se supone" que debe dar, aunque no veo en qué estoy fallando.

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 := 3*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;




Me da 166833 (la suma)



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:22

Salto de foro:


Usuarios navegando en este tema: 3 invitado(s)