[FORTRAN-URGENTE] Consigli su dei programmi!

Ninphyl1
Salve ragazzi, volevo chiedervi dei consigli... Il mio professore di informatica mi ha dato delle tracce, io ho cercato di svolgerle, ma siccome mercoledì 9 c.m. dovrei andare a proporgli il mio lavoro, vorrei che mi deste un consiglio e mi aiutaste a vedere gli errori... Vi ringrazio in anticipo! Di seguito vi scrivo le tracce e quello che ho fatto io...

1) Letti due interi n e k, stampare il risultato della sommatoria k+ k^2 + k^3 + ... + k^n.

PROGRAM
INCIPIT NONE
INTEGER :: N,K,I,SUM

READ (*,*) N
READ (*,*) k
SUM = K

DO I=2,N
SUM = SUM + K^N
END DO

WRITE (*,*) SUM

STOP
END PROGRAM


2)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
IMPLICIT NONE
INTEGER, DIMENSION (100) :: A,B
INTEGER :: I,J,K,N

READ (*,*) N

DO I=1,N
J=1
READ (*,*) A(I)

IF (A(I).NE.0) THEN
B(J)=A(I)
J=J+1

ELSE
I=I+1

END IF
END DO

READ (*,*) K

DO J=1,K
WRITE (*,*) B(J)
END DO

STOP
END PROGRAM


3) Letta una matrice quadrata, restituire il numero di colonne della matrice aventi un numero di zeri minori di 5.
(su questo sono proprio dubbiosa)

PROGRAM
IMPLICIT NONE
INTEGER,DIMENSION(100,100) :: A
INTEGER :: I,J,N,SUM
BOOL :: PROP

SUM = 0
READ (*,*) N
PROP = TRUE
DO I=1,N
DO J=1,N
READ (*,*) A(I,J)
END DO
END DO

DO J=1,N
DO WHILE (PROP)
SUM = SUM + 1
END DO
END DO

END PROGRAM

(Per PROP intendo "nella colonna J ci sono meno di 5 zeri" )


4) Scrivere una funzione che verifichi, data una matrice quadrata d'ingresso, che la somma degli elementi su ogni riga sia costante.

INTEGER FUNCTION COSTANT (A,N,I,SUM,PROP)
IMPLICIT NONE
INTEGER, INTENT (IN) :: A, N, I, SUM
INTEGER INTENT (OUT) :: PROP

PROP = TRUE
I=1
DO WHILE ((PROP).AND.(I.LE.N-1))
PROP = (SUM(I) = SUM(I+1))
I = I+1
END DO

RETURN PROP

END FUNCTION

Vi ringrazio!

Risposte
apatriarca
Hai inserito una virgola di troppo dopo x nel secondo write
write(*,*) "l'elemento",j,"è il più grande e vale=",x,

e nella riga successiva devi eliminare and
and j=i


A questo punto gfortran mi compila il programma e funziona correttamente. Non esiste una tecnica particolare per risolvere un esercizio di programmazione. È un po' come chiedere come si risolvono gli esercizi di geometria o fisica o .. Si tratta di un'abilità che si apprende risolvendo esercizi sempre più complessi. Un primo metodo potrebbe essere quello di scomporre l'esercizio in parti e risolvere ogni parte separatamente (dividendo il problema in problemi ancora più piccoli se necessario).

Prova a risolvere il seguente problema, cercando di spiegare il tuo modo di risolvere un problema di questo tipo.

Scrivere un programma in fortran che, prese due matrici $A$ e $B$ quadrate di ordine $3$, calcoli il determinante di $A B A^{-1}$.

Maryel1
ho sistemato l'altro programma e gira!!! :D :D vediamo questo come va. Grazie davvero!

Program det
integer A(3,3),i,j,p,prod,det

write (*,*) "inserisci il numero di righe e colonne della mat"
read(*,*) 3

do 10 i=1,3
do 20 j=1,3
write(*,*) "inserisci gli elementi(",i,"),(",j,")di A"
read(*,*) A(i,j)
20 continue
10 continue

!c prodotto diag principale
p=1
do 30 i=1,3
do 40 j=1,3
if (i.EQ.j) then
p=p*A(i,j)
end if
40 continue
30 continue

!c prodotto diag secondaria

prod=1
do 50 i=1,3
prod=prod* A(i,3-i+1)
50 continue

!c la differenza tra le 2 matrici Š il determinante
write(*,*) "il determinante Š=",det=p-prod
end

Maryel1
ho sbagliato a fare il determinante! :-( ora provo a sistemare

Maryel1
non so come far variare gli indici.
cioè


1 2 3
4 5 6
7 8 9

=1*5*9+ 2*6*7+ 3*4*8- 7*5*3- 8*6*1- 9*4*2 = 18

a11 a12 a13
a21 a22 a23
a31 a32 a33

finchè si tratta delle digonali principali ci sono o cmq degli elementi al di sopra o al di sotto di queste..ma come si fa a scegliere degli elementi generici nella matrice e farne delle operazioni?! :-(

Umby2
"Maryel":
Ciao,
e grazie per la risposta :D purtroppo io sono effettivamente alle primissime armi con fortran quindi mi baso su quel POCO che ho capito guardando altri esercizi e cerco di capirne la logica..allora per rispondere alle tue domande:



guarda che il linguaggio di programmazione c'entra poco. Si tratta di ragionare, poi il programma puoi scriverlo con il linguaggio che vuoi, ma cambia poco.

"Maryel":


- non sapendo chiedere al programma di considerare solo la parte al di sotto della diagonale, ho considerato l'intera matrice (perchè così sapevo farlo)



Strano, perchè poi nell'if sei riuscito a determinarlo. basta che j (l'indice della colonna, arrivi a i-1). Se ad esempio stai esaminando la 5^ riga, devi fermarti a 4.

"Maryel":


- l'indice k lo uso per non far sovrapporre gli elementi nella stessa casella. Praticamente chiedo al programma (o almeno credo si faccia così) di partire dalla prima posizione nell'inserimento dei numeri e poi passare alle posizioni successive.



Si certo.... è chiaro cosa faccia k, ed è giusto che tu abbia usato una variabile a questo scopo, ma ti ho fatto notare che DOPO il posizionamento del vettore addizioni 1 a k. Pertanto k avra' una unita' in piu del dovuto ( ... e considerato che la usavi successivamente ...)

"Maryel":


- Prod lo utilizzo per fare il prodotto..


E' chiaro che prod fa il prodotto, ma cosa serve fare il prodotto se poi non usi questa variabile ? A nulla.

apatriarca
Per il determinante puoi scrivere esplicitamente tutti gli indici, non è necessario usare per forza un ciclo. Ma l'esercizio non fa quello che ti ho chiesto. Rileggi bene l'esercizio e dividi il problema in sotto-problemi, parti da risolvere separatamente. Se noti bene la richiesta, devi leggere DUE matrici e poi stampare quel determinante. Sembra che tu sappia più o meno fare delle cose ma che non abbia idea di come mettere insieme i pezzi. Inoltre
write (*,*) "inserisci il numero di righe e colonne della mat" 
read(*,*) 3

non ha molto senso. Sai già che la dimensione delle matrici è 3x3, per cui che bisogno hai di chiederlo all'utente?

Maryel1
:D essì giustamente se devo fare una matrice 3*3 non ho bisogno di chiedere :axe:
APATRIARCA HAI PERFETTAMENTE RAGIONE..IO HO DEGLI STRUMENTI MA NON SO USARLI NEMMENO UN PO'.. :-k

CMQ.. :smt017 :smt017 schematizzando in sotto-problemi l'esercizio che mi hai scritto io farei (dopo aver caricato la matrice) prima le diverse moltiplicazioni cioè:

(inizializzo prod=0)

(a11*a22*a33)=p
(a11*a23*a32)=p1
(a13*a22*a31)=p2
(a12*a21*a33)=p3
(a12*a23*a31)=p4
(a13*a21*a32)=p5

e rapidamente calcolerei il determinante senza aprire alcun ciclo
perchè farei
det=det+p-p1-p2-p3-p4+p5+p6

MA COME SI FA LA PARTE CENTRALE?! CON I CICLI DO ED I CICLI IF!? AD ESEMPIO "SE I=1 E J=3 E SE I=2 E J=1 E SE I=3 E J=2 ALLORA MOLTIPLICALI"?!?!?COSì!??!?!MI SEMBRA UN Pò LUNGHETTO...E CONTORTO COME RAGIONAMENTO... :roll:

CMQ GRAZIE DAVVERO PER LA PAZIENZA IO CI STO PERDENDO DAVVERO LA SALUTE CON QUESTE COSE...MA SENZA TROPPI RISULTATI!!!

apatriarca
Prima di tutto, come ti ho fatto notare in precedenza, devi caricare DUE matrici. È vero che quella matrice effettivamente non serve, $det(ABA^{-1}) = det(B)$ se $A$ è non singolare, ma se ti viene chiesto di fare una cosa in un esercizio, tu la devi fare anche se non ha senso. Per cui per prima cosa scrivi il codice per caricare queste due matrici. Poi pensi effettivamente a come si calcola il determinante. Quando ti dico di scomporre il testo dell'esercizio in parti intendo dire che quando ti viene chiesto
Scrivere un programma in fortran che, prese due matrici $A$ e $B$ quadrate di ordine , calcoli il determinante di $ABA^{-1}$.

scrivi una lista di sottoproblemi, cose che devi implementare nell'esercizio, come la seguente:
1. Caricare due matrici $A$ e $B$.
2. Calcolare il determinante di $ABA^{-1}$.
A questo punto prendi il primo punto e lo puoi a sua volta scomporre in
1a. Caricare la matrice $A$.
2a. Caricare la matrice $B$.
Queste cose le sai fare e quindi scrivi il codice corrispondente in fortran. La prima versione sarà quindi ad esempio (nota che la matrice andrebbe reale..):
program det
real A(3,3), B(3,3)
integer i, j

do 10 i=1,3 
do 20 j=1,3 
write(*,*) "inserisci gli elementi(",i,"),(",j,")di A" 
read(*,*) A(i,j) 
20 continue 
10 continue

do 30 i=1,3 
do 40 j=1,3 
write(*,*) "inserisci gli elementi(",i,"),(",j,")di B" 
read(*,*) B(i,j)
40 continue 
30 continue

end

A questo punto hai un programma già in parte corretto (o almeno dovrebbe perché non ho provato a compilarlo). È buona norma testare ad ogni passaggio il programma ottenuto ma non credo sia a questo punto necessario.

A questo punto devi calcolare il determinante di $ABA^{-1}$ e stampare il risultato. Il determinante sarà $det(B)$ se $A$ è non singolare e non esisterà (la matrice $ABA^{-1}$ non esiste) nel caso in cui $A$ non sia invertibile. Supponendo di poter dare per scontato che $A$ sia invertibile, possiamo provare a scrivere il codice per calcolare il determinante di $B$ e stampare il risultato. Per calcolarlo non hai bisogno di scrivere un ciclo, ma puoi semplicemente scrivere:
detB = B(1,1) * B(2,2) * B(3,3) + B(2,1) * B(3,2) * B(1, 3) + B(3,1) * B(1,2) * B(2,3)
detB = detB - B(1,1) * B(2,3) * B(3,2) - B(1,2) * B(2,1) * B(3,3) - B(1,3) * B(2,2) * B(3,1)

Ricontrolla gli indici che li ho scritti velocemente ma spero che l'idea sia chiara. Puoi scrivere una formula usando direttamente gli indici, non devi per forza usare i cicli (anche se è possibile farlo).

Prova a completare il codice inserendo il calcolo del determinante di $B$ e la sua visualizzazione e poi pensa a come faresti per determinare se $A$ è invertibile e a stampare in quel caso un messaggio di errore.

Maryel1
scusa ma avevo sbagliato a leggere la traccia..infatti non capivo a che servissero le 2 matrici..scusa.. Allora.. come faccio ad andare a capo quando sto facendo 1 operazione?!Cmq mi dà sempre lo stesso errore dopo il caricamento della matrice..dice che i cicli do sono errati...

N.B. dovessi fare la moltiplicazione dovrei impostare una terza matrice vuota (9,9) e fare prima
C(9,9)=C(9,9)+A(3,3)*B(3,3)
A(i,j)*B(j,n)

sarebbe corretto così!?..senza aprire cicli perchè non mi servono gli indici?!

VORREI ANCORA RINGRAZIARTI PER LA PAZIENZA CHE STAI MOSTRANDO ^_^ GRAZIE

!c Scrivere un programma in fortran che, prese due matrici A e B
!c quadrate di ordine, calcoli il determinante di ABA-1

Program det
real A(3,3),B(3,3)
integer i,j,m,n,detA,detB


do 10 i=1,3
do 20 j=1,3
write(*,*) "inserisci gli elementi(",i,"),(",j,")di A"
read(*,*) A(i,j)
20 continue
10 continue

do 30 m=1,3
do 40 n=1,3
write(*,*) "inserisci gli elementi(",m,"),(",n,")di B"
read(*,*) B(m,n)
40 continue
30 continue

det A=0
det A= A(1,1)*A(2,2)*A(3,3)+A (1,2)*A (2,3)*A (3,1)
det A=detA +A (1,3)*A (2,1)*A (3,2)
detA= detA -(A 1,1)*A (2,3)*A (3,2)- A (1,3)*A (2,2)*A (3,1)
det A=detA-A (1,2)*A (2,1)*A (3,3)

detB=0
if (detA.NE.0)then
detB = B(1,1) * B(2,2) * B(3,3) + B(2,1) * B(3,2) * B(1, 3)
+ B(3,1) * B(1,2) * B(2,3)
detB = detB - B(1,1) * B(2,3) * B(3,2)
- B(1,2) * B(2,1) * B(3,3) - B(1,3) * B(2,2) * B(3,1)

write(*,*) "il determinante Š=",detB

else

if (detA.EQ.0) then
write(*,*)"la matrice Š singolare perchŠ non posso"
write (*,*) " fare l'inverso del numero 0"

end if


pause

end

Maryel1
questo programma ora funziona ma non mi restituisce i due vettori bensì solo il prodotto di questi.

!c esame giugno2010
!c leggere e stampare una matrice di dimensioni (n,n).
!c copiare in un primo vettore gli elementi AL DI SOPRA della diagonale
!c principale ed in un secondo gli elementi AL DI SOTTO della stessa.
!c Calcolare il prodotto dei 2 vettori

Program matvet
Real A(20,20), v1(400), v2(400), v3(400)
integer i,n,j,k

!c carico la matrice. inizio e parte esecutiva.
write(*,*) "inserisci il numero di righe e colonne della matrice"
read (*,*) n

do i=1,n
do j = 1,n

write (*,*) "inserisci gli elementi(",i,")(",j,")della matrice"
read (*,*) A(i,j)

end do
end do

k=1
do i=1, n-1
do j= i+1, n
v1(k)=A(i,j)

end do
end do

k=1
do i=1,n
do j=1,j-1

v2(k)=A(i,j)

end do
end do


do i=1,k
v3(i)=v1(i) * v2(i)
end do

do i=1,k

write(*,*) "il vettore dei prodotti Š :" ,v3(i)
end do

pause
end

Maryel1
continuando a "lavorare" su questo esercizio credo questo possa essere il modo per far si che il programma mi restituisca i 2 vettori ed il prodotto...ma...a quanto pare sto continuando a sbagliare!!!

k=1
do i=1, n-1
do j= i+1, n
v1(k)=A(i,j)
k=k+1

end do
end do

k=1
do i=1,n
do j=1,j-1

v2(k)=A(i,j)
k=k+1

end do
end do

v3(k)=1
v3(k)= v1(k) * v2(k)

write(*,*) "il primo vettore Š=",v1(k)

write(*,*) "il secondo vettore Š=",v2(k)

write(*,*) "il vettore dei prodotti Š :" ,v3(k)

Umby2
"Maryel":


       k=1
       do  i=1,n
        do  j=1,j-1

        v2(k)=A(i,j)

        end do
       end do





ma nel secondo ciclo, j deve partire da 1, ed arrivare a n-1 ( ... che significa (j-1) ...)

Maryel1
sisi scusa era un errore..
cmq mi dà il valore del prodotto =0
e mi restituisce un numero invece dei vettori v1 e v2

apatriarca
"Maryel":

N.B. dovessi fare la moltiplicazione dovrei impostare una terza matrice vuota (9,9) e fare prima
C(9,9) = C(9,9)+A(3,3)*B(3,3)
A(i,j)*B(j,n)

sarebbe corretto così!?..senza aprire cicli perchè non mi servono gli indici?!

Questo non è il modo in cui è definita la moltiplicazione tra matrici. Rileggiti la definizione se non ti è chiara.

Veniamo al codice.
det A=0 
det A= A(1,1)*A(2,2)*A(3,3)+A (1,2)*A (2,3)*A (3,1) 
det A=detA +A (1,3)*A (2,1)*A (3,2) 
detA= detA -(A 1,1)*A (2,3)*A (3,2)- A (1,3)*A (2,2)*A (3,1) 
det A=detA-A (1,2)*A (2,1)*A (3,3)

Non c'è bisogno di inizializzare la variabile detA a zero prima di inizializzarla nuovamente con un altro valore. Hai scritto poi più volte det A al posto di detA. Hai infine scritto (A 1,1) al posto di A(1,1). Sono comunque errori minimi ma che il compilatore dovrebbe mostrarti. La versione corretta dovrebbe essere
detA = A(1,1)*A(2,2)*A(3,3) + A(1,2)*A(2,3)*A(3,1) 
detA = detA + A(1,3)*A(2,1)*A(3,2) 
detA = detA - A(1,1)*A(2,3)*A(3,2) - A(1,3)*A(2,2)*A(3,1) 
detA = detA - A(1,2)*A (2,1)*A (3,3) 

Anche per detB puoi spezzare le righe in quel modo se ti danno fastidio così lunghe. Scrivi B al posto di A nel codice precedente e hai il determinante di B.

else 

if (detA.EQ.0) then 
write(*,*)"la matrice Š singolare perchŠ non posso" 
write (*,*) " fare l'inverso del numero 0" 

end if

È ovvio a questo punto che detA è uguale a zero per cui non c'è bisogno di inserire un altro if (anche perché non l'hai mai chiuso). Per il messaggio era sufficiente dire che la matrice è singolare. Il resto non è che abbia molto senso.

Il codice a questo punto funziona correttamente sul mio computer. Per cui direi che l'esercizio si può considerare più o meno completato. Qualora ci fossero ancora problemi di compilazione impara a inserirli nei tuoi post in modo da capire che cosa non piace al tuo compilatore. Prova ad inserire anche il codice nei tag code in modo corretto.

apatriarca
Il primo passo da fare quando si cerca di risolvere un problema dovrebbe sempre essere:

[size=150]LEGGERE E COMPRENDERE BENE LA TRACCIA DELL'ESERCIZIO.[/size]

La davo per scontata ma a quanto pare non lo fai. Se leggi infatti la prima parte dell'esercizio che ti è stato dato dal tuo professore:

!c leggere e stampare una matrice di dimensioni (n,n).


Noterai che richiede di LEGGERE e STAMPARE una matrice di dimensione (n,n). Il tuo codice fa solo la lettura come ti avevo già fatto notare in precedenza. Il tuo codice dovrebbe contenere un primo ciclo per la lettura della matrice e un secondo ciclo per la stampa della matrice. Per la stampa puoi usare un ciclo come il seguente:
do i=1,n
    write(*,*) (A(i,j), j=1,n )
end do


Nel seguente codice
 k=1
       do  i=1,n
        do  j=1,j-1

        v2(k)=A(i,j)

        end do
       end do

dovrebbe essere j=1,i-1. Non j e neanche n. Stai infatti prendendo gli elementi al di sotto della diagonale principale. Dovresti tra l'altro scrivere i=2,n in modo che il ciclo interno funzioni correttamente. Sia in questo che nel ciclo precedente lasci infine invariato k, che avrà quindi sempre valore 1. Il metodo migliore è forse quello di incrementare k prima di inserire il valore nell'array e quindi inizializzare k a 0. Cioè:
k = 0
do  i=2,n
    do j=1,i-1
        k = k + 1
        v2(k) = A(i,j)
    end do
end do

L'altro ciclo va riscritto in modo simile.

Per quanto riguarda infine il prodotto.. Ma non era un prodotto scalare? Continui invece a farlo componente per componente... Non che sia necessariamente sbagliato, ma continua a non essermi del tutto chiara la richiesta dell'esercizio.

Maryel1
Sul mio pc continua a non girare. Ma ho capito il concetto.
Per quanto riguarda invece il prodotto tra matrici dovendo fare riga per colonna ho messo alla prima matrice la colonna=j e la riga della seconda=j (così ho sempre fatto negli esercizi...non so se è sbagliato!)

"Qualora ci fossero ancora problemi di compilazione impara a inserirli nei tuoi post in modo da capire che cosa non piace al tuo compilatore. Prova ad inserire anche il codice nei tag code in modo corretto."

