Anteprima parziale del testo
Scarica Linguaggio di Programmazione, Informatica e più Appunti in PDF di Fondamenti di informatica solo su Docsity!
Il programma è una serie di specifiche istruzioni: ordine. * Viene compilato ed eseguito: ultimo passaggio sono le verifiche. FORTRAN È un linguaggio di programmazione ad alto livello * Traduce in istruzione le formule È composto da un programma principale e da tanti La compilazione consiste in una conversione e traduzione di * Il primo è comprensibile a noi, il secondo alla macchina. Il file eseguibile di default prende il nome di a.out, ma con Fo output] do il nome io. * Deve essere diverso dal programma.f Fortran è case insensitive, ovvero non distingue le maiuscole dalle minuscole. COME SI SVOLGE LA PROGRAMMAZIONE? Dalla 7° colonna alla 72° vengono scritte le@istruzioni. * 1°: (c), ovvero commento * 1-5: numero dell'istruzione (se esiste) * 6°: carattere di continuazione, ad esempio < Un programma deve iniziare con l'istruzione "program'e. finire con "end" Il nome del file che contiene il programma deve finire con .f, mentre il programma stesso no! * Viene dichiarato con program. L'istruzione “stop" pone fine all'esecuzione del programma: uno deve essere messo prima di end. [74) non permette di gestire la memoria a tempo di esecuzione: tutta la memoria è (allocata staticamente prima che inizi l'esecuzione del programma. La(compilazione prevede all'analisi x«— . Lessicale: riconosce i simboli *Sintattica: verifica l'uso dei simboli * Semantica: verifica la congruità sufficienti per rappresentare undinteto tra -2 x 1049 e +2x1049 e unifeale che varia nell'intervallo positivo o negativo, compreso tra 104-38 e 10%+38, con una precisione di sette cifre significative. * Dichiarazioni di tipo come REAL ed INTEGER vengono dette esplicite È buona prassi dichiarare esplicitamente ogni variabile, al punto che alcuni compilatori lo impongono. Nel caso del FORTRAN77 se non vi sono dichiarazioni esplicite esso assume implicitamente (default) che le variabili che iniziano per|I, J, K, L M e N.siano intere e tutte le altre reali. Una variabile non numerica può essere di tipo EOGICAL o CHARACTER. * Le prime sono per loro natura binarie in quanto possono essere solo vere o false; vedremo successivamente come inizializzarle o assegnar loro uno di questi valori. Le forme con cui una variabile può essere dichiarata carattere sono le seguenti: * CHARACTER var3, var4 cioè var3 e var4 sono variabili contenenti un carattere; e CHARACTER*n1 var3, var4 cioè var3 che var4 debbono contenere n1 caratteri; Per rappresentare vettori e matrici si fa uso di variabili multiple (array) richiedendo quantità di memoria proporzionate. * Parlando di dimensionamento è opportuno soffermarsi sulla seguente caratteristica del FORTRAN77:Mon è consentita l'allocazione dinamica della memoria, che può essere spiegata se si esamina la procedura che porta alla creazione di un programma eseguibile. Per il FORTRAN77 la compilazione risulta un'operazione distinta dall'esecuzione. Una volta prodotto un codice sorgente corretto e stabile, esso in genere viene eseguito parecchie volte senza doverlo ricompilare. . L'assegnamento della memoria alle variabili singole e multiple avviene in fase dircompilazione» Una volta riservati (allocati) ad esempio 4 byte per un reale o 4*10 byte per un vettore reale di 10 elementi in singola precisione, tali quantità non possono essere eccedute in alcun modo. Riprendiamo la prima esercitazione: vogliamo far si che i ej siano dei file da dove prendo cose. - dati nel file di input mentre i passaggi logici matematici stanno nel programma. Noi lavoreremo con ffile esterni, sequenziali e formatta e Memoria esterna, non accesso diretto e con formato. II modo standard per accede al file esterno si utilizza l'istruzione succissivo file = con opzionale [unit=espressione interna] e [,status=variabile] Mm * Definisce un'associazione tra la unit, ovvero un numero, e il nome del file! C'è un modo implici ili * 5= standard input * 6= standard output e 0 = standard error se non os ukliamano in cpen! \ gni read [unite + LULA RbA Ex: OPEL (VAN T = 11, FILE » PIPPO) IN OUPE — x esitore la sovrassittora # fvo° estere *new* "ola" “ocratun* — old » inpot Il formato è l'aspetto di un file scritto in un determinato modo come viene mostrato, * È necessaria una conversione dei dati.tra la oro_, Il formato esplicitamente viene specificato con l'istruzione ORMAT(f1) preceduta da un numero-istruzione. * F1= codici di formato. Implicitamente usando un formato definito dal sistema (nel nostro programma era l'* dopo il 6) ODICI DI FORMATO Xo nX con n = contatore ripetitivo opzionale * Sta adindicare le posizioni da saltare | o ilWcon w = ampiezza del numero, compreso il punto peri reali — turer * Ex: 1234 corrisponde a 14 * Ex: 33 potrebbe essere I3(con lo spazio davanti) oppure 1X, 2I(salto spazio e considero due 3 non 33) Fo fiFw.dicon d = numero di cifre decimali — reau » Ex: 32,78 corrisponde a F5,2 Riprendiamo il concetto di variabili e dichiarazioni Dichiarazione implicita: è l'iniziale del nome che determina il tipo * Intervallo I-N: variabili interi Le costanti in un parameter non può essere usata in assegnamento e read e In compilazione il nome simbolico viene sostituito con il corrispondente valore, perché è qui che viene assegnata la memoria. Uso combinato di tipo di dato: * Conversione per ottenere valori intermedi di tipo reale * Tronchetto parte decimale Se penso al programma io ho visto che almeno uno dei due tra num e den oltre al risultato deve essere reale! ASSEGNAMENTO LOGICO Gli operatori logici sono: + (fot . ‘and. O .0P. * .eqgv. * .negv. Per definire gl DICI elle tabelle di verità ord. | 0 ba cn o. false. o o o 1: tive. 1 o 1 of |o + egv | o 1 negv| o A (o) 1 o £ o o |o L i i 1 o i 1 1 o ASSEGNAMENTO CARATTERE Operatore di con nazione: STRI AB CD' Un'espressione può essere usata per calcolare un singolo numero, valore logico o stringa. L iatività dell * Posso usare le parentesi tonde per alterare RE re - IF » DO * GOTO F77 mette a disposizioni tre istruzioni per L'ISTRUZIONE * Sela condizione non è verificata io salto quella cosa IF ARITMETICO Meno utilizzato nneg, nzero, n * Seè minore di zero io salto al numero di istruzione nneg * Seè uguale azero io salto al numero di istruzione nzero * Se è maggiore di zero io salto al numero di istruzione npos IF LOGICO IF(espressione logica) istruzione Estensione: [BLOCCO ll * Posso mettere più istruzioni IF(espressione-test) THEN ii ioni su li separate ENDIF Posso mettere anche altri if! * Opzionali: ELSE IF/ELSE(espressione-test)THEN sequenza istruzioni su linee separate Riprendiamo dei concetti importanti! ALGORITMO: sequenza di passaggi logici e matematici per la risoluzione di un problema. PROGRAMMA: successione di istruzioni che risolvono un problema, vengono eseguite in ordine, Riparliamo anche della struttura del programma. * Dalla 7 alla 72 * Dallalalla 6 Rappresentazione ed interpretazione dei dati. Espressioni. Input/Output. Formato. esempio » do 30 (:6,10,£ urite(o,*)L _—_, tolto quelo che sio. tro. il do ek io WARmwe 1° — assegno ad iile: isé 2 — conffanio. i um it valoe finale : se icio allora eresse il do de i> 0 salta dop Leave Come ideare un'iterazione? pun‘ Scomporre la soluzione in piccoli passi Applicare sequenzialmente su carta, senza saltare passaggi Individuare i blocchi di istruzioni che si ripetono Scrivere il blocco costante nel DO Esprimere in funzione del contatore i blocchi diversi Svolgere il DO per verifica N suaaw ESEMPIO: voglio calcolare la somma dei numeri da 1 a 5 Ri 1+2+3+46+S a 45 Ke 4 Rat Ki 162 Kakez K_ acumula tore Ws 1r243 —, Kiss — che po store sa a dx KR: 112434+44 Kekek dhe o sx de =1 Re 1£1+2+453+0G+5 KaWaS ° co. posso «cfivere il DO: K:0 — 8 non initialltào scegrie lui Do 22 i:L,4 (oo 22 L= 2,5. Kak+ 41 | Rakei I N aumento del sor. tempo di calcolo 22 LQAANVe 2 Loninve se fosse reale il contatore ? \ do io G:4.,5, io aAWxv& a: 1 0000002 sceglie il A: 2,0050002 | calcolate mo. Wi Caso e' >» s: e a: è.0000002 | che nm aloe amo un'iterazoane A : 4 0000002 |meHere dep iN meno ! — se is 1,5: it £2,3,6,5,6 0: 5.000002 lil porto! Do _amidat : DO _ 30 i:4,2 write Co, =) esterno’ ,i DO_20 3): 4,G,2 write (6,4) 'iNtermno',Ò 209 CCOAMEe DO 40 )-2,G,£ UNiTe (6,4) interno” pato) cQ0K WE 30 eeuiwe Il F77 prevede tre tipi di istruzioni GO TO * Modo principale GO TO i izi seguito da un numero di istruzione Esistono anche il 60 TO con numero di istruzione variabile, e GO TO calcolato Esempio : program man dimanzion ... CORI So to oto CORI a UL istfutione «o Poe. moto..10,2 — se lo metto primo. del go io il frrgmamma pira sna famosa. movi! — WG0 FARE program modtia pasameter Camax: #0, MIMO: 40,2nox: 40) dimenian alnmax,mmax), bLMMAX, Max), Unmar, ma) Li dimentiono fino ad un max ma ne posso usare uno. porte @ piuolo , c_loggo le olimentiomi delle matri fead Ls, Sco) Nn.,M,2 write ... cus fico. dhe. Nm, 2 sano £ Nima, MM, EMAX if ( )_got0 400 iL LI va. messo cisfo vio siep Mal )_ «4 C 500 write (6,»)' dlimentimi repo gronoli' sui formato dei valori dee motti metto to (id 5 x) - Meno posso efriuae foro a foxi0 m froolotto > Ci,j: DT Giu bui Ms do 30 j:1,0 do voi. ia, cli, g)- © do so Rk:4am C(ugi: Ci, 3) + ALi,K) + b(K,3)