Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.18 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace Zadanie_1
  7. {
  8.     class Program
  9.     {
  10.         public static void Pause()
  11.         {
  12.             Console.Write("\n \n \t Aby kontynuować, naciśnij dowolny klawisz . . .");
  13.             Console.ReadKey(true);
  14.         }
  15.  
  16.         public static bool isValid(string s)
  17.         {
  18.             bool num = true;
  19.             int test;
  20.             try {
  21.                 test = Convert.ToInt32(s);
  22.             }
  23.             catch (FormatException){
  24.                 num = false;
  25.             }
  26.            
  27.             test = Convert.ToInt32(s);
  28.             if (test < 0) num = false;
  29.  
  30.                return num;
  31.         }
  32.  
  33.         static void Main(string[] args)
  34.         {
  35.             int m,n,m1,n1;
  36.             string input;
  37.             Random rgen = new Random();
  38.          
  39.             Console.WriteLine("Program oblicza iloczyn dwóch losowych macierzy o podanych wymiarach.");
  40.             Console.WriteLine("Podaj wymiary pierwszej macierzy");
  41.             Console.Write("Podaj m: ");
  42.             input = Console.ReadLine();
  43.  
  44.             while (!isValid(input))
  45.             {
  46.                 Console.WriteLine("Błąd! Podaj jeszcze raz: ");
  47.                 input = Console.ReadLine();
  48.             }
  49.             m = Convert.ToInt32(input);
  50.  
  51.             Console.Write("Podaj n: ");
  52.             input = Console.ReadLine();
  53.             while (!isValid(input))
  54.             {
  55.                 Console.WriteLine("Błąd! Podaj jeszcze raz: ");
  56.                 input = Console.ReadLine();
  57.             }
  58.             n = Convert.ToInt32(input);
  59.  
  60.             Console.Clear();
  61.             Console.WriteLine("Podaj wymiary drugiej macierzy.");
  62.             Console.Write("Podaj m: ");
  63.             input = Console.ReadLine();
  64.  
  65.             while (!isValid(input))
  66.             {
  67.                 Console.WriteLine("Błąd! Podaj jeszcze raz: ");
  68.                 input = Console.ReadLine();
  69.             }
  70.             m1 = Convert.ToInt32(input);
  71.  
  72.             Console.Write("Podaj n: ");
  73.             input = Console.ReadLine();
  74.             while (!isValid(input))
  75.             {
  76.                 Console.WriteLine("Błąd! Podaj jeszcze raz: ");
  77.                 input = Console.ReadLine();
  78.             }
  79.             n1 = Convert.ToInt32(input);
  80.  
  81.             Console.Clear();
  82.  
  83.             Console.WriteLine("1.) Podałeś macierze o wymiarach:");
  84.             Console.WriteLine(" Liczba wierszy: " + m);
  85.             Console.WriteLine(" Liczba kolumn: " + n);
  86.             Console.WriteLine(" ----------------------");
  87.             Console.WriteLine(" Liczba wierszy: " + m1);
  88.             Console.WriteLine(" Liczba kolumn: " + n1);
  89.  
  90.             Console.WriteLine("2.) Wygenerowane macierze: ");
  91.             Console.WriteLine("\n \t Macierz A: \n");
  92.            
  93.             int[,] tablica1 = new int[m,n];
  94.            
  95.             for (int i = 0; i < m; i++){
  96.                 for (int j = 0; j < n; j++){
  97.                     tablica1[i,j] = rgen.Next(31);
  98.                 }
  99.             }
  100.  
  101.             for (int i = 0; i < m; i++){
  102.                 for (int j = 0; j < n; j++){
  103.                     Console.Write(" "+tablica1[i, j]+"\t");
  104.                 }
  105.                 Console.Write("\n");
  106.             }
  107.  
  108.             Console.WriteLine("\n \t Macierz B: \n");
  109.  
  110.             int[,] tablica2 = new int[m1, n1];
  111.  
  112.             for (int i = 0; i < m1; i++)
  113.             {
  114.                 for (int j = 0; j < n1; j++)
  115.                 {
  116.                     tablica2[i, j] = rgen.Next(31);
  117.                 }
  118.             }
  119.  
  120.             for (int i = 0; i < m1; i++)
  121.             {
  122.                 for (int j = 0; j < n1; j++)
  123.                 {
  124.                     Console.Write(" " + tablica2[i, j] + "\t");
  125.                 }
  126.                 Console.Write("\n");
  127.             }
  128.             int[,] wynik = new int[m, n1];
  129.  
  130.             //Mnożenie macierzy
  131.  
  132.             try
  133.             {
  134.                 if (m == n1)
  135.                 {
  136.  
  137.                     for (int i = 0; i < m; i++)
  138.                         for (int j = 0; j < n1; j++)
  139.                             wynik[i, j] = 0;
  140.  
  141.                     for (int i = 0; i < m; i++)
  142.                         for (int j = 0; j < n1; j++)
  143.                             for (int k = 0; k < n; k++)
  144.                                 wynik[i, j] = wynik[i, j] + tablica1[i, k] * tablica2[k, j];
  145.  
  146.                     Console.WriteLine("\n 3.) Wynik mnożenia macierzy: \n");
  147.                     for (int i = 0; i < m; i++)
  148.                     {
  149.                         for (int j = 0; j < n1; j++)
  150.                         {
  151.                             Console.Write(" " + wynik[i, j] + "\t");
  152.                         }
  153.                         Console.Write("\n");
  154.                     }
  155.                 }
  156.                 else Console.WriteLine(" \n Nie mozna mnożyć macierzy! \nLiczba kolumny pierwszej macierzy musi byc rowna liczbie wierwszy w drugiej macierzy");
  157.  
  158.             }
  159.             catch (OutOfMemoryException)
  160.             {
  161.                 Console.WriteLine("\n \n \t \t BRAK PAMIĘCI!");
  162.             }
  163.             Pause();
  164.         }
  165.  
  166.     }
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement