/* ordinamento dei lati dal maggiore al minore e "riconoscimento" del grado di "regolarità" del triangolo */ void ordinalati()

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "/* ordinamento dei lati dal maggiore al minore e "riconoscimento" del grado di "regolarità" del triangolo */ void ordinalati()"

Transcript

1 Una possibile soluzione, molto più esauriente rispetto alle richieste stesse del problema è la seguente (è stata ragionevolmente controllata, ma se qualcuno trovasse dei difetti di funzionamento è pregato di segnalarlo) #include <iostream> #include <iomanip> #include <math.h> #define ORTHO 0 #define BARIC 1 #define CIRCO 2 #define INCEN 3 #define PERIMETRO UNITARIO 1 #define AREA UNITARIA 2 using namespace std; /* questa funzione non è membro della classe e serve a convertire i tre angoli di un triangolo da radianti a gradi sessagesimali, primi, secondi */ int ** converti(double a[]) {int ** i; double dumm, domm; i = new int*[3]; for(int j=0; j < 3; j++) i[j] = new int[3], domm = a[j]*180.0/m PI, i[j][0] = static cast<int>(floor(domm)), dumm = (domm - static cast<double>(i[j][0]))*60.0, i[j][1] = static cast<int>(floor(dumm)), domm = (dumm - static cast<double>(i[j][1]))*60.0, i[j][2] = static cast<int>(floor(domm)); if(i[0][2]+i[1][2]+i[2][2]) i[2][2]++; return i;} /* qui inizia la classe dei triangoli */ class Triangolo { /* la variabile booleana "fatto" indica se è stato possibile costruire effettivamente il triangolo*/ bool fatto; // verifica delle disuguaglianze triangolari bool testcongruenzalati(double l[], char q) {bool r = true; for(char c=0; c < q; c++) r = r && l[c] > 0.0; if(q == 2) return r; return r && l[0] < l[1]+l[2] && l[1] < l[2]+l[0] && l[2] < l[0]+l[1] && l[0] >= fabs(l[1]-l[2]) && l[1] >= fabs(l[2]-l[0]) && l[2] >= fabs(l[0]-l[1]);} /* ordinamento dei lati dal maggiore al minore e "riconoscimento" del grado di "regolarità" del triangolo */ void ordinalati()

2 {if(fabs(lati[0] - lati[1]) > 1.e-8*lati[0] && fabs(lati[0] - lati[2]) > 1.e-8*lati[0] && fabs(lati[1] - lati[2]) > 1.e-8*lati[1]) regolarita = scaleno; if(fabs(lati[0] - lati[1]) <= 1.e-8*lati[0] fabs(lati[0] - lati[2]) <= 1.e-8*lati[0]) {if(fabs(lati[1] - lati[2]) <= 1.e-8*lati[1]) lati[2] = lati[1] = lati[0], regolarita = equilatero; lati[1] = lati[0], regolarita = isoscele;} i[0] = ((lati[0] >= lati[1])? ((lati[0] >= lati[2])? 0 : 2) : ((lati[1] >= lati[2])? 1 : 2)), i[2] = ((lati[0] < lati[1])? ((lati[0] < lati[2])? 0 : 2) : ((lati[1] < lati[2])? 1 : 2)); i[1] = 3 - i[0] - i[2];} /* calcolo del punto d incontro di due rette */ double * incrociarette(double * r1, double *r2) {double d; if((d = r1[0]*r2[1] - r1[1]*r2[0]) == 0.0) return 0; double *xy = new double[2]; xy[0] = (r1[1]*r2[2]-r1[2]*r2[1]) / d, xy[1] = (r1[2]*r2[0]-r1[0]*r2[2]) / d; return xy;} /* calcolo dei coefficienti dell equazione della retta bisettrice dell angolo numero a */ double * rettabisettrice(int a) {double * c = new double[3]; c[1] = 1.0; switch(a) {case 0: c[0] = tan(angoli[2]+0.5*angoli[a]), c[2] = -vertici[2][1] -vertici[2][0]*c[0]; case 1: c[0] = -tan(0.5*angoli[a]), c[2] = 0.0; case 2: c[0] = tan(0.5*angoli[a]), c[2] = lati[0]*c[0];} return c;} /* calcolo dei coefficienti dell equazione della retta che porta l altezza relativa al lato numero a */ double * rettaaltezza(int a) {double * c = new double[3]; switch(a) {case 0: c[1] = 0.0, c[0] = 1.0, c[2] = -vertici[2][0]; case 1: if(rette[1][1] == 0.0) c[0] = c[2] = 0.0, c[1] = 1.0; c[0] = -rette[1][1]/rette[1][0], c[1] = 1.0, c[2] = 0.0; case 2: if(rette[2][1] == 0.0) c[0] = c[2] = 0.0, c[1] = 1.0;

3 c[0] = -rette[2][1]/rette[2][0], c[1] = 1.0, c[2] = 0.0;} return c;} /* calcolo dei coefficienti dell equazione della retta che porta l asse del lato numero a */ double * rettaasse(int a) {double * c = new double[3]; switch(a) {case 0: c[0] = 1.0, c[1] = 0.0, c[2] = -0.5*lati[0]; case 1: if(rette[1][1] == 0.0) c[0] = 0.0, c[1] = 1.0, c[2] = -0.5*lati[1]; c[0] = -rette[1][1]/rette[1][0], c[1] = 1.0, c[2] = 0.5*lati[1]*(c[0]*cos(angoli[2])-sin(angoli[2])) -c[0]*lati[0]; case 2: if(rette[2][1] == 0.0) c[0] = 0.0, c[1] = 1.0, c[2] = -0.5*lati[2]; c[0] = -rette[2][1]/rette[2][0], c[1] = 1.0, c[2] = -0.5*lati[2]*(c[0]*cos(angoli[1])+sin(angoli[1]));} return c;} /* calcolo dei coefficienti dell equazione della retta che porta la mediana relativa al lato numero a */ double * rettamediana(int a) {double * c = new double[3]; switch(a) {case 0: if(vertici[2][0] == 0.5*lati[0]) c[0] = 1.0, c[1] = 0.0, c[2] = -vertici[2][0]; c[0] = 1.0/(0.5*lati[0] - vertici[2][0]), c[1] = 1.0/vertici[2][1], c[2] = vertici[2][0]/(0.5*lati[0] - vertici[2][0]); case 1: c[2] = 0.0; if(vertici[2][0] == -lati[0]) c[0] = 1.0, c[1] = 0.0; c[0] = 2.0/(vertici[2][0]+lati[0]), c[1] = -2.0/vertici[2][1]; case 2: if(vertici[2][0] == 2.0*lati[0]) c[0] = 1.0, c[1] = 0.0, c[2] = -lati[0]; c[0] = 1.0/(0.5*vertici[2][0]-lati[0]), c[1] = -2.0/vertici[2][1], c[2] = -lati[0]/(0.5*vertici[2][0]-lati[0]);} return c;} /* attribuzione delle coordinate ai vertici del triangolo: il primo vertice sta nell origine, il secondo lungo l asse orizzontale, il terzo di conseguenza...; sono anche determinate le equazioni delle rette che portano i tre lati.*/ void calcolavertici()

4 {vertici[0][0] = vertici[0][1] = 0.0, vertici[1][0] = lati[0], vertici[1][1] = 0.0, vertici[2][0] = lati[2] * cos(angoli[1]), vertici[2][1] = lati[2] * sin(angoli[1]), rette[0][0] = rette[0][2] = 0.0, rette[0][1] = 1.0, rette[1][0] = (vertici[2][0]!= vertici[1][0])? 1.0 /(vertici[2][0] - vertici[1][0]) : 1.0, rette[1][1] = (vertici[2][0]!= vertici[1][0])? -1.0 /(vertici[2][1] - vertici[1][1]) : 0.0, rette[1][2] = rette[1][0] == 1.0? 0.0 : vertici[1][1] / (vertici[2][1] - vertici[1][1]) - vertici[1][0] / (vertici[2][0] - vertici[1][0]); rette[2][0] = (vertici[2][0]!= vertici[0][0])? 1.0 /(vertici[2][0] - vertici[0][0]) : 1.0, rette[2][1] = (vertici[2][0]!= vertici[0][0])? -1.0 /(vertici[2][1] - vertici[0][1]) : 0.0, rette[2][2] = rette[2][0] == 1.0? 0.0 : vertici[0][1] / (vertici[2][1] - vertici[0][1]) - vertici[0][0] / (vertici[2][0] - vertici[0][0]);} static enum regolarita {equilatero, isoscele, scaleno}regolarita; static enum forma {Equilatero, acutangolo, rettangolo, ottusangolo}forma; static const char * descrizioni regolarita[]; static const char * descrizioni forma[]; char * caratteristiche[2], i[3]; double lati[3], angoli[3], vertici[3][2], centri[4][2], rette[3][3]; /* "amicizia" con l operatore << */ friend ostream & operator << (ostream &, Triangolo); /* un metodo per la creazione di un triangolo equilatero */ void faiequilatero(double l) {lati[0] = lati[1] = lati[2] = l, angoli[0] = angoli[1] = angoli[2] = M PI/3.0, regolarita = equilatero, forma = Equilatero, /* un metodo che calcola tutti i centri di un triangolo */ void calcolacentri() {double *xy, *r, *s; xy = incrociarette(r = rettaaltezza(0), s = rettaaltezza(1)), centri[ortho][0] = xy[0], centri[ortho][1] = xy[1], delete[] r, delete[] s, delete [] xy, xy = incrociarette(r = rettamediana(0), s = rettamediana(1)), centri[baric][0] = xy[0], centri[baric][1] = xy[1], delete[] r, delete[] s, delete [] xy, xy = incrociarette(r = rettaasse(0), s = rettaasse(1)), centri[circo][0] = xy[0], centri[circo][1] = xy[1], delete[] r, delete[] s, delete [] xy,

5 xy = incrociarette(r = rettabisettrice(0), s = rettabisettrice(1)), centri[incen][0] = xy[0], centri[incen][1] = xy[1], delete[] r, delete[] s, delete [] xy;} /* un metodo che "riconosce" la forma di un triangolo */ void determinaforma() {if(fabs(2.0*angoli[i[0]]-m PI) < 1.e-9) forma = rettangolo; if(2.0*angoli[i[0]] > M PI) forma = ottusangolo; if(regolarita!= equilatero) forma = acutangolo; forma = Equilatero;} public: /* metodi PUBBLICI (significato ovvio)*/ bool malriuscito() {return!fatto;} double * Lati() {return lati;} double Lati(int i) {return lati[i];} double * Angoli() {return angoli;} double Angoli(int i) {return angoli[i];} double Perimetro() {return lati[0]+lati[1]+lati[2];} double Area() {double p = Perimetro(); return 0.25*sqrt(p*(p-2.0*lati[0])*(p-2.0*lati[1])*(p-2.0*lati[2]));} /* costruttore default: costruisce un triangolo equilatero di lato 1 */ Triangolo() {faiequilatero(1.0), fatto = true;} /* costruttore parametrico num. 1: costruisce un triangolo equilatero di lato l */ Triangolo(double l) {faiequilatero(l), fatto = true;} /* costruttore parametrico num. 2: costruisce un triangolo (se possibile) assegnati i tre lati */ Triangolo(double l[]) {fatto = testcongruenzalati(l, 3); if(!fatto) {cerr << "questi lati: " << l[0] << ", " << l[1] << ", " << l[2] << " non possono formare un triangolo\n"; return;} lati[0] = l[0], lati[1] = l[1], lati[2] = l[2], ordinalati(), angoli[i[0]] = acos((l[i[1]]*l[i[1]]+l[i[2]]*l[i[2]] -l[i[0]]*l[i[0]])/(2.0*l[i[1]]*l[i[2]])); determinaforma(), angoli[i[1]] = asin(sin(angoli[i[0]])*l[i[1]]/l[i[0]]), angoli[i[2]] = asin(sin(angoli[i[0]])*l[i[2]]/l[i[0]]), /* costruttore parametrico num. 3: costruisce un triangolo assegnati due lati e l angolo compreso (sempre possibile... salvo patologie) */ Triangolo(double l[], double a) {fatto = testcongruenzalati(l, 2); if(!fatto) {cerr << "questi lati: " << l[0] << ", " << l[1]

6 << " non possono formare un triangolo\n"; return;} if(!(fatto && a > 0.0 && a < M PI)) {fatto = false; cerr << "quest angolo: " << a << " non può stare in un triangolo\n"; return;} lati[0] = l[0], lati[1] = l[1], lati[2] = sqrt(l[0]*l[0]+l[1]*l[1]-2.0*l[0]*l[1]*cos(a)), ordinalati(), angoli[2] = a, angoli[0] = asin(sin(angoli[2])*lati[0]/lati[2]), angoli[1] = asin(sin(angoli[2])*lati[1]/lati[2]), determinaforma(), /* costruttore parametrico num. 4: costruisce un triangolo assegnato un lato e i due angoli adiacenti */ Triangolo(double l, double a[]) {fatto = a[0] > 0.0 && a[1] > 0.0 && a[0] + a[1] < M PI; if(!fatto) {cout<< "\n...\n\" O cara piota mia che sì t insusi\n\ che, come veggion le terrene menti\n\ non càpere in trïangol due ottusi,\n\n\ così vedi le cose contingenti\n\ anzi che sieno in sé, mirando il punto\n\ a cui tutti li tempi son presenti\n...\"\n"; return;} if(!(fatto && l > 0)) {fatto = false; cerr << "questo lato: " << l << " non può appartenere a un triangolo\n"; return;} angoli[1] = a[0], angoli[2] = a[1], angoli[0] = M PI - a[0] - a[1], lati[0] = l, lati[1] = l * sin(angoli[1]) / sin(angoli[0]), lati[2] = l * sin(angoli[2]) / sin(angoli[0]), ordinalati(), determinaforma(), /* costruttore parametrico num. 5: costruisce un triangolo assegnati due lati, un angolo e un criterio di scelta nel caso esistano due triangoli compatibili (triangolo NON rettangolo) */ Triangolo(double l[], double a, char c) {fatto = a > 0.0 && a < M PI && l[0] > 0. && l[1] >= l[0] * sin(a); if(!fatto) {cerr << "la configurazione fornita (lati: " << l[0] <<", " << l[1] << "); angolo = " << a << " non può sussistere\n"; return;} angoli[2] = a; if(l[1] == l[0] * sin(a)) angoli[1] = 0.5*M PI, forma = rettangolo; {angoli[1] = asin(sin(a)*l[0]/l[1]), forma = acutangolo; if(c == O ) forma = ottusangolo, angoli[1] = M PI - angoli[1];} angoli[0] = M PI - angoli[1] - angoli[2],

7 lati[1] = l[0], lati[2] = l[1], lati[0] = lati[1] * sin(angoli[0]) / sin(angoli[1]), ordinalati(), /* costruttore parametrico num. 6: costruisce un triangolo assegnati i tre angoli e un criterio di scelta tra gli infiniti triangoli della data forma */ Triangolo(double a[], char c) {double p = 1.0; fatto = a[0] > 0.0 && a[1] > 0.0 && a[2] > 0.0 && fabs(a[0]+a[1]+a[2] - M PI) < 1.e-12; if(!fatto) {cerr << "gli angoli assegnati: " << a[0] << << a[1] << << a[2] << " (la cui somma vale " << a[0]+a[1]+a[2] <<") non possono appartenere a un triangolo\n"; return;} angoli[0] = a[0], angoli[1] = a[1], angoli[2] = a[2], determinaforma(), lati[0] = 1.0, lati[1] = sin(angoli[1])/sin(angoli[0]), lati[2] = sin(angoli[2])/sin(angoli[0]), ordinalati(); switch(c) {case PERIMETRO UNITARIO: p = Perimetro(), lati[0] /= p, lati[1] /= p, lati[2] /= p; case AREA UNITARIA: p = sqrt(area()), lati[0] /= p, lati[1] /= p, lati[2] /= p;} /* overload dell operator []: restituisce uno dei centri di un triangolo, secondo il valore trasferito come argomento e dichiarato in direttive define */ double * operator[](char c) {double * r; switch(c) {case ORTHO: case BARIC: case CIRCO: case INCEN: r = centri[c]; default: r = 0;} return r;}}; /* FINE DELLA CLASSE PER I TRIANGOLI */ /* variabili statiche */ enum Triangolo :: regolarita Triangolo :: regolarita; enum Triangolo :: forma Triangolo :: forma; const char * Triangolo :: descrizioni regolarita[] = {" equilatero ", " isoscele ", " scaleno "}; const char * Triangolo :: descrizioni forma[] = {" ", " acutangolo ", " rettangolo ", " ottusangolo "};

8 /* friend operator di output: modificabile a piacimento */ ostream & operator << (ostream & stream, Triangolo t) { int ** gradi minuti secondi = converti(t.angoli); char l; stream << setiosflags(ios::fixed) << setprecision(3) << "informazioni relative a un triangolo" << t.caratteristiche[0] << \b << t.caratteristiche[1] << "\b:\n"; switch(t.regolarita) {case Triangolo :: equilatero: stream << "lato = " << t.lati[0]<<endl, stream << "angolo = \n"; case Triangolo :: isoscele: switch(t.forma) { case Triangolo :: ottusangolo: case Triangolo :: acutangolo: l = 2 * (t.forma == Triangolo :: acutangolo), stream << "base = " << t.lati[t.i[l]] << endl, stream << "lato obliquo = " << t.lati[t.i[2-l]] << endl, stream << "angolo al vertice = " << gradi minuti secondi[t.i[l]][0] << << gradi minuti secondi[t.i[l]][1] << << gradi minuti secondi[t.i[l]][2]<< endl, stream << "angolo alla base = " << gradi minuti secondi[t.i[2-l]][0] << << gradi minuti secondi[t.i[2-l]][1] << << gradi minuti secondi[t.i[2-l]][2]<< endl; case Triangolo :: rettangolo: stream << "ipotenusa = " << t.lati[t.i[0]] << endl, stream << "cateto = " << t.lati[t.i[1]] << endl, stream << "angolo acuto = \n";} case Triangolo :: scaleno: switch(t.forma) { case Triangolo :: ottusangolo: case Triangolo :: acutangolo: stream << "lati: " << t.lati[0] << << t.lati[1] << << t.lati[2] << endl, stream << "angoli:" << gradi minuti secondi[t.i[0]][0] << << gradi minuti secondi[t.i[0]][1] << << gradi minuti secondi[t.i[0]][2] << "; " << gradi minuti secondi[t.i[1]][0] << << gradi minuti secondi[t.i[1]][1] << << gradi minuti secondi[t.i[1]][2] << "; " << gradi minuti secondi[t.i[2]][0] << << gradi minuti secondi[t.i[2]][1] << << gradi minuti secondi[t.i[2]][2] << \n ; case Triangolo :: rettangolo: stream << "ipotenusa = " << t.lati[t.i[0]] << endl, stream << "cateti: " << t.lati[t.i[1]] << << t.lati[t.i[2]] << endl, stream << "angoli acuti:" << gradi minuti secondi[t.i[1]][0] <<

9 << gradi minuti secondi[t.i[1]][1] << << gradi minuti secondi[t.i[1]][2] << "; " << gradi minuti secondi[t.i[2]][0] << << gradi minuti secondi[t.i[2]][1] << << gradi minuti secondi[t.i[2]][2] << \n ;}} stream << "il perimetro del triangolo vale " << t.perimetro()<<"\ne l area vale " << t.area() << endl; return stream;}

I TRIANGOLI Un triangolo è un poligono con tre lati e tre angoli.

I TRIANGOLI Un triangolo è un poligono con tre lati e tre angoli. I TRIANGOLI Un triangolo è un poligono con tre lati e tre angoli. In ogni triangolo un lato è sempre minore della somma degli altri due e sempre maggiore della loro differenza. Relazione fra i lati di

Dettagli

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Funzioni Esercizio 1 Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Creare un altra funzione, di nome float cube(float x), che restituisce invece il

Dettagli

I TRIANGOLI I TRIANGOLI 1. IL TRIANGOLO. Il triangolo è un poligono avente tre lati. a) Proprietà di un triangolo

I TRIANGOLI I TRIANGOLI 1. IL TRIANGOLO. Il triangolo è un poligono avente tre lati. a) Proprietà di un triangolo I TRIANGOLI 1. IL TRIANGOLO Il triangolo è un poligono avente tre lati. a) Proprietà di un triangolo In un triangolo: I lati e i vertici sono consecutivi fra loro. La somma degli angoli interni è sempre

Dettagli

SESSIONE ORDINARIA 2007 CORSO DI ORDINAMENTO SCUOLE ITALIANE ALL ESTERO - AMERICHE

SESSIONE ORDINARIA 2007 CORSO DI ORDINAMENTO SCUOLE ITALIANE ALL ESTERO - AMERICHE SESSIONE ORDINARIA 007 CORSO DI ORDINAMENTO SCUOLE ITALIANE ALL ESTERO - AMERICHE PROBLEMA Si consideri la funzione f definita da f ( x) x, il cui grafico è la parabola.. Si trovi il luogo geometrico dei

Dettagli

Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete. I triangoli e i criteri di congruenza Diapositive riassemblate e rielaborate da prof. ntonio Manca da materiali offerti dalla rete. ontributi di: tlas editore, matematicamente, Prof.ssa. nnamaria Iuppa,

Dettagli

Elementi di Geometria. Lezione 03

Elementi di Geometria. Lezione 03 Elementi di Geometria Lezione 03 I triangoli I triangoli sono i poligoni con tre lati e tre angoli. Nelle rappresentazioni grafiche (Figura 32) i vertici di un triangolo sono normalmente contrassegnati

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Introduzione alla programmazione in C++ 1 Un introduzione Che cosa è il C++? La programmazione procedurale La programmazione orientata agli oggetti La programmazione

Dettagli

Parte Seconda. Geometria

Parte Seconda. Geometria Parte Seconda Geometria Geometria piana 99 CAPITOLO I GEOMETRIA PIANA Geometria: scienza che studia le proprietà delle figure geometriche piane e solide, cioè la forma, l estensione e la posizione dei

Dettagli

Generalizzazione di funzioni e di classi. Macro come funzioni generiche

Generalizzazione di funzioni e di classi. Macro come funzioni generiche Alessio Bechini - Corso di - Generalizzazione di funzioni e di classi Il meccanismo di template Macro come funzioni generiche long longmax(long x, long y) { Possibile soluzione int intmax(int x, int y)

Dettagli

Corso Programmazione 1 Capitolo 01: Concetti Elementari

Corso Programmazione 1 Capitolo 01: Concetti Elementari Corso Programmazione 1 Capitolo 01: Concetti Elementari Docente: Roberto Sebastiani - roberto.sebastiani@unitn.it Esercitatori: Mario Passamani - mario.passamani@unitn.it Alessandro Tomasi - alessandro.tomasi@unitn.it

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)

Dettagli

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; } Java è un linguaggio di programmazione c indipendente dalla piattaforma, ovvero un linguaggio di programmazione che permette di compilare i programmi una volta sola e di installarli su computer che usano

Dettagli

APPUNTI SUL FILTRO 1-POLO

APPUNTI SUL FILTRO 1-POLO APPUNTI SUL FILTRO 1-POLO CARMINE EMANUELE CELLA Sommario. Forma differenziale e simmetrica; funzione di trasferimento e risposta in frequenza; calcolo dei coefficienti mediante condizioni sull equazione

Dettagli

Polinomio di secondo grado: Calcolo delle soluzioni di una equazione di secondo grado: import GraphicIO.*; public class Polinomio2 {

Polinomio di secondo grado: Calcolo delle soluzioni di una equazione di secondo grado: import GraphicIO.*; public class Polinomio2 { Polinomio di secondo grado: public class Polinomio2 GraphicConsole.println ("Inserisci i coefficienti interi del polinomio di secondo grado"); int a = GraphicConsole.readInt("a ="); int b = GraphicConsole.readInt("b

Dettagli

Ricerca sequenziale di un elemento in un vettore

Ricerca sequenziale di un elemento in un vettore Ricerca sequenziale di un elemento in un vettore La ricerca sequenziale o lineare è utilizzata per ricercare i dati in un vettore NON ordinato. L algoritmo di ricerca sequenziale utilizza quan non ha alcuna

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Realizzazione di Liste Laboratorio di Algoritmi e Strutture Dati Domenico Redavid redavid@di.uniba.it Materiale di base gentilmente concesso dal dott. Nicola Di Mauro Ricercatore presso l'univ. di Bari

Dettagli

Geogebra. Numero lati: Numero angoli: Numero diagonali:

Geogebra. Numero lati: Numero angoli: Numero diagonali: TRIANGOLI Geogebra IL TRIANGOLO 1. Fai clic sull icona Ic2 e nel menu a discesa scegli Nuovo punto : fai clic all interno della zona geometria e individua il punto A. Fai di nuovo clic per individuare

Dettagli

APPUNTI DI MATEMATICA GEOMETRIA \ GEOMETRIA EUCLIDEA \ GEOMETRIA DEL PIANO (1)

APPUNTI DI MATEMATICA GEOMETRIA \ GEOMETRIA EUCLIDEA \ GEOMETRIA DEL PIANO (1) GEOMETRIA \ GEOMETRIA EUCLIDEA \ GEOMETRIA DEL PIANO (1) Un ente (geometrico) è un oggetto studiato dalla geometria. Per descrivere gli enti vengono utilizzate delle definizioni. Una definizione è una

Dettagli

Visibilità dei Membri di una Classe

Visibilità dei Membri di una Classe Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce

Dettagli

Esercizi di programmazione in C

Esercizi di programmazione in C Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal

Dettagli

1: /* Nome del programma: gestione_articoli_01.cpp 2: Realizzato da: Gaetano Della Cerra 3: Data: 06/02/2010 - III Informatica Serale I.T.I.S.

1: /* Nome del programma: gestione_articoli_01.cpp 2: Realizzato da: Gaetano Della Cerra 3: Data: 06/02/2010 - III Informatica Serale I.T.I.S. 1: /* Nome del programma: gestione_articoli_01.cpp 2: Realizzato da: Gaetano Della Cerra 3: Data: 06/02/2010 - III Informatica Serale I.T.I.S. Molinari 4: Il programma gestisce gli articoli di un negozio

Dettagli

Elenco Ordinato per Materia Chimica

Elenco Ordinato per Materia Chimica ( [B,25404] Perché le ossa degli uccelli sono pneumatiche, cioè ripiene di aria? C (A) per consentire i movimenti angolari (B) per immagazzinare come riserva di ossigeno X(C) per essere più leggere onde

Dettagli

Piano Lauree Scientifiche 2011-2012

Piano Lauree Scientifiche 2011-2012 Piano Lauree Scientifiche 2011-2012 «non si può intendere se prima non s impara a intender lingua, e conoscer i caratteri, nei quali è scritto. Egli è scritto in lingua matematica, e i caratteri sono triangoli,

Dettagli

Sapienza, Università di Roma. Ingegneria, Scienze M. F.N., Scienze Statistiche 11 settembre 2009

Sapienza, Università di Roma. Ingegneria, Scienze M. F.N., Scienze Statistiche 11 settembre 2009 Sapienza, Università di Roma Facoltà di Ingegneria, Scienze M. F.N., Scienze Statistiche 11 settembre 009 1. È data una sequenza di n numeri dispari consecutivi. etto M il maggiore della sequenza ed m

Dettagli

Input / Output attraverso stream. I/O in C vs. I/O in C++

Input / Output attraverso stream. I/O in C vs. I/O in C++ Alessio Bechini - Corso di - Input / Output attraverso stream (anno accademico 2002-2003) Utilizzo di stream per I/O I/O in C vs. I/O in C++ La libreria C standard per l I/O viene acceduta con stdio.h

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

Corso di Grafica Computazionale

Corso di Grafica Computazionale Corso di Grafica Computazionale Note di C++ Docente: Massimiliano Corsini Laurea Specialistica in Ing. Informatica Università degli Studi di Siena Note Iniziali Il C++ non ha il concetto dei packages In

Dettagli

COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002. Soluzione degli Esercizi

COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002. Soluzione degli Esercizi COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002 degli Esercizi ESERCIZIO 1. Si consideri il seguente frammento di codice in linguaggio Java: int i=0, j=0; int[][] a=b; boolean trovato=false;

Dettagli

ESERCIZI DI TOPOGRAFIA per gli Allievi Istituto per Geometri. rel. 0.1. Esercizi di Topografia distribuzione gratuita 1/6

ESERCIZI DI TOPOGRAFIA per gli Allievi Istituto per Geometri. rel. 0.1. Esercizi di Topografia distribuzione gratuita 1/6 ESERCIZI DI TOPOGRAFIA per gli Allievi Istituto per Geometri rel. 0.1 Esercizi di Topografia distribuzione gratuita 1/6 Indice generale ANNO 3...3 1.1 - Esercizi pratica calcolatrice...3 1.2 - Esercizi

Dettagli

Indice. Introduzione. I tipi aritmetici. Variabili e Tipi Fondamentali in C++ (CAP 2, parte I) Alberto Garfagnini e Marco Mazzocco A.A.

Indice. Introduzione. I tipi aritmetici. Variabili e Tipi Fondamentali in C++ (CAP 2, parte I) Alberto Garfagnini e Marco Mazzocco A.A. Variabili e Tipi Fondamentali in C++ (CAP 2, parte I) Alberto Garfagnini e Marco Mazzocco Università degli studi di Padova A.A. 2014/2015 Indice Tipi semplici propri del linguaggio Variabili Tipi composti

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

Const, friend, static,this

Const, friend, static,this Const, friend, static,this Sommario Lo speficatore const per gli oggetti e le funzioni membro Le funzioni friend I membri static di una classe Il puntatore this Oggetti const Alcuni oggetti devono poter

Dettagli

AREA RETTANGOLO LIRE IN EURO

AREA RETTANGOLO LIRE IN EURO AREA RETTANGOLO Private Sub Area() Dim h As Integer h = InputBox("altezza") b = InputBox("base") A = b * h MsgBox( L area del Rettangolo è : & A) LIRE IN EURO Dim lire As Double Dim euro As Double lire

Dettagli

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...

Dettagli

costruttori e distruttori

costruttori e distruttori costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,

Dettagli

Disegno in quadretti le parti da calcolare; se capisco quanto vale un quadretto è fatta.

Disegno in quadretti le parti da calcolare; se capisco quanto vale un quadretto è fatta. CLASSE III C RECUPERO GEOMETRIA AREA PERIMETRO POLIGONI Disegno in quadretti le parti da calcolare; se capisco quanto vale un quadretto è fatta. ES: se ho fatto questo disegno e so che 1 quadretto vale

Dettagli

Corso di Programmazione ad oggetti

Corso di Programmazione ad oggetti Corso di Programmazione ad oggetti Il sistema di I/O del C++ a.a. 2008/2009 Claudio De Stefano 1 Il Modello di Von Neumann Il Modello di Von Neumann prevede che la CPU carichi in maniera sequenziale i

Dettagli

Prova Scritta del 19/07/10

Prova Scritta del 19/07/10 Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da un solo lato. In testa a ciascun foglio scrivere: cognome, nome, numero progressivo

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

MODULO DI MATEMATICA. di accesso al triennio. Potenze. Proporzioni. Figure piane. Calcolo di aree

MODULO DI MATEMATICA. di accesso al triennio. Potenze. Proporzioni. Figure piane. Calcolo di aree MODULO DI MATEMATICA di accesso al triennio Abilità interessate Utilizzare terminologia specifica. Essere consapevoli della necessità di un linguaggio condiviso. Utilizzare il disegno geometrico, per assimilare

Dettagli

Esercizi della lezione 5 di Java

Esercizi della lezione 5 di Java Esercizi della lezione 5 di Java Esercizio 5 Create il tipo di dato Counter dell Esercizio 1 come sottoclasse del tipo di dato SimpleCounter. Esercizio 1 Create un tipo di dato Counter che abbia: un valore

Dettagli

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza vers.0 in lavorazione Docente SAFFI FABIO Contenuti Implementazione delle operazioni di base mediante main in un unico file sorgente... 2 Struttura

Dettagli

Introduzione a GeoGebra

Introduzione a GeoGebra Introduzione a GeoGebra Nicola Sansonetto Istituto Sanmicheli di Verona 31 Marzo 2016 Nicola Sansonetto (Sanmicheli) Introduzione a GeoGebra 31 Marzo 2016 1 / 14 Piano dell incontro 1 Introduzione 2 Costruzioni

Dettagli

Le operazioni di allocazione e deallocazione sono a carico del sistema.

Le operazioni di allocazione e deallocazione sono a carico del sistema. Allocazione della memoria In C++ è possibile creare (allocare) variabili in maniera statica o dinamica. Nell allocazione statica una variabile esiste ed è utilizzabile dal momento della sua dichiarazione

Dettagli

a) Si descriva, internamente al triangolo, con centro in B e raggio x, l arco di circonferenza di π π

a) Si descriva, internamente al triangolo, con centro in B e raggio x, l arco di circonferenza di π π PROBLEMA Il triangolo rettangolo ABC ha l ipotenusa AB = a e l angolo CAB =. a) Si descriva, internamente al triangolo, con centro in B e raggio, l arco di circonferenza di estremi P e Q rispettivamente

Dettagli

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni Esercizio 1 Nella classe definita di seguito indicare quali sono le variabili di istanza, quali sono le variabili

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

void funzioneprova() { int x=2; cout<<dentro la funzione x=<<x<<endl; } FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo

Dettagli

Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo.

Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo. Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo. public abstract class FiguraPiana2{ private double base; public FiguraPiana2(double

Dettagli

Cesare Rota. Programmare con C++ EDITORE ULRICO HOEPLI MILANO

Cesare Rota. Programmare con C++ EDITORE ULRICO HOEPLI MILANO Cesare Rota Programmare con C++ EDITORE ULRICO HOEPLI MILANO Copyright Ulrico Hoepli Editore S.p.A. 2009 via Hoepli 5, 20121 Milano (Italy) tel. +39 02 864871 fax +39 02 8052886 e-mail hoepli@hoepli.it

Dettagli

MATEMATICA 2001. p = 4/6 = 2/3; q = 1-2/3 = 1/3. La risposta corretta è quindi la E).

MATEMATICA 2001. p = 4/6 = 2/3; q = 1-2/3 = 1/3. La risposta corretta è quindi la E). MATEMATICA 2001 66. Quale fra le seguenti affermazioni è sbagliata? A) Tutte le funzioni ammettono la funzione inversa B) Una funzione dispari è simmetrica rispetto all origine C) Una funzione pari è simmetrica

Dettagli

IGiochidiArchimede--Soluzionibiennio

IGiochidiArchimede--Soluzionibiennio PROGETTO OLIMPIDI DI MTEMTI U.M.I. UNIONE MTEMTI ITLIN MINISTERO DELL PULI ISTRUZIONE SUOL NORMLE SUPERIORE IGiochidirchimede--Soluzionibiennio 18 novembre 2009 Griglia delle risposte corrette Problema

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Il codice del progetto ATM

Il codice del progetto ATM APPENDICE E Il codice del progetto ATM E.1 Implementazione del progetto ATM Questa appendice contiene il codice completo dell implementazione del progetto del sistema ATM, sviluppato nelle sezioni Pensare

Dettagli

SIMULAZIONE QUARTA PROVA: MATEMATICA

SIMULAZIONE QUARTA PROVA: MATEMATICA SIMULAZIONE QUARTA PROVA: MATEMATICA COGNOME: NOME: TEMPO IMPIEGATO: VOTO: TEMPO DELLA PROVA = 44 (a fianco di ogni quesito si trova il tempo consigliato per lo svolgimento dell esercizio). PUNTEGGIO TOTALE

Dettagli

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard)

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard) Capitolo 6 Input/output su file BOZZA 6.1 Stream e file L input/output in C ++, in particolare quello su file, avviene tramite stream. stream. Uno stream è un astrazione di un canale di comunicazione,

Dettagli

Esonero del corso di Programmazione a Oggetti

Esonero del corso di Programmazione a Oggetti Esonero del corso di Programmazione a Oggetti Roma, 1 dicembre 2005 Considerate le seguenti definizioni di classi e interfacce in Java: interface Fumetto{ void esclama(); void utile(); class Personaggio

Dettagli

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi

Dettagli

Indice. Materiale di riferimento. Struttura di un programma in C++ Introduzione al C++ (CAP 1) Alberto Garfagnini e Marco Mazzocco A.A.

Indice. Materiale di riferimento. Struttura di un programma in C++ Introduzione al C++ (CAP 1) Alberto Garfagnini e Marco Mazzocco A.A. Introduzione al C++ (CAP 1) Alberto Garfagnini e Marco Mazzocco Università degli studi di Padova A.A. 2014/2015 Indice Scrittura del primo programma in C++ elementi costitutivi del programma compilazione

Dettagli

INFORMATICA - I puntatori Roberta Gerboni

INFORMATICA - I puntatori Roberta Gerboni 1 2 I puntatori in C++ Il puntatore un tipo di dato scalare, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un

Dettagli

Istituto Professionale di Stato per l Industria e l Artigianato Giancarlo Vallauri. Classi I C I G

Istituto Professionale di Stato per l Industria e l Artigianato Giancarlo Vallauri. Classi I C I G Esercizi Estivi di Matematica a.s. 0/04 Istituto Professionale di Stato per l Industria e l Artigianato Giancarlo Vallauri Classi I C I G ALUNNO CLASSE Ulteriore ripasso e recupero anche nei siti www.vallauricarpi.it

Dettagli

ESAME DI STATO DI LICEO SCIENTIFICO CORSO DI ORDINAMENTO 2004

ESAME DI STATO DI LICEO SCIENTIFICO CORSO DI ORDINAMENTO 2004 ESAME DI STATO DI LICEO SCIENTIFICO CORSO DI ORDINAMENTO 004 Il candidato risolva uno dei due problemi e 5 dei 10 quesiti in cui si articola il questionario. PROBLEMA 1 Sia f la funzione definita da: f

Dettagli

Funzioni. Corso di Fondamenti di Informatica

Funzioni. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Funzioni Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e dei

Dettagli

Parcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento

Parcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento Parcheggio.rtf 1/8 6 gennaio 2009 Prova di programmazione: parcheggio a pagamento Si sviluppi il codice per la gestione di un parcheggio a pagamento mediante la classe Parcheggio, che ospita le auto rappresentate

Dettagli

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I. 2004

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I. 2004 ESAME DI STAT DI LICE SCIENTIFIC CRS SPERIMENTALE P.N.I. 004 Il candidato risolva uno dei due problemi e 5 dei 0 quesiti in cui si articola il questionario. PRBLEMA Sia la curva d equazione: ke ove k e

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 NOTA: Si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main. Inoltre, nei programmi è da sottintendere

Dettagli

Modulo 5 La programazione Unità 4 Selezione

Modulo 5 La programazione Unità 4 Selezione Modulo 5 La programazione Unità 4 Selezione Prof. Antonio Scanu 1 Quando si utilizza Il costrutto selezione Questo costrutto permette di effettuare una scelta fra due possibili alternative. Per effettuare

Dettagli

Matematica Livello secondario I Indice del Quaderno d'accompagnamento 1

Matematica Livello secondario I Indice del Quaderno d'accompagnamento 1 Matematica Livello secondario I Indice del Quaderno d'accompagnamento 1 Indice / Terminologia addendo x L'addizione, la somma, l'addendo, più 1 2a 24 addizionare x L'addizione, la somma, l'addendo, più

Dettagli

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java Fondamenti di Informatica Dichiarazione, creazione e gestione di array in Java Array in Java - creazione La creazione fa una inizializzazione implicita: num = new int[10]; con valore 0 per int e double,

Dettagli

Algoritmi su array / 2

Algoritmi su array / 2 Corso di Informatica Algoritmi su array / Anno Accademico / Francesco Tortorella Algoritmi su array Operazioni tipiche sugli array: inizializzazione lettura stampa ricerca del minimo e del massimo ricerca

Dettagli

SOLUZIONE ESERCIZIO 1

SOLUZIONE ESERCIZIO 1 SOLUZIONE ESERCIZIO 1 Progettare un algoritmo che dati tre numeri (voti) a, b, c che possono assumere i valori interi da 18 a 30, calcoli la loro media. #include void main() { int a, b, c; float

Dettagli

Corso di Fondamenti di Informatica Algoritmi su array / 2

Corso di Fondamenti di Informatica Algoritmi su array / 2 Corso di Fondamenti di Informatica Algoritmi su array / Anno Accademico 00/009 Francesco Tortorella Algoritmi su array Operazioni tipiche sugli array: inizializzazione lettura stampa ricerca del minimo

Dettagli

Punti notevoli di un triangolo

Punti notevoli di un triangolo Punti notevoli dei triangoli (UbiLearning). - 1 Punti notevoli di un triangolo Particolarmente importanti in un triangolo sono i punti dove s intersecano specifici segmenti, rette o semirette (Encyclopedia

Dettagli

Grammatica di base: Pointers

Grammatica di base: Pointers Grammatica di base: Pointers Esistono I puntatori a funzioni. Bisogna esplicitare esattamente il tipo di ritorno e il tipo di argomento. Per evitare ambiguità con il prefisso * nel declarator, il nome

Dettagli

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4]; ARRAY BIDIMENSIONALI Si possono definire array di qualunque tipo di dato, quindi anche di altre array float [][] mx = new float[3][4]; ovvero.. (float []) [] mx = new float[3][4]; La loro motivazione (storica)

Dettagli

Le stringhe. Le stringhe

Le stringhe. Le stringhe Informatica: C++ Gerboni Roberta Stringhe di caratteri (esempi di utilizzo dei vettori) Nel linguaggio C++ una stringa è semplicemente un vettore di caratteri Vettori di caratteri La stringa "hello" è

Dettagli

Esempi di esercizi d esame

Esempi di esercizi d esame Esempi di esercizi d esame Fondamenti di Informatica L-B 1 Cellulare Testo esercizio: 1.Specifiche Si richiede di realizzare una classe che implementa il funzionamento di un telefono cellulare Tale classe

Dettagli

Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Soluzioni delle prove al calcolatore Esercizio 7 (esame del 08/01/2009) class TabellaDiNumeri{ private double[][] tabella;

Dettagli

Unità Didattica N 28 Punti notevoli di un triangolo

Unità Didattica N 28 Punti notevoli di un triangolo 68 Unità Didattica N 8 Punti notevoli di un triangolo Unità Didattica N 8 Punti notevoli di un triangolo 0) ircocentro 0) Incentro 03) Baricentro 04) Ortocentro Pagina 68 di 73 Unità Didattica N 8 Punti

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Test di autovalutazione

Test di autovalutazione Test di autovalutazione 0 0 0 0 0 0 0 70 80 90 00 n Il mio punteggio, in centesimi, è n Rispondi a ogni quesito segnando una sola delle alternative. n onfronta le tue risposte con le soluzioni. n olora,

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Laboratorio di Programmazione Gruppo III, Ml-ZZ. Alberto Finzi finzi@na.infn.it

Laboratorio di Programmazione Gruppo III, Ml-ZZ. Alberto Finzi finzi@na.infn.it Laboratorio di Programmazione Gruppo III, Ml-ZZ Alberto Finzi finzi@na.infn.it Record e File binari Record La definizione della struttura è data dalla parola riservata struct seguita da un identificatore,

Dettagli

ESAME DI STATO 2002 SECONDA PROVA SCRITTA PER IL LICEO SCIENTIFICO DI ORDINAMENTO

ESAME DI STATO 2002 SECONDA PROVA SCRITTA PER IL LICEO SCIENTIFICO DI ORDINAMENTO ARCHIMEDE 4/ 97 ESAME DI STATO SECONDA PROVA SCRITTA PER IL LICEO SCIENTIFICO DI ORDINAMENTO Il candidato risolva uno dei due problemi e 5 dei quesiti in cui si articola il questionario. PROBLEMA In un

Dettagli

UNIONE MATEMATICA ITALIANA. C. I. I. M. Commissione Italiana per l'insegnamento della Matematica

UNIONE MATEMATICA ITALIANA. C. I. I. M. Commissione Italiana per l'insegnamento della Matematica UNIONE MATEMATICA ITALIANA C. I. I. M. Commissione Italiana per l'insegnamento della Matematica ESEMPI DI TERZE PROVE per il NUOVO ESAME DI STATO LA COMPONENTE MATEMATICA ISTITUTO MAGISTRALE Tipologia

Dettagli

Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli. 20 Ottobre 2014

Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli. 20 Ottobre 2014 Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli 20 Ottobre 2014 1 Tipi non Predefiniti Abbiamo visto: Tipi elementari (int, float, char,...) Tipi composti (arrays e tipi non predefiniti) C++ permette

Dettagli

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) Scrivere una funzione per definire se un numero è primo e un programma principale minimale che ne testa la funzionalità. #include

Dettagli

IEIM. Esercizio Gestione Automobili Strutture e Files 2014-2015. Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.it

IEIM. Esercizio Gestione Automobili Strutture e Files 2014-2015. Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.it IEIM Esercizio Gestione Automobili Strutture e Files 2014-2015 Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.it 1 2 Automobili Rappresentare in C una automobile. Nel nostro caso, una automobile

Dettagli

obiettivi di questa seconda metà del corso fare un passo avanti rispetto a :... meccanismi di composizione dei dati

obiettivi di questa seconda metà del corso fare un passo avanti rispetto a :... meccanismi di composizione dei dati obiettivi di questa seconda metà del corso fare un passo avanti rispetto a :... meccanismi di composizione dei dati puntatori ( strutture dinamiche collegate) strutture dinamiche collegate (liste, pile,

Dettagli

FORMULARIO DI GEOMETRIA

FORMULARIO DI GEOMETRIA FORMULARIO DI GEOMETRIA A cura di Valter Gentile E-Notes pubblicata dalla Biblioteca Centrale di Ingegneria Siena, 12 settembre 2006 1 GEOMETRIA Principi ( da scheda 1 a 5) Solidi (da scheda 18 a 35) Teoremi

Dettagli

MATEMATICA C3 GEOMETRIA 1 2. CONGRUENZA NEI TRIANGOLI

MATEMATICA C3 GEOMETRIA 1 2. CONGRUENZA NEI TRIANGOLI MTEMTIC C3 GEOMETRI 1 2. CONGRUENZ NEI TRINGOLI Triangle Shapes Photo by: maxtodorov Taken from: http://www.flickr.com/photos/maxtodorov/3066505212/ License: Creative commons ttribution TRINGOLI 1 Indice

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

FUNZIONI. La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni:

FUNZIONI. La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni: FUNZIONI La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni: double sqrt(double) double pow (double, double) della libreria matematica, che abbiamo già usato anche senza

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

Dispense per TFA. Domenico Candeloro

Dispense per TFA. Domenico Candeloro Dispense per TFA Domenico Candeloro Introduzione. Queste brevi dispense hanno lo scopo di illustrare alcuni strumenti elementari della Matematica, oggetto di studio nelle Scuole Medie, Superiori e non,

Dettagli

Utilizzo e scrittura di classi

Utilizzo e scrittura di classi Utilizzo e scrittura di classi Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 14 novembre, 2001 Gino Perna Implementazione di classi in C++ UN ESEMPIO DI CLASSE: RISULTATI

Dettagli

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012 Programmazione a oggetti e JAVA Prof. B.Buttarazzi A.A. 2011/2012 Sommario Variabili statiche Ereditarietà multipla Le interfacce Binding Esercizi Esercizio ContoCorrente Creare una classe ContoCorrente

Dettagli