Práctica 3 à
Ejercicio 4.2. Usando los distintos bucle, calcular:
ü
a) El producto de los cuadrados de los diez primeros múltiplos positivos de n disitintos de cero, siendo n el último dígito de tu DNI más 3.
n
=
6 + 3;
Con el bucle DO:
resultadoDO = 1;
Do@resultadoDO ∗= Hn ∗ iL ^ 2, 8i, 1, 10, 1
Print@resultadoDOD
160094441913006202196160061440000
Con el bucle FOR:
resultadoFOR = 1;
For@i
=
1, i
≤
10, i ++, resultadoFOR ∗= Hn ∗ iL ^ 2D
Print@resultadoFOR D
160094441913006202196160061440000
Con el bucle WHILE:
resultadoWHILE = 1;
i
=
1;
2
Practica3.nb
While@i
≤
10, resultadoWHILE
∗=
Hn ∗ iL ^2; i ++D
Print@resultadoWHILED
160094441913006202196160061440000
ü
b)¿Cuántos números impares, comenzado en 1, hay que sumar para que el resultado sea lo mas grande posible y no supere a 2000?¿Cuál es el valor de dicha suma? Con el bucle DO:
Clear@"Global`∗"D
resultadoDO = 0; Do@resultadoDO += H2 j − 1L; If@resultadoDO > 2000, Print@"El numero de impares que se han sumado es: ", j − 1D; Print @"El resultado de la suma es: ", resultadoDO −= 2 j − 1D; Break@DD, 8j, 1, 2000, 1
El numero de impares que se han sumado es: 44
El resultado de la suma es: 1936
Con un bucle FOR:
Clear@"Global`∗"D
resultadoFOR = 0;
j n
= =
1; 0;
3
Practica3.nb
For@n = 0, resultadoFOR < 2000, n ++, resultadoFOR += j; j += 2; If@resultadoFOR > 2000, resultadoFOR −= j − 2; Break @DDD Print@"El numero de impares que se han sumado es: ", n D Print@"El resultado de la suma es: ", resultadoFOR D
El numero de impares que se han sumado es: 44
El resultado de la suma es: 1936
Con un bucle WHILE:
Clear@"Global`∗"D
resultadoWHILE = 0; j
=
1;
n
=
0;
While@resultadoWHILE
<
2000, resultadoWHILE
+=
j; j
+=
2; n ++D
If@resultadoWHILE > 2000, Print@"El numero de impares que se han sumado es: ", n
−
Print@"El resultado de la suma es: ", resultadoWHILE −= j − 2DD
El numero de impares que se han sumado es: 44
El resultado de la suma es: 1936
à
Ejercicio 4.3. Siguiendo la notación del ejercicio 3.3 y usar en cada apartado un tipo de bucle distinto. Fecha de nacimiento: 30/08/1988
ü
aL Construir un bucle quenos de todos los múltiplos de D1 D2 comprendidos entre el año de tu nacimiento y el año de tu nacimiento multiplicado por M1 M2 + 6
Clear@"Global`∗"D
nacIni
=
1988;
1D;
4
Practica3.nb
nacFin
For@n
=
=
1988 ∗ H8 + 6L;
1, H30 ∗ nL
If@nacIni
<
≤
nacFin, n ++,
H30 ∗ nL
<
nacFin, Print @30 ∗ nDDD
2010
2040
2070
........................ 27750
27780
27810
ü
bL Usar un bucle para crear unalista con los 25 primeros múltiplosde D1 D2 + M1 M2 .
Clear@"Global`∗"D
Do@Print@H30 + 8L ∗ iD, 8i, 1, 25, 1
38
76
114
152
190
228
5
Practica3.nb
266
304
342
380
418
456
494
532
570
608
646
684
722
760
798
836
874
912
950
6
ü
Practica3.nb
cL Calcular el producto de losmultiplosde D1 D2 + M1 M2 compredidosentre A 1 A 2 A 3 A 4 y A 1 A 2 A 3 A 4 + 100
Clear@"Global`∗"D
resultado = 1; diames n
=
=
30 + 8;
1;
While@Hdiames ∗ nL If@1988
<
<=
H1988 + 100L,
Hdiames ∗ nL
<
H1988
+
100L,
resultado ∗= Hdiames ∗ nLD; n ++D
Print@resultadoD
4132728
ü
d) Calcular la suma de los múltiplos de D1 D2 + M1 M2 + 10 compredidos entre A1 A2 A3 A4 y ( A1 A2 A 3 A 4 )2
Clear @"Global' ∗"D
resultado = 0;
diames
=
30 + 8 + 10;
For@n = 1, Hdiames ∗ nL ≤ H1988^2L, n ++, If@1988 < Hdiames ∗ nL < H1988^2L, resultado
Print@resultadoD
162703140240
+=
Hdiames ∗ nLDD