Advertisement
Levi0227

9. heti házi

Nov 9th, 2023 (edited)
1,009
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.12 KB | Source Code | 0 0
  1. namespace PMPHF008_P99J7Y
  2. {
  3.     internal class PMPHF008_P99J7Y
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             string S = Console.ReadLine();
  8.             string[] parts = S.Split(" ");
  9.             string utasitas = parts[0];
  10.             List<string> letter = new List<string>();
  11.  
  12.             int[] feszultsegek1 = new int[5];
  13.             int[] feszultsegek2 = new int[5];
  14.             string[,] matrixVoltage = new string[2, 5];
  15.  
  16.             //Használadnó jelsorozat nevének eltárolása listában
  17.             if (parts.Length - 1 == 2)
  18.             {
  19.                 letter.Add(parts[1]);
  20.                 letter.Add(parts[2]);
  21.             }
  22.             else if (parts.Length - 1 == 1)
  23.             {
  24.                 letter.Add(parts[1]);
  25.             }
  26.  
  27.             string lines = "";
  28.             bool felvantoltve = false;
  29.             bool igaz1 = false;
  30.             bool igaz2 = false;
  31.  
  32.             //Bemenet felosztása kettesével és tömbökbe töltése
  33.             #region Számok párba állítása
  34.             while (felvantoltve != true)
  35.             {
  36.                 lines = Console.ReadLine();
  37.                 for (int i = 0; i < letter.Count; i++)
  38.                 {
  39.                     if (letter.Count == 2)
  40.                     {
  41.                         if (lines.Split(" ")[0] == letter[0])
  42.                         {
  43.                             int index = 0;
  44.                             for (int j = 0; j < lines.Split(" ")[1].Length; j += 2)
  45.                             {
  46.                                 string eleje = lines.Split(" ")[1].Substring(j, 2);
  47.                                 int kettesszamok = int.Parse(eleje);
  48.                                 feszultsegek1[index] = kettesszamok;
  49.                                 index++;
  50.                                 igaz1 = true;
  51.                             }
  52.                         }
  53.                         if (lines.Split(" ")[0] == letter[1])
  54.                         {
  55.                             int index = 0;
  56.                             for (int j = 0; j < lines.Split(" ")[1].Length; j += 2)
  57.                             {
  58.                                 string eleje = lines.Split(" ")[1].Substring(j, 2);
  59.                                 int kettesszamok = int.Parse(eleje);
  60.                                 feszultsegek2[index] = kettesszamok;
  61.                                 index++;
  62.                                 igaz2 = true;
  63.                             }
  64.  
  65.                         }
  66.                         if (igaz1 == true && igaz2 == true)
  67.                             felvantoltve = true;
  68.                     }
  69.                     else if (letter.Count == 1)
  70.                     {
  71.                         if (lines.Split(" ")[0] == letter[i])
  72.                         {
  73.                             int index = 0;
  74.                             for (int j = 0; j < lines.Split(" ")[1].Length; j += 2)
  75.                             {
  76.                                 string eleje = lines.Split(" ")[1].Substring(j, 2);
  77.                                 int kettesszamok = int.Parse(eleje);
  78.                                 feszultsegek1[index] = kettesszamok;
  79.                                 index++;
  80.                             }
  81.                             felvantoltve = true;
  82.                         }
  83.                     }
  84.                 }
  85.             }
  86.             #endregion Számok párba állítása
  87.  
  88.             //Feszültségek átkonvertálása és tárolása listákban
  89.             #region Átkonvertálás
  90.             if (letter.Count == 2)
  91.             {
  92.                 for (int k = 0; k < feszultsegek1.Length; k++)
  93.                 {
  94.                     if (feszultsegek1[k] >= 0 && feszultsegek1[k] <= 8)
  95.                     {
  96.                         matrixVoltage[0, k] = "0";
  97.                     }
  98.                     else if (feszultsegek1[k] >= 27 && feszultsegek1[k] <= 50)
  99.                     {
  100.                         matrixVoltage[0, k] = "1";
  101.                     }
  102.                     else
  103.                     {
  104.                         matrixVoltage[0, k] = "E";
  105.                     }
  106.                 }
  107.                 for (int k = 0; k < feszultsegek2.Length; k++)
  108.                 {
  109.                     if (feszultsegek2[k] >= 0 && feszultsegek2[k] <= 8)
  110.                     {
  111.                         matrixVoltage[1, k] = "0";
  112.                     }
  113.                     else if (feszultsegek2[k] >= 27 && feszultsegek2[k] <= 50)
  114.                     {
  115.                         matrixVoltage[1, k] = "1";
  116.                     }
  117.                     else
  118.                     {
  119.                         matrixVoltage[1, k] = "E";
  120.                     }
  121.                 }
  122.             }
  123.             else if (letter.Count == 1)
  124.             {
  125.                 for (int k = 0; k < feszultsegek1.Length; k++)
  126.                 {
  127.                     if (feszultsegek1[k] >= 0 && feszultsegek1[k] <= 8)
  128.                     {
  129.                         matrixVoltage[0, k] = "0";
  130.                     }
  131.                     else if (feszultsegek1[k] >= 27 && feszultsegek1[k] <= 50)
  132.                     {
  133.                         matrixVoltage[0, k] = "1";
  134.                     }
  135.                     else
  136.                     {
  137.                         matrixVoltage[0, k] = "E";
  138.                     }
  139.                 }
  140.             }
  141.             #endregion Átkonvertálás
  142.  
  143.             Console.Clear();
  144.  
  145.             //Logikai kapuk alapján való kiiratás
  146.             #region Logikai Kapuk
  147.             if (utasitas == "AND")
  148.             {
  149.                 for (int i = 0; i < matrixVoltage.GetLength(1); i++)
  150.                 {
  151.                     if (matrixVoltage[0, i] == matrixVoltage[1, i] && matrixVoltage[0, i] == "1")
  152.                     {
  153.                         Console.Write("1");
  154.                     }
  155.                     else if (matrixVoltage[1, i] == "E" || matrixVoltage[0, i] == "E")
  156.                     {
  157.                         Console.Write("E");
  158.                     }
  159.                     else
  160.                     {
  161.                         Console.Write(0);
  162.                     }
  163.                 }
  164.             }
  165.  
  166.             else if (utasitas == "OR")
  167.             {
  168.                 for (int i = 0; i < matrixVoltage.GetLength(1); i++)
  169.                 {
  170.                     if (matrixVoltage[0, i] == "1" || matrixVoltage[1, i] == "1" && matrixVoltage[0, i] != "E" && matrixVoltage[1, i] != "E")
  171.                     {
  172.                         Console.Write("1");
  173.                     }
  174.                     else if (matrixVoltage[1, i] == "E" || matrixVoltage[0, i] == "E")
  175.                     {
  176.                         Console.Write("E");
  177.                     }
  178.                     else
  179.                     {
  180.                         Console.Write(0);
  181.                     }
  182.                 }
  183.             }
  184.            
  185.             else if (utasitas == "NOT")
  186.             {
  187.                 for (int i = 0; i < matrixVoltage.GetLength(1); i++)
  188.                 {
  189.                     if (matrixVoltage[0, i] == "0")
  190.                     {
  191.                         Console.Write("1");
  192.                     }
  193.                     else if (matrixVoltage[0, i] == "1")
  194.                     {
  195.                         Console.Write("0");
  196.                     }
  197.                     else
  198.                     {
  199.                         Console.Write("E");
  200.                     }
  201.                 }
  202.             }
  203.  
  204.             if (utasitas == "NAND")
  205.             {
  206.                 for (int i = 0; i < matrixVoltage.GetLength(1); i++)
  207.                 {
  208.                     if (matrixVoltage[0, i] == "1" && matrixVoltage[1, i] == "1")
  209.                     {
  210.                         Console.Write("0");
  211.                     }
  212.                     else if (matrixVoltage[1, i] == "E" || matrixVoltage[0, i] == "E")
  213.                     {
  214.                         Console.Write("E");
  215.                     }
  216.                     else
  217.                     {
  218.                         Console.Write("1");
  219.                     }
  220.                 }
  221.             }
  222.            
  223.             if (utasitas == "NOR")
  224.             {
  225.                 for (int i = 0; i < matrixVoltage.GetLength(1); i++)
  226.                 {
  227.                     if (matrixVoltage[0, i] == "0" && matrixVoltage[1, i] == "0")
  228.                     {
  229.                         Console.Write("1");
  230.                     }
  231.                     else if (matrixVoltage[1, i] == "E" || matrixVoltage[0, i] == "E")
  232.                     {
  233.                         Console.Write("E");
  234.                     }
  235.                     else
  236.                     {
  237.                         Console.Write("0");
  238.                     }
  239.                 }
  240.             }
  241.  
  242.             else if (utasitas == "XOR")
  243.             {
  244.                 for (int i = 0; i < matrixVoltage.GetLength(1); i++)
  245.                 {
  246.                     if (matrixVoltage[0, i] != matrixVoltage[1, i] && matrixVoltage[0, i] != "E" && matrixVoltage[1, i] != "E")
  247.                     {
  248.                         Console.Write("1");
  249.                     }
  250.                     else if (matrixVoltage[1, i] == "E" || matrixVoltage[0, i] == "E")
  251.                     {
  252.                         Console.Write("E");
  253.                     }
  254.                     else
  255.                     {
  256.                         Console.Write(0);
  257.                     }
  258.                 }
  259.             }
  260.            
  261.             else if (utasitas == "XNOR")
  262.             {
  263.                 for (int i = 0; i < matrixVoltage.GetLength(1); i++)
  264.                 {
  265.                     if (matrixVoltage[0, i] == matrixVoltage[1, i] && matrixVoltage[0, i] != "E" && matrixVoltage[1, i] != "E")
  266.                     {
  267.                         Console.Write("1");
  268.                     }
  269.                     else if (matrixVoltage[1, i] == "E" || matrixVoltage[0, i] == "E")
  270.                     {
  271.                         Console.Write("E");
  272.                     }
  273.                     else
  274.                     {
  275.                         Console.Write(0);
  276.                     }
  277.                 }
  278.             }
  279.             #endregion Logikai Kapuk
  280.         }
  281.     }
  282. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement