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 hazifeladat
- {
- class Program
- {
- static void transzponalt(int[,] tomb, uint sorsz, uint oszlopsz, bool foatlo, bool mellekatlo)
- {
- int elem;
- for (int j = 0; j < sorsz; j++)
- {
- if (foatlo)
- {
- for (int i = j; i < oszlopsz; i++)
- {
- elem = tomb[j, i];
- tomb[j, i] = tomb[i, j];
- tomb[i, j] = elem;
- }
- }
- else if(mellekatlo)
- {
- for (int i = 0; i < oszlopsz-j; i++ )
- {
- elem = tomb[j, i];
- tomb[j, i] = tomb[sorsz - 1 - i, sorsz - 1 - j];
- tomb[sorsz - 1 - i, sorsz - 1 - j] = elem;
- }
- }
- }
- }
- static void csere(int[,] tomb, uint sorsz, uint oszlopsz, bool sorcsere, bool oszlopcsere)
- {
- int elem;
- for (int j = 0; j < sorsz/2; j++)
- {
- for (int i = 0; i < oszlopsz/2; i++)
- {
- elem = tomb[j, i];
- if (sorcsere)
- {
- tomb[j, i] = tomb[sorsz - 1 - j, i];
- tomb[sorsz - 1 - j, i] = elem;
- }
- else if (oszlopcsere)
- {
- tomb[j, i] = tomb[j, oszlopsz - 1 - i];
- tomb[j, oszlopsz - 1 - i] = elem;
- }
- }
- }
- }
- static void kiiras(int[,] tomb, uint sorsz, uint oszlopsz)
- {
- for (int j = 0; j < sorsz; j++)
- {
- for (int i = 0; i < oszlopsz; i++)
- {
- Console.Write("{0} ", tomb[j, i]);
- }
- Console.WriteLine();
- }
- }
- static void tombfeltolt(int[,] tomb, uint sorsz, uint oszlopsz, Random vel, uint szjegy, bool kul)
- {
- int tombhatar1 = Convert.ToInt32(Math.Pow(10, szjegy-1));
- int tombhatar2 = Convert.ToInt32(Math.Pow(10, szjegy));
- int lelemszam = tombhatar2 - tombhatar1;
- if(kul == true)
- {
- if (lelemszam < (sorsz * oszlopsz))
- {
- Console.WriteLine("A tömböt nem lehet feltölteni, mert több elemet tartalmazhat, mint ahány különböző elem a megadott határokon belül generálható.");
- }
- else
- {
- bool talal;
- int i, j, generalt=0;
- tomb[0, 0] = vel.Next(tombhatar1, tombhatar2);
- for (j = 0; j < sorsz; j++)
- {
- if (j == 0)
- {
- i = 1;
- }
- else
- {
- i = 0;
- }
- for (; i < oszlopsz; i++)
- {
- do
- {
- talal = false;
- generalt = vel.Next(tombhatar1, tombhatar2);
- for (int l = 0; l < sorsz; l++)
- {
- for (int k = 0; k < oszlopsz; k++)
- {
- if (tomb[l, k] == generalt)
- {
- talal = true;
- }
- }
- }
- } while (talal);
- tomb[j, i] = generalt;
- }
- }
- }
- }
- else
- {
- for (int j = 0; j < sorsz; j++)
- {
- for (int i = 0; i < oszlopsz; i++)
- {
- tomb[j, i] = vel.Next(tombhatar1, tombhatar2);
- }
- }
- }
- }
- static void Main(string[] args)
- {
- Console.WriteLine("A mátrix kiírása");
- Console.Write("Sorok száma: ");
- uint sorsz = Convert.ToUInt16(Console.ReadLine());
- Console.Write("Oszlopok száma: ");
- uint oszlopsz = Convert.ToUInt16(Console.ReadLine());
- Console.Write("Számjegyek száma: ");
- uint szjegy = Convert.ToUInt16(Console.ReadLine());
- Console.Write("Különböző elemek legyenek? (i/n) ");
- string c = Console.ReadLine();
- bool kul = false;
- if(Convert.ToChar(c) == 'i')
- {
- kul = true;
- }
- else if(Convert.ToChar(c) == 'n')
- {
- kul = false;
- }
- Random vel = new Random();
- int[,] tomb = new int[sorsz, oszlopsz];
- tombfeltolt(tomb, sorsz, oszlopsz, vel, szjegy, kul);
- kiiras(tomb, sorsz, oszlopsz);
- Console.Write("Sorcseréhez nyomjon s betűt, oszlopcseréhez o betűt! (s/o) ");
- bool sorcsere = false;
- bool oszlopcsere = false;
- string a = Console.ReadLine();
- if (Convert.ToChar(a) == 's')
- {
- sorcsere = true;
- }
- else if (Convert.ToChar(a) == 'o')
- {
- oszlopcsere = true;
- }
- if(sorcsere || oszlopcsere)
- {
- csere(tomb, sorsz, oszlopsz, sorcsere, oszlopcsere);
- }
- kiiras(tomb, sorsz, oszlopsz);
- if (sorsz != oszlopsz)
- {
- Console.WriteLine("A mátrix nem négyzetes, ezért nem lehet az elemeket a főátlóra tükrözni.");
- }
- else
- {
- Console.WriteLine("A mátrix transzponáltja:");
- bool foatlo = false;
- bool mellekatlo = false;
- Console.Write("Főátlóra tükrözés - f, mellékátlóra tükrözés - m ");
- string b = Console.ReadLine();
- if (Convert.ToChar(b) == 'f')
- {
- foatlo = true;
- }
- else if (Convert.ToChar(b) == 'm')
- {
- mellekatlo = true;
- }
- if (foatlo || mellekatlo)
- {
- transzponalt(tomb, sorsz, oszlopsz, foatlo, mellekatlo);
- }
- kiiras(tomb, sorsz, oszlopsz);
- }
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement