Advertisement
Guest User

Metodi

a guest
Oct 4th, 2015
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.77 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace TestArray
  8. {
  9.     public class Metodi
  10.     {
  11.         static Random objRandom = new Random();
  12.         static int[,] matOriginale = new int[10, 10];
  13.         public static void inserimento(int[,] mat)
  14.         {
  15.             int random;
  16.             int i, j;
  17.             for (i = 0; i < 10; i++)
  18.             {
  19.                 for (j = 0; j < 10; j++)
  20.                 {
  21.                     random = objRandom.Next(100);
  22.                     mat[i, j] = random;
  23.                     matOriginale[i, j] = mat[i, j];//Servirà quando effettuo dei cambiamenti alle rige o colonne e 1 dei 2 metodi deve riutilizzare il valore originale della matrice
  24.                 }
  25.             }
  26.         }
  27.  
  28.         public static void somma_diag_princ(int[,] mat)
  29.         {
  30.             int i, j, sommaTot = 0;
  31.  
  32.             for (i = 0; i < 10; i++)
  33.             {
  34.                 for (j = 0; j < 10; j++)
  35.                 {
  36.                     if (i == j)
  37.                     {
  38.                         sommaTot = sommaTot + mat[i, j];
  39.                     }
  40.                 }
  41.             }
  42.             Console.WriteLine("La diagonale principale è: " + sommaTot);
  43.         }
  44.  
  45.         public static void somma_diag_sec(int[,] mat)
  46.         {
  47.             int i, j, sommaTot = 0;
  48.  
  49.             for (i = 0; i < 10; i++)
  50.             {
  51.                 for (j = 0; j < 10; j++)
  52.                 {
  53.                     if (i + j == 9)// la condizione va posta sommando il valore di i con quello di j e porlo uguale al limite massimo della matrice meno 1 se al posto di 10 c'era N nella condizione scrivevo (i +j = N-1)
  54.                     {
  55.                         sommaTot = sommaTot + mat[i, j];
  56.                     }
  57.                 }
  58.             }
  59.             Console.WriteLine("La diagonale principale è: " + sommaTot);
  60.         }
  61.  
  62.         public static void Visualizzazione(int[,] mat)
  63.         {
  64.             int i, j;
  65.             for (i = 0; i < 10; i++)
  66.             {
  67.                 for (j = 0; j < 10; j++)
  68.                 {
  69.                     Console.Write(mat[i, j] + " ");
  70.                 }
  71.                 Console.WriteLine("");
  72.             }
  73.         }
  74.  
  75.         public static void Scambia_c_pari_con_dispari(int[,] mat)
  76.         {
  77.  
  78.             int i, j;
  79.             int[,] appo = new int[10, 10];
  80.  
  81.             //Ripristino la matrice come era all'inizio altrmenti con lo scambio delle colonne si salva quella già cambiata e non quell di partenza
  82.             for (i = 0; i < 10; i++)
  83.             {
  84.                 for (j = 0; j < 10; j++)
  85.                 {
  86.                     mat[i, j] = matOriginale[i, j];
  87.                 }
  88.             }
  89.  
  90.             //Riempo la matrice d'appoggio con il contenuto della matrice originale
  91.             for (i = 0; i < 10; i++)
  92.             {
  93.                 for (j = 0; j < 10; j++)
  94.                 {
  95.                     appo[i, j] = mat[i, j];
  96.                 }
  97.             }
  98.  
  99.             for (i = 0; i < 10; i++)
  100.             {
  101.                 for (j = 0; j < 10; j++)
  102.                 {
  103.                     appo[i, j] = mat[i, j];//assegno alla matrice d'appoggio il valore della matrice originale
  104.                     if ((j % 2 == 0) && (j != 10)) //se la colonna è pari e la j è diversa da 10 procede con lo scambio (se non metto j!=10 si vai fuori dal range della matrice e crasha il programma)
  105.                     {
  106.                         mat[i, j] = appo[i, j + 1];//assegna il posto dispari
  107.                         mat[i, j + 1] = appo[i, j];//assegna posto pari
  108.                     }
  109.                 }
  110.             }
  111.         }
  112.  
  113.         public static void Scambia_riga_pari_dispari(int[,] mat)
  114.         {
  115.             int i, j;
  116.             int[,] appo = new int[10, 10];
  117.  
  118.             //Riempo la matrice d'appoggio con il contenuto della matrice originale
  119.             for (i = 0; i < 10; i++)
  120.             {
  121.                 for (j = 0; j < 10; j++)
  122.                 {
  123.                     appo[i, j] = mat[i, j];
  124.                 }
  125.             }
  126.  
  127.             for (i = 0; i < 10; i++)
  128.             {
  129.                 for (j = 0; j < 10; j++)
  130.                 {
  131.                     appo[i, j] = mat[i, j];//assegno alla matrice d'appoggio il valore della matrice originale
  132.                     if ((i % 2 == 0) && (i != 10))//se la riga è pari e la i è diversa da 10 procede con lo scambio (se non metto i!=10 si vai fuori dal range della matrice e crasha il programma)
  133.                     {
  134.                         mat[i, j] = appo[i + 1, j];//assegna il posto dispari
  135.                         mat[i + 1, j] = appo[i, j];//assegna posto pari
  136.                     }
  137.                 }
  138.  
  139.             }
  140.         }
  141.  
  142.     }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement