Soluzione. I Compitino 16/4/09. I Compitino 16/4/09. I Compitino 16/4/09. I Compitino 16/4/09

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Soluzione. I Compitino 16/4/09. I Compitino 16/4/09. I Compitino 16/4/09. I Compitino 16/4/09"

Transcript

1 Soluzione 1) Il numero 5 / 15 è 1) periodico in base 10 2) periodico in base 2 * 3) entrambe le precedenti 4) nessuna delle precedenti 2) Il numero 6 / 15 è 1) periodico in base 10 * 2) periodico in base 2 3) entrambe le precedenti 4) nessuna delle precedenti 3) Che cosa è l'indirizzo di una cella di memoria? * 1) il numero binario che individua univocamente la cella 2) il contenuto di una cella di memoria 3) il numero di bit di cui una cella è composta 4) Si consideri il seguente frammento di codice for (int i=0; i<10;i++){ cout<<i; cout<<"i= "<< i<<endl; * 1) si verifica un errore in compilazione 2) si verifica un errore in esecuzione 3) c è un errore logico 4) è corretto 1

2 5) Si consideri il seguente frammento di codice, quale delle seguenti affermazioni è corretta?... int n; n = 0; while(n) cout<<"n="<<n<<endl; 6) La ricerca sequenziale di un elemento in un array ordinato di dimensione n ha complessità 1) O(log n) sempre * 2) O(n) nel caso peggiore 3) O(1) nel caso medio 1) viene stampato il valore 0 2) il ciclo non termina * 3) non viene eseguita la stampa 7) Si consideri il seguente frammento di codice in C++, si abbia a[i] = 7, i = 6 e val = 3; che valore ha i dopo l'esecuzione del seguente frammento di codice? if (val<=a[i]) if(val==a[i]) i++; else i--; 1) 6 * 2) 5 3) 7 8) Si consideri il seguente frammento di codice in C++, si abbia a[i] = 7, i=6 e val=3; che valore ha i dopo l'esecuzione del seguente frammento di codice? if (val<=a[i]) {if(val==a[i]) i++; else i--; * 1) 6 2) 5 3) 7 2

3 9) Quale delle seguenti caratteristiche è vera per la memoria di massa (secondaria)? 1) la CPU può elaborare direttamente i dati che vi sono contenuti 2) è più veloce della memoria principale * 3) mantiene l'informazione anche quando il calcolatore viene spento 10) L'algoritmo di ricerca dicotomica ha complessità 1) O(n) nel caso peggiore 2) O(log2 n ) sempre * 3) O(log2 n ) nel caso peggiore 11) Si consideri il seguente frammento di programma; cosa viene stampato per b,c,i?... int i, b, c,v[5]={1,2,3,4,5; i=2; b= i++/2; c=v[i++]/i; cout<<"b=" << b << "c=" << c << "i=" << i<<endl; 1) b=0 c=1 i=4 * 2) b=1 c=1 i=4 3) b=1 c=0 i=4 12) Siano a = e b= due numeri reali memorizzati in 32 bit con t=23 cifre per la mantissa; quale è il risultato della somma a+b? 1) ) * 3) ) Nella rappresentazione dei reali nel calcolatore i numeri reali rappresentati sono * 1) più fitti verso il minimo reale e più radi verso il massimo reale rappresentabile 2) distribuiti in maniera uniforme 3) dipende se sono float o double 14) Quale di queste memorie non conserva il suo contenuto a macchina spenta? 1) ROM * 2) RAM 3) memorie secondarie 15) Dire se termina il seguente ciclo for for(int i=1;i<=10;i=1) cout<<i<<endl; 1) termina per i=10 2) termina per i=11 * 3) non termina 3

4 16) Si consideri la seguente equazione x^2-44 x = 0. Se le soluzioni sono x1= 11 e x2 = 13 in quale base sono stati effettuati i conti? 1) 6 * 2) 5 3) 7 17) Si consideri il seguente frammento di codice; cosa viene stampato? #include <iostream.h> #include <string.h> int main (){ char s1[3] = "abc"; char s2[3] = "def"; if(strcmp(s1,s2) < 0) cout<<"s1 minore di s2" ; else cout<<"s1 maggiore di s2"... 1) s1 minore di s2 2) s1 maggiore di s2 * 3) nulla, c è un errore in compilazione 18) Si consideri il seguente frammento di programma; dire cosa viene stampato per a, b, c se i dati inseriti da tastiera sono 10 e 7 int main( ) { float a, b, c; cin>>a>>b>>c; cout<<"a="<<a<<"b="<<b<<"c="<<c; 1) 10, 7, 0 * 2) il programma resta in attesa del valore per c 3) nulla, si ha un errore in compilazione 19) Si supponga che per ordinare n elementi con il metodo di ordinamento lineare occorrano 3 secondi, quanto tempo occorrerà per ordinare 10*n elementi con lo stesso metodo? * 1) circa 300 secondi 2) circa 150 secondi 3) circa 30 secondi 4

5 20) Si consideri il codice seguente, cosa viene stampato per x? int main () { float x; x=32/64 * 16./8; cout<<"x="<<x<<endl; return 0; * 1) 0. 2) 1. 3) si ha un errore in esecuzione 21) Il tempo di accesso ad una cella di una memoria RAM 1) dipende dalla sua posizione all'interno della memoria * 2) non dipende dalla sua posizione all'interno della memoria 3) nessuna delle precedenti 22) L'unità di controllo è 1) una parte della memoria 2) una parte del sistema operativo * 3) una parte della CPU 23) Si consideri il seguente ciclo for, si dica se int i; for(i=1;i<=10;i++1) cout<<i<<endl; 1) termina sempre 2) può non terminare * 3) si ha un errore in compilazione 24) Si consideri il seguente frammento di codice; cosa viene stampato? int n; cin>>n; while (n=0){ cout<<n<<endl; n++; 1) i primi n numeri negativi crescenti fino a zero * 2) nulla, il ciclo non viene eseguito 3) infiniti numeri, il ciclo non termina 4) il solo valore 0, se viene acquisito 0 come valore per n 5

6 25) Si consideri il seguente frammento di codice e si dica se il ciclo int n; n=1; while (n); { cin>>n; cout<<n<<endl; * 1) non termina 2) non viene eseguito 3) termina acquisendo n = 0 4) si ha un errore in compilazione 26) Con riferimento alla complessità dell'algoritmo di ordinamento bubblesort con "variante ordinato" su un vettore di n elementi quali di queste affermazioni è falsa 1) O(n) nel caso favorevole * 2) O(n) sempre 3) O(n^2) nel caso peggiore 27) Si consideri il seguente codice, cosa viene stampato? int i, n, a[100]; n=10; for(i=0;i<n;++i) a[i]=i; cout<<"n= "<<n<<" \n\n vettore \n\n"; for(i=0;i<=n;i++){ cout<<a[i]<<endl;... 1) i numeri: * 2) i numeri: e un valore arbitrario 3) i numeri: ) nulla, c è un errore in compilazione 28) Siano a e b e c variabili di tipo short. Si consideri il seguente frammento di codice in C++ e dire cosa viene stampato per c.... a=-32765; b=-8; c=a+b; cout<<"c="<<c;... * 1) ) )

7 29) Si consideri il seguente frammento di programma C++; il compilatore segnala un warning sull'istruzione di assegnazione. Cosa viene stampato per h?... int h; h= 29.98; cout<<"h="<<h;... * 1) 29 2) 30 3) ) Sia r(x) = la rappresentazione di un numero x in 8 bit. Quale è la rappresentazione r(-x) in complemento a due? 1) * 2) ) ) Si consideri il seguente frammento di codice e si dica cosa viene stampato int v[5], i; for(i=0;i<4;i++) v[i] = i; v[i]=4; for(i=0;i<5;i++) cout<<v[i]<<endl; * 1) ) e un valore arbitrario 3) c è un errore in compilazione 4) il programma si interrompe con un errore in esecuzione 32) L'istruzione #include del linguaggio C++ viene eseguita in fase di * 1) compilazione 2) esecuzione 3) salvataggio del file 7

8 = = 135 = : array a due dimensioni Vogliamo rappresentare informazioni omogenee (dello stesso tipo) ma descritte da una coppia di indici: a ik i = 1, 2,, n k = 1, 2,, m matrice A di n righe e m colonne: a 11 a 12 a 1m A =. a n1 a n2. a nm 8

9 Molti problemi matematici fanno uso di matrici; uno dei problemi più frequenti è la risoluzione di un sistema lineare di n equazioni in n incognite (estensione del sistema 2 2 che rappresenta il determinare il punto di intersezione di due rette del piano) e che si può rappresentare algebricamente come prodotto matrice vettore : A x = b Definizione delle matrici in C++. Una matrice è un array di array: int a[5][4]; il primo (5) è l indice delle righe, il secondo (4) è l indice delle colonne. Poiché la matrice è un array l indice che descrive le righe (e le colonne) assume valori a partire da 0 fino a dimmax-1; quindi la matrice avrà 5 righe, numerate da 0 a 4, e 4 colonne, numerate da 0 a 3. La matrice a ha le seguenti componenti: a[0][0] a[0][3] a[1][0] a[1][3] a[4][0] a[4][3] Dopo aver scelto le dimensioni massime per righe e colonne, la matrice può avere n righe ed m colonne, con n ed m compatibili (nell esempio compatibili con 5 e 4 ). Per accedere ad un elemento di un array bidimensionale si devono indicare entrambi gli indici: a[2][1] = 67; e tali indici devono essere compatibili con la dimensioni dell array. Per acquisire gli elementi di una matrice e per stamparli si deve usare una struttura iterativa per le n righe ed un altra per le m colonne: gli elementi vengono letti e scritti uno alla volta. 9

