[FORTRAN] Chi mi controlla questi programmi?
A) Letti due interi n e k, stampare il risultato della somma k+k^2+...k^n
PROGRAM STAMP_K
IMPLICIT NONE
INTEGER :: I,N,POT(I),K,SUM
READ(*,*)N
READ(*,*)K
SUM=K
POT(1)=K
DO I=2,N
POT(I)=POT(I-1)*K
WRITE(*,*)POT(I)
END DO
DO I=2,N
SUM=SUM+POT(I)
END DO
WRITE(*,*)SUM
STOP
END PROGRAM
B)Letto un vettore di interi, cancellare tutti gli elementi nulli (esempio a=(1,5,0,7,5,0,8) -> a=(1,5,7,5,8))
PROGRAM CANC_0
IMPLICIT NONE
INTEGER,DIMENSION(100)::A
INTEGER::I,N
READ(*,*)N
DO I=1,N
READ(*,*)A(I)
END DO
DO I=1,N
IF (A(I).NE.0) THEN
WRITE(*,*)A(I)
END IF
END DO
STOP
END PROGRAM
C)Scrivere una funzione che, dato un vettore di interi in ingresso, restituisca se il numero di numeri primi presenti nel vettore è maggiore di 5.
INTEGER FUNCTION 5_PRIMI
IMPLICIT NONE
INTEGER,INTENT(IN),DIMENSION(100)::V
INTEGER,INTENT(IN)::I,N,SUM_PRIMI
BOOL,INTENT(IN)::PRIMO
BOOL,INTENT(OUT)::PROP
READ(*,*)N
SUM_PRIMI=0
DO I=1,N
READ(*,*)V(I)
IF(V(I).EQ.PRIMO)THEN
SUM_PRIMI=SUM_PRIMI+1
END IF
END DO
WRITE(*,*)SUM_PRIMI
PROP=TRUE
IF(SUM_PRIMI.GT.5)THEN
PROP=TRUE
ELSE
PROP=FALSE
END IF
WRITE(*,*)PROP
RETURN PROP
END FUNCTION
D) Letta una matrice quadrata, restituire il numero di colonne della matrice aventi un numero di zeri minori di 5.
PROGRAM 5_ZERI
IMPLICIT NONE
INTEGER,DIMENSION(100)::A
INTEGER::I,J,N,SUM
BOOL::PROP
SUM=0
READ(*,*)N
IF((N.GT.0).AND.(N.LE.100))THEN
DO I=1,N
DO J=1,N
READ(*,*)A(I,J)
END DO
END DO
END IF
DO J=1,N
IF (PROP.EQ.TRUE) THEN
SUM=SUM+1
END IF
END DO
STOP
END PROGRAM
E) Scrivere una funzione che verifichi, data una matrice quadrata in ingresso, che la somma degli elementi su ogni riga sia costante.
INTEGER FUNCTION COSTANTE
IMPLICIT NONE
INTEGER,INTENT(IN),DIMENSION(100,100)::A
INTEGER,INTENT(IN)::I,N,SUM
BOOL,INTENT(OUT)::PROP
DO I=1,N
SUM(I)=0
DO J=1,N
SUM(I)=SUM(I)+A(I,J)
END DO
WRITE(*,*)SUM(I)
END DO
PROP=TRUE
I=1
DO WHILE((PROP).AND.(I.LE.N-1))
PROP=(SUM(I).EQ.SUM(I+1))
I=I+1
END DO
WRITE(*,*)PROP
STOP
END PROGRAM
Vi chiedo di aiutarmi, domani devo presentare questi programmi al prof in laboratorio, e non vorrei far brutta figura, quindi se ci sono problemi vi prego di prestare la vostra attenzione e di segnalarmeli... Grazie!
PROGRAM STAMP_K
IMPLICIT NONE
INTEGER :: I,N,POT(I),K,SUM
READ(*,*)N
READ(*,*)K
SUM=K
POT(1)=K
DO I=2,N
POT(I)=POT(I-1)*K
WRITE(*,*)POT(I)
END DO
DO I=2,N
SUM=SUM+POT(I)
END DO
WRITE(*,*)SUM
STOP
END PROGRAM
B)Letto un vettore di interi, cancellare tutti gli elementi nulli (esempio a=(1,5,0,7,5,0,8) -> a=(1,5,7,5,8))
PROGRAM CANC_0
IMPLICIT NONE
INTEGER,DIMENSION(100)::A
INTEGER::I,N
READ(*,*)N
DO I=1,N
READ(*,*)A(I)
END DO
DO I=1,N
IF (A(I).NE.0) THEN
WRITE(*,*)A(I)
END IF
END DO
STOP
END PROGRAM
C)Scrivere una funzione che, dato un vettore di interi in ingresso, restituisca se il numero di numeri primi presenti nel vettore è maggiore di 5.
INTEGER FUNCTION 5_PRIMI
IMPLICIT NONE
INTEGER,INTENT(IN),DIMENSION(100)::V
INTEGER,INTENT(IN)::I,N,SUM_PRIMI
BOOL,INTENT(IN)::PRIMO
BOOL,INTENT(OUT)::PROP
READ(*,*)N
SUM_PRIMI=0
DO I=1,N
READ(*,*)V(I)
IF(V(I).EQ.PRIMO)THEN
SUM_PRIMI=SUM_PRIMI+1
END IF
END DO
WRITE(*,*)SUM_PRIMI
PROP=TRUE
IF(SUM_PRIMI.GT.5)THEN
PROP=TRUE
ELSE
PROP=FALSE
END IF
WRITE(*,*)PROP
RETURN PROP
END FUNCTION
D) Letta una matrice quadrata, restituire il numero di colonne della matrice aventi un numero di zeri minori di 5.
PROGRAM 5_ZERI
IMPLICIT NONE
INTEGER,DIMENSION(100)::A
INTEGER::I,J,N,SUM
BOOL::PROP
SUM=0
READ(*,*)N
IF((N.GT.0).AND.(N.LE.100))THEN
DO I=1,N
DO J=1,N
READ(*,*)A(I,J)
END DO
END DO
END IF
DO J=1,N
IF (PROP.EQ.TRUE) THEN
SUM=SUM+1
END IF
END DO
STOP
END PROGRAM
E) Scrivere una funzione che verifichi, data una matrice quadrata in ingresso, che la somma degli elementi su ogni riga sia costante.
INTEGER FUNCTION COSTANTE
IMPLICIT NONE
INTEGER,INTENT(IN),DIMENSION(100,100)::A
INTEGER,INTENT(IN)::I,N,SUM
BOOL,INTENT(OUT)::PROP
DO I=1,N
SUM(I)=0
DO J=1,N
SUM(I)=SUM(I)+A(I,J)
END DO
WRITE(*,*)SUM(I)
END DO
PROP=TRUE
I=1
DO WHILE((PROP).AND.(I.LE.N-1))
PROP=(SUM(I).EQ.SUM(I+1))
I=I+1
END DO
WRITE(*,*)PROP
STOP
END PROGRAM
Vi chiedo di aiutarmi, domani devo presentare questi programmi al prof in laboratorio, e non vorrei far brutta figura, quindi se ci sono problemi vi prego di prestare la vostra attenzione e di segnalarmeli... Grazie!
Risposte
Forse lo hai postato un po' troppo tardi. Non l'ho ancora letto, l'ho soltanto guardato: su due piedi l'unico suggerimento che mi verrebbe da darti è che la prima lettera del nome di un programma non può essere un numero. Ma è un'inezia

grazie..