====== 1. tanár ====== Egy iskola tanárairól tudjuk, hogy mikor milyen órát tartanak. A tanárokat, a tantárgyakat, a hét napjait, a napokon belüli órákat sorszámukkal azonosítjuk. Készíts programot (tanár.pas, …), amely megadja: * A. minden napra a szabadnapos tanárok számát; * B. azt a tanárt, akinek a legkevesebb lyukasórája van (lyukasóra: aznap előtte is van órája valamikor és utána is van órája valamikor); * C. az adott T tanárt egész héten helyettesíteni tudó tanárt (ha lehetséges, akkor úgy, hogy szabad napján senkit ne kelljen behívni az iskolába). * D. adott T tanárt a hét H. napján helyettesítő tanárokat úgy, hogy minden óráján szakos helyettesítés legyen; Az tanár.be szöveges állomány első sorában a tanárok száma (1< =N< =100), a tantárgyak száma (1< =M< =100), egy tanár sorszáma (1< =T< =N) és egy nap sorszáma van (1< =H< =5), egy-egy szóközzel elválasztva. A következő sorok mindegyikében 4 egész szám van, egy-egy szóközzel elválasztva: tanár sorszáma, tanított tantárgy sorszáma, nap (1 és 5 közötti egész szám), óra (0 és 8 közötti egész szám). Például 3 7 2 0 azt jelenti, hogy a harmadik tanár a hetedik tantárgyat a hét második napján, a nulladik órában tanítja. Az tanár.ki szöveges állományba négy sort kell írni! Az első sorba az A, a másodikba a B, a harmadikba a C, a negyedikbe pedig a D részfeladat eredményét. Ha több megoldás van, a legkisebb sorszámút kell megadni! Ha nincs megoldás (C és D részfeladatban), akkor 1-et kell kiírni! Az első sorban 5 szám szerepeljen, egy-egy szóközzel elválasztva! A negyedik sor első száma a helyettesített órák száma legyen, amit a helyettesítő tanárok sorszámai követnek, órák szerinti sorrendben, egy-egy szóközzel elválasztva! using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace tanar { class Program { static void Ki(int[] tomb) { for (int i = 0; i < tomb.Length; i++) { Console.Write(tomb[i]); if (i < tomb.Length - 1) Console.Write(" "); } Console.WriteLine(); } static void Main(string[] args) { StreamReader file = new StreamReader("tanar.be"); string line = file.ReadLine(); string[] mezok = line.Split(' '); int tanarDb = Convert.ToInt32(mezok[0]); int targyDb = Convert.ToInt32(mezok[1]); int tanarIndex = Convert.ToInt32(mezok[2])-1; int valasztottNap = Convert.ToInt32(mezok[3]); int[,,] orak = new int[tanarDb,5,9]; while ((line = file.ReadLine()) != null) { Console.WriteLine(line); mezok = line.Split(' '); int tanar = Convert.ToInt32(mezok[0])-1; // 0-tól indul a sorszámuk int targy = Convert.ToInt32(mezok[1]); int nap = Convert.ToInt32(mezok[2])-1; // 0-tól indul a sorszámuk int ora = Convert.ToInt32(mezok[3]); orak[tanar, nap, ora] = targy; } for (int tanar = 0; tanar < tanarDb; tanar++) { for (int nap = 0; nap < 5; nap++) { for (int ora = 0; ora < 9; ora++) { if (orak[tanar,nap,ora] >0) Console.WriteLine("tanar: {0}, nap: {1}, ora: {2}, targy: {3}", tanar+1, nap+1, ora, orak[tanar, nap, ora]); } } } // szabadnapos tanárok száma naponként int[] szabad = new int[] { 0, 0, 0, 0, 0 }; for (int nap = 0; nap < 5; nap++) { for (int tanar = 0; tanar < tanarDb; tanar++) { int napiOraszam = 0; for (int ora = 0; ora < 9; ora++) { if (orak[tanar, nap, ora] > 0) napiOraszam++; } if (napiOraszam == 0) szabad[nap]++; } Console.Write(szabad[nap]); if (nap != 4) Console.Write(" "); } Console.WriteLine(); Ki(szabad); file.Close(); Console.ReadKey(); } } }