Advertisement
Levi0227

Meteorológiai-jelentés-2020 május

Apr 5th, 2023 (edited)
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 12.91 KB | Source Code | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7.  
  8. namespace metjelentes
  9. {
  10.     class metjelentes
  11.     {
  12.         struct ST {
  13.             public string telepules, ido, szel;
  14.             public int ora, perc, homero;
  15.         }
  16.         static List<ST> list = new List<ST>();
  17.         static ST one;
  18.  
  19.         static void Ex1(){
  20.             StreamReader sr = new StreamReader("tavirathu13.txt");
  21.             while (!sr.EndOfStream)
  22.             {
  23.                 var line = sr.ReadLine().Split(' ');
  24.                 one.telepules = line[0];
  25.                 one.ido = line[1];
  26.                 one.ora = Convert.ToInt32(line[1])/100;
  27.                 one.perc = Convert.ToInt32(line[1])-one.ora*100;
  28.                 one.szel = line[2];
  29.                 one.homero = Convert.ToInt32(line[3]);
  30.                 list.Add(one);
  31.             }
  32.             sr.Close();
  33.             //foreach (var e in list)
  34.             //{
  35.             //    Console.WriteLine($"{e.telepules} {e.ido} {e.szel} {e.homero}");
  36.             //}
  37.         }
  38.  
  39.         static void Ex2(){
  40.             int oid = 0, pid = 0;
  41.             Console.Write("2. feladat\nAdja meg egy település kódját! Település: ");
  42.             string kod = Console.ReadLine();
  43.  
  44.             foreach (var e in list)
  45.             {
  46.                 if (kod==e.telepules)
  47.                 {
  48.                     oid = e.ora;
  49.                     pid = e.perc;
  50.                 }
  51.             }
  52.  
  53.             Console.WriteLine($"Az utolsó mérési adat a megadott településről {oid}:{pid}-kor érkezett.");
  54.         }
  55.  
  56.         static void Ex3(){
  57.             int magas = int.MinValue, alacsony = int.MaxValue, oid = 0, pid = 0;
  58.             string nev = "", pont = "";
  59.  
  60.             foreach (var e in list)
  61.             {
  62.                 if (alacsony > e.homero)
  63.                 {
  64.                     alacsony = e.homero;
  65.                     nev = e.telepules;
  66.                     oid = e.ora;
  67.                     pid = e.perc;
  68.                 }
  69.             }
  70.             Console.WriteLine($"3. feladat\nA legalacsonyabb hőmérséklet: {nev} {oid}:{pid} {alacsony} fok.");
  71.  
  72.             foreach (var e in list)
  73.             {
  74.                 if (magas<e.homero)
  75.                 {
  76.                     magas = e.homero;
  77.                     nev = e.telepules;
  78.                     oid = e.ora;
  79.                     pid = e.perc;
  80.                 }
  81.             }
  82.             Console.WriteLine($"A legmagasabb hőmérséklet: {nev} {oid}:{pid} {magas} fok.");
  83.         }
  84.  
  85.         static void Ex4() {
  86.             Console.WriteLine("4. feladat");
  87.  
  88.             string csend = "00000";
  89.             bool van = false;
  90.  
  91.             foreach (var e in list)
  92.             {
  93.                 if (e.szel==csend)
  94.                 {
  95.                     van = true;
  96.                     Console.WriteLine($"{e.telepules} {e.ora}:{e.perc}");
  97.                 }
  98.             }
  99.             if (van==false)
  100.             {
  101.                 Console.WriteLine("Nem volt szélcsend a mérések idején.");
  102.             }
  103.         }
  104.  
  105.         static void Ex5() {
  106.             Console.WriteLine("5. feladat");
  107.  
  108.             //int sum = 0, magas = int.MinValue, alacsony = int.MaxValue;
  109.             //List<string> telep = new List<string>();
  110.  
  111.             //foreach (var e in list)
  112.             //{
  113.             //    if (alacsony > e.homero)
  114.             //    {
  115.             //        alacsony = e.homero;
  116.             //    }
  117.             //    if (magas < e.homero)
  118.             //    {
  119.             //        magas = e.homero;
  120.             //    }
  121.             //        foreach (var f in list)
  122.             //        {
  123.             //            if (!telep.Contains(e.telepules))
  124.             //            {
  125.             //                if (f.telepules==e.telepules)
  126.             //                {
  127.             //                    if (f.ora==1 || f.ora==7 || f.ora == 13 || f.ora == 191)
  128.             //                    {
  129.             //                        sum += f.homero;
  130.             //                    }
  131.             //                }
  132.             //            telep.Add(e.telepules);
  133.             //            }
  134.             //        }
  135.             //    Console.WriteLine($"{telep} Középhőmérséklet: {sum/4}; Hőmérséklet-ingadozás: {magas-alacsony}");
  136.             //}
  137.         }
  138.  
  139.         static void Main(string[] args)
  140.         {
  141.             Ex1();
  142.             Ex2();
  143.             Ex3();
  144.             Ex4();
  145.             Ex5();
  146.             Console.ReadKey();
  147.         }
  148.     }
  149. }
  150. ////////////////////////////////////////////////////////////////////////////////////////////////////
  151. ////////////////////////////////////////////////////////////////////////////////////////////////////
  152. ////////////////////////////////////////////////////////////////////////////////////////////////////
  153. using System;
  154. using System.IO;
  155. using System.Collections.Generic;
  156.  
  157. namespace ConsoleApp5
  158. {
  159.     class Program
  160.     {
  161.         struct egyadat
  162.         {
  163.             public string varos;
  164.             public string idopont;
  165.             public int ora;
  166.             public int perc;
  167.             public string szelirany; //6 kerekter szelirany+erősseg
  168.             public int szel; //széliránya; -1 ha VRB
  169.             public int ero; //szélerőssége
  170.             public int homerseklet;
  171.         }
  172.         static void Main(string[] args)
  173.         {
  174.  
  175.  
  176.             //1.feladat
  177.  
  178.             StreamReader sr = new StreamReader("tavirathu13.txt");
  179.             egyadat[] adat = new egyadat[500];
  180.             string s1;
  181.             string[] darabol = new string[6];
  182.             int szamol = 0;
  183.             while (!sr.EndOfStream)
  184.             {
  185.                 s1 = sr.ReadLine();
  186.                 darabol = s1.Split(' ');
  187.                 adat[szamol].varos = darabol[0];
  188.                 adat[szamol].idopont = darabol[1];
  189.                 adat[szamol].ora = int.Parse(darabol[1]) / 100;
  190.                 adat[szamol].perc = int.Parse(darabol[1]) - adat[szamol].ora * 100;
  191.                 adat[szamol].szelirany = darabol[2];
  192.                 if (darabol[2].StartsWith("VRB"))
  193.                 {
  194.                     adat[szamol].szel = -1;
  195.                 }
  196.                 else
  197.                 {
  198.                     adat[szamol].szel = Convert.ToInt32(darabol[2]) / 100;
  199.                     adat[szamol].ero = Convert.ToInt32(darabol[2]) - 100 * adat[szamol].szel;
  200.                 }
  201.                 adat[szamol].homerseklet = Convert.ToInt32(darabol[3]);
  202.                 szamol++;
  203.             }
  204.             sr.Close();
  205.             //2.feladat
  206.  
  207.             Console.WriteLine("\n2. feladat");
  208.             Console.Write("Adja meg a település kódját:! Település: ");
  209.             string s2 = Console.ReadLine();
  210.            
  211.             int ora2 = 0; //utolsó észlelés órája
  212.             int perc2 = 0; //utolsó észlelés  perc
  213.             for (int i = 1; i <= szamol; i++)
  214.             {
  215.                 if (s2 == adat[i].varos)
  216.                 {
  217.                  
  218.                     ora2 = adat[i].ora;
  219.                     perc2 = adat[i].perc;
  220.  
  221.                 }
  222.  
  223.             }
  224.             Console.WriteLine("Az utolsó mérési adat a megadott településről {0}:{1}-kor érkezett.", ora2, perc2);
  225.  
  226.             //3.feladat
  227.  
  228.             Console.WriteLine("\n3. feladat");
  229.             int minho = int.MaxValue;    //Min. hőmérséklet
  230.             int maxho = int.MinValue;  //Max. hőmérséklet
  231.             string minvaros = adat[1].varos;    //Min. hőmérséklet városa
  232.             string maxvaros = adat[1].varos;    //Max. hőmérséklet városa
  233.             string minido = adat[1].idopont;    //Min. hőmérséklet ideje
  234.             string maxido = adat[1].idopont;    //Max. hőmérséklet ideje
  235.             for (int i = 1; i <= szamol; i++)
  236.             { if (minho>adat[i].homerseklet)      //Minimum-kiválasztás ---nem müködik teljesen jól
  237.                 {
  238.                     minho = adat[i].homerseklet;
  239.                     minvaros = adat[i].varos;
  240.                     minido = adat[i].idopont;
  241.  
  242.                 }
  243.                 if (adat[i].homerseklet > maxho)      //Maximum-kiválasztás
  244.                 {
  245.                     maxho = adat[i].homerseklet;
  246.                     maxvaros = adat[i].varos;
  247.                     maxido = adat[i].idopont;
  248.                 }
  249.             }
  250.             int minido1 = Convert.ToInt32(minido) / 100;        //Az óra kiszámolásához.
  251.             int minido2 = Convert.ToInt32(minido) - minido1 * 100;  //A perc kiszámolásához.
  252.             Console.WriteLine("A legalacsonyabb hőmérséklet: {0} {1}:{2} {3} fok.", minvaros, minido1, minido2, minho);
  253.             int maxido1 = Convert.ToInt32(maxido) / 100;
  254.             int maxido2 = Convert.ToInt32(maxido) - maxido1 * 100;
  255.             Console.WriteLine("A legmagasabb hőmérséklet: {0} {1}:{2} {3} fok.", maxvaros, maxido1, maxido2, maxho);
  256.  
  257.  
  258.             //4.feladat
  259.             Console.WriteLine("\n4. feladat");
  260.             bool voltilyen = false;
  261.             for (int i = 1; i <= szamol; i++)
  262.             {
  263.                 if (adat[i].szelirany == "00000")
  264.                 {
  265.                     Console.Write("{0} ", adat[i].varos);
  266.                     if (adat[i].ora < 10)
  267.                     {
  268.                         Console.Write("0");         //10 óra előtt ki kell írni egy vezető 0-t.
  269.                     }
  270.                     Console.Write("{0}:", adat[i].ora);
  271.                     if (adat[i].perc < 10)
  272.                     {
  273.                         Console.Write("0");         //10 perc előtt ki kell írni egy vezető 0-t.
  274.                     }
  275.                     Console.WriteLine("{0}", adat[i].perc);
  276.                     voltilyen = true;
  277.                 }
  278.             }
  279.             if (voltilyen == false)
  280.             {
  281.                 Console.WriteLine("Nem volt szélcsend a mérések idején.");
  282.             }
  283.  
  284.  
  285.             //5. feladat
  286.  
  287.             Console.WriteLine("\n5. feladat");
  288.             int varosdb = 0;            //Ennyi városnév van.
  289.             List<string> varosnevek = new List<string>();
  290.             for (int i = 1; i <= szamol; i++)
  291.             {
  292.                 if (!varosnevek.Contains(adat[i].varos))
  293.                 {
  294.                     varosdb++;
  295.                     varosnevek.Add(adat[i].varos);
  296.                 }
  297.             }
  298.             string[] varosnevlista = new string[20];        //Ide mentem a leszűrt városneveket
  299.             int i5 = 1;     //Ideiglenes index
  300.             foreach (var item in varosnevek)
  301.             {
  302.                 varosnevlista[i5] = item;
  303.                 i5++;
  304.             }
  305.             int[,] hofokok = new int[7, varosdb + 1];
  306.            
  307.             for (int j = 1; j <= varosdb; j++)
  308.             {
  309.                 hofokok[1, j] = 0;          //Alapállapotba állítjuk a hőmérséklet-jelzőket
  310.                 hofokok[2, j] = 0;
  311.                 hofokok[3, j] = 0;
  312.                 hofokok[4, j] = 0;
  313.                 hofokok[5, j] = 100;
  314.                 hofokok[6, j] = 0;
  315.             }
  316.             for (int i = 1; i <= szamol; i++)
  317.             {
  318.                 for (int j = 1; j <= varosdb; j++)
  319.                 {
  320.                     if (adat[i].varos == varosnevlista[j])        //Jó városban vagyunk
  321.                     {
  322.                         if (adat[i].ora == 1)
  323.                         { hofokok[1, j] = adat[i].homerseklet; }
  324.                         if (adat[i].ora == 7)
  325.                         { hofokok[2, j] = adat[i].homerseklet; }
  326.                         if (adat[i].ora == 13)
  327.                         { hofokok[3, j] = adat[i].homerseklet; }
  328.                         if (adat[i].ora == 19)
  329.                         { hofokok[4, j] = adat[i].homerseklet; }
  330.                         if (hofokok[5, j] > adat[i].homerseklet)
  331.                         { hofokok[5, j] = adat[i].homerseklet; }
  332.                         if (hofokok[6, j] < adat[i].homerseklet)
  333.                         { hofokok[6, j] = adat[i].homerseklet; }
  334.                     }
  335.                 }
  336.             }
  337.             int szorzat5;           //Ideiglenes változó
  338.             float f5;               //Ideiglenes változó
  339.             for (int j = 1; j <= varosdb; j++)
  340.             {
  341.                 szorzat5 = hofokok[1, j] * hofokok[2, j] * hofokok[3, j] * hofokok[4, j];
  342.                 if (szorzat5 == 0)
  343.                 {
  344.                     Console.WriteLine("{0} NA ; Hőmérséklet-ingadozás: {1}", varosnevlista[j], hofokok[6, j] - hofokok[5, j]);
  345.                 }
  346.                 else
  347.                 {
  348.                     f5 = (hofokok[1, j] + hofokok[2, j] + hofokok[3, j] + hofokok[4, j]) / 4;
  349.                     Console.WriteLine("{0} Középhőmérséklet: {1} ; Hőmérséklet-ingadozás: {2} ", varosnevlista[j], Math.Round(f5), hofokok[6, j] - hofokok[5, j]);
  350.                 }
  351.             }
  352.  
  353.         }
  354.     }
  355. }
  356.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement