Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Charderak

#1
Buenas a todos,

me han robado un Toshiba Satellite L850-138 y al poner la denuncia en comisaría me han dicho que sería de ayuda que les dé el número de serie. El problema es que, evidentemente, no tengo el portátil para mirarlo. Ahora mismo estoy en Alemania, pero en España tengo la caja del portátil con el manual y todo eso, ¿debería estar ahí o sólo aparece en el portátil?

¡Muchas gracias!
#2
Vale, más o menos creo que me he enterado y por lo menos ya tengo idea de por dónde puede andar el fallo, así que creo que es cuestión de ponerme a probar con las ideas que me habéis dado y acabar dando con la tecla

Voy a ello y luego os cuento, muchas gracias! :)
#3
Agradezco la ayuda, pero intentad ser un poco más concretos por favor, ya sé que hay un error en el algoritmo, por eso precisamente he creado el post.

En cuanto al depurador, no sé utilizarlo

Debci por qué dices que s y t nunca llegan a ser iguales? Si lo que hago es sumar los divisores de ambos números por separado y en caso de que la suma sea igual que me diga lo de que son "amigos"
#4
Cita de: cbug en 27 Junio 2010, 04:59 AM
En realidad ahora que lo miro con detenimiento:

DO WHILE (n<m)

En el rango del bucle, nunca modificas esos valores, no será más precisamente un

if(n<m)

:huh:

Llevas razón, lo he corregido añadiendo un n=n+1 antes de cerrar el ciclo DO WHILE. Ahora sí "termina" de ejecutarse, pero no me aparece nada, sólo me pide los números y ya me sale lo de Press any key to continue, y estoy poniendo un intervalo donde sé seguro que hay al menos dos números "amigos", así que hay algo que está mal :(
#5
No es eso, en Fortran no hace falta inicializar las variables. Lo de stdin la verdad es que no entiendo a qué te refieres, pero el programa arrancar arranca y me pide los valores de n y m, pero al introducirlos ya no hace nada más
#6
Listo, muchas gracias y a ver si así se anima alguien a echarme una mano :P
#7
El lenguaje es Fortran, en cuanto a lo del "geshi" lo siento, pero no sé lo que es, lo he agrupado en colorines, en azul marino el ciclo DO WHILE principal, y en verde y negro los ciclos DO internos dentro del ciclo DO WHILE

Las instrucciones las he puesto en rojo
#8
Hola, tengo un problemilla haciendo este programa, tengo ya el código y no me da problemas al compilar, pero a la hora de ejecutarlo no hace nada, y no sé dónde puede estar el fallo. Os dejo el enunciado de la práctica para que entendáis qué estoy haciendo y el código, muchas gracias!

Enunciado:

Dos números a y b se dicen que son amigos si la suma de los divisores de a (salvo él mismo)
coincide con b y viceversa.
El menor par de números amigos es el formado por el 220 y el 284, ya que:
Suma de divisores de 220 (excepto 220): 1+2+4+5+10+11+20+22+44+55+110=284.
Suma de divisores de 284 (excepto 284): 1+2+4+71+142=220.
Otros números amigos son 2620 y 2924, 6232 y 6368, 17296 y 18416, 9363584 y 9437056.
Escribe un programa que tenga como entrada dos números naturales n y m y muestre en
pantalla todas las parejas de números naturales que existan en el intervalo [n, m].

Código:

   
Código (fortran) [Seleccionar]
PROGRAM PRACTICA4
INTEGER a, b, i, j, n, m, s, t
PRINT *, 'Introduzca el número n (el menor)'
READ *, n
PRINT *, 'Introduzca el número m (el mayor)'
READ *, m
DO WHILE (n<m)
DO i=1, n/2
a=MOD(n,i)
IF (a==0) THEN
s=s+i
END IF
END DO
DO j=1, m/2
b=MOD(m,j)
IF (b==0) THEN
t=t+j
END IF
END DO
IF (s==t) THEN
PRINT *, n, ' y ', m, ' son amigos'
END IF
                n=n+1
END DO
END

#9
Era lo que decía biribau, las variables hay que declararlas al principio, antes de los OPEN. Muchas gracias!
#10
Programación General / Duda sobre Fortran
4 Mayo 2010, 19:29 PM
Buenas, estoy empezando a programar Fortran en la facultad y tengo problemas con este programa. El programa es el típico programita chorra para calcular los divisores de un número y decirte cuáles son. El código fuente que he hecho es el siguiente:

Código (pascal) [Seleccionar]
PROGRAM PRACTICA3
OPEN (UNIT=1, FILE='Divisores.txt')
OPEN (UNIT=2, FILE='Divisores Pares.txt')
OPEN (UNIT=3, FILE='Divisores Impares.txt')
100 FORMAT (/, I10)
INTEGER n, i, j, k, d, a, b
PRINT *, 'Introduzca un número'
READ *, n
DO d=1, n/2
a=MOD(n, d)
IF (a==0) THEN
WRITE (1, 100) d
i=i+1
END IF
b=MOD(d,2)
IF (b==0) THEN
WRITE (2, 100) d
j=j+1
ELSE
WRITE (3, 100) d
k=k+1
END IF
END DO
CLOSE (1)
CLOSE (2)
CLOSE (3)
PRINT *, 'Hay ', i, ' divisores ', j, ' pares ', k, ' impares'
STOP
END


El error que me sale es el siguiente: error FOR2588: Type declaration statement cannot occur here; me he metido en el Help pero no entiendo exactamente a qué se refiere, sólo que está dentro del DO.

A ver si alguien me puede ayudar, que seguro que luego es una chorrada de fallo. Muchas gracias!