Laboratorio di Calcolo Numerico Laboratorio 2: Primi programmi in Fortran 90

Documenti analoghi
Laboratorio di Calcolo Numerico Laboratorio 2: Algoritmi Stabili

Laboratorio di Calcolo Numerico Laboratorio 4: Functions e metodo di Picard

Introduzione al sistema operativo Linux Un po di storia

Primi script in MATLAB

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili Programma gnuplot

Laboratorio di Calcolo Numerico Laboratorio 4: Grafici di convergenza e functions

Comandi principali di Linux (1)

Sviluppare un programma in FORTRAN

Cos'è Linux. Un sistema operativo : un insieme di programmi necessari per il funzionamento del computer e per il funzionamento di altri programmi.

BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX

14 - INTRODUZIONE AL SISTEMA OPERATIVO LINUX

Laboratorio di Calcolo Numerico Laboratorio 3: equazioni non lineari

Nozioni Base di Linux

Usare Python in Linux

Sperimentazioni di Fisica I mod A. Introduzione a Linux

Mirko Mariotti. March 9, 2009

Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME. Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set

Fortran in pillole : prima parte

Strutture di controllo e cicli

Shell: variabili di sistema. Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set

Istruzioni condizionali di diramazione in Fortran 90

Laboratorio di Calcolo Numerico Laboratorio 1: Introduzione

Esercizi in Python. Docente: Domenico Daniele Bloisi

Lab. di Sistemi Operativi - Esercitazione n 3 - a.a. 2016/2017. Script shell

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Usare Python in Linux

- Controllo di flusso: for -

Prima Esercitazione. Linux shell e linguaggio C

MATLAB Elementi di grafica Costrutti di programmazione

Esercizi d esame. Elena Tundo

Sei su un computer immaginario con sistema operativo Linux. La tua directory (cartella) corrente e : /home/utente/pianeti/saturno

e L equazione associata a questa disequazione non è risolvibile in maniera analitica, con metodi numerici 2 si trova n 1754, 21

Introduzione al MATLAB c Parte 2

Laboratorio 1: Usare Linux

Intro ad analisi. Alessandra Giordani Lunedì 5 marzo 2011

L utility Unix awk [Aho-Weinberger-Kernighan]

Esercitazione 1 la shell

Università degli Studi di Verona. Esercizi. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Avvio Avviare il computer facendo partire Linux (SL - Scientific Linux 6.3).

laboratorio di python

ESERCIZI DI TEORIA. MEMO I: Una variabile casuale gaussiana ha densita : MEMO II: Date n misure: x1, x2,, xn con relative incertezze: σ1, σ2,, σn

Avviare il sistema operativo Linux Debian su Macchina Virtuale (VM) Guida per VirtualBox & VMware

Costrutti condizionali e iterativi

Shell. Una shell di comandi ci consente, dunque, di eseguire tutte le operazioni di cui abbiamo bisogno!

Usare Python in Linux

Per visualizzare il valore di tutte le variabili d ambiente si usa il comando env

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

Lavoriamo ora in windows

Istruzioni per il controllo di ciclo - ciclo a condizione generica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

ESERCIZI DI TEORIA. MEMO I: Una variabile casuale gaussiana ha densita : MEMO II: Date n misure: x1, x2,, xn con relative incertezze: σ1, σ2,, σn

Costrutti condizionali e iterativi

Introduzione al sistema Linux

FORTRAN: LE STRUTTURE DI CONTROLLO

PROMEMORIA: Come creare, compilare ed eseguire programmi in Fortran 95

Modularizzazione del software

Esercitazione GNU/Linux n. 2

Laboratorio. Sistemi Operativi: Linux/Windows. Giovanni Da San Martino

Laboratorio Sistemi Operativi

Introduzione all'uso del sistema operativo Ubuntu

Programmazione Procedurale in Linguaggio C++

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005

II Esercitazione: S.O. & Fortran 77

Page 1. Programmazione. Shell e programmazione. File comandi (script) Introduzione alla programmazione nella shell di Unix

Introduzione a Linux Lezione 7 Programmare in Linux

Introduzione alla. Alessandra Giordani Lunedì 11 marzo

Il sistema operativo LINUX Esercitazione 3

Uso del terminale in ambiente UNIX

Lab. di Sistemi Operativi - Esercitazione n 2- - comando di ricerca: grep -

