Elementi sintattici. Sottoprogrammi in Fortran. Paolo Bison
|
|
- Ilaria Bello
- 5 anni fa
- Visualizzazioni
Transcript
1 Sottoprogrammi in Fortran Paolo Bon Fondamenti di Informatica A.A. 2006/07 Università di Padova Elementi sintattici modulo unità di programma contenente definizioni di user-defined types, variabili e sottoprogrammi compilazione separata vibilità degli elementi dichiarati in un modulo elementi accessibili da altri moduli PRIVATE elementi condivi solamente tra gli elementi del modulo sottoprogrammi subroutines (procedure) functions (funzioni) Sottoprogrammi in Fortran, Paolo Bon, FI06, p.1 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.2 Definizione di modulo R1104x module private-module R1104 private-module MODULE module-name [ use-stmt ]... [ PRIVATE ] [ module-entity-def ]... [ module-subprogram-part ] END MODULE module-name R1104z module-entity-def [ derived-type-def ] or [ other-type-declaration-stmt ] or [ module-procedure-interface-block ] or [ external-procedure-interface-block ] R212 module-subprogram-part CONTAINS module-subprogram [ module-subprogram ]... R213 module-subprogram function-subprogram or subroutine-subprogram Sottoprogrammi in Fortran, Paolo Bon, FI06, p.3 Istruzione USE defince da quali moduli si importa gli elementi di tipo R1107 use-stmt USE module-name [, rename-lt ] R1108 rename local-name => use-name Constraint:A module-name shall appear in at most one USE statement in a scoping unit. Constraint:A module shall not be made accessible by more than one use statement in a scoping unit. Constraint:The module shall appear in a previously processed program unit. Vibilità degli identificatori per tutti gli elementi si deve dichiarare se sono PRIVATE o attributo nella dichiarazione R511 access-spec or PRIVATE integer, private :: y,k,z real, public :: t,m definizione mediante un access-stmt R522 access-stmt access-spec [ :: access-id-lt ] public :: xx,yy private :: lc, high senza lta defince accesso di default (Fortran 90/95) Campo di validità per gli elementi PRIVATE il modulo Sottoprogrammi in Fortran, Paolo Bon, FI06, p.4 per gli elementi il modulo + altri moduli/programmi che dichiarino di utilizzare tale modulo. Quest ultimi possono ridefinire gli identificatori dichiarati nei moduli che usano solo se li rinominano. con la rename-lt Sottoprogrammi in Fortran, Paolo Bon, FI06, p.5 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.6 moduli.f90 moduli.f90 module moda integer,public :: k=10 real, public :: x=5.0 integer,private :: l=-100 end module moda module modb integer,public :: k=20 real,public :: y=20.9 integer,private :: l=99 end module modb moduli.f90 module modc use moda private integer,public :: l=55 real,private :: y=-8.9 end module modc program moduli use moda,pippo=>x use modb use modc integer :: m,n integer :: x=-333 errore se non ci fosse pippo=>x print *,x,y,l print *,k errore: k dichiarato sia in moda che in modb end program moduli Sottoprogrammi in Fortran, Paolo Bon, FI06, p.7 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.8
2 Definizione di sottoprogramma R1216 function-subprogram function-stmt specification-part [ execution-part ] end-function-stmt R1221 subroutine-subprogram subroutine-stmt [ specification-part ] [ execution-part ] end-subroutine-stmt R1221v specification-part [ use-stmt ]... [ dummy-declaration-stmt]... [ result-type-declaration-stmt ] [ other-type-declaration-stmt ]... R1217 function-stmt [ RECURSIVE ] FUNCTION function-name ([ dummy-arg-name-lt ]) RESULT (result-name) R1220 end-function-stmt END FUNCTION function-name R1222 subroutine-stmt [ RECURSIVE ] SUBROUTINE subroutine-name ( [ dummy-arg-lt ] ) R1224 end-subroutine-stmt END SUBROUTINE subroutine-name Sottoprogrammi in Fortran, Paolo Bon, FI06, p.9 Attributi dei parametri formali intent ( intent-spec ) indica l uso inteso per il parametro formale con i seguenti valori di intent-spec: in il parametro è utilizzato per fornire dati al chiamato out il parametro è utilizzato per ritornare dati al chiamante ed è indefinto alla chiamata inout il parametro è utilizzato per passare dati in entrambi i sensi optional può non esserci il corrpondente parametro attuale nella chiamata al sottoprogramma; in tal caso il valore è indefinito funzione intrinseca present(par-name) per vedere se il parametro è presente Parametri formali dummy-arg-name-lt lta dei parametri formali (identificatori separati da virgola) subroutine (x,y,z,c) dummy-declaration-stmt dichiarazioni di tipo per i parametri formali (dummy) presenti nella dummy-arg-name-lt real :: x,y,z character :: c Attivazione sottoprogrammi R1210 function-reference function-name ( [ actual-arg-spec-lt ] ) R1211 call-stmt CALL subroutine-name ( [ actual-arg-spec-lt ] ) R1212 actual-arg-spec [ keyword = ] actual-arg R1213 keyword dummy-arg-name R1214 actual-arg expr or variable or subprogram-name Constraint: The keyword = may be omitted from an actual-arg-spec only if the keyword = has been omitted from each preceding actual-arg-spec in the argument lt. Constraint: A procedure-name actual-arg shall not be the name of an intrinsic function. Sottoprogrammi in Fortran, Paolo Bon, FI06, p.10 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.11 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.12 param.f90 param.f90 param.f90 esempio di passaggio di parametri module moda public :: suba subroutine suba(i,k,l,m) integer,intent(in) :: i,k integer,intent(in),optional :: l,m program moduli use moda call suba(5,3) call suba(k=8,i=-4) call suba(1,2,3) call suba(1,2,3,4) call suba(1,2,m=3) end program moduli print *," " print *,"i",i,"k",k if (present(l)) then print *,"l",l if (present(m)) then print *,"m",m end subroutine suba end module moda Sottoprogrammi in Fortran, Paolo Bon, FI06, p.13 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.14 Valore di ritorno per le funzioni dichiarazione del result-name nella result-type-declaration-stmt function somma_funct(x,y) result(z) integer :: z sconsigliabile avere side-effects nelle funzioni (vietati in F) modulo_somma.f90 modulo_somma.f90 somma tra due interi realizzata sia con una subroutine sia con una function module somma public :: somma_subrt,somma_funct subroutine somma_subrt(x,y,z) integer, intent(out) :: z z=x+y end subroutine somma_subrt function somma_funct(x,y) result(z) integer :: z z=x+y end function somma_funct end module somma Sottoprogrammi in Fortran, Paolo Bon, FI06, p.15 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.16
3 modulo_somma.f90 side_effects.f90 program modulo_somma use somma integer ::k,l,t read *,k,l call somma_subrt(k,l,t) print *,t print *,somma_funct(k,l) end program modulo_somma module strange public :: fun,sub integer, public :: k function fun() result(r) real :: r k=3*k r=5 end function fun end module strange program side_effects use strange k=3 print *,k+fun()+k k=3 print *,k+k+fun() end program side_effects Sottoprogrammi in Fortran, Paolo Bon, FI06, p.17 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.18 Terminazione dei sottoprogrammi fine logica end subroutine / end function truzione return R1226 return-stmt RETURN termina l esecuzione del sottoprogramma return.f90 module test public :: test_n function test_n(n) result(f) ritorna.false. se n<=0 o somma di tutti i numeri tra 1 e n e dpari,.true. altrimenti logical :: f; integer :: somma,i f=n>0; if (.not. f) then; return; somma=0; do i=1,n; somma=somma+i; f=modulo(somma,2)==0 end function test_n end module test program main use test print *,test_n(6); print *,test_n(4) print *,test_n(7); print *,test_n(-15) print *,test_n(0) end program main Sottoprogrammi in Fortran, Paolo Bon, FI06, p.19 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.20 Variabili locali Horribile Vu modalità di gestione non definita nelle specifiche del linguaggio attributo save forza attivazione/dattivazione dell associazione corrpondente save implicito dichiarazione variabile locale con inizializzazione local_var.f90 local_var.f90 module somma public :: media,devstd function media(n) result(m) real :: m; integer :: somma,i somma=0; do i=1,n; somma=somma+i; m=somma/n end function media function devstd(n) result(sigma) real :: sigma integer :: i; real :: somma=0,m m=media(n); do i=1,n; somma=somma+(i-m)**2; sigma=sqrt(somma/n) end function devstd end module somma Sottoprogrammi in Fortran, Paolo Bon, FI06, p.21 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.22 local_var.f90 Stringhe/array come parametri program local_var use somma print *,media(100) print *,devstd(100) end program local_var stringhe specificazione (len = *) nella dichiarazione del parametro formale array ulteriori parametri il cui valore da la dimensione subroutine calc(data_array,n,m)},m real,dimension(n,m),intent(inout) :: data_array} uso di : per ogni dimensione subroutine calc(data_array) real,dimension(:,:),intent(inout) :: data_array} funzioni intrinseche: lbound(arr,dim) ubound(arr,dim) size(arr,dim) Sottoprogrammi in Fortran, Paolo Bon, FI06, p.23 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.24
4 param_array.f90 param_array.f90 param_array.f90 esempio di passaggio di parametri module array public :: suba subroutine suba(arr_in,arr_out) integer,dimension(:,:),intent(in) :: arr_in integer,dimension(:,:),intent(out) :: arr_out integer :: k,l if ((size(arr_in,1)/=size(arr_out,1)).or. (size(arr_in,2)/=size(arr_out,2))) then print *,"array differenti" do k=lbound(arr_out,1),ubound(arr_out,1) do l=lbound(arr_out,2),ubound(arr_out,2) arr_out=0 return arr_out=3*arr_in end subroutine suba end module array Sottoprogrammi in Fortran, Paolo Bon, FI06, p.25 program param_array use array integer,dimension(2,3) :: arra, arrb integer,dimension(3,3) :: arrc arra=reshape((/1,-1,3,-2,5,4/),(/2,3/)) call suba(arra,arrb) print *,arra print *,arrb call suba(arra,arrc) print *,arrc end program param_array Sottoprogrammi in Fortran, Paolo Bon, FI06, p.26 Array automatici Passaggio di subroutine e/o function array locali le cui dimensioni sono specificate con espressioni in cui possono apparire i parametri definizione del nome, dei parametri formali e dell eventuale valore di ritorno in un blocco INTERFACE integer,dimension(n+1,m) :: dati locali creazione/dtruzione dell associazione non è possibile la loro inizializzazione nella dichiarazione R1202 R1205 or dummy-procedure-interface-block INTERFACE interface-body [ interface-body ]... END INTERFACE interface-body function-stmt [ specification-part ] end-function-stmt subroutine-stmt [ specification-part ] end-subroutine-stmt Sottoprogrammi in Fortran, Paolo Bon, FI06, p.27 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.28 rappresentazione grafica di una funzione module graph public :: draw_func subroutine draw_func(func) interface function func(x) result(y) end function func end interface real, parameter :: d = 0.4 1/4, 4 campioni nell intervallo [x,x+1] integer, parameter :: s = caratteri di ampiezza per l intervallo [y,y+1] integer, parameter :: h = s+2 massimo valore positivo asse x integer, parameter :: lim =80 numero di campionamenti integer :: i, k logical, dimension(-h:h,0:lim-1) :: grid character (len=lim) :: linea Sottoprogrammi in Fortran, Paolo Bon, FI06, p.29 inizializzazione do i=-h,h grid(i,k)=.false. calcolo campioni grid(nint(s*func(d*k)),k)=.true. Sottoprogrammi in Fortran, Paolo Bon, FI06, p.30 vualizzazione do i=h,-h,-1 linea = "" if (grid(i,k)) then linea(k+1:k+1) ="*" else if (i==0) then linea(k+1:k+1) = "-" else linea(k+1:k+1) = " " print *,linea end subroutine draw_func end module graph module functions public :: f_sin,f_sinc function f_sin(x) result(y) y=sin(x) end function f_sin function f_sinc(x) result(y) if (x==0.0) then y=1.0 else y=sin(x)/x end function f_sinc end module functions Sottoprogrammi in Fortran, Paolo Bon, FI06, p.31 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.32
5 program modulo_graph use graph use functions call draw_func(f_sin) print * call draw_func(f_sinc) end program modulo_graph Gestione errori assegnazione di particolari valori ad elementi vibili all esterno del sottoprogramma: variabile non locale parametro di tipo out o inout Sottoprogrammi in Fortran, Paolo Bon, FI06, p.33 Sottoprogrammi in Fortran, Paolo Bon, FI06, p.34 gest_errori.f90 gest_errori.f90 module div integer,public :: err /= 0 segnala un errore public :: div1,div2 subroutine div1(x,y,z) integer, intent(out) :: z err=0 if (y==0) then; err=1 else; z=x/y end subroutine div1 subroutine div2(x,y,z,err) integer, intent(out) :: z,err err=0 if (y==0) then; err=1 else; z=x/y end subroutine div2 end module div Sottoprogrammi in Fortran, Paolo Bon, FI06, p.35 program main use div integer ::k,l,t,errore read *,k,l call div1(k,l,t) if (err/=0) then; print *,"errore" else; print *,t call div2(k,l,t,errore) if (errore/=0) then; print *,"errore" else; print *,t end program main Sottoprogrammi in Fortran, Paolo Bon, FI06, p.36
PRIVATE elementi condivisi solamente tra gli elementi del modulo sottoprogrammi subroutines (procedure) functions (funzioni)
Sottoprogrammi in Fortran Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Sottoprogrammi in Fortran, Paolo Bison, FI06, 2007-02-06 p.1 Elementi sintattici modulo unità di programma
DettagliIntroduzione alle Procedure
Introduzione alle Procedure Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Organizzazione del programma Schema di un unità di programma Fortran 90 PROGRAM, FUNCTION, SUBROUTINE, MODULE nome
DettagliFortran per Ingegneri
Fortran per Ingegneri Lezione 6 A.A. 2013/2014 Ing. Davide Vanzo davide.vanzo@unitn.it Ing. Simone Zen simone.zen@unitn.it ufficio: Laboratorio didattico di modellistica ambientale (2 piano) Tel interno:
DettagliFortran. Funzioni e Subroutine.
Fortran Funzioni e Subroutine http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Dal Fortran II del 1958, Fortran consente di
Dettaglir fattore di ripetizione w ampiezza di campo m numero minimo cifre da visualizzare d numero cifre decimali Print e Read I/O in Fortran sintassi
I/O in Ftran Print e Read Paolo Bison Fondamenti di Infmatica A.A. 2006/07 Università di Padova R911 print-stmt is PRINT fmat [, output-item-list ] R909 read-stmt is READ ( io-control-spec-list ) [ input-item-list
DettagliPaolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova
I/O in Ftran Paolo Bison Fondamenti di Infmatica A.A. 2006/07 Università di Padova I/O in Ftran, Paolo Bison, FI06, 2007-02-16 p.1 Print e Read sintassi R911 print-stmt is PRINT fmat [, output-item-list
DettagliPaolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova
Elementi di base del linguaggio Ftran Paolo Bon Fondamenti di Infmatica A.A. 2006/07 Università di Padova Basic Ftran, Paolo Bon, FI06, 2007-01-20 p.1 Linguaggio F sottoinsieme del Ftran 90 solo costrutti
DettagliPaolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09
Introduzione ai sottoprogrammi Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Introduzione al corso, Paolo Bison, FI08, 2008-12-09 p.1 Struttura programma
DettagliERRORI DI PROGRAMMAZIONE INDICE
ERRORI DI PROGRAMMAZIONE INDICE 1 ERRORI FREQUENTI 2 1. 4 Parentesi graffe mancanti per i blocchi delle istruzioni di controllo 3 1.1 Punto e virgola mancante 2 1.2 Utilizzo di una variabile non dichiarata
DettagliCapitolo 5 - Funzioni
Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente
DettagliPaolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova
Introduzione ai sottoprogrammi Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Introduzione al corso, Paolo Bison, FI06, 2007-02-06 p.1 Struttura programma formato da vari elementi
DettagliArray in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica
Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo
DettagliLinguaggio F. a le produzioni relative al linguaggio F presenti in questi appunti sono tratte da. Basic Fortran, Paolo Bison, FI08, p.
Elementi di base del linguaggio Ftran Paolo Bon Fondamenti di Infmatica Ingegneria Meccanica Università di Pava A.A. 2008/09 Linguaggio F sottoinsieme del Ftran 90 solo costrutti moderni senza duplicazioni
DettagliPaolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09
Tipi strutturati Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Tipi strutturati, Paolo Bison, FI08, 2008-09-29 p.1 tipi strutturati composizione di altri
DettagliModularizzazione del software
Modularizzazione del software Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica
DettagliEvoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
DettagliIntroduction to modern Fortran
Sintassi di base Introduction to modern Fortran Maurizio Cremonesi, CINECA Maggio 2016 Documentazione e manualistica Può essere facilmente reperita on-line Language reference Descrizione e sintassi del
DettagliBreve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN
Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...
DettagliTipi strutturati. tipi strutturati. Paolo Bison
Tipi strutturati tipi strutturati Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Pava composizione di altri tipi caratterizzati numero delle componenti tipo delle componenti (tipo base)
DettagliSviluppare un programma in FORTRAN
Sviluppare un programma in FORTRAN Scrivere il file sorgente Editor di testo (emacs, vi, notepad, etc) Compilare Compilatore (ifort, gfortran, etc) Eseguire il programma Riga di comando, doppio click,
DettagliIntroduzione Generalitá sull uso degli array Array allocabili Funzioni intrinseche. Array. Fondamenti di Informatica T (A-K) AA
allocabili AA 2013-2014 allocabili Introduzione Un array rappresenta un gruppo di variabili (o costanti) dello stesso tipo, a cui si fa riferimento con un singolo nome. Si definisce anche vettore un array
DettagliProblema: stampa degli interi compresi tra n e m
Costrutti imperativi Problema: stampa degli interi compresi tra n e m http://caml.inria.fr/pub/docs/manual-ocaml/libref/pervasives.html Output functions on standard output val print_string: string -> unit
DettagliEsercitazioni di Informatica 3
Esercitazioni di Informatica 3 Part I: Programming Languages Syntax and semantics Laurea in Ingegneria Informatica Politecnico di Milano Polo di Milano Leonardo Esercizio 1: EBNF Utilizzando il linguaggio
DettagliInformatica (CIV) Esercitazione su FORTRAN. Andrea Romanoni
Informatica (CIV) Esercitazione su FORTRAN Andrea Romanoni andrea.romanoni@polimi.it Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano 3 dicembre 2013 Esercizio istogrammi
DettagliPaolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09
Ulteriori elementi di base del linguaggio Fortran Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Basic Fortran (cont.), Paolo Bison, FI08, 2008-09-29 p.1 Real
DettagliELEMENTI DI PROGRAMMAZIONE 2015/16 UNINA2 INGEGNERIA MECCANICA/AEROSPAZIALE Prof Andrea Prevete PUNTATORI, TARGET, STRUTTURE DATI DINAMICHE
ELEMENTI DI PROGRAMMAZIONE 2015/16 UNINA2 INGEGNERIA MECCANICA/AEROSPAZIALE Prof Andrea Prevete PUNTATORI, TARGET, STRUTTURE DATI DINAMICHE puntatori e target Le forme generali delle istruzioni per la
DettagliCapitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
1 Capitolo 6 - Array Array Array Gruppo di locazioni di memoria consecutive Stesso nome e tipo Per riferirsi a un elemento, specificare Nome dell array Posizione Formato: arrayname[ position number ] Primo
DettagliStrutture di controllo e cicli
AA 2012-2013 IF logico L IF logico rappresenta il tipo piú semplice di istruzione condizionale IF logico L IF logico rappresenta il tipo piú semplice di istruzione condizionale Sintassi IF ( e s p r e
DettagliPRIMA PROVA SCRITTA: ELENCO DOMANDE
PRIMA PROVA SCRITTA: ELENCO DOMANDE 1) Descrivere la propria esperienza acquisita sullo sviluppo e l uso di modelli numerici applicati alla geofisica Describe your experience acquired in the development
DettagliApprofondimenti sulle procedure
Approfondimenti sulle procedure Introduction to modern Fortran Maurizio Cremonesi, CINECA Maggio 2017 Procedure interne Una procedura è detta interna, se è contenuta in un blocco (o sezione) del programma,
DettagliLaboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza
Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza Il tipo subrange La sezione di dichiarazione delle variabili Problemi ed esercizi su subrange ed enumerati Editazione
DettagliSottoprogrammi in Fortran
Sottoprogrammi in Fortran Il Fortran distingue tra funzioni e procedure, usando 2 keyword diverse per i 2 tipi di sottoprogrammi Il concetto di sottoprogramma non c'era nelle primissime versioni del linguaggio,
DettagliReal. Ulteriori elementi di base del linguaggio Fortran. Paolo Bison
Ulteriori elementi di base del linguaggio Fortran Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Pava Real sottoinsieme finito dei reali R operatori: + - * / ** costanti sequenza di cifre
DettagliVettori e Matrici (array)
Vettori e Matrici (array) Introduction to Fortran 90 Elda Rossi, CINECA Marzo 2015 Array - Introduzione Gli array sono serie di variabili dello stesso tipo, ciascuna accessibile mediante indici numerici.
Dettaglie L equazione associata a questa disequazione non è risolvibile in maniera analitica, con metodi numerici 2 si trova n 1754, 21
Il file distribuzioni.f90 è strutturato in tre parti. Il primo modulo è necessario per richiedere la precisione desiderata per i real di lavoro module precisione integer,parameter::kr=selected_real_kind(18)
DettagliAnalizzatore lessicale
Analizzatore lessicale Legge la stringa in input e la trasforma in un flusso di token da sottoporre all analizzatore sintattico. Le frasi di un linguaggio sono stringhe di token (simboli atomici). Richieste
DettagliVettori e Matrici (array)
Vettori e Matrici (array) Introduction to modern Fortran Paolo Ramieri, CINECA Maggio 2016 Array - Introduzione Gli array sono serie di variabili dello stesso tipo, ciascuna accessibile mediante indici
DettagliVettori e Matrici (array)
Vettori e Matrici (array) Introduction to Fortran 90 Massimiliano Guarrasi, CINECA m.guarrasi@cineca.it Ottobre 2014 Array - Introduzione Gli array sono serie di variabili dello stesso tipo, ciascuna accessibile
DettagliIntroduction to modern Fortran
Sinonimi Introduction to modern Fortran Paride Dagna, CINECA Maggio 2016 SINONIMI: SINTASSI DI BASE I sinonimi, o POINTER, non sono altro che nomi cui è associato un tipo ed eventualmente un rango. Ad
DettagliCognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :
PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:
DettagliEvoluzione del C 07/04/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 16 IL LINGUAGGIO C
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 16 IL LINGUAGGIO C Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
DettagliBreve guida al linguaggio FORTRAN 77
Breve guida al linguaggio FORTRAN 77 Variabili (valori di default) Iniziali con lettere da I a N Iniziali con lettere da A a H oppure da O a Z variabili intere, 4 byte in precisione singola variabili reali,
DettagliOperazioni di input e output in Fortran 90
Operazioni di input e output in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: file e formattazione DIS - Dipartimento di informatica
DettagliIstruzioni condizionali di diramazione in Fortran 90
Istruzioni condizionali di diramazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Istruzioni di diramazione DIS - Dipartimento
DettagliPROCEDURE E FUNZIONI
VB.NET PROCEDURE E FUNZIONI La sintassi Non sempre le procedure e le funzioni fornite dal Vb.Net bastano a soddisfare le nostre necessità di programmazione, quindi si possono scrivere nuove procedure e
DettagliAppelli degli anni precedenti Domande di teoria
Appelli degli anni precedenti di teoria 10 settembre 2003 1) Indicare i compiti principali di un sistema operativo 2) Spiegare come e' strutturata e come funziona la memoria di un computer 3)Rappresentare
DettagliFORTRAN: LE STRUTTURE DI CONTROLLO
UNINA2 INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI PROGRAMMAZIONE FORTRAN: LE STRUTTURE DI CONTROLLO Prof. Andrea Prevete - a.a. 2015/16 IF-THEN La più semplice struttura di controllo è lo statement
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Strutture di Dati Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Dati: Conclusioni >> Sommario Sommario Ricapitolazione Alcune
DettagliReal. Basic Fortran (cont.), Paolo Bison, FI06, p.1. Basic Fortran (cont.), Paolo Bison, FI06, p.3
Ulteriori elementi di base del linguaggio Fortran Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Pava Real sottoinsieme finito dei reali R operatori: + - / costanti sequenza di cifre
DettagliIl software e la programmazione
Il software e la programmazione Concetti base sul software Elementi di programmazione Cenni sul linguaggio Pascal Che cosa è il software Determina ciò che un computer può fare Include istruzioni memorizzate
DettagliProgrammazione C. Funzioni e procedure: Activation record. passaggio per indirizzo
Programmazione C Funzioni e procedure: passaggio per indirizzo Activation record 2. PASSAGGIO PER INDIRIZZO Dire alla funzione l indirizzo di memoria cui accedere Se occorre passare un array ad una funzione,
DettagliINFORMATICA 3 Prof.ssa Sara Comai
INFORMATICA 3 Prof.ssa Sara Comai ESERCIZI SESSIONE LIVE 1 Sintassi e semantica operazionale Ing. Paola Spoletini 1. Sintassi Utilizzando il linguaggio descritto dalla seguente EBNF: REGOLE SINTATTICHE:
DettagliClassi di memorizzazione
Classi di memorizzazione 1 Classi di memorizzazione Definiscono le regole di visibilità delle variabili e delle funzioni quando il programma è diviso su più file Stabiliscono dove (in quale parte dello
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliConstant Propagation. A More Complex Semilattice A Nondistributive Framework
Constant Propagation A More Complex Semilattice A Nondistributive Framework 1 The Point Instead of doing constant folding by RD s, we can maintain information about what constant, if any, a variable has
DettagliBreve storia del FORTRAN
Fondamenti di Informatica Linguaggi di programmazione ad alto livello: C e Fortran90 1 Breve storia del FORTRAN Il FORTRAN (= FORmula TRANslator) nacque nel 1957. Nel 1980 venne rilasciato il FORTRAN77
DettagliCOMPITO DI FONDAMENTI DI INFORMATICA Allievi Ingegneri Meccanici. Appello Straordinario del 05 Marzo 2007 ( )
COMPITO DI FONDAMENTI DI INFORMATICA Allievi Ingegneri Meccanici Appello Straordinario del 05 Marzo 2007 (09.30 12.30) Esercizio 1 (punti 15) Due file di testo (PAROLE1.TXT e PAROLE2.TXT) contengono un
DettagliTela (Teaching Language)
Tela (Teaching Language) Paradigma imperativo Dichiarazioni di variabili, costanti, moduli Programma strutturato in moduli innestati Scope statico Passaggio dei parametri per valore Corpo del modulo =
DettagliGestione della Memoria
Gestione della Memoria Introduction to modern Fortran Paride Dagna, CINECA Maggio 2017 Gestione della memoria Il Fortran 90 permette di gestire dinamicamente la memoria, in almeno quattro modi diversi:
DettagliFUNZIONI PARAMETRI DEFINIZIONI DI PROCEDURE PROCEDURE
FUNZIONI PARAMETRI function nome [ (parametri) ] return tipo; Definizione: function nome [ (parametri) ] return tipo is dichiarazioni; comandi; gestori; Il corpo contiene uno o più comandi return expr
DettagliLinguaggi e Traduttori Esercitazione di laboratorio N.2 - soluzione
Linguaggi e Traduttori Esercitazione di laboratorio N.2 - soluzione Esercizio Si scriva, usando LEX e YACC, un programma in grado riconoscere la sintassi di un sottoinsieme del linguaggio C. Dato un file
DettagliQuestion 1: introduction to computer programming
Question 1: introduction to computer programming Question 1: introduction to computer programming What is a compiler? (4 points). Cos è un compilatore? (4 punti). c 2006 Marco Bernardo 1/14 Question 1:
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,
DettagliIl linguaggio C. Istruzioni, funzioni, dati strutturati
Il linguaggio C Istruzioni, funzioni, dati strutturati Istruzioni Servono a dirigere il flusso di esecuzione di un programma controllano l ordine di esecuzione delle espressioni, quindi dei loro side effects
DettagliLezione 3 Esercitazione
Lezione 3 Esercitazione prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org Esercizio 1 Si consideri il codice seguente: program esercizio1 (input, output); var a,b,c,d: integer;
DettagliFUNZIONI. Dichiarazione: Definizione:
FUNZIONI Dichiarazione: function nome [ (parametri) ] return tipo; Definizione: function nome [ (parametri) ] return tipo is dichiarazioni; begin comandi; exception gestori; end [nome]; Il corpo contiene
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
DettagliPREPARAZIONE PER SECONDA PROVA IN ITINERE Esercizio 1 SULLA MODELLAZIONE DEI DATI
PREPARAZIONE PER SECONDA PROVA IN ITINERE Esercizio 1 SULLA MODELLAZIONE DEI DATI Si definisca il tipo opportuno di dato per memorizzare una tabella che contenga, per ciascuna delle principali valute (dollaro
DettagliArgomenti di tipo procedura
Argomenti di tipo procedura Anche in Fortran è possibile passare procedure in argomento. Le procedure così passate devono essere esterneo contenute in un modulo. Non è possibile passare procedure interne.
DettagliFortran C Breve introduzione. Edmondo Giovannozzi
Fortran C Breve introduzione Edmondo Giovannozzi Interfaccia Fortran C Il Fortran 2003 ha definito un modulo intrinsico che fornisce costanti e funzioni per interfacciarsi con il C (ISO_C_BINDING). Nel
DettagliCorso di laurea in Informatica (Triennale) A.A. 2002/ 03 Corso di Programmazione (C) Docente: S. Ferilli II esonero (16 dicembre 02)
Corso di laurea in Informatica (Triennale) A.A. 2002/ 03 Corso di Programmazione (C) Docente: S. Ferilli II esonero (16 dicembre 02) Cognome e Nome: Matricola: Esercizio n.1 Specificare intestazione, nidificazione
DettagliAlgoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal
Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi
DettagliApprofondimenti sulle
Approfondimenti sulle procedure Introduction to Fortran 90 Nicola Spallanzani, CINECA Maurizio Cremonesi, CINECA Ottobre 2014 Procedure interne Una procedura è detta interna, se è contenuta in un blocco
DettagliIntroduzione alla logica matematica. Logica matematica. Paolo Bison
Introduzione alla logica matematica Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Logica matematica formalizzazione dei meccanismi di ragionamento la logica
Dettagli28/02/2014 Copyright V. Moriggia
Informatica per la Finanza 3 Le variabili in VBA Altri I/O 28/02/2014 Copyright 2005-2007 V. Moriggia 1 28/02/2014 3.2 Le variabili in VBA V. Moriggia 1 28/02/2014 3.3 Dichiarazione di variabili in VBA
DettagliTipi derivati. Fortran 90[/95] Esempio. Tipi strutturati. Istanziazione e accesso. Esempio
Fortran 90[/95] M. Bianco Tipi derivati Per tipo derivato si intendono dei tipi di dati costruiti sui tipi base del linguaggio Fortran90 ha cinque tipi base (più i diversi kind): integer, real, character,
DettagliConcetti Base Encapsulation ed Ereditarietà Programmare con l Ereditarietà. Java: Ereditarietà. Damiano Macedonio
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica Introduzione Ereditarietà in Sintesi È uno dei concetti chiave della programmazione orientata agli
DettagliLinguaggi e Ambienti di Programmazione
Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi
DettagliCostrutti presenti in C ( non disponibili in FORTRAN ) Cicli di iterazione : IL FOR. Esempio: Conversione Fahrenait / Celsius FORTRAN 77 ANSI C
Esempio: onversione Fahrenait / elsius FORTRAN 77 Vs ANSI F 77 PROGRAM ONVERT REAL ELS INTEGER FAHR STAMPA DELLA TABELLA DO 10 FAHR=0,00,20 ELS=(FAHR-2)*5./9. WRITE(*,*), FAHR,ELS float cels; int fahr;
DettagliLinguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
DettagliSelezioni scolastiche 2018
Selezioni scolastiche 2018 Come funziona lo pseudocodice Lo Staff 4 novembre 2018 Da questa edizione delle fasi scolastiche delle Olimpiadi Italiane di Informatica nella sezione Problemi di Programmazione
DettagliStored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma
Stored Procedures Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma Progetto di Applicazioni Software Stored Procedure e User Defined
DettagliSpecifica parte IIID. La specifica nei casi reali. Esempio: DFD. La specifica nei casi reali
La specifica nei casi reali Specifica parte IIID Leggere Sez. 5.7 Ghezzi et al. La complessità dei casi reali impone ulteriori requisiti, oltre all espressività, al rigore e alla formalità E necessario
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 4 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 5 Marzo 2013 Scheme - L interprete
DettagliI costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni
Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di
DettagliLaboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza
Laboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza 1.1. Introduzione al linguaggio Pascal Struttura di programma Elementi lessicali: le parole riservate e gli
DettagliPseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p.
Pseudo codice Paolo Bison Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova Pseudo codice, Paolo Bison, A.A. 2003-04, 2003-09-30 p.1/38 Pseudo codice linguaggio testuale mix di linguaggio naturale
DettagliQuadrature. Emma Perracchione. Corso di Calcolo Numerico per Ingegneria Meccanica - Matr. PARI (Univ. PD)
Emma Perracchione Corso di Calcolo Numerico per Ingegneria Meccanica - Matr. PARI (Univ. PD) Gli esercizi sono presi dal libro: S. De Marchi, D. Poggiali, Exercices of numerical calculus with solutions
DettagliLa sezione di dichiarazione delle costanti 1.2 I tipi elementari Classificazione dei tipi Il tipo integer Il tipo boolean
Laboratorio di Programmazione A.A. 2000\2001 La sezione di dichiarazione delle costanti 1.2 I tipi elementari Classificazione dei tipi Il tipo integer Il tipo boolean Editazione a cura di: de Pinto E.
DettagliFortran 90/95. G.Santoro
Fortran 90/95 G.Santoro Testi Consigliati: T.M.R.Ellis, I.R.Philips and T.M.Lahey FORTRAN 90 PROGRAMMING Addison-Wesley, 1994 L.P.Meissner FORTRAN 90 PWS Publishing Company, 1995 Intel Fortran Programmer
DettagliCapitolo 7 I puntatori in C
1 Capitolo 7 I puntatori in C 7.2 Dichiarazione e inizializzazione di puntatori Variabili puntatore Contengono gli indirizzi di memoria come valore Le normali variabili contengono uno specifico valore
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 16 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Informatica Università degli Studi di Milano 30 Aprile 2013 Progetto ed analisi di algoritmi: problemi
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
DettagliFortran. Introduzione.
Fortran Introduzione http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Esistono molti linguaggi di programmazione usati in vari
Dettagli