All pastes #1625470 Raw Edit

Stuff

public text v1 · immutable
#1625470 ·published 2009-10-17 17:37 UTC
rendered paste body
/*
Esercizio n° -- pag. --;
Funzionamento:

Date da ingresso le grandezze di una matrice, le si popola con valori
compresi tra 10 e -10, poi si restituisce la somma dei valori di ogni riga
e quelli di ogni colonna.

*/
using System;
class RigheColonneMatrice
{
	static void Main()
	{
		int righe, colonne, h, k, totRiga = 0, totColonna = 0, totDiag = 0, grandeTot = 0;
		
		// chiedo quante righe e quante colonne deve avere la matrice
		// max 20
		
		do
		{
			Console.Write("Quante colonne deve avere la matrice? max 20 => ");
			colonne = Convert.ToInt32(Console.ReadLine());
		}
		while (colonne < 0 || colonne > 20);
		
		do
		{
			Console.Write("\nQuante righe deve avere la matrice? max 20 => ");
			righe = Convert.ToInt32(Console.ReadLine());
		}
		while (righe < 0 || righe > 20);
		
		//inizializzo la matrice
		
		int [ , ] matrox = new int [righe, colonne];
		
		//la popolo con elementi < di zero altrimenti si sfasa e diventa brutta
		
		for (h = 0; h < righe; h++)
		{
			for (k = 0; k < colonne; k++)
			{
				do
				{
					Console.Write("Nuovo elemento matrice: ");
					matrox [h,k] = Convert.ToInt32(Console.ReadLine());
				}
				while (matrox [h,k] > 9 || matrox [h,k] < -9);
			}	
		}
		
		//la visualizzo per intero ed effettuo la somma di ogni valore di ogni riga;
		
		Console.WriteLine("\nVisualizzazione Matrice: \n");
		
		for (h = 0; h < righe; h++)
		{
			Console.Write("\t");
			for (k = 0; k < colonne; k++)
			{
				Console.Write("  {0}", matrox[h,k]);
				totRiga += matrox[h,k];
				// se la matrice è quadratica (righe=colonne) restituisce anche la somma delle diagonali
				if (h==k && righe == colonne)
				{
					totDiag += matrox[h,k];
				}
			}
			//alla fine della riga scrivo la somma, poi vado a capo
			Console.Write("\t{0}\n", totRiga);
			//poi uso il valore per avere il totale
			grandeTot += totRiga;
			totRiga = 0;
		}
		
		//faccio la somma di ogni elemento per ogni colonna;
		Console.Write("\n\n\t");
		for (h = 0; h < colonne; h++)
		{
			for (k = 0; k < righe; k++)
			{
				totColonna += matrox[k,h];
			}
			// e lo scrivo sotto la relativa colonna
			Console.Write(" {0}",totColonna);
			//poi uso il valore per avere il totale
			grandeTot += totColonna;
			totColonna = 0;
		}
		
		// se la matrice è quadratica
		if (righe == colonne)
		{
			Console.Write("\t{0}\n\n \tTermine Programma, matrice quadratica visualizzata.\n\n", totDiag);
		}
		else
		{
			Console.Write("\t{0}\n\n \tTermine Programma, matrice visualizzata.\n\n", grandeTot);
		}
		
		Console.Read();
		
	}
}