Linguaggio C++ 8. Matrici

Documenti analoghi
Introduzione alla programmazione Esercizi risolti

Le matrici. Sia K un campo con elemento neutro dell addizione 0 ed elemento neutro della moltiplicazione 1.

Esercizi C su array e matrici

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

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

Definizioni e operazioni fondamentali

Sistemi lineari. 2x 1 + x 2 x 3 = 2 x 1 x 2 + x 3 = 1 x 1 + 3x 2 2x 3 = 0. x 1 x 2 x 3

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Esercitazione di Matematica su matrici e sistemi lineari

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Fondamenti di Informatica T-1 Modulo 2

Corso di Informatica di Base

Corso di Geometria BIAR, BSIR Esercizi 2: soluzioni

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

L ALGORITMO DEL SIMPLESSO REVISIONATO

6SC Informatica 9/12/2015

Architetture aritmetiche

3. Matrici e algebra lineare in MATLAB

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Vettori e matrici. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Corso di Matematica e Statistica 3 Algebra delle matrici. Una tabella rettangolare: la matrice. Una tabella rettangolare: la matrice

Codifica di canale. (dalle dispense e dalle fotocopie) Trasmissione dell Informazione

Esercitazione di Calcolo Numerico 1 22 Aprile Determinare la fattorizzazione LU della matrice a 1 1 A = 3a 2 a 2a a a 2 A =

Matrici quadrate particolari

Array e puntatori in C

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.

1) Quali dei seguenti sottoinsiemi del campo dei numeri reali ℝ sono sottospazi vettoriali?

Laboratorio di Python

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

n deve essere maggiore di 0, altrimenti il metodo restituisce null.

( ) TEORIA DELLE MATRICI. A. Scimone a.s pag 1

Gara Matematica. Dipartimento di Matematica Ulisse Dini. Viale Morgagni 67/a Firenze. Soluzioni edizione 2011

Programmazione I - corso B a.a prof. Viviana Bono

Esercitazione di Analisi Matematica II

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

per un altro; le più importanti sono quelle di seguito elencate.

Variabili strutturate

Corso di Fondamenti di Informatica Classi di istruzioni 2

Geometria BIAR Esercizi 2

QUADRATO MAGICO DI ORDINE PARI (n=4)

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

MATRICI E VETTORI APPROFONDIMENTO PER IL CORSO DI LABORATORIO DI INFORMATICA SARA POLTRONIERI

I quadrati magici. Ivana Sacchi -

SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI

Riepilogo scomposizione polinomi

DOCUMENTAZIONE A SUPPORTO DELLA PREPARAZIONE PER LA PROVA SCRITTA

Note per il corso di Geometria e algebra lineare Corso di laurea in Ing. Elettronica e delle Telecomunicazioni

Decomposizione LU di una matrice quadrata

Sezione Prima Derivate di funzioni elementari: quadro riassuntivo e regole di derivazione. = ( n) lim x

Laboratorio di programmazione

ALGEBRA LINEARE PARTE II

Vettori Algoritmi elementari di ordinamento

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

PROGRAMMAZIONE: Le strutture di controllo

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

Formalismi per la descrizione di algoritmi

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

Misure di diversità tra unità statistiche. Loredana Cerbara

Si consideri il sistema a coefficienti reali di m equazioni lineari in n incognite

AMBIENTE EXCEL CALCOLO DEL RESTO DELLA DIVISIONE FRA NATURALI

Un esempio di applicazione della programmazione lineare intera: il Sudoku

Dati aggregati. Violetta Lonati

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili

Anno 4 Matrice inversa

Motivazione: Come si fa? Matrici simmetriche. Fattorizzazioni di matrici speciali

#include <iostream> using namespace std; // int main ( ) { // --- Dichiarazione delle variabili int N ; float A, Pot;

Corso di Matematica per la Chimica

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

TEMPUS PECUNIA EST COLLANA DI MATEMATICA PER LE SCIENZE ECONOMICHE FINANZIARIE E AZIENDALI

Concetti fondamentali

Variabile, costante ed espressione

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice:

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

I FACOLTÀ DI INGEGNERIA - POLITECNICO DI BARI Corso di Laurea in Ingegneria Meccanica (corso A) A.A , Esercizi di Geometria analitica

2. Algoritmi e Programmi

= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con

Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

Ottenere una modifica del parametro attuale

Complementi 3 - Richiami di algebra tensoriale

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

EQUAZIONE DELLA RETTA

Proprietà. della Tavola. Pitagorica //

Sistemi lineari - Parte Seconda - Esercizi

08 - Matrici, Determinante e Rango

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Lezione 6 Selection/Insertion Sort su interi e stringhe

Esercizi di ripasso: geometria e algebra lineare.

Geometria analitica di base. Equazioni di primo grado nel piano cartesiano Funzioni quadratiche Funzioni a tratti Funzioni di proporzionalità inversa

FACOLTA DI INGEGNERIA INGEGNERIA INFORMATICA A.A. 2008/2009. Corso VISIONE E PERCEZIONE. Docente. Prof. FIORA PIRRI. Tutor MATIA PIZZOLI

GEOMETRIA ANALITICA. Il Piano cartesiano

Esercizi svolti. Geometria analitica: rette e piani

Problemi, algoritmi e oggetti

Programmazione Lineare

TOP DOWN. Compiti in classe proposti Modulo 1 JUVENILIA SCUOLA. Iacobelli Ajme Marrone

Fondamenti di Informatica

Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori

Strutture di controllo in C++

Transcript:

2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) Linguaggio C++ 8 Matrici Linguaggio C++ 8 1

Array a più dimensioni. Sintassi generale : tipo nome [dimensione 1][dimensione 2] [dimensione n] int int a[10][15] Lettura matrice N*M ----------------------------- for (i=0; i <N;i++) for (j=0;j<m;j++) cin >>Matrice[i] [j]; ---------------------------- Produzione matrice N*M ----------------------------- for (i=0; i <N;i++) { for (j=0;j<m;j++) cout <<Matrice[i] [j]; cout <<endl; } ---------------------------- Linguaggio C++ 8 2

Esercizio Assegnata una matrice bidimensionale di riempimenti N ed M, determinare la somma dei suoi elementi N = 3 1 2 3 4 5 M = 4 6 7 8 9 10 Somma = 90 9 8 7 6 5 Linguaggio C++ 8 3

Esercizio Assegnato una matrice di max 10*10 valori interi, determinare valore max e valore min e rispettive posizioni (indici) Linguaggio C++ 8 4

Linguaggio C++ 8 5

Esercizio Dato un array A[ N ][ M] di elementi reali, produrre: Le somme di ogni riga Le somme di ogni colonna La riga di somma massima La colonna di somma massima N=4 M=4 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 Somme righe righe 10 10 26 26 15 15 22 22 Somme colonne 19 19 14 14 18 18 22 22 Riga Riga max max 1 Colonna min min 3 Linguaggio C++ 8 6

Linguaggio C++ 8 7

Linguaggio C++ 8 8 }

Esercizio proposto Dato un array A[ N ][ M] di elementi reali, produrre: -La riga di somma massima N=4 -La riga di somma minima M=4 -L inversione delle due righe -La colonna di somma minima -L inversione con la prima colonna 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 Riga Riga somma somma max max 2 2 Riga Riga somma somma min min 1 1 Colonna Colonna somma somma min min 2 2 6 5 7 8 2 1 3 4 1 9 2 3 4 6 5 7 Esercizio proposto Dato un array A[ N ][ N] di elementi interi, determinare: -La somma degli elementi sulla diagonale principale -L elemento massimo e posizione fra gli elementi della diagonale principale Somma 16 16 Elem Elemmax max 7 Pos Posmax 3,3 3,3 N=4 6 5 7 8 2 1 3 4 1 9 2 3 4 6 5 7 Linguaggio C++ 8 9

Esercizio Assegnata una matrice A di interi e di riempimenti RIEMP1 e RIEMP2 si generino da essa due vettori VMAX e VMIN contenenti rispettivamente i valori massimi di ogni riga e i minimi di ogni colonna 10 10 12 12-7 -7 6 5 1 9 8 4 3 16 16 22 22 23 23 25 25 4 7 44 44 12 12 2 6 2 3 26 26 18 18 9 Ipotesi algoritmo VMAX VMAX 12 12 9 25 25 44 44 26 26 VMIN VMIN 1 3-7 -7 2 3 Leggi Riempimenti e matrice A Per ogni riga della matrice for ( i=0;<riemp1;i++) blocco1 Assumi primo elemento riga come max corrente max=a[i] [1] Per indice correntedi colonna da 1 a <Riemp2 for (j=1;<riemp2;j++) blocco2 se max corrente <elemento corrente matrice If (max <A[ i] [j] ) max= A[ i] [j] aggiorna max corrente con elemento corrente fine blocco2 memorizza max corrente in VMAX VMAX[i] = max fine blocco1 Linguaggio C++ 8 10

Linguaggio C++ 8 11

Linguaggio C++ 8 12

Esercizio Data una matrice M quadrata,di riempimento N verificare se la matrice data è simmetrica Una matrice simmetrica è una matrice quadrata che ha la proprietà di essere la trasposta di se stessa Linguaggio C++ 8 13

Linguaggio C++ 8 14

Esercizio Assegnata una matrice di interi di riempimenti N ed M, eliminare la riga in posizione K N=4 M=5 K=2 1 2 3 4 5 6 7 8 9 0 4 8 3 1 5 6 0 2 9 4 1 2 3 4 5 6 7 8 9 0 6 0 2 9 4 Linguaggio C++ 8 15

Caso k sia ultima riga Linguaggio C++ 8 16

Esercizio Assegnata una matrice di interi di riempimenti N ed M, eliminare la colonna in posizione K N=4 M=5 K=2 1 2 3 4 5 6 7 8 9 0 4 8 3 1 5 6 0 2 9 4 1 2 4 5 6 7 9 0 4 8 1 5 6 0 9 4 Linguaggio C++ 8 17

Linguaggio C++ 8 18

Esercizio Assegnata una matrice di interi di riempimenti N ed M, inserire una riga in posizione K tutta di un assegnato elemento elem N=4 M=5 K=2 elem = 9 1 2 3 4 5 6 7 8 9 0 4 8 3 1 5 6 0 2 9 4 La posizione di inserimento della nuova riga può essere: A) di accodamento alla matrice B) intermedia nella matrice (compresa la prima) 1 2 3 4 5 6 7 8 9 0 9 9 9 9 9 4 8 3 1 5 6 0 2 9 4 A) // Se dopo ultima riga for (int j=0; j<m; j++) matrix[ N ][ j ]=elem; Riga N 1 2 3 4 5 6 7 8 9 0 4 8 3 1 5 6 0 2 9 4 9 9 9 9 9 Linguaggio C++ 8 19

B) Spostare le righe dalla posizione K in poi di una posizione verso il basso; si sposta : prima l ultima riga poi la penultima riga e così via Per Per evitare evitare perdita perdita di di informazioni informazioni Provvedere all inserimento nella giusta posizione 1 2 3 4 5 6 7 8 9 0 4 8 3 1 5 6 0 2 9 4 1 2 3 4 5 6 7 8 9 0 4 8 3 1 5 6 0 2 9 4 // riga intermedia // effettua spostamento for (int i=n-1; i>=k; i --) for (int j=0;j<m;j++) matrix[ i+1 ][ j ] =matrix[ i ][ j ]; // effettua inserimento for (int j=0;j<m;j++) matrix[ k ][ j ]=elem; 1 2 3 4 5 6 7 8 9 0 9 9 9 9 9 4 8 3 1 5 6 0 2 9 4 Linguaggio C++ 8 20

Linguaggio C++ 8 21

Esercizio Assegnata una matrice di interi, di Riempimenti N ed M, si determinino gli eventuali punti di sella Punti di sella di una matrice sono gli elementi che sono massimi della riga e della colonna di appartenenza 5 4 2 0 3 6 4 1 1 2 9 3 7 6 5 4 Linguaggio C++ 8 22

Linguaggio C++ 8 23

Esercizio matrice input 1 2 3 4 5 6 7 8 9 Assegnata in ingresso una matrice quadrata A d ordine N, si generi la matrice trasposta matrice trasposta 1 4 7 2 5 8 3 6 9 Metodo di soluzione Scambio degli elementi A[ i ] [ j ] con gli elementi A[ j ] [ i ] (viene scambiata ogni riga d ordine N con la colonna di pari ordine) A 00 A 01 A 02 A 10 A 11 A 12 A 20 A 21 A 22 i j j i A 00 A 00 A 01 A 10 A 02 A 20 A 11 A 11 A 12 A 21 A 22 A 22 i da 0 a <N j da i a <N Linguaggio C++ 8 24

Linguaggio C++ 8 25

Esercizio Assegnata una matrice di interi A d ordine N*M, determinare : per ogni colonna il valore dello scarto tra l elemento massimo e l elemento minimo. Modificare la matrice ponendo le colonne secondo l ordinamento crescente degli scarti calcolati Nro righe =4 Nro colonne =5 9 10 1 12 1 4 7 7 1 2 5 6 8 2 3 3 2 4 0 4 Scarti 6 8 7 12 3 Informazioni di Ingresso Nome A N M Tipo Matrice interi 10*10 Variabile intera Variabile intera Descrizione significato Matrice da modificare Riempimento di riga Riempimento di colonna Matrice modificata 1 9 1 10 12 2 4 7 7 1 3 5 8 6 2 4 3 4 2 0 Informazioni di uscita Scarto A Vettore interi cardinalità 10 Matrice interi cardinalità 10*10 Contiene scarti di colonna Matrice modificata Linguaggio C++ 8 26

Linguaggio C++ 8 27

Linguaggio C++ 8 28

Esercizio Assegnata una matrice A (N * M) di elementi interi positivi e minori di 10, per ogni riga della matrice costruire il valore decimale ottenuto, procedendo sulla riga da sinistra verso destra, considerando la differenza in valore assoluto fra ogni coppia di elementi della riga Si modifichi la matrice disponendo le righe secondo l ordinamento crescente dei valori calcolati N=6 M=5 1 3 7 4 0 5 2 8 6 3 4 6 7 8 9 9 7 5 1 2 3 1 4 0 4 1 0 5 4 2 2434 3623 2111 2241 2344 1512 Matrice modificata 1 0 5 4 2 4 6 7 8 9 9 7 5 1 2 3 1 4 0 4 1 3 7 4 0 5 2 8 6 3 Linguaggio C++ 8 29

Linguaggio C++ 8 30

Linguaggio C++ 8 31

Linguaggio C++ 8 32

Esercizio Assegnate due matrici di interi A e B, determinare la matrice prodotto C Condizione necessaria per il prodotto di due matri: Nrocol_primamatrice = Nrorig_secondamatrice Prodotto di due matrici A[m][n] * B[n][k] è una terza matrice C[m][k] con il generico elemento n C i, j = A i, k * B i 1, m k,j j 1, l K=1 A(2,3) m,n 1 1 2 2 3 3 4 4 5 5 6 6 per m=2 n=3 l=2 x B(3,2) n, l 1 1 2 2 3 3 4 4 5 5 6 6 C(2,2) m,l 22 22 28 28 49 49 64 64 C 11 =a 11 *b 11 + a 12 *b 21 + a 13 *b 31 C 12 =a 11 *b 12 + a 12 *b 22 + a 13 *b 32 C 21 =a 21 *b 11 + a 22 *b 21 + a 23 *b 31 for for (int (inti=0; i=0; i<m; i<m; i++) i++) for for (int (intj=0; j<l; j<l; j++) j++) {{ C[ C[ i i ][ ][ j j ]=0; ]=0; for for (int (intk=0; k<n; k<n; k++) k++) C[ C[ i i ][ ][ j j ]=C[ ]=C[ i][ i][ j]+a[ j]+a[ i] i] [[ k k ]+ ]+ k k ][ ][ j j ]; ]; C 22 =a 21 *b 12 + a 22 *b 21 + a 23 *b 32 Linguaggio C++ 8 33

Linguaggio C++ 8 34

Linguaggio C++ 8 35

Esercizio Assegnata una matrice quadrata di ordine N prefissato, calcolare la somma degli elementi sulla diagonale principale e quella degli elementi sulla diagonale secondaria) 1.0 2.0 3.0 9.2 1.0 2.0 3.0 9.0 4.0 4.0 4.0 5.2 7.0 6.0 1.0 2.0 3.0 Sommap=8.2 Sommad=22.2 4.0 4.0 5.2 7.0 6.0 1.0 2.0 3.0 5.0 2.0 Sommap=11.2 Sommad=12.2 0.0 2.0 5.0 1.0 0.0 2.2 5.0 1.0 7.0 3.0 2.0 5.0 1.0 3.0 L algoritmo deve avere validità sia per matrici d ordine pari che dispari El. Diag. Principale 0,0 1,1 2,2 3,3 4,4 j=i i=1,<n El. Diag.Secondaria 0,4 1,3 2,2 3,2 4,0 j=n i -1 i=0 mat[0][0] mat[0][4] i=1 mat[1][1] mat[1][3] i=2 mat[2][2] mat[2][2] i=3 mat[3][3] mat[3][1] i=4 mat[4][4] mat[4][0] Sommap=Sommap+mat [ i ][ i ] Sommad=Sommad+mat [ i ][ N i -1 ] Linguaggio C++ 8 36

Linguaggio C++ 8 37

Esercizio 1.0 2.0 4.0 5.0 4.0 7.0 0.0 2.0 Assegnata una matrice quadrata di ordine N prefissato, calcolare la somma degli elementi della matrice compresi fra la diagonale principale e quella secondaria (clessidra) L algoritmo deve avere validità sia per 3.0 6.0 1.0 5.0 9.0 2.0 3.0 1.0 S=42 1.0 4.0 4.0 0.0 2.0 5.0 7.0 2.0 3.0 6.0 1.0 5.0 9.0 2.0 3.0 1.0 4.0 5.0 2.0 7.0 matrici d ordine pari che dispari S=62 3.0 2.0 5.0 1.0 3.0 a 11 a 12 a 13 a 14 a 15 a 21 a 22 a 23 a 24 a 25 a 31 a 32 a 33 a 34 a 35 a 41 a 42 a 43 a 44 a 45 a 51 a 52 a 53 a 54 a 55 N = 5 Appartengono alla diagonale principale tutti gli elementi con pedice di riga e colonna eguali Appartengono alla diagonale secondaria tutti gli elementi con pedice di riga e colonna tali che i + j = N+1 Per Per la la riga riga i-ma i-ma l indice l indice di di colonna colonna j j per per gli gli elementi elementi da da trattare trattare sarà sarà compreso compreso fra: fra: i i,, N - - i i +1 +1 per per la la parte parte alta alta ( ( i i <=riemp/2) <=riemp/2) N - - i i + + 1, 1, i i per per la la parte parte bassa bassa ( ( i i > > riemp/2) riemp/2) Linguaggio C++ 8 38

Linguaggio C++ 8 39

Esercizio Assegnata una matrice A[ N, M ] di interi, individuare in essa il minore di ordine K che presenti la somma maggiore degli elementi. Per tale minore produrre, oltre al valore della somma, le coordinate del vertice alto sinistro 1 2 3 4 5 6 7 8 9 1 2 3 K =2 Somma=22 Riga =0 Col = 2 1 2 3 4 5 6 7 8 9 0 2 3 4 5 6 4 5 6 7 9 K =3 Somma=54 Riga =1 Col = 2 In una matrice N * M il numero di minori d ordine K è pari a (N K + 1) * (M K + 1) N=3 M=4 K=2 2 *3 6 Linguaggio C++ 8 40

Metodo di soluzione Posizionandosi su ogni elemento della matrice che può essere ( * ) vertice sinistro alto del minore di dimensione K, si calcola la somma degli elementi appartenenti al minore in esame Il valore della somma viene di volta in volta confrontato con il valore della variabile sommap che conserva il valore maggiore delle somme trovate in precedenza. Se del caso il valore sommap viene aggiornato con il valore attuale della somma (somma > sommap) Linguaggio C++ 8 41

I possibili vertici alti sinistri a 00 a 01 a 02 a 03 a 04 a 05 a 10 a 11 a 12 a 13 a 14 a 15 a 20 a 21 a 22 a 23 a 24 a 25 a 30 a 31 a 32 a 33 a 34 a 35 a 40 a 41 a 42 a 43 a 44 a 45 K = 2 K = 3 K = 4 somma=0 sommap=0 Per ogni riga lecita blocco1 somma=0 Per ogni colonna lecita blocco2 calcola somma minore con vertice sx nel punto in esame Se somma > somma precedente aggiorna somma precedente con somma fine-blocco2 fine-blocco1 Linguaggio C++ 8 42

Linguaggio C++ 8 43

Linguaggio C++ 8 44

Esercizio Assegnata una matrice A (N * M) di interi positivi i cui valori siano uguali,per la maggior parte, ad uno stesso valore assegnato in Input e pertanto chiamato dominante. I valori della matrice diversi dal valore dominante sono assegnati in input tramite la triplice: indice riga, indice colonna, valore La successione degli elementi in ingresso è terminata da un valore negativo per indice riga. Nel produrre la matrice, si individuino tutte le righe e le colonne costituite esclusivamente da elementi dominanti. Righe =5 Colonne=5 Dominante=7 7 7 12 7 7 14 7 9 7 3 7 7 7 7 7 9 7 11 7 12 7 7 7 7 7 0 3 12 1 4 3 1 0 14 3 0 9 3 4 12 1 2 9 3 2 11-1 Linguaggio C++ 8 45

Linguaggio C++ 8 46

Linguaggio C++ 8 47

Linguaggio C++ 8 48

Esercizio E assegnata in ingresso un sequenza di valori interi >0 La sequenza è terminata dal valore zero Si vuole modificare la sequenza di ingresso sostituendo ad ogni terna di valori a, b, c tali che a<b e c<b la terna c, b, a senza che gli elementi di quest ultima siano considerati nella successiva analisi Si determini fra le terne oggetto di scambio quella che presentala somma maggiore degli elementi e se ne indichi la posizione di partenza nella sequenza modificata 1 5 7 13 5 2 8 22 10 12 4 0 1 5 5 13 7 2 10 22 8 12 4 0 Somma terna max =40 parte da posizione 7 Linguaggio C++ 8 49

Linguaggio C++ 8 50

Linguaggio C++ 8 51

Esercizio Assegnata una matrice quadrata d ordine N determinare la somma degli elementi sulla diagonale principale e le somme degli elementi su ciascuna delle diagonali parallele alla principale. N=4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Diag(0)=34 Diag(1)=30 Diag(2)=23 Diag(3)=13 Diag(4)=4 Diag(5)=11 Diag(6)=21 Diag(0) =A 00 + A 01 + A 02 + A 03 Diag(1) =A 10 + A 21 + A 32 Diag(2) =A 20 + A 31 Diag(3) =A 30 Diag(4) =A 03 Diag(5) =A 02 + A 13 Diag(6) =A 01 + A 12 + A 23 Nro diagonali = 2 * N -1 Indice diagonali da 0 a 2 * N - 2 Linguaggio C++ 8 52

Linguaggio C++ 8 53