Linguistica Computazionale: esercitazioni

Corso Linux Base. 2. Uso del Sistema

4. L editor vi da linea comandi

NOTE PER UTILIZZO COMPILATORE FORTRAN CON LINUX

Risoluzione di un problema

Pseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p.

Istruzioni selettive: IF THEN

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 2 10/10/2012 Lezione 3 17/10/2012

Introduzione all uso dei laboratori aka Linux basics. October 23, 2013

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 2 10/10/2012 Lezione 3 17/10/2012

Laboratorio di Python

01 Terminale e file system

Laboratorio di Python

Python. Loriano Storchi.

Guida Linux. Molto rapida

Lezione 1. Programmazione. Lab di Programmazione. Linux e la sua shell: questi sconosciuti. Filippo Gaudenzi. Università degli Studi di Milano

Ing. Lorenzo Vismara

Laboratorio 1. 20/21 febbraio 2019

Laboratorio Programmazione Anno Lezione 3

unità didattica 3 Le strutture condizionali e le strutture iterative

INTRODUZIONE AL C++ CLASSIFICAZIONE

Come si accede a BASH Tasti utili: Ctrl-Alt-F1, Ctrl-Alt-F7. Il Primo comando : exit (CASE SENSITIVE!!) Si può uscire con CTRL-D

Introduzione all uso dei laboratori aka Linux basics.

Laboratorio 1. 15/16 marzo 2018

Lab. di Sistemi Operativi

Esplorare e modificare il file system Compilare con gcc Lanciare un programma da linea di comando

Linguaggi di programmazione

File System Unix. Generalità

Transcript:

Laboratorio di Calcolo Numerico Laboratorio 2: Primi programmi in Fortran 90 Andrea Franceschini E-mail: franceschini@dmsa.unipd.it Dispense: http://www.math.unipd.it/ putti/teaching/calcolo ambientale/index.html 10 Marzo 2015

Ambiente Linux: comandi essenziali ls ls -l ls -a pwd cd cd.. list: listadeifileedelledirectorypresentiinunadirectory [studente@pc ]$ ls list: lista dettagliata del contentuto di una directory [studente@pc ]$ ls -l list: lista di tutto il contenuto di una directory (anche nascosto) [studente@pc ]$ ls -a print working directory: indica la directory in cui ci si trova [studente@pc ]$ pwd change directory: percambiaredirectory [studente@pc ]$ cd nomedirectory change directory: pertornarealladirectorysuperiore [studente@pc ]$ cd..

Ambiente Linux: comandi essenziali mkdir rmdir cp mv mv rm make directory: per creare una nuova directory [studente@pc ]$ mkdir nomedirectory remove directory: per cancellare una directory (vuota) [studente@pc ]$ rmdir nomedirectory copy: per copiare un file [studente@pc ]$ cp nomefile1 nomefile2 move: per spostare un file [studente@pc ]$ mv nomefile nomedirectory move: per rinominare un file (ATTENZIONE) [studente@pc ]$ mv nomefileold nomefilenew remove: percancellareunfile [studente@pc ]$ rm nomefile

Primo programma Fortran90 Obiettivo: scrivere ed eseguire un programma in Fortran90 per la stampa sul terminale della frase hello world. Aprire l editor di testo gedit con il nome del file hw.f90 Scrivere il seguente testo nel file hw.f90: 1: program hw 2: write(*,*) hello world 3: end program hw Salvare il file e compilare scrivendo sul terminale: [studente@pc ]$ gfortran hw.f90 Eseguire il programma a.out : [studente@pc ]$./a.out

Editare un file fortran90 Aprire un terminale e digitare i seguenti comandi: [studente@pc ]$ mkdir laboratorio1 [studente@pc ]$ cd laboratorio1 Creare il file sorgente: [studente@pc laboratorio1]$ gedit hw.f90 [studente@pc ]$ ls hw.f90

Creare un eseguibile e lanciare un programma Compilare il file sorgente: [studente@pc laboratorio1]$ gfortran hw.f90 [studente@pc laboratorio1]$ ls a.out hw.f90 [studente@pc laboratorio1]$ rm a.out [studente@pc laboratorio1]$ gfortran hw.f90 -o hw.exe [studente@pc laboratorio1]$ ls hw.f90 hw.exe Eseguire il programma: [studente@pc laboratorio1]$./hw.exe

