Está en la página 1de 1

C:\Users\tonig\Desktop\fortran\0-FisComp\0-78-agv\0-78-agv-b.

f
Página 1 de 1 02/11/18 21:58:55
1 ************************************************************************
2 * Antonio Gonzalez Vicente (48727726-H) *
3 * Ejercicio 0-78-b *
4 * 0-78-agv-b.f *
5 * Este ejercicio sirve para comprobar la conjetura de Collatz,guardando*
6 * en un fichero los datos obtenidos introduciendo inicialmente diferen-*
7 * numeros. *
8 * Este es el apartado a del ejercicio, comprobar la conjetura. Veremos *
9 * pantalla que la secuencia siempre acaba en 4,2,1. *
10 ************************************************************************
11 integer k , n0, kmax, j, jmax, j1
12 kmax = 1000
13 n0 = 726
14 jmax = n0*10 !como dice el enunciado, n0 irá desde DNI hasta 10DNI
15
16 open(10,file='0-78-agv-A.dat') !guardamos los datos en este fichero
17 do j= n0,jmax !este do lo que hara sera varias los numeros de entrada
18 k = 0 !definimos un contador, para ver el numero de iteracciones
19 j1 = j !necesarias (k). definimos la variable j1, porque daba problemas
20 do while (j1 .ne. 1) !si poniamos la j. El do while significa que
21 if (mod(j1,2) .eq. 1) then !mientras el numero de entrada sea
22 j1 = j1*3 + 1 !distinto de 1 se siga haciendo las ordenes
23 k = k + 1 !logicas dentro del do while. Los if's indican las
24 else !operaciones a seguir en el caso de que el numero
25 j1 = j1/2 !de entrada sea par o impar. Y el contador sube en
26 k = k + 1 !una unidad para cada iteraccion.
27 end if
28 if (j1 .eq. 1) then !si el numero de entrada fuera 1 entonces
29 write(10,*) j, k !escribimos en el fichero la iteraccion
30 write(*,*) j, k !y el numero inicial de entrada.
31 end if !tambien escribimos estos datos en pantalla.
32 end do
33 end do
34 close(10)
35 write(*,*) 'Programa finalizado'
36 stop
37 end
38
39
40
41

- 1 -

También podría gustarte