Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
ESERCIZI SVOLTI IN LINGUAGGIO C++ (PARTE 1) - Per corsi di laurea in Ingegneria
INTRODUZIONE
La seguente raccolta di esercizi deriva dalla passione dell'autore per la Programmazione Informatica e per la didattica in generale. Questo lavoro non vuole in alcun modo sostituirsi ad un libro di testo universitario, ma è indirizzato a coloro che necessitino di un supporto più "operativo" alla programmazione.
Per forza di cose, un libro di testo deve utilizzare un linguaggio ricercato ed esporre la materia in maniera rigorosa. Questa dispensa invece, ha l'obiettivo di supportare chi vuole avvicinarsi alla programmazione per la prima volta o chi, semplicemente, desidera un approccio immediato alla risoluzione degli esercizi.
Il lavoro è incentrato principalmente sugli array bidimensionali (matrici), in quanto si ritiene siano oggetti molto utili all'approccio della materia.
Con la speranza di poter continuare in questa meravigliosa avventura, auguro a...
tuttiuna proficua lettura del documento. Raffaele I.1
ESERCIZIO 1: Dimensionamento, inserimento elementi e stampa di una matrice. Il programma esegue anche un controllo dell'errore.
#include <iostream>
#include <cstdlib>
using namespace std;
/* Questo programma permette di definire i riempimenti di una matrice mxn,
di inserirne manualmente gli elementi e di stamparla.
E' presente anche un controllo dell'errore sui riempimenti. */
int main(){
int i, j, m, n;
restart:
// Inserimento manuale dei riempimenti della matrice
cout << "Inserire un numero di righe: ";
cin >> m;
cout << "Inserire un numero di colonne: ";
cin >> n;
// Controllo se sono presenti errori di inserimento
if(m<=0 || n<=0){
cout << "Errore: inserire solo riempimenti positivi." << endl;
goto restart;
}else{
cout << "M è una matrice " << m;
<< " x "<< n << endl;// Dimensionamento matrice int M[m][n];// Inserimento manuale degli elementi della matrice cout << "Inserire gli elementi di M:"<<endl; for(i=0; i<m; i++){ for(j=0; j<n; j++){ cout<<"M["<<i<<"]["<<j<<"] = "; cin>>M[i][j]; } } // Stampa della matrice M cout<<"Stampa della matrice inserita: " << endl; for(i=0; i<m; i++){ for(j=0; j<n; j++){ cout<<M[i][j]<< " "; } cout<<endl; } return 0; }ESERCIZIO 2: Assegnato un array bidimensionale (matrice) di riempimenti med n, determinare la somma dei suoi elementi. ________________________________________________________________________________
#include <iostream> using namespace std; /* Questo programma restituisce la somma degli elementi di un array bidimensionale (matrice), di riempimenti "m" ed "n" */ int main(){ int m,n; restart:
cout << "Inserire un numero di righe: ";
cin >> m;
cout << "Inserire un numero di colonne: ";
cin >> n;
if(m<=0 || n<=0){
cout << "Errore: inserire solo riempimenti positivi." << endl;
goto restart;
}
else{
cout << "M è una matrice " << m << " x " << n << endl;
int M[m][n];
int somma = 0;
cout << "Inserire gli elementi della della matrice M:" << endl;
for(int i=0; i> M[i][j];
somma = somma + M[i][j];
}
cout << "La somma degli elementi della matrice M è: " << somma << endl;
}
return 0;
#include <iostream>
#include <cstdlib>
using namespace std;
/* Questo programma restituisce il valore medio degli elementi di
ciascuna riga di una matrice (definita dall'utente), di riempimenti "m" ed "n" */
int main() {
int m, n;
restart:
// Inserimento manuale dei riempimenti della matrice
cout << "Inserire un numero di righe: ";
cin >> m;
cout << "Inserire un numero di colonne: ";
cin >> n;
if (m <= 0 || n <= 0) {
cout << "Errore: inserire solo riempimenti positivi." << endl;
goto restart;
} else {
int M[m][n];
// Cicla fino a che l'utente non inserisce tutti gli elementi della matrice
cout << "Inserire gli elementi della matrice M:\n";
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cout << "M[" << i << "," << j << "]=";
}
}
}
return 0;
}
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
int m, n;
cout << "Inserisci il numero di righe della matrice: ";
cin >> m;
cout << "Inserisci il numero di colonne della matrice: ";
cin >> n;
int M[m][n];
cout << "Inserisci gli elementi della matrice:" << endl;
for(int i=0; i> M[i][j];
}
}
cout << "La matrice M inserita è:" << endl;
for(int i=0; i
ESERCIZIO 4: Data una matrice di interi, di riempimenti scelti dall'utente, determinare il massimo e il minimo tra i suoi elementi, individuando i rispettivi indici di riga e colonna.
namespace std;/* Questo programma consente di determinare il minimo ed il massimo tra gli elementidi una matrice (definita dall'utente), insieme ai rispettivi indici di riga e colonna. */
int main(){ // Inserimento manuale dei riempimenti della matrice
int m,n;
cout << "Inserire riempimento righe: ";
cin >> m;
cout << "Inserire riempimento colonne: ";
cin >> n;
int M[m][n];
int max, min;
int indice_riga_max, indice_riga_min = 0;
int indice_colonna_max, indice_colonna_min = 0;
cout << "Inserire gli elementi dell'array: " << endl;
for(int i=0; i<m; i++)
for(int j=0; j<n; j++){
cout << "M[" << i << "][" << j << "] = ";
cin >> M[i][j];
/* Algoritmo di ricerca del minimo e del massimo */
if((i==0)&&(j==0)){
max = M[i][j];
min = M[i][j];
indice_riga_max = i;
indice_colonna_max = j;
indice_riga_min = i;
indice_colonna_min = j;
}
if(M[i][j] > max){
max = M[i][j];
indice_riga_max = i;
indice_colonna_max = j;
}
if(M[i][j] < min){
min = M[i][j];
indice_riga_min = i;
indice_colonna_min = j;
}
}
cout << "Il massimo elemento della matrice è " << max << " e si trova nella posizione [" << indice_riga_max << "][" << indice_colonna_max << "]" << endl;
cout << "Il minimo elemento della matrice è " << min << " e si trova nella posizione [" << indice_riga_min << "][" << indice_colonna_min << "]" << endl;
return 0;
}
#include <iostream> using namespace std; int main() { int m, n; cout << "Inserisci il numero di righe: "; cin >> m; cout << "Inserisci il numero di colonne: "; cin >> n; int M[m][n]; cout << "Inserisci gli elementi della matrice:" << endl; for(int i=0; i<m; i++){ for(int j=0; j<n; j++){ cout << "Elemento [" << i << "][" << j << "]: "; cin >> M[i][j]; } } int max = M[0][0]; int min = M[0][0]; int indice_riga_max = 0; int indice_colonna_max = 0; int indice_riga_min = 0; int indice_colonna_min = 0; for(int i=0; i<m; i++){ for(int j=0; j<n; j++){ if(M[i][j] > max){ max = M[i][j]; indice_riga_max = i; indice_colonna_max = j; } if(M[i][j] < min){ min = M[i][j]; indice_riga_min = i; indice_colonna_min = j; } } } cout << "Stampa della matrice inserita: " << endl; for(int i=0; i<m; i++){ for(int j=0; j<n; j++){ cout << M[i][j] << " "; } cout << endl; } cout << "Il massimo è " << max << "; indice di riga " << indice_riga_max << ", indice di colonna " << indice_colonna_max << "." << endl; cout << "Il minimo è " << min << "; indice di riga " << indice_riga_min << ", indice di colonna " << indice_colonna_min << "." << endl; return 0; }
<iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
/* Questo programma permette di scambiare le righe di due matrici (definite dall'utente),di riempimenti "m" ed "n" */
int m, n, k, p, i, j;
int main(){
restart:
// Inserimento dei riempimenti comuni alle due matrici
cout << "Inserire un numero di righe: ";
cin >> m;
cout << "Inserire un numero di colonne: ";
cin >> n;
// Controlla che l'utente inserisca solo riempimenti positivi.
if(m<=0 || n<=0){
cout << "Errore: inserire solo riempimenti positivi." << endl;
goto restart;
}else{
// Definizione degli elementi delle due matrici M1 ed M2.
int M1[m][n];
int M2[m][n];
cout << "M1 ed M2 sono matrici " << m << "x" << n << endl;
// Inserimento elementi di M1
cout << "Inserire gli elementi di M1:" << endl;
for(i=0; i<m; i++){
for(j=0; j<n; j++){
cout
<< "M1[" << i << "][" << j << "] = ";cin >> M1[i][j]; }} // Inserimento elementi di M2 cout << "Inserire gli elementi di M2:"<<endl; for(i=0; i<m; i++){ for(j=0; j<n; j++){ cout << "M2[" << i << "][" << j << "] = ";cin >> M2[i][j]; } } // Stampa la matrice M1 cout << "Stampa della matrice M1:\n"; for(i=0; i<m; i++){ for(j=0; j<n; j++){ cout << M1[i][j] << " "; } cout << endl; } // Stampa la matrice M2 cout<<"Stampa della matrice M2:\n"; for(i=0; i<m; i++){ for(j=0; j<n; j++){ cout << M2[i][j] << " "; } cout << endl; } cout << "Attenzione: Per ciascuna delle matrici, per indicare la prima riga bisogna inserire indice 0, "; cout << endl; cout << "per indicare la seconda riga bisogna inserire indice 1 e così via...
<p>";cout << endl;cout << "Inserire l'indice della riga di M1 da scambiare: ";cin >> k; 10cout << "Inserire l'indice dell"</p>