ATTENZIONE: Creare un eseguibile Per errore, può capitare di scrivere il comando [studente@pc laboratorio1]$ gfortran hw.f90 -o hw.f90 In qeusto caso il file sorgente viene perso Proviamo con una copia di hw.f90 [studente@pc laboratorio1]$ cp hw.f90 prova.f90 [studente@pc laboratorio1]$ ls hw.f90 hw.exe prova.f90 [studente@pc laboratorio1]$ gfortran prova.f90 -o prova.f90 [studente@pc laboratorio1]$ ls hw.f90 hw.exe prova.f90 [studente@pc laboratorio1]$ gedit prova.f90????????????

Esercizio 1 Scrivere un programma che valuti la funzione y =4x 3 3x 2 3 in un punto x. Ilpuntosceltoèx =3. La soluzione sarà y = 78. Come visto prima, si utilizza la sintassi del comando write per stampare a schermo il risultato di un operazione. Il comando diventa: 1: write(*,*) y =,y Si devono evitare i caratteri accentati. Se vogliamo scrivere qualcosa come Il risultato è, sievitalaè e la stringa diventa: 1: write(*,*) risultato =,y NOTA: Tutte le variabili sono reali e il programma si chiama eval1.f90.

Programma 1 1: program eval1 2: implicit none! Dichiarazione variabili 3: real 8::x,y 4: x = 3.d0 5:! La funzione da valutare e y = 4xˆ3-3xˆ2-3 6: y = 4.d0 * x**3-3.d0 * x**2-3.d0 7: write(*,*) risultato =,y 8: end program eval1

Esercizio 2 Scrivere un programma che valuti la stessa funzione y =4x 3 3x 2 3 in un punto letto in input. Si utilizza la sintassi del comando read: 1: read(*,*) x Esercizio 3 Scrivere un programma che valuti la solita funzione in n +1punti equispaziati nell intervallo I =[x min,x max ]: x 0 = x min,x 1 = x 0 + h,..., x n = x max, con h =(x max x min )/n. Considerare, per esempio, x min = 4, x max =6e n = 11. Serve utilizzare un ciclo do. Lasintassiè: 1: do i =1,n +1 2:... 3: end do

Programma 2 1: program eval2 2: implicit none! Dichiarazione variabili 3: real 8::x,y 4: write(*,*) Inserire il valore x 5: read(*,*) x 6:! La funzione da valutare e y = 4xˆ3-3xˆ2-3 7: y = 4.d0 * x**3-3.d0 * x**2-3.d0 8: write(*,*) risultato =,y 9: end program eval2

Programma 3 1: program eval3 2: implicit none! Dichiarazione variabili 3: integer :: n,i 4: real 8::x,y,xmin,xmax,h 5: n = 11 6: xmin = -4.d0 7: xmax = 6.d0 8:! Omogeneizzazione dell operazione (n reale) 9: h = (xmax - xmin) / float(n) 10: do i = 1,n+1 11: x = xmin + (i-1) * h 12:! La funzione da valutare e y = 4xˆ3-3xˆ2-3 13: y = 4.d0 * x**3-3.d0 * x**2-3.d0 14: write(*,*) La funzione vale y =,y, per x =,x 15: end do 16: end program eval3

Esercizio 4 Scrivere un programma che calcoli le radici reali x 1,x 2 di una equazione di secondo grado ax 2 + bx + c =0.Icoe cientia, b, c sono letti dal terminale. La sintassi per invocare il comando radice quadrata è: y = sqrt(x). Serve controllare che il discriminante sia positivo: si usa il costrutto if. 1: if (istruzione1) then 2:! Eseguito se istruzione1 è vera 3:... 4: else 5:! Eseguito se istruzione1 è falsa 6:... 7: end if

Programma 4 Sostituire le parti in rosso e scrivere le istruzioni per i vari casi if. 1: program radici 2: implicit none 3: real 8 :: a,b,c,delta,x1,x2 4: Input dati 5: delta = b**2-4.d0 * a * c 6: if (delta.gt. 0.d0) then! Esistono due soluzioni 7:... 8: else 9: if (delta.eq. 0.d0) then! Soluzioni coincidenti 10:... 11: else! Non esistono soluzioni 12:... 13: end if 14: end if 15: end program radici