NON SO COME SI FACCIA!?!

..Questo è l'esercizio svolto..anche se purtroppo non parte cmq!
..li sto rifacendo tutti ma effettivamente sono pochi quelli funzionanti!
..Grazie ancora..

Program det
real A(3,3),B(3,3)
integer i,j,m,n,detA,detB


do i=1,3
do j=1,3
write(*,*) "inserisci gli elementi(",i,"),(",j,")di A"
read(*,*) A(i,j)
end do
end do

do m=1,3
do n=1,3
write(*,*) "inserisci gli elementi(",m,"),(",n,")di B"
read(*,*) B(m,n)
end do
end do

detA = A(1,1)*A(2,2)*A(3,3) + A(1,2)*A(2,3)*A(3,1)
detA = detA + A(1,3)*A(2,1)*A(3,2)
detA = detA - A(1,1)*A(2,3)*A(3,2) - A(1,3)*A(2,2)*A(3,1)
detA = detA - A(1,2)*A (2,1)*A (3,3)

detB=0
if (detA.NE.0)then
detB = B(1,1)*B(2,2)*B(3,3) + B(1,2)*B(2,3)*B(3,1)
detB = detB + B(1,3)*B(2,1)*B(3,2)
detB = detB - B(1,1)*B(2,3)*B(3,2) - B(1,3)*B(2,2)*B(3,1)
detB = detB - B(1,2)*B (2,1)*B (3,3)
write(*,*) "il determinante Š=",detB