10 //lettura di una matrice i=0,1,.., n-1 k=0, 1,,m-1 cin>>n>>m; //n<=5, m<=4 for(i=0; i<n; i++) for(k=0; k<m; k++) cin>>a[i][k]; //lettura di una matrice i=1, 2,...n k=1, 2,, m cin>>n>>m; //n<=4, m<=3 for(i=1; i<=n; i++) for(k=1; k<=m; k++) cin>>a[i][k]; Se n=m la matrice si dice quadrata. Gli elementi con indice uguale individuano un array che si chiama diagonale della matrice: diaga = [a 11, a 22,, a nn ] Se due matrici A e B hanno lo stesso numero di righe e colonne si può costruire la matrice somma C: C=A+B c ik = a ik + b ik Date due matrici A (n p) e B (p m) se il numero di colonne di A è uguale al numero di righe di B allora si può definire la matrice C = A B prodotto righe colonne : p c ik = a it b tk t =1 Consideriamo solo matrici quadrate, quelle maggiormente usate nella matematica. Una matrice quadrata A possiede n 2 elementi, quindi difficilmente gli algoritmi su matrici avranno una complessità inferiore a O(n 2 ). L algoritmo per costruire la somma di due matrici è Θ(n 2 ). L algoritmo per costruire il prodotto di matrici, applicando la definizione, èθ(n 3 ); ne esistono di complessità O(n α ) con 2< α < 3. 10

11 L algoritmo per risolvere il sistema lineare Ax=b (data la matrice A e il vettore b determinare il vettore x) noto come regola di Cramer ha complessità O(n!). Esistono metodi diretti con i quali si trasforma la matrice in una equivalente, per il problema di risolvere il sistema lineare, e che richiedono O(n 3 ) operazioni e metodi iterativi che approssimano la soluzione in O(n 2 ) operazioni. L identità del prodotto tra matrici si chiama matrice identica e viene indicata con I; è una matrice con 1 sulla diagonale e 0 altrove. Esercizio. Scrivere un algoritmo per costruire la matrice identica che esegua solo (n 2 + n) assegnazioni. Non eseguire l ovvio controllo: se i k allora.0 altrimenti 1 che porterebbe a n 2 assegnazioni + n 2 confronti Il prodotto tra matrici non è commutativo: A B B A fatta eccezione del caso in cui una delle due sia la matrice I oppure che le due matrici siano uguali. La matrice costruita a partire dalla matrice A scambiando le righe con le colonne si chiama matrice trasposta di A, e si indica con A T : a T ik = a ki Una matrice si dice simmetrica se: a ik = a ki i, k Se A = A T allora A è simmetrica. Due matrici A e B sono uguali se: a ik = b ik i, k 11

12 Esercizio. Scrivere un algoritmo (efficiente) per verificare se due matrici sono uguali. Scrivere un algoritmo (efficiente) per verificare se una matrice è simmetrica. Suggerimento: se una proprietà deve essere verificata per ogni elemento, essa è falsa se esiste un solo elemento che non la verifica. Esercizi per imparare ad usare gli indici delle matrici. 1) date due matrici A(n m) e B(p q) verificare se B è contenuta in A A = B = invece B1= 1 2 non è contenuta 3 2 B è contenuta 2) Dato un cruciverba A(n m), matrice di caratteri, e una parola P composta da q caratteri verificare se la parola P sta nel cruciverba per righe o per colonne. Suggerimento. Verificare che le dimensioni siano compatibili, cercare la prima componente di P se è presente in A ed eseguire la verifica solo se la lunghezza della parola non supera il numero di righe o di colonne che restano da verificare. 3) Dati n numeri a 1, a 2, a 3,, a n determinare quanti sono minori a 1, quanti minori di a 2, di a 3, e in quali posizioni si trovano (per ogni i si deve poter memorizzare un array di indici) e quali sono (per ogni i si deve poter memorizzare un array di valori). 12

13 Sottoprogrammi: funzioni Sottoprogrammi: funzioni In ogni problema possiamo individuare dei sottoproblemi per risolvere specifiche attività; ad esempio nell algoritmo di ricerca possiamo individuare i seguenti sottoproblemi: P P1 P2 P3 P4 acquisire dati stampare dati ricerca stampare risultati Sottoprogrammi: funzioni P1, P2, P3, P4 sono sottoproblemi che svolgono una specifica funzione; P3 può essere risolto da algoritmi diversi, e possiamo avere la possibilità di scegliere e cambiare l algoritmo di ricerca. Ogni linguaggio permette di organizzare un programma in sottoprogrammi che vengono chiamati (invocati) in modo tale che il programma che risolve i problema abbia la seguente organizzazione: Sottoprogrammi: funzioni chiama leggidati chiama stampadati chiama algoritmo di ricerca chiama stamparisultati Le chiamate dei sottoprogrammi costituiscono una astrazione sulla modalità di esecuzione: non importa sapere come avviene la lettura o la stampa o il modo con cui si effettua la ricerca, si sa solo che verranno eseguite in quel punto del programma. (par. 4.3) 13

14 Sottoprogrammi: funzioni Si parla di sottoprogrammi perché sono programmi che fanno parte di un programma più grande. Le caratteristiche che deve avere un sottoprogramma sono: risolvere un problema specifico comunicare il minor numero di informazioni con il programma che lo chiama. (par. 4.4) Sottoprogrammi: funzioni In tale modo : 1) il sottoprogramma sarà usabile da più programmi 2) le sue variabili non saranno modificabili da altri sottoprogrammi 3) il sottoprogramma potrà facilmente essere sostituito 4) si potranno eseguire meglio i test di funzionamento 5) si potrà scrivere il sottoprogramma in maniera indipendente dagli altri sottoprogrammi. Sottoprogrammi: funzioni Le informazioni che vengono scambiate tra il programma chiamante e il programma chiamato sono contenute in variabili che sono dette variabili di scambio. In relazione al loro utilizzo le variabili di scambio possono essere: input: il loro valore viene passato e non ritorna modificato output: il loro valore viene costruito e restituito al programma chiamante in/out: il loro valore viene prima passato e poi modificato e restituito. Sottoprogrammi: funzioni In relazione all istruzione di assegnazione possiamo dire che: input, se il loro valore appare solo a destra = var; output, se il loro valore appare a sinistra var = ; in/out, se il loro valore appare prima a destra e poi a sinistra = var; var = ; 14

