ARRAY. Fortran 90[/95] ARRAY: dichiarazione. Esempio (arraybase.f90) ARRAY: inizializzazione. ARRAY: inizializzazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "ARRAY. Fortran 90[/95] ARRAY: dichiarazione. Esempio (arraybase.f90) ARRAY: inizializzazione. ARRAY: inizializzazione"

Transcript

1 Fortran 9[/95] M. Bianco ARRAY Un array è una sequenza di variabili di uno stesso tipo identificate da un nome Queste variabili vengono memorizzare in posizioni contigue di memoria Si può accedere a una di queste variabili in modo diretto tramite un indice (o una n-upla di indici) a() a(2) a(3) a(4) a(5) a(6) a(7) Esempio (arraybase.f9) INTEGER, DIMENSION() :: a INTEGER :: i DO i, a(i)2i-!i primi numeri dispari DO i2, a(i)a(i)a(i-)! Somma primi i dispari WRITE (, '(X,"a(",I3,") ",I5)') i, a(i) ARRAY: dichiarazione TIPO, DIMENSION(<const>) :: nome, nome2 <const> deve essere un intero costante o parameter Esempi: integer, dimension() :: a integer, parameter :: max55 real, dimension(max) :: r logical, dimension(4) :: logic complex, dimension(max) :: comp character(6),dimension(8) :: nomi ARRAY: inizializzazione do i, a(i)! Iniz. uno alla volta r.! Tutto r diventa nullo logic(/.true.,.false., &.true.,.false. /) ARRAY: inizializzazione Per gli elementi degli array valgono le stesse regole delle variabili integer, dimension() :: a do i, write (,) a(i)! Valori "casuali" Ogni elemento di un array è una variabile!

2 ARRAY: rango Gli array possono avere più indici (dimensioni) integer, dimension(,4,5) :: a Il rango di un array è il numero di dimensioni dell array stesso do i, do j,4 do k,5 write (,) a(i,j,k)! Rango 3 ARRAY Gli indici degli array possono avere diversi valori di minimo e massino integer, dimension(3:,-4:5) :: a do i3,, do j-4,5, write (,) a(i,j)! Rango 2 Gli array in memoria Gli array in memoria akind(<tipo>) a() akind(<tipo>) a(2) a2kind(<tipo>) a(3) <tipo>, dimension(n)::a Indichiamo con a l indirizzo del primo elemento del array a Indichiamo con KIND(<tipo>) il numero di byte occupati da un elemento di a L i-esimo elemento di a si a(n-2)kind(<tipo>) a(n-) trova nell indirizzo a(i-)kind(tipo) a(n-)kind(<tipo>) a(n) a(,) a(2,) a(3,) a(4,) a(,2) a(2,2) a(3,2) a(4,2) a(,3) a(2,3) a(3,3) a(4,3) <tipo>, dimension(n,m)::a Nell esempio n4 e m3 L elemento in riga i e colonna j (a(i,j)) di a ha indirizzo a((j-)ni-)kind(tipo) Esempio: sia l indirizzo di a(,) sia. Calcoliamo l indirizzo di a(3,2): (42)424 Gli array in memoria Esempio: crivello di Eratostene <tipo>, dimension(n,m)::a Nell esempio n4 e m3 L elemento in riga i e colonna j (a(i,j)) di a ha indirizzo a((j-)ni-)kind(tipo) Esempio: sia l indirizzo di a(,) sia. Calcoliamo l indirizzo di a(3,2): (42)424 Metodo per trovare i numeri primi tra 2 e n Osservazione: i multipli di un numero non possono essere primi Se etichetto i numeri multipli di un numero come non-primi non serve valutarne la primalità quando li incontro Se ho già considerato tutti i numeri fino a k e k non è stato marcato come non-primo, posso dire se k è primo o no? 2

3 Esempio: crivello di Eratostene Metodo per trovare i numeri primi tra 2 e n Osservazione: i multipli di un numero non possono essere primi Se etichetto i numeri multipli di un numero come non-primi non serve valutarne la primalità quando li incontro Se ho già considerato tutti i numeri fino a k e k non è stato marcato come non-primo allora k è primo! (Non è multiplo di nessuno dei numeri precedenti) Esempio dell esempio 2,3,4,5,6,7,8,9,,,2,3,4,5,6,7,8,9,2,2,22,23,24,25 2,3,4,5,6,7,8,9,,,2,3,4,5,6,7,8,9,2,2,22,23,24,25 2,3,4,5,6,7,8,9,,,2,3,4,5,6,7,8,9,2,2,22,23,24,25 2,3,4,5,6,7,8,9,,,2,3,4,5,6,7,8,9,2,2,22,23,24,25 2,3,4,5,6,7,8,9,,,2,3,4,5,6,7,8,9,2,2,22,23,24,25 2,3,4,5,6,7,8,9,,,2,3,4,5,6,7,8,9,2,2,22,23,24,25 2,3,4,5,6,7,8,9,,,2,3,4,5,6,7,8,9,2,2,22,23,24,25 2,3,4,5,6,7,8,9,,,2,3,4,5,6,7,8,9,2,2,22,23,24,25 2,3,4,5,6,7,8,9,,,2,3,4,5,6,7,8,9,2,2,22,23,24,25 2,3,4,5,6,7,8,9,,,2,3,4,5,6,7,8,9,2,2,22,23,24,25 Implementazione Fissato n dobbiamo poter marcare i numeri da 2 a n come primi o non-primi Dobbiamo esaminare i numeri in ordine e se incontriamo un numero primo dobbiamo marcare tutti i successivi multipli come numeri primi Se incontro un numero non-primo non faccio nulla Come deve essere la marcatura iniziale? Alla fine stampo solo i numeri marcati Implementazione Usiamo un array LOGICAL per sapere se un numero (di indice) i è primo o no Serve un limite superiore al valore di n per creare questo array integer, parameter :: MAXN22 integer :: n! input al programma:! numeri primi tra 2 e n integer :: i,j! variabili di ciclo logical, dimension(2:maxn) :: mark! mark(i) contiene.true. se i e`! Primo write (,) "Inserire il valore di n" read (,) n if (n>maxn) STOP n troppo alto (>M)" Mark.true.! Inizializzazione di Mark! Esegue il crivello do i2,n! Bastava n/2 if (mark(i)) then! se mark(i) e` vero i e`! primo! do j2i,n,i! marca tutti i multipli di! i<n come non-primi mark(j).false. end if! Ciclo di stampa do i2,n if (mark(i)) write(,)"numero", i, "primo" 3

4 DO implicito Inizializzare gli array integer, dimension(4) :: v& (/, 3, 56, 5 /) Cosa fare se la dimensione cresce molto? integer :: dimension() :: & v2 (/ (3, i,) /) integer :: dimension() :: & v3 (/ (2i-, i,) /) v() v(2)3 v(3)56 v(4)5 Risultato v2()3 v2(2)3 v2(3)3 v2(998)3 v2(999)3 v2()3 v3() v3(2)3 v3(3)5 v3(4)7 v3(998)995 v3(999)997 v3()999 DO impliciti annidati Si possono annidare più cicli uno nell altro v (/ ((, i,4), 5j, j,5) /) v,,,,5,,,,,,,,,,5, Cercheremo di non usarli Write con do impliciti Write (,) (2i-, i,5) Stampa: Write (,) a Equivale a: Write (,) a(), a(2),, a() Write (,) (a(i), i,,3) Equivale a: Write (,) a(), a(4), a(7), a() Write (,) (a(i), i,,3) FORMAT (X, 4I6) Identico a: Write (,) a(), a(4), a(7), a() INDICI FUORI RANGE integer :: dimension(4) :: v& (/, 3, 56, 5 /) Quanto vale v()?! Può succedere di tutto! Alcuni compilatori fanno il controllo degli indici gfortran e g95 non lo fanno (sono ancora giovani ) Il debug può essere molto difficile!!! Consiglio Definire le dimensioni degli array usando variabili di tipo parameter, a meno che il programma non sia davvero molto semplice Evita di dover cambiare molte righe di codice nel caso in cui si debbano ridimensionare le strutture dati integer, parameter:: max55, min5 real, dimension(min:max) :: r 4

5 ARRAY: assegnazione Se due array hanno lo stesso rango e gli stessi indici possiamo usare una assegnazione diretta integer, dimension(3:,-4:5) :: a, b integer, dimension(3:9,-2:5) :: c ab! OK! cb! ERRORE DI COMPILAZIONE a e b hanno lo stesso shape (forma), b e c invece no! La forma non cambia se cambiano i range Esempio integer, dimension(3:9) :: a, b integer, dimension(3:8) :: c integer, dimension(:7) :: d abd! OK! dca! ERRORE DI COMPILAZIONE ab! OK! Due array hanno la stessa forma se le varie dimensioni coincidono a e d hanno lo stesso shape ma range diversi Esempio Esempio a(3) b(3) d() d() c(3) a(3) a(4) a(5) b(4) b(5) d(2) d(3) d(2) d(3) c(4) c(5) a(4) a(5) a(6) b(6) d(4) d(4) c(6) a(6) a(7) b(7) d(5) d(5) c(7) a(7) a(8) b(8) d(6) d(6) c(8) a(8) a(9) b(9) d(7) d(7) a(9) Esempio Funzioni di elemento a(3) a(4) a(5) a(6) a(7) a(8) a(9) b(3) b(4) b(5) b(6) b(7) b(8) b(9) Con funzione di elemento si intendono quelle funzioni che possono essere applicate a ogni elemento dei vettori come a valori scalari Le somme e i prodotti delle slide precedenti possono essere visti come dei casi particolari Anche sin(), cos(), abs(), etc. possono essere applicate a vettori bsin(a) calcola i seni di tutti gli elementi di a, dove b deve avere lo stesso shape di a. 5

6 Esempio integer :: dimension(4) :: v& (/, -3, 56, -5 /) write (,) abs(v)! Stampa In appendice A del libro, le funzioni indicate come funzione di elemento possono essere applicate ad array! Sottoarray Usando una sintassi simile a molti linguaggi di tipo scientifico (e.g. MATLAB) si possono specificare porzioni di array Sia b<e a(b:e:s) è un array che contiene solo gli elementi i cui indici sono b, bs, b2s,, bks, dove bks<e e b(k)s>e Esempio a(/, 3, 6, 7, 2, 4, 3 /) Write (,) a(2:6:3) stampa 3 2 Write (,) a(2:6) stampa Write (,) a(2::2) stampa Write (,) a(:3) stampa 3 6 Esempio Integer :: i3, j6 a(/, 3, 6, 7, 2, 4, 3 /) Write (,) a(i:j:2) stampa 6 2 Write (,) a(2:j:i) stampa 3 2 Write (,) a(i:) stampa Indici vettoriali INTEGER, dimension(5) :: vett & (/, 6, 4,, 9 /) real, dimension() :: a & (/.,., 2., 3., 4., 5.&, 6., 7., 8., 9. /) real, dimension(5) :: b ba(vett) bconterrà: [., 5., 3.,., 8.] Indici vettoriali INTEGER, dimension(5) :: vett & (/, 6, 4,, 9 /) real, dimension() :: a & (/.,., 2., 3., 4., 5.&, 6., 7., 8., 9. /) real, dimension(5) :: b a(vett)b ERRORE IN COMPILAZIONE!! 6

7 Mark.true.! Inizializzazione di Mark! Esegue il crivello do i2,n! Bastava n/2 if (mark(i)) mark(2i:n:i).false.! Ciclo di stampa do i2,n if (mark(i)) write(,)"numero", i, "primo" Somma dispari In quanti modi si può calcolare la somma dei primi n numeri dispari? Quello che serve in ogni caso è un ciclo che enumeri i numeri dispari per ogni possibile valore di n Se n fosse fissato a priori (non un input al problema) si potrebbe calcolare il risultato senza usare un ciclo: 357 Modo s DO i,n ss2i-! 2i- i-esimo numero dispari Modo 2 s DO i,2n-,2 ssi! i e` l i-esimo numero dispari s i DO ss2i- ii IF (i>n) EXIT Modi 3 e 4 s i DO ii ss2i- IF (in) EXIT s i DO ssi ii2 IF (i>2n-)& EXIT Modi 5 e 6 s s i i- DO ii2 ssi IF (i2n-)& EXIT 7

8 Modo 7 s i Alternativamente: DO IF ((i/2)2i) THEN ii IF (MOD(i,2)) THEN ssi! I e` dispari!! nn-! Quanti numeri mancano? IF (n) EXIT END IF Modo 8 s n2n-! n-esimo numero dispari DO ssn nn-2 IF (n-) EXIT Modo 9 (sommadispariancora.f9) Modo 9 integer, dimension(5) :: a& (/ (2i-, i,5) /)! (/ (i, i,9,2) /) write (,'(I4,/)') a write (,) '-----' a(2:5)a(2:5)a(:4) write (,('(I4,/)')) a La somma tra due array non corrisponde a un ciclo DO eseguito elemento per elemento, ma è come se si creassero due array temporanei e se ne calcolasse la somma. Il risultato viene assegnato all array di destinazione! Modo 9 (sommadispariancora.f9) integer, dimension(5) :: a& (/ (2i-, i,5) /)! (/ (i, i,9,2) /) write (,'(I4,/)') a write (,) '-----' a(2:)a(2:)a(:4) write (,('(I4,/)')) a Qual è il valore in r dopo l esecuzione delle seguenti istruzioni se r è REAL? r(2/3)4. 8

9 Qual è il valore in r dopo l esecuzione delle seguenti istruzioni se r è REAL? r(2/3.)45/3 Qual è il valore in r dopo l esecuzione delle seguenti istruzioni se r è REAL? r(2/3.)45/3 r(2./3.)4 Qual è il valore in r dopo l esecuzione delle seguenti istruzioni se r è REAL? r(2/3.)45/3 r(2./3.)4 r Qual è il valore in r dopo l esecuzione delle seguenti istruzioni se r è REAL? r(2/3.)45/3 r(2./3.)4 r r r r3.666 Se a vale 6 e b vale -7, quale valore hanno le seguenti espressioni logiche? (a>b).and. (a-b<b-a) (a>b).or. (a-b<b-a) (mod(a,3).and..not.mod(b,3)) Convertire i seguenti numeri in binario Convertire i seguenti numeri in decimale 9

10 LSB Numero Risultato: LSB Numero Risultato: LSB Numero Risultato: LSB Numero Risultato: LSB Numero Risultato: LSB Numero Risultato:2

11 Variazione Dato un numero b: Si consideri b come base numerica Si fornisca in output un istogramma che dica quante volte la cifra i del sistema numerico in base b appare come ultima cifra di un numero primo (tra 2 e n) Variazione Dato un numero b: Si consideri b come base numerica Si fornisca in output un istogramma che dica quante volte la cifra i del sistema numerico in base b appare come ultima cifra di un numero primo (tra 2 e n) Il valore dell ultima cifra di un numero n in base b è il resto della divisione di n per b MOD(n,b) Implementazione Dato un numero primo se ne calcola il valore dell ultima cifra in base b Il numero di primi con quella cifra finale viene incrementato si uno! Serve un array indicizzato con le cifre finali che contenga il numero di volte in cui una cifra appare come ultima cifra integer, parameter :: MAXN22 integer :: n! input al programma:! numeri primi tra 2 e n integer :: i,j! variabili di ciclo logical, dimension(2:maxn) :: mark! mark(i) contiene.true. se i e`! Primo integer, parameter :: MAXC5 integer, dimension(maxc) :: istogramma! istogramma che dice quante volte! la cifra i appare come ultima! cifra di un numero primo write (,) "Inserire il valore di n" read (,) n if (n>maxr) STOP n troppo alto (>M)" write (,) "Inserire il valore della base numerica" read (,) cifre if (cifre>maxc) STOP "b troppo alto! inizializza l'istogramma:! bastava istogramma do i,cifre istogramma(i)! Esegue il crivello do i2,n! Bastava n/2 if (mark(i)) then! se mark(i) e`! vero i e` primo! do j2i,n,i! marca tutti i! multipli di i<n! come non-primi mark(j).false. end if

12 ! Ciclo di stampa j! Conta i numeri primi trovati do i,n if (mark(i)) then! MOD(i,cifre) valore! dell ultima! cifra in base (cifra) istogramma(mod(i,cifre))& istogramma(mod(i,cifre)) jj end if! stampa il report write (,) "Sono stati trovati", & j, "numeri primi" write (,) "Istogramma:" do i,cifre write (,) "Cifra", i, "appare", istogramma(i), "volte" 2

Array 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. 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

Dettagli

Vettori e Matrici (array)

Vettori 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

Dettagli

Vettori e Matrici (array)

Vettori 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.

Dettagli

Fortran per Ingegneri

Fortran per Ingegneri Fortran per Ingegneri Lezione 4 A.A. 2014/2015 Marco Redolfi marco.redolfi@unitn.it Simone Zen simone.zen@unitn.it Formati e Formattazione Finora abbiamo letto valori da tastiera e scritto sullo schermo

Dettagli

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

Breve 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...

Dettagli

Tipi derivati. Fortran 90[/95] Esempio. Tipi strutturati. Istanziazione e accesso. Esempio

Tipi 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,

Dettagli

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

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili Programma gnuplot Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili Programma gnuplot Andrea Franceschini E-mail: franceschini@dmsa.unipd.it Dispense: http://www.math.unipd.it/ putti/teaching/calcolo

Dettagli

Sviluppare un programma in FORTRAN

Sviluppare 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,

Dettagli

Introduzione Generalitá sull uso degli array Array allocabili Funzioni intrinseche. Array. Fondamenti di Informatica T (A-K) AA

Introduzione 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

Dettagli

Linguaggio C: Array Valeria Cardellini

Linguaggio C: Array Valeria Cardellini Linguaggio C: Array Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Array in C q Dichiarazione

Dettagli

Appelli degli anni precedenti Domande di teoria

Appelli 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

Dettagli

Corso di Fondamenti di Informatica Università degli Studi di Cassino

Corso di Fondamenti di Informatica Università degli Studi di Cassino Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono l algoritmo Cominciamo ad analizzare la

Dettagli

Vettori e Matrici (array)

Vettori 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

Dettagli

Programmare con MATLAB c Parte 5 Cicli: for e while

Programmare con MATLAB c Parte 5 Cicli: for e while Programmare con MATLAB c Parte 5 Cicli: for e while Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 La notazione due punti 2 Ciclo: for 3 Ciclo con controllo: while

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 24 settembre 2007 Outline 1 M-file di tipo Script e Function Script Function 2 Elementi di programmazione

Dettagli

del Linguaggio C Istruzioni di iterazione

del Linguaggio C Istruzioni di iterazione Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

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

Algoritmi, 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

Dettagli

Costrutti condizionali e iterativi

Costrutti condizionali e iterativi Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Controllo >> Sommario Sommario Ricapitolazione Alcune

Dettagli

Costrutti condizionali e iterativi

Costrutti condizionali e iterativi Costrutti condizionali e iterativi Introduction to modern Fortran Paolo Ramieri, CINECA Maggio 2017 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle

Dettagli

Iterazione indeterminata

Iterazione indeterminata Iterazione indeterminata In alcuni casi il numero di iterazioni da effettuare non è noto prima di iniziare il ciclo, perché dipende dal verificarsi di una condizione. Esempio: Leggere una sequenza di interi

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile

Dettagli

Problema. Vettori e matrici. Vettori. Vettori

Problema. Vettori e matrici. Vettori. Vettori e matrici Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Problema Si vuole un programma che chieda 10 numeri dalla tastiera e li visualizzi dall ultimo al primo Soluzione attuale (con le

Dettagli

Qualsiasi programma in C++ segue lo schema: Variabili

Qualsiasi programma in C++ segue lo schema: Variabili Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Strutture di controllo condizionali in Matlab

Strutture di controllo condizionali in Matlab Strutture di controllo condizionali in Matlab Informatica B Le strutture condizionali A cosa servono le strutture condizionali? %Inserimento dei parametri della parabola: y=ax^2+bx+c a = input( inserire

Dettagli

Dott. R. Gori, Dott. A. Rama INFORMATICA 242AA a.a. 2011/12 pag. 1. Le istruzioni iterative permettono di ripetere determinate azioni più volte:

Dott. R. Gori, Dott. A. Rama INFORMATICA 242AA a.a. 2011/12 pag. 1. Le istruzioni iterative permettono di ripetere determinate azioni più volte: Leggere 5 interi, calcolarne la somma e stamparli. Variante non accettabile: 5 variabili, 5 istruzioni di lettura, 5... int i1, i2, i3, i4, i5; scanf("%d", &i1):... scanf("%d", &i5); printf("%d", i1 +

Dettagli

I tipi strutturati e i record in C++

I tipi strutturati e i record in C++ I tipi strutturati e i record in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre

Dettagli

Università degli Studi di Ferrara

Università degli Studi di Ferrara Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018 2019 Programmazione Lezione 19 Controllo di Flusso in MATLAB Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni

Dettagli

Un ripasso di aritmetica: Rappresentazione decimale - limitazioni

Un ripasso di aritmetica: Rappresentazione decimale - limitazioni Un ripasso di aritmetica: Rappresentazione decimale - limitazioni Consideriamo la base dieci: con tre cifre decimali si possono rappresentare i numeri compresi tra 0 e 999, il numero successivo (1000)

Dettagli

Matrici. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Matrici. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

Stringhe in C. Alessandra Giordani Lunedì 23 aprile 2012

Stringhe in C. Alessandra Giordani Lunedì 23 aprile 2012 Stringhe in C Alessandra Giordani agiordani@disi.unitn.it Lunedì 23 aprile 2012 http://disi.unitn.it/~agiordani/ Stringhe Sono particolari array: Ogni elemento del vettore è di tipo char La stringa è terminata

Dettagli

Fortran in pillole : prima parte

Fortran in pillole : prima parte Fortran in pillole : prima parte Annamaria Mazzia Dipartimento di Metodi e Modelli Matematici per le Scienze Applicate Corso di Metodi Numerici per l Ingegneria Introduzione al Fortran Un libro consigliato

Dettagli

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

I 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

Dettagli

Il primo programma C++

Il primo programma C++ Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida

Dettagli

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

Algoritmi, Strutture Dati e Programmi. UD 5.a: Searching (parte 1) Algoritmi, Strutture Dati e Programmi : Searching (parte 1) Prof. Alberto Postiglione AA 2007-2008 Ricerca di un'informazione in una tabella Determinare se una parola X è presente in un dizionario (cioè

Dettagli

La codifica dei numeri

La codifica dei numeri La codifica dei numeri La rappresentazione dei numeri con il sistema decimale può essere utilizzata come spunto per definire un metodo di codifica dei numeri all interno degli elaboratori: la sequenza

Dettagli

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

MATLAB c. Lucia Gastaldi Dipartimento di Matematica  Lezione 4 (15 ottobre 2003) MATLAB c M-file. Lucia Gastaldi Dipartimento di Matematica http://dm.ing.unibs.it/gastaldi/ Lezione 4 (15 ottobre 2003) Esercizio Problema 3: la successione di funzioni f n (x) = (x 2 x) n per 0 x 1 è

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Assegnazione di una variabile

Assegnazione di una variabile Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile

Dettagli

Istruzioni condizionali di diramazione in Fortran 90

Istruzioni 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

Dettagli

La sezione di dichiarazione delle costanti 1.2 I tipi elementari Classificazione dei tipi Il tipo integer Il tipo boolean

La 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.

Dettagli

Esercizi in Python. Docente: Domenico Daniele Bloisi

Esercizi in Python. Docente: Domenico Daniele Bloisi Esercizi in Python Docente: Domenico Daniele Bloisi http://profs.scienze.univr.it/~bloisi/asl/asl.html Esercizio 1 Utilizzare il linguaggio di programmazione Python per stampare a video la scritta "prima

Dettagli

Array. Aggragati di variabili omogenee...

Array. Aggragati di variabili omogenee... Array Aggragati di variabili omogenee... Cosa è un array È un insieme di variabili omogenee identificato da un indice, ad esempio Se devo leggere 1 numeri dallo standard input e memorizzarli all'interno

Dettagli

I tipi di dato del Fortran

I tipi di dato del Fortran I tipi di dato del Fortran In Fortran sono disponibili 5 tipi di dato (tipi primitivi o predefiniti): INTEGER REAL COMPLEX CHARACTER LOGICAL tipi numerici tipi non numerici Non considereremo il tipo COMPLEX

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

Gli ARRAY in FORTRAN 90

Gli ARRAY in FORTRAN 90 ELEMENTI DI PROGRAMMAZIONE Gli ARRAY in FORTRAN 90 Andrea Prevete, UNINA2 INGEGNERIA MECCANICA/AEROSPAZIALE, a.a. 2012/13 Un ARRAY è un AGGREGATO di più DATI dello stesso TIPO (interi, reali, etc), ognuno

Dettagli

Istruzioni iterative. Istruzioni iterative

Istruzioni iterative. Istruzioni iterative Istruzioni iterative Esempio: Leggere 5 interi, calcolarne la somma e stamparli. Variante non accettabile: 5 variabili, 5 istruzioni di lettura, 5... int i1, i2, i3, i4, i5; scanf("%d", &i1):... scanf("%d",

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016

Dettagli

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

C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Non sappiamo a priori quante variabili dobbiamo definire per contenere gli interi.

Dettagli

Strutture di controllo e cicli

Strutture 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

Dettagli

Variabili strutturate

Variabili strutturate Esempio Ordinamento crescente di numeri: 25 7 I passo: 25 7 25 7 7 25 7 25 Variabili strutturate in due scambi 25 è stato portato al suo posto Gli array II passo: 7 25 7 25 7 25 in uno scambio 7 è stato

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi

Dettagli

Corso di PHP. Prerequisiti. 3 - Le strutture di controllo. Istruzioni semplici Controllo del flusso di programma

Corso di PHP. Prerequisiti. 3 - Le strutture di controllo. Istruzioni semplici Controllo del flusso di programma Corso di PHP 3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Controllo del flusso di programma 2 1 Introduzione In molti casi le sole istruzioni viste finora non sono sufficienti a risolvere

Dettagli

INFORMATICA. Strutture iterative

INFORMATICA. Strutture iterative INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale

Dettagli

Breve guida al linguaggio FORTRAN 77

Breve 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,

Dettagli

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 1 Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza Le relazioni tra tipi I costrutti selettivi Le istruzioni iterative Un problema (uso di istruzioni iterative) Editazione

Dettagli

Aritmetica in Floating Point

Aritmetica in Floating Point Aritmetica in Floating Point Esempio di non associatività Alcune proprietà delle operazioni in aritmetica esatta possono non valere in aritmetica finita in virgola mobile (floating point). Ad esempio:

Dettagli

PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii

PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii Sommario PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 1.1 Introduzione...

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017

Dettagli

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

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Il Linguaggio di Programmazione Pascal INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : Programmazione in Pascal (1) PROGRAMMAZIONE: Introduzione al Pascal (1) 14 nov 2011 Dia 2

Dettagli

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

Laboratorio di Calcolo Numerico Laboratorio 4: Functions e metodo di Picard Laboratorio di Calcolo Numerico Laboratorio 4: Functions e metodo di Picard Andrea Franceschini E-mail: franceschini@dmsa.unipd.it Dispense: http://www.math.unipd.it/ putti/teaching/calcolo ambientale/index.html

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Strutture di Controllo

Strutture di Controllo Strutture di Controllo Istruzioni condizionali e cicli http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Fino ad ora, il nostro

Dettagli

Laboratorio di Calcolo Numerico Laboratorio 8: Vettori e Matrici

Laboratorio di Calcolo Numerico Laboratorio 8: Vettori e Matrici Laboratorio di Calcolo Numerico Laboratorio 8: Vettori e Matrici Claudia Zoccarato E-mail: claudia.zoccarato@unipd.it Dispense: Moodle Dipartimento ICEA 03 Maggio 2017 Richiami In MATLAB, ogni variabile

Dettagli

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Dettagli

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Linguaggio Testuale E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Delle volte viene chiamato metalinguaggio, e l algoritmo scritto tramite

Dettagli

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A Esercizi di MatLab Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, AA 2017 2018 Gli esercizi sono divisi in due gruppi: fondamentali ed avanzati I primi sono

Dettagli

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

INFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.2b: Programmazione in Pascal (1) INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : Programmazione in Pascal (1) PROGRAMMAZIONE: Introduzione al Pascal (1) 14 nov 2011 Dia 2

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 3 - Array Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Dichiarazione di variabili

Dichiarazione di variabili Dichiarazione di variabili ESEMPIO: somma di due numeri

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza. Il tipo ARRAY Problemi (calcolo della frequenza, trasposta, )

Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza. Il tipo ARRAY Problemi (calcolo della frequenza, trasposta, ) Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza Il tipo ARRAY Problemi (calcolo della frequenza, trasposta, ) Editazione a cura di Bombini T., De Candia P. e Galantino

Dettagli

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati 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

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Il linguaggio assemblativo MIPS (1) Istruzioni di ALU: operazioni ed operandi Trasferimenti tra memoria e CPU Vettori (1) Le costanti Livelli di astrazione s o f t w a r e H W Linguaggio

Dettagli

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 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

Dettagli

Ing. Lorenzo Vismara

Ing. Lorenzo Vismara Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&&#2! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)&#7& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T -Struttura vettore 0/08/0 Prerequisiti Programmazione elementare Passaggio parametri per indirizzo 0/08/0 Introduzione I dati di tipo semplice (Intero, Reale, Carattere, Booleano)

Dettagli

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione Array Tipi di dato semplici e strutturati i tipi di dato visti finora erano tutti semplici: int, char, float,... i dati manipolati sono spesso complessi (o strutturati) con componenti elementari o strutturate

Dettagli

Introduzione al C. Unità 7 Array. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi

Introduzione al C. Unità 7 Array. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 7 Array S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi Sommario Unità

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano

Dettagli

Efficienza: esempi. Nella lezione precedente. Fondamenti di Informatica. Ferdinando Cicalese. ! Qualche problema computazionale

Efficienza: esempi. Nella lezione precedente. Fondamenti di Informatica. Ferdinando Cicalese. ! Qualche problema computazionale Efficienza: esempi Fondamenti di Informatica Ferdinando Cicalese Nella lezione precedente! Qualche problema computazionale " Trova min " Selection sort! Pseudocodice per descrivere algoritmi " Variabili

Dettagli

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;

Dettagli

ESPRESSIONI. Ivan Lanese

ESPRESSIONI. Ivan Lanese ESPRESSIONI Ivan Lanese Argomenti Espressioni Spaziatura e commenti Per domani Domani sarete divisi in 2 gruppi Il gruppo coi portatili qui in aula Controllate di essere in grado di avviare Eclipse sul

Dettagli

Array. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali

Array. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali MASTER Information Technology Excellence Road (I.T.E.R.) Array Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di dato stutturati In C si possono

Dettagli

Fortran in pillole : seconda lezione

Fortran in pillole : seconda lezione Fortran in pillole : seconda lezione Annamaria Mazzia Dipartimento di Metodi e Modelli Matematici per le Scienze Applicate Corso di Metodi Numerici per l Ingegneria I predicati Riprendiamo l algoritmo

Dettagli

ESERCITAZIONE N.8. Il calcolatore ad orologio di Gauss. L aritmetica dell orologio di Gauss. Operazioni e calcoli in Z n

ESERCITAZIONE N.8. Il calcolatore ad orologio di Gauss. L aritmetica dell orologio di Gauss. Operazioni e calcoli in Z n Il calcolatore ad orologio di Gauss ESERCITAZIONE N.8 18 novembre L aritmetica dell orologio di Gauss Operazioni e calcoli in Z n 1, 1, -11, sono tra loro equivalenti ( modulo 12 ) Rosalba Barattero Sono

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I tipi di dato visti finora sono tutti semplici: int, char, float,... ma i dati manipolati nelle applicazioni reali sono spesso complessi (o strutturati) Gli array sono

Dettagli