else

if (detA.EQ.0) then
write(*,*)"la matrice Š singolare"

end if

pause

end

apatriarca
Per inserire gli errori di compilazione devi semplicemente fare copia e incolla dal posto in cui ti vengono scritti. Per incollare il codice mantenendo la formattazione devi invece inserirlo tra i tag [ code ] e [/ code ] (senza spazi tra le parentesi quadre e la parola code).

if (detA.EQ.0) then

Ti avevo detto di eliminarlo che non serve ed è anzi sbagliato.

Maryel1
Purtroppo come ho detto in precedenza per me capire questi programmi è difficile. E' come se volessi insegnare ad un italiano lo swahili.
Quindi ad esempio leggendo STAMPA nella traccia non mi si è accesa nessuna lampadina...anzi...buio pesto!

allora ho iniziato a ragionare (usando le cose che avevo capito..magari anche a modo mio)
e..nello specifico, questa traccia:

leggere e stampare una matrice di dimensioni (n,n).
copiare in un primo vettore gli elementi AL DI SOPRA della diagonale
principale ed in un secondo gli elementi AL DI SOTTO della stessa.
Calcolare il prodotto dei 2 vettori

ho cercato di sintetizzarla così:

- dichiaro le variabili
- carico della matrice
- considero tutta la matrice e dico al programma che se i.LT.j allora quegli elementi riferiti a quegli indici andavano nel primo vettore V1=A(i,j)
- stampo il primo vettore

- considero di nuovo tutta la matrice e gli dico if i.GT.j allora v2(k)=A(i,j)
- stampo il secondo vettore

- inizializzo k=1 e moltiplico v=v+ v1*v2 tutti gli elementi moltiplicati poi mettili in sequenza nel terzo vettore --> k=k+1
- stampo anche il terzo vettore

NON IMMAGINI QUANTI CICLI DO HO APERTO E CHIUSO..a questo punto il prof mi guarda con aria perplessa e mi dice grossomodo tutto quanto mi avete detto voi in questi giorni..allora presupponendo la mia ignoranza verso questa materia..e forse inconsciamente l'astio che ho per questa..proprio non capisco!

intanto credevo che quanto scritto su fosse si, brutto da vedere considerati le altre modalità di scrittura che mi avete suggerito, ma funzionale..in fin dei conti ho chiesto al programma di controllare tutti gli elementi e, se gli indici corrispondevano a delle determinate indicazioni, inserirli in uno specifico vettore.
ho inoltre fatto e caricato un'immagine per sintetizzare lo svolgimento dell'esercizio..o quello che ho inteso volesse il prof..

Sto cercando di impegnarmi..per quanto non stia avendo ottimi risultati perchè sinceramente è la 4 volta che affronto quest'esame..e per me è davvero difficile..anche perchè se non lo supero non mi laureo ^_^

Cmq GRAZIE ancora per la pazienza dimostrata.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.