15 Sottoprogrammi: funzioni Abbiamo quindi le seguenti istruzioni: programma chiamante chiama sub (a, b, c). fine sottoprogramma sub (a, t, s) finesub Sottoprogrammi: funzioni Le variabili a, b, c del programma chiamante sono in corrispondenza con le variabili a, t, s del sottoprogramma. Le variabili del sottoprogramma si chiamano anche parametri formali: sono le variabili che compaiono nella intestazione (firma) del sottoprogramma. Non hanno valore fino a quando il sottoprogramma non viene attivato. Le variabili del programma chiamante si chiamano parametri attuali e il loro valore viene passato (input) e modificato (output). Sottoprogrammi: funzioni La corrispondenza tra parametri attuali e parametri formali è posizionale. Deve essere rispettato: il numero l ordine il tipo Il nome dei parametri attuali e formali che si corrispondono può essere lo stesso oppure diverso. Funzioni in C++ Nel linguaggio C++ tutti i sottoprogrammi sono funzioni (par. 13.8). Le funzioni possono avere zero, uno o più argomenti (parametri) e restituiscono sempre un valore (scalare); pertanto le funzioni sono caratterizzate da un tipo di ritorno. Sintassi. tipo nomefunzione(tipo var1,tipo var2) {//corpo della funzione return valore; //tipo della funzione 15

16 Esempi. 1) int main(){ return 0; Funzioni in C++ 2) double funz(double x){ double z; z= x*2 + 7; return z; Funzioni in C++ 3) bool ricerca(){ bool trovato; //algorimto return trovato; //fine ricerca Se la funzione non restituisce alcun valore al programma chiamante, si deve scrivere void: un tipo di ritorno vuoto e si omette l istruzione return. 4) void stampa(int n, int a[]){ //stampa un array Funzioni in C++ Se la variabile di scambio è un vettore, nell intestazione del sottoprogramma si mettono le parentesi quadrate con la dimensione massima, definita nel programma chiamante, oppure non si indica la dimensione: int a[1000] oppure int a[] Nell istruzione di chiamata del sottoprogramma si indica invece il nome dell array: stampa(n,a); Funzioni in C++ Istruzione di chiamata di una funzione. 1) Se il tipo di ritorno è void, l istruzione di chiamata è: nomefunzione(parametri); 2) Se la funzione restituisce uno scalare, la sua chiamata può essere eseguita al posto dello scalare il cui valore viene calcolato dalla funzione. 16

17 Funzioni in C++ Esempio. double f(double x){ return (log(x)-5)*sin(x); /* l istruzione return puo essere una espressione (variabile, costante */ Possiamo effettuare la chiamata della funzione f(x) in una qualunque istruzione che debba usare il valore (scalare) restituito. Deve essere rispettato il tipo. Funzioni in C++ Esempi. 1) if(f(x)>0) //predicato 2) cout<< f(x) = <<f(x)<<endl; //stampa 3) z=abs(f(x)); //argomento di altra funzione 4) f1=f(x)+3; //espressione Passaggio dei parametri Passaggio dei parametri Nella firma del sottoprogramma, i parametri formali vengono elencati per nome, preceduti dal tipo e separati da virgola. Il passaggio dei parametri avviene secondo due modalità dette: per valore per indirizzo Ci sono linguaggi, come C++, che hanno entrambi questi passaggi: si utilizza un simbolo o una parola chiave per indicare le due modalità. In altri ce n è uno solo. 17

18 Passaggio dei parametri Passaggio per valore. chiamante c chiamato 10 x 10 double c=10; double f(double x) cout<<f(c); Si tratta di due variabili diverse. Quando si attiva il sottoprogramma, il valore della variabile c del chiamante viene copiato nella variabile x del chiamato. Passaggio dei parametri Se si effettua un passaggio per valore, la variabile del chiamato può anche assumere un nuovo valore (apparire a sinistra del simbolo di assegnazione); tale valore non apparirà nel chiamante. Il valore nel chiamante non viene modificato. Questo è l uso per le variabili di input. Passaggio dei parametri Passaggio per indirizzo. chiamante a sub(a); chiamato void sub(int &a) Si tratta della stessa variabile. Quando si attiva il sottoprogramma, viene passato l indirizzo di memoria della variabile del chiamante. Passaggio dei parametri In tale modo l area di memoria è visibile ad entrambi i programmi; pertanto ogni modifica fatta sulla variabile a nel chiamato si ritrova nel chiamante: la variabile ritorna modificata. In C++ le variabili scalari possono essere passate: per valore int a per indirizzo int &a L operatore & indirizzo_di si chiama: operatore Gli array sono sempre passati per indirizzo: viene passato l indirizzo di memoria di a[0]. 18

19 Variabili parametro Una variabile parametro di scambio nell intestazione della funzione: (char nome[], int n, double &a) è visibile all interno della funzione e non deve essere ridefinita viene inizializzata all atto dell invocazione della funzione viene creata ( nasce ) quando la funzione viene chiamata viene eliminata ( muore ) quando la funzione termina la sua esecuzione. Una variabile locale: Variabili locali int a; double area; è visibile all interno del blocco in cui è definita e non deve essere ridefinita nel blocco deve essere esplicitamente inizializzata viene creata ( nasce ) quando viene eseguito l enunciato che la definisce viene eliminata ( muore ) quando l esecuzione del programma esce dal blocco in cui è stata definita. Moduli esterni e prototipo di funzione Moduli esterni e prototipo di funzione Poiché il compilatore esamina le righe del codice in sequenza, è necessario che prima della chiamata della funzione ci sia una definizione della funzione stessa. Ciò può essere realizzato in due modi: 1) scrivendo il prototipo della funzione, la sua firma 2) scrivendo subito il codice della funzione prima della scrittura del main. 19

20 Modulo con main e altre funzioni 1) prototipo #include double f(double); int main(){ if(f(x)>0)... return 0; double f(double x){ return x*x-3; 2) codice #include double f(double x){ return x*x-3; int main(){ if(f(x)>0)... Moduli esterni La progettazione di software richiede anche una generalità nella scrittura del codice. Vogliamo produrre programmi per risolvere problemi riguardanti argomenti specifici (come avviene nelle librerie di programmi). In C++ c è la possibilità di costruire moduli esterni, che contengono algoritmi scritti anche su file fisici diversi da quello del programma che li utilizza: moduli con algoritmi per gestire per vettori, matrici, polinomi, ordinamenti, liste, Moduli esterni Abbiamo visto che i sottoprogrammi possono essere scritti, all interno del file fisico che contiene il main, con due modalità: prototipo e codice. Estendiamo queste due modalità ai moduli esterni: 1) il prototipo e un modulo esterno con il codice della funzione da compilare separatamente 2) una istruzione include per inserire il modulo con il codice della funzione. Moduli esterni: caso 1 //file primo.c double f1(double); double f2(double); int main(){ if(f1(x)==f2(x))... return 0; //file funzioni1.c double f1(double x){ return x*x; double f2(double x){ return -x*x+5; 20

21 Moduli esterni: caso 1 I due moduli verranno compilati separatamente e successivamente si costruirà un unico eseguibile tramite i due moduli oggetto (se la compilazione ha avuto esito positivo). Per eseguire compilazioni separate si utilizza l opzione -c che costruisce i moduli oggetto di estensione.o g++ -c primo.c funzioni1.c per costruire l eseguibile g++ -o primo primo.o funzioni1.o //file secondo.c #include funzioni2.h Moduli esterni: caso 2 int main(){ if(f1(x)==f2(x))... return 0; //file funzioni2.h double f1(double x){ return x*x; double f2(double x){ return -x*x+5; Moduli esterni: caso 2 L istruzione #include funzioni2.h inserisce il file funzioni2.h e la compilazione è unica (analogamente a ciò che avviene con le altre istruzioni #include) In generale: #include nomefile ; Per costruire l eseguibile, si utilizza la usuale istruzione: g++ -o secondo secondo.c 21

Mergesort. Mergesort. Mergesort. Mergesort. L idea è la seguente: (par. 13.4) dividere l insieme in due parti uguali di n/2 componenti

Mergesort. Mergesort. Mergesort. Mergesort. L idea è la seguente: (par. 13.4) dividere l insieme in due parti uguali di n/2 componenti L idea è la seguente: (par. 13.4) dividere l insieme in due parti uguali di n/2 componenti n/2 n/2 se fossero già ordinate le potremmo riunire con un algoritmo di fusione (merge) Esempio. Consideriamo

Dettagli

Il problema dell ordinamento

Il problema dell ordinamento Il problema dell ordinamento Il problema dell ordinamento Dati n elementi sui quali si possa considerare un relazione d ordine totale (ogni coppia di elementi è confrontabile) costruire la permutazione

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

PROGRAMMAZIONE: I sottoprogrammi

PROGRAMMAZIONE: I sottoprogrammi PROGRAMMAZIONE: I sottoprogrammi Prof. Enrico Terrone A. S: 2008/09 Definizione Un sottoprogramma è un blocco di istruzioni a sé stante con un proprio nome. Il main (= sottoprogramma principale) è un caso

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

Funzioni, Stack e Visibilità delle Variabili in C

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

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Scope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano

Scope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano Scope delle variabili e passaggio parametri Danilo Ardagna Politecnico di Milano 1-4-2014 Introduzione! Con le funzioni è stato introdotto un meccanismo per definire dei piccoli programmi all interno 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

Casi di prova. Il problema dell ordinamento. Casi di prova. Casi di prova. Casi di prova

Casi di prova. Il problema dell ordinamento. Casi di prova. Casi di prova. Casi di prova Casi di prova Casi di prova Quando si vuole testare un algoritmo si devono costruire vari casi di prova. Invece di eseguire il programma più volte si può costruire un file di dati contenente tutti i casi

Dettagli

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento b) dereferenziazione e

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 C-Introduzione.tex: Versione 1.0, aa 2005-2006 Linguaggi di programmazione (1) Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili, direttamente

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

METODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi

METODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi Fondamenti di Informatica METODI in Java Prof.Angela Bonifati 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile definire nuovi tipi di dati, tramite i metodi è possibile

Dettagli

Variabili e Funzioni. Informatica 1 / 19

Variabili e Funzioni. Informatica 1 / 19 Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:

Dettagli

Programmazione Appello d esame del 18 giugno 2010 Compito B

Programmazione Appello d esame del 18 giugno 2010 Compito B Programmazione Appello d esame del 18 giugno 2010 Compito B PARTE 0 (propedeutica) Esercizio 0.1 Descrivere il costrutto DOWHILE (sintassi e funzionamento) e darne il diagramma di flusso. Il costrutto

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

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

ciclo di vita della soluzione (informatica) di un problema

ciclo di vita della soluzione (informatica) di un problema Università di Roma Tor Vergata L2-1 ciclo di vita della soluzione (informatica) di un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti

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

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

FILE DI TESTO e SOTTOPROGRAMMI

FILE DI TESTO e SOTTOPROGRAMMI FILE DI TESTO e SOTTOPROGRAMMI Prof. Enrico Terrone A. S: 2008/09 I file di testo in C++ I file di testo sono una forma di input/output alternativa alla tastiera e al monitor (con il vantaggio della persistenza).

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

Introduzione alla programmazione in C(++)

Introduzione alla programmazione in C(++) Testi Testi Consigliati: Introduzione alla programmazione in C(++) A. Kelley & I. Pohl C didattica e programmazione A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. D. M. M. Ritchie

Dettagli

Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1 1) In un diagramma di flusso, la rappresentazione di un ciclo WHILE include sicuramente almeno:

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

Trasformare array paralleli in array di record

Trasformare array paralleli in array di record Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo dell array). A volte è necessario gestire informazioni

Dettagli

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE PROGRAMMAZIONE BIENNIO: SECONDA DISCIPLINA: INFORMATICA PIANO DI LAVORO DEL DOCENTE / RELAZIONE FINALE Anno scolastico 2014/2015 DOCENTE Prof. PAOLO ARMANI CLASSE:

Dettagli

Esercizio. 2 i=i*2) j=j*2)

Esercizio. 2 i=i*2) j=j*2) Esercizio 1 Esercizio 2 i=i*2) j=j*2) Soluzione Il frammento è composto da due parti quasi identiche. L unica differenza è il modo in cui crescono i contatori. Nella prima parte la crescita è lineare mentre

Dettagli

Introduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17

Introduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17 Introduzione al C Informatica Generale - Introduzione al C Versione 1.0, aa 2005-2006 p.1/17 Linguaggi di programmazione Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili,

Dettagli

int main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0;

int main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0; Problema: CALCOLARE LA SOMMA DEI FATTORIALI DEI PRIMI 100 NUMERI NATURALI 0!+1!+2! + 99! #include int fattoriale(int); Calcolo fattoriale int main(){ int numero; /* numero di cui voglio calcolare

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout

Dettagli

A m n B n p = P m p. 0 1 a b c d. a b. 0 a 0 c Il risultato e lo stesso solo nel caso in cui c = 0 e a = d.

A m n B n p = P m p. 0 1 a b c d. a b. 0 a 0 c Il risultato e lo stesso solo nel caso in cui c = 0 e a = d. Matematica II, 220404 Il prodotto di matrici e un operazione parziale che prende in entrata una matrice A ed una matrice B, tali che il numero delle colonne di A sia uguale al numero delle righe di B,

Dettagli

Trasformare array paralleli in array di record

Trasformare array paralleli in array di record Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo dell array). A volte è necessario gestire informazioni

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

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

Programmazione I Prova scritta - 10 gennaio h20min

Programmazione I Prova scritta - 10 gennaio h20min Programmazione I Prova scritta - 10 gennaio 2019-1h20min NOTA: Nei programmi si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main, inoltre si sottintenda la presenza delle

Dettagli

Calcolare x n = x x x (n volte)

Calcolare x n = x x x (n volte) Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile

Dettagli

Programmazione C: Esercizi su vettori e funzioni. Titolo presentazione. sottotitolo. Milano, XX mese 20XX

Programmazione C: Esercizi su vettori e funzioni. Titolo presentazione. sottotitolo. Milano, XX mese 20XX Titolo presentazione Programmazione C: sottotitolo Esercizi su vettori e funzioni Milano, XX mese 20XX Informatica ed Elementi di Informatica Medica Agenda Richiami su vettori e funzioni Esercizi su vettori

Dettagli

Trasformare array paralleli in array di record

Trasformare array paralleli in array di record Trasformare array paralleli in array di record Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Esercitazione Fondamenti di Informatica 2

Esercitazione Fondamenti di Informatica 2 Esercitazione Fondamenti di Informatica 2 Matrici (seconda parte) 27 marzo 2006 a Prodotto righe-colonne Scrivere un metodo Matrice moltiplica(matrice mat) che, applicato ad una istanza dell oggetto Matrice,

Dettagli

Introduzione al linguaggio C Primi programmi

Introduzione al linguaggio C Primi programmi Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

Esercizi. Filtraggio

Esercizi. Filtraggio Politecnico di Milano Esercizi Preparazione alla prima prova intermedia Filtraggio L utente inserisce un array di numeri reali non negativi (un numero negativo indica la fine della fase di inserimento)

Dettagli

Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice { }, cioè più istruzioni

Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice { }, cioè più istruzioni INTRODUZIONE A C++ Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice, cioè più istruzioni Istruzione - Esempi Significato int a; float f; double d; char c; int x=0; variabile =

Dettagli

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

F. Tortorella Corso di Elementi di Informatica Università degli Studi di Cassino

F. Tortorella Corso di Elementi di Informatica Università degli Studi di Cassino Sottoprogrammi Un sottoprogramma è una particolare unità di codice che non può essere eseguita autonomamente, ma soltanto su richiesta del programma principale o di un altro sottoprogramma. Un sottoprogramma

Dettagli

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main() Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine

Dettagli

Linguaggio C++ 5. Strutture cicliche

Linguaggio C++ 5. Strutture cicliche 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) Linguaggio C++ 5 Strutture cicliche Linguaggio C++ 5 1 Strutture cicliche Utilizzate per ripetere un certo numero di volte

Dettagli

C: primi elementi. Lezione 4

C: primi elementi. Lezione 4 C: primi elementi Lezione 4 Evoluzione del BCPL (1967) e B (1970), entrambi typeless Sviluppato da Dennis Ritchie nel 1972 ed implementato per il PDP-11 Usato per lo sviluppo del sistema operativo UNIX

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

L Allocazione Dinamica della Memoria

L Allocazione Dinamica della Memoria L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama

Dettagli

Unità A1 Funzioni MODULO Java 2

Unità A1 Funzioni MODULO Java 2 Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA Passaggio parametri per valore Passaggio parametri per indirizzo Parametri formali e attuali Regole di visibilità Ambiente

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 8 Dettagli e Approfondimenti versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Dettagli

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Dettagli

I Dati Strutturati ed il Linguaggio C

I Dati Strutturati ed il Linguaggio C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Dati Strutturati Esigenze Vettori

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture iterative e selettive Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 AlgoBuild: Strutture iterative

Dettagli

L'Allocazione Dinamica della Memoria nel linguaggio C

L'Allocazione Dinamica della Memoria nel linguaggio C L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego riochierego@libero.it http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria

Dettagli

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple.

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple. Domanda n. 1 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple 8-Nov-2004 Argomento: Rappresentazione dell'informazione

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

Parte 1: tipi primitivi e istruzioni C

Parte 1: tipi primitivi e istruzioni C Parte 1: tipi primitivi e istruzioni C Esercizio 1 Scrivere un programma che stampa la somma di una sequenza di N numeri inseriti dall utente. Esercizio 2 Scrivere un programma che stampa la somma di una

Dettagli

Fondamenti di Informatica 12. Linguaggio C -4

Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati

Dettagli

Ambienti di Programmazione per il Software di Base

Ambienti di Programmazione per il Software di Base Ambienti di Programmazione per il Software di Base Le Funzioni in C Esercizi sulle Funzioni svolti Esercizi sulle Funzioni da svolgere A.A. 2011/2012 Ambienti di Programmazione per il Software di Base

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri calamo@di.uniroma1.it Esercitatore: Dott. Roberto Petroccia petroccia@di.uniroma1.it Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome

Dettagli

Funzioni di libreria. Richiedono tutte. #include <math.h> fabs(x) sqrt(x) pow(x,a) exp(x) log(x)

Funzioni di libreria. Richiedono tutte. #include <math.h> fabs(x) sqrt(x) pow(x,a) exp(x) log(x) Funzioni di libreria Richiedono tutte #include x x a x fabs(x) sqrt(x) pow(x,a) x e ln(x) exp(x) log(x) log 10 ( x ) log10(x) sen(x) cos(x) tg(x) arcsen(x) arccos(x) arctg(x) senh(x) cosh(x) tgh(x)

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

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere

Dettagli

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++ 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

STRUTTURA DI UN PROGRAMMA!

STRUTTURA DI UN PROGRAMMA! STRUTTURA DI UN PROGRAMMA! File prova1.c Area globale #include ... int m; int f(int); int g(int x){.../*ambiente locale a g*/} int main(){...} int f(int x){.../*ambiente locale a f*/} Direttive

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni

Dettagli

Introduzione alla programmazione. Alice Pavarani

Introduzione alla programmazione. Alice Pavarani Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello

Dettagli

uguale livello gerarchico non vi sono funzioni più importanti di altre main main

uguale livello gerarchico non vi sono funzioni più importanti di altre main main FUNZIONI in C/C++ Un programma C++ è un insieme di funzioni indipendenti e di uguale livello gerarchico (nel senso che non vi sono funzioni più importanti di altre o dotate, in qualche modo, di diritti

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Lezione 6 programmazione in Java

Lezione 6 programmazione in Java Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi

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

ITI M. FARADAY. Programmazione a. s

ITI M. FARADAY. Programmazione a. s ITI M. FARADAY Programmazione a. s. 2018-2019 Disciplina: INFORMATICA Indirizzo: INFORMATICA E TELECOMUNICAZIONI Classi: Terza A Terza B Ore settimanali previste: 6 (3 ora Teoria - 3 ore Laboratorio) Docenti:

Dettagli

Le Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia

Le Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Le Funzioni in C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2010/2011 docente: prof. Michele Salvemini 1/24 Sommario Le funzioni Il

Dettagli

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio

Dettagli

Un programma deve essere scritto come collezione di tante piccole funzioni perché:

Un programma deve essere scritto come collezione di tante piccole funzioni perché: Un programma deve essere scritto come collezione di tante piccole funzioni perché: ƒè più facile scrivere correttamente una funzione breve che abbia un unico compito: in questo modo sia la scrittura che

Dettagli

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3) Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di

Dettagli

Fondamenti di Informatica II 3. Funzioni in C++ (parte 1)

Fondamenti di Informatica II 3. Funzioni in C++ (parte 1) Introduzione alle funzioni in C++ Fondamenti di Informatica II 3. Funzioni in C++ (parte 1) Corso di Laurea in Ingegneria Informatica A.A. 2008-2009 2 Semestre Corso (A-M) int main() int n, fattoriale=1;

Dettagli

Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java

Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java Prof.Angela Bonifati 1 Istruzione while int vet1[] = new int[20]; int vet2[] = new int[20]; for(int

Dettagli