Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Zadanie_1
- {
- class Program
- {
- public static void Pause()
- {
- Console.Write("\n \n \t Aby kontynuować, naciśnij dowolny klawisz . . .");
- Console.ReadKey(true);
- }
- public static bool isValid(string s)
- {
- bool num = true;
- int test;
- try {
- test = Convert.ToInt32(s);
- }
- catch (FormatException){
- num = false;
- }
- test = Convert.ToInt32(s);
- if (test < 0) num = false;
- return num;
- }
- static void Main(string[] args)
- {
- int m,n,m1,n1;
- string input;
- Random rgen = new Random();
- Console.WriteLine("Program oblicza iloczyn dwóch losowych macierzy o podanych wymiarach.");
- Console.WriteLine("Podaj wymiary pierwszej macierzy");
- Console.Write("Podaj m: ");
- input = Console.ReadLine();
- while (!isValid(input))
- {
- Console.WriteLine("Błąd! Podaj jeszcze raz: ");
- input = Console.ReadLine();
- }
- m = Convert.ToInt32(input);
- Console.Write("Podaj n: ");
- input = Console.ReadLine();
- while (!isValid(input))
- {
- Console.WriteLine("Błąd! Podaj jeszcze raz: ");
- input = Console.ReadLine();
- }
- n = Convert.ToInt32(input);
- Console.Clear();
- Console.WriteLine("Podaj wymiary drugiej macierzy.");
- Console.Write("Podaj m: ");
- input = Console.ReadLine();
- while (!isValid(input))
- {
- Console.WriteLine("Błąd! Podaj jeszcze raz: ");
- input = Console.ReadLine();
- }
- m1 = Convert.ToInt32(input);
- Console.Write("Podaj n: ");
- input = Console.ReadLine();
- while (!isValid(input))
- {
- Console.WriteLine("Błąd! Podaj jeszcze raz: ");
- input = Console.ReadLine();
- }
- n1 = Convert.ToInt32(input);
- Console.Clear();
- Console.WriteLine("1.) Podałeś macierze o wymiarach:");
- Console.WriteLine(" Liczba wierszy: " + m);
- Console.WriteLine(" Liczba kolumn: " + n);
- Console.WriteLine(" ----------------------");
- Console.WriteLine(" Liczba wierszy: " + m1);
- Console.WriteLine(" Liczba kolumn: " + n1);
- Console.WriteLine("2.) Wygenerowane macierze: ");
- Console.WriteLine("\n \t Macierz A: \n");
- int[,] tablica1 = new int[m,n];
- for (int i = 0; i < m; i++){
- for (int j = 0; j < n; j++){
- tablica1[i,j] = rgen.Next(31);
- }
- }
- for (int i = 0; i < m; i++){
- for (int j = 0; j < n; j++){
- Console.Write(" "+tablica1[i, j]+"\t");
- }
- Console.Write("\n");
- }
- Console.WriteLine("\n \t Macierz B: \n");
- int[,] tablica2 = new int[m1, n1];
- for (int i = 0; i < m1; i++)
- {
- for (int j = 0; j < n1; j++)
- {
- tablica2[i, j] = rgen.Next(31);
- }
- }
- for (int i = 0; i < m1; i++)
- {
- for (int j = 0; j < n1; j++)
- {
- Console.Write(" " + tablica2[i, j] + "\t");
- }
- Console.Write("\n");
- }
- int[,] wynik = new int[m, n1];
- //Mnożenie macierzy
- try
- {
- if (m == n1)
- {
- for (int i = 0; i < m; i++)
- for (int j = 0; j < n1; j++)
- wynik[i, j] = 0;
- for (int i = 0; i < m; i++)
- for (int j = 0; j < n1; j++)
- for (int k = 0; k < n; k++)
- wynik[i, j] = wynik[i, j] + tablica1[i, k] * tablica2[k, j];
- Console.WriteLine("\n 3.) Wynik mnożenia macierzy: \n");
- for (int i = 0; i < m; i++)
- {
- for (int j = 0; j < n1; j++)
- {
- Console.Write(" " + wynik[i, j] + "\t");
- }
- Console.Write("\n");
- }
- }
- else Console.WriteLine(" \n Nie mozna mnożyć macierzy! \nLiczba kolumny pierwszej macierzy musi byc rowna liczbie wierwszy w drugiej macierzy");
- }
- catch (OutOfMemoryException)
- {
- Console.WriteLine("\n \n \t \t BRAK PAMIĘCI!");
- }
- Pause();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement