DOCUMENTAZIONE A SUPPORTO DELLA PREPARAZIONE PER LA PROVA SCRITTA

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

Informatica (A-K) 5. Algoritmi e pseudocodifica

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

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

FORTRAN: LE STRUTTURE DI CONTROLLO

Fondamenti di Informatica

Strutture di controllo e cicli

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

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Costrutti condizionali e iterativi

Costrutti condizionali e iterativi

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

Corso di Fondamenti di Informatica prova del 26/03/2007

Fortran per Ingegneri

C. De Stefano Corso di Fondamenti di Informatica Università degli Studi di Cassino

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Il Linguaggio di Programmazione Pascal

COMPITO DI FONDAMENTI DI INFORMATICA Allievi Ingegneri Meccanici. Appello Straordinario del 05 Marzo 2007 ( )

INFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.2b: Programmazione in Pascal (1)

Istruzioni selettive: IF THEN

Laboratorio 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 ARRAY Problemi (calcolo della frequenza, trasposta, )

Appelli degli anni precedenti Domande di teoria

Gli ARRAY in FORTRAN 90

Vettori e Matrici (array)

Programmazione Procedurale in Linguaggio C++

ISTRUZIONI A B K A, B, K A<B? SI A<B? SI A<B? SI

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

COMPITO DI FONDAMENTI DI INFORMATICA Allievi Ingegneri Meccanici Appello Straordinario Mercoledì 18 Ottobre 2006 ( )

COMPITO DI FONDAMENTI DI INFORMATICA Allievi Ingegneri Meccanici. Appello dell 11 Febbraio 2008 ( )

Corso di Fondamenti di Informatica prova del 12/04/2007

Prof. Marco Masseroli

Modularizzazione del software

Esercitazioni di Elementi di Informatica

Linguaggio C++ 8. Matrici

Sviluppare un programma in FORTRAN

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Esercizio 2 (punti 3) Dire a quale numero decimale corrisponde il seguente numero assegnato in formato IEEE P754:

Corso di Fondamenti di Informatica prova del 08/01/2007

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY)

Istruzioni per il controllo di ciclo - ciclo a condizione generica

MATLAB Alcune funzioni utili: fprintf, length, size

Sommario FONDAMENTI DI INFORMATICA. File e Python. Gestione di file. LINGUAGGIO Python Gestione dei file

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Programmazione Procedurale in Linguaggio C++

a.a Codice corso: 21012

UD 3.2b: Programmazione in Pascal (1)

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

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

Scrittura «formattata» in Python FONDAMENTI DI INFORMATICA. Lettura/scrittura su file formattato. Più valori in formattazione

Ambienti di Programmazione per il Software di Base

Informatica (CIV) Appello 12 gennaio 2010

Informatica (CIV) Esercitazione su FORTRAN. Andrea Romanoni

LABORATORIO DI PROGRAMMAZIONE E CALCOLO Docente E. Carlini A.A. 2012/13 Foglio di esercizi N.8 con la collaborazione di Andrea Pugliese

Vettori e Matrici (array)

Laboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza

Fortran. Funzioni e Subroutine.

Introduction to modern Fortran

Strutture dati. Operatori di incremento e decremento. Strutture di dati. Strutture di dati. ++ e -- Esempi. Vettori e matrici.

Programmazione Procedurale in Linguaggio C++

Sommario FONDAMENTI DI INFORMATICA. File e Python. Gestione di file. LINGUAGGIO Python Gestione dei file

ESERCIZIO 3 - Scuola Sec. Primo Gr. - SQ Gara 1-17/18 ESERCIZIO 8 - Scuola Sec. Primo grado SQ. Gara 1-16/17

Esercitazione 4. Comandi iterativi for, while, do-while

Fondamenti di Informatica

Sommario FONDAMENTI DI INFORMATICA. File e Python. Gestione di file. LINGUAGGIO Python Gestione dei file

I file sequenziali in QBASIC

1. Calcolo dell indice di condizionamento di una matrice

Vettori e Matrici (array)

A.A. 2018/2019. Esercitazione 3 [Per Casa] Strutturazione del Codice Sorgente per la Risoluzione di Problemi mediante MATLAB

Programmazione A.A Fondamenti di programmazione. ( Lezione IX ) Notazione Lineare Strutturata. Prof. Giovanni Gallo Dr.

Problema: calcolare il massimo tra K numeri

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

Introduzione alla programmazione Esercizi risolti

Fondamenti di Informatica

Istruzioni condizionali di diramazione in Fortran 90

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio

Algoritmi, Strutture Dati e Programmi. UD 5.a: Searching (parte 1)

Appello di Fondamenti di Informatica 12/09/2017

Esercizi in Python. Docente: Domenico Daniele Bloisi

Corso di Informatica 1 (IN110) Tutorato n. 3

C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso.

Informatica A (Informatica Grafica) I Recupero

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

Laboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while)

Gli ARRAY in FORTRAN 90

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Totale

I tipi strutturati e i record in C++

CORSO DI LABORATORIO DI INFORMATICA

Introduzione al linguaggio Fortran 90

Esempio: quanto mi piace questo corso! qufuafantofo mifi pifiafacefe qufuefestofo coforsofo!

Elementi di Informatica e Programmazione

Laboratorio di Matematica e Informatica 1

Lab 04 Programmazione Strutturata"

Descrittori di formato

Transcript:

SECONDA UNIVERSITA DEGLI STUDI DI NAPOLI CORSI DI LAUREA IN INGEGNERIA AEROSPAZIALE E MECCANICA ELEMENTI DI PROGRAMMAZIONE a.a. 2009/10 Prof Andrea Prevete andrea@prevete.it DOCUMENTAZIONE A SUPPORTO DELLA PREPARAZIONE PER LA PROVA SCRITTA Di seguito è riportato il codice Fortran, quando necessario commentato, che realizza semplici operazioni aventi per oggetto interi, vettori e matrici. Gli esempi proposti hanno il solo scopo di mostrare alcune caratteristiche sintattiche e di uso del Fortran, propedeutiche per affrontare con successo la prova scritta d esame. E sicuramente un utile esercizio scrivere gli stessi programmi utilizzando il linguaggio C.! dopo aver letto da tastiera un array di interi, vengono sommati separatamente i positivi ed i negativi,! infine vengono mostrate su schermo le due somme così ottenute PROGRAM pos_neg INTEGER, PARAMETER :: n_elem=5 INTEGER, DIMENSION(n_elem) :: array INTEGER :: i, s_neg, s_pos! gli elementi sono immessi, separati da uno spazio,! su una stessa linea PRINT*, 'Inserisci i', n_elem,'valori dell''array:' READ*, (array(i), i=1, n_elem)! do implicito s_neg=0 s_pos=0 DO i=1,n_elem SELECT CASE (array(i)) CASE(:-1) s_neg=s_neg+array(i) CASE(1:) s_pos=s_pos+array(i) CASE DEFAULT exit END SELECT PRINT*, "La somma degli elementi positivi e':",s_pos

PRINT*, "La somma degli elementi negativi e':",s_neg! dopo aver letto da tastiera un array di interi, vengono determinati i valori massini e minimi,! quindi mostrati su schermo PROGRAM min_max INTEGER, PARAMETER :: n_elem=5 INTEGER, DIMENSION(n_elem) :: array INTEGER :: i INTEGER :: Min INTEGER :: Max PRINT*, 'Inserisci l''elemento', i,'dell''array:' READ*, array(i) min=array(1) max=array(1) DO i=2,n_elem IF (array(i)<min) THEN min=array(i) ELSE IF (array(i)>max) THEN max=array(i) PRINT*, "Il valore minimo dell'array e':",min PRINT*, "Il valore massimo dell'array e':",max! scambia fra di loro i valori! di due righe di una matrice PROGRAM swap INTEGER, PARAMETER :: row=4 INTEGER, PARAMETER :: col=3 INTEGER, DIMENSION(row, col) :: mtrc INTEGER :: p, q, i, j, temp

!definisco una matrice e la valorizzo direttamente nel codice!reshape mi permette di organizzare i valori secondo! le volute dimensioni della matrice mtrc= RESHAPE((/ 1,2,3,4,5,6,7,8,9,10,11,12 /),(/ row,col /)) PRINT*, "immetti due indici di riga fra 1 e", row DO i= 1, row print*, (mtrc(i, j), j=1, col) READ*, p READ*, q DO j=1, col temp=mtrc(p, j) mtrc(p, j)=mtrc(q, j) mtrc(q, j)=temp DO i= 1, row print*, (mtrc(i, j), j=1, col) PRINT*, "fine processo"! dopo aver chiesto all'utente di immettere da tastiera fino ad! top (parametro del programma) interi positivi, riconoscendo lo! 0 come fine sequenza,! il programma mostra la sequenza a video! in ordine inverso rispetto all'immissione! ed organizzata in 2 colonne PROGRAM stampa_reverse INTEGER, PARAMETER :: top=10 INTEGER, DIMENSION(top+1) :: elenco INTEGER :: i PRINT*, "immetti fino a", top, "interi positivi, 0 per terminare" i=1! ciclo lettura DO PRINT*, "intero n.ro", i READ*, elenco(i) IF (elenco(i) == 0) THEN i=i-1 EXIT END IF IF (i == top) THEN

EXIT i=i+1! ciclo scrittura DO IF (i < 2) THEN IF (I == 1) THEN WRITE(*,'(i5)'), elenco(1) EXIT END IF WRITE(*,'(2i5)'), elenco(i), elenco(i-1) i=i-2 PRINT*, "fine processo"! dopo aver letto da tastiera una sequenza di interi! viene determinata la posizione del primo minimo! e quella dell'ultimo massimo.! Quindi vengono restituiti i valori del min e del max,! infine la sequenza di interi compresa fra le posizioni prima! determinate PROGRAM damin_amax INTEGER, PARAMETER :: n_elem=6 INTEGER, DIMENSION(n_elem) :: array INTEGER :: i INTEGER :: pmin!posizione del min nel vettore INTEGER :: pmax!posizione del max nel vettore PRINT*, 'Inserisci i',n_elem,'valori dell''array:' DO i=1,n_elem READ*, array(i) pmin=1 pmax=1 DO i=2,n_elem IF (array(i) < array(pmin)) THEN pmin=i ELSE IF (array(i) >= array(pmax)) THEN pmax=i

PRINT*, "Il valore minimo dell'array e':",array(pmin) PRINT*, "Il valore massimo dell'array e':",array(pmax) PRINT*, "La sequenza in input compresa fra minimo e massimo Š:" PRINT*, (array(i), i=pmin, pmax)! do implicito! dopo aver letto da tastiera una matrice di interi! viene calcolata la somma degli elementi! sulla diagonale principale e quella degli elementi! sulla diagonale secondaria.! Poi questi valori sono rispettivamente sommati e! sottratti a tutti gli elementi della! matrice non diagonali.! Infine viene mostrata in output! la nuova matrice PROGRAM DiagP_DiagS INTEGER, PARAMETER :: n_elem=3 INTEGER, DIMENSION(n_elem, n_elem) :: matr INTEGER :: i, j INTEGER :: diagp=0!somma degli interi sulla diagonale principale INTEGER :: diags=0!somma degli interi sulla diagonale secondaria PRINT*, 'Inserisci i',n_elem,'interi della riga', i, "della matrice:" READ*, (matr(i, j), j=1, n_elem)! do implicito diagp=diagp+matr(i,i) diags=diags+matr(i, n_elem+1-i) DO j=1,n_elem IF ((i /= j).and. (i /= n_elem+1-j)) THEN matr(i, j)=matr(i, j) + diagp - diags END IF PRINT*, "La nuova matrice Š:"

PRINT*, (matr(i, j), j=1, n_elem)! do implicito