Guest User

help321

a guest
Mar 3rd, 2022
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.59 KB | None | 0 0
  1.     class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             List<Stad> Städer = new List<Stad>();   // Deklaration av lista för städer
  6.             bool avsluta = false;                   // Deklaration booleanskt värde
  7.             int n = Städer.Count;                   // Deklaration av "n" till antalet städer i listan
  8.             List<Stad> SorteradLista = Städer.OrderBy(n => n.temp).ToList(); // Deklaration av sorterad lista från lägst till högst temperatur i stad
  9.  
  10.             do
  11.             {
  12.                 // Meny som visas för användaren
  13.                 Console.WriteLine("\n===Väderstation===");
  14.                 Console.WriteLine("1: Ange temperatur för 5 städer");
  15.                 Console.WriteLine("2: Sök efter en temperatur");
  16.                 Console.WriteLine("3: Skriv ut städer sorterade efter temperatur");
  17.                 Console.WriteLine("4: Sök efter temperatur i en lista med städer");
  18.                 Console.WriteLine("5: Skriv ut stad med >lägst< temperatur");
  19.                 Console.WriteLine("6: Skriv ut stad med >högst< temperatur");
  20.                 Console.WriteLine("7: Avsluta programmet");
  21.  
  22.                 Console.Write("Ange alterntativ: ");
  23.                 int alternativ = Convert.ToInt32(Console.ReadLine());
  24.  
  25.                 switch (alternativ)
  26.                 {
  27.                     case 1:      
  28.                         for (int i = 0; i < 5; i++)
  29.                         {
  30.                             Console.Write("\nNamn på stad: ");
  31.                             string namn = Console.ReadLine();
  32.  
  33.                             Console.Write("Stadens temperatur: ");
  34.                             int temp = Convert.ToInt32(Console.ReadLine());
  35.  
  36.                             Stad stad = new Stad(namn, temp);
  37.  
  38.                             Städer.Add(stad);
  39.                         }
  40.                         Console.Clear();
  41.                         break;
  42.                        
  43.                     case 2:
  44.                         Console.Write("\nAnge temperatur du vill söka: ");
  45.                         int söktemp = Convert.ToInt32(Console.ReadLine());
  46.  
  47.                         int index = linsok(Städer, n, söktemp);
  48.  
  49.                             if (index == -1)
  50.                                 Console.WriteLine("Finns ingen stad med temperaturen i listan.");
  51.                             else
  52.                                 Console.WriteLine(Städer[index].namn + " har följande temperatur: " + söktemp);
  53.  
  54.                         break;
  55.                        
  56.                     case 3:
  57.                         Console.WriteLine("\n===Lista med Städer===");
  58.                         bubblesort(Städer, n);
  59.                         break;
  60.  
  61.                     case 4:
  62.                         Console.Write("\nAnge värde du söker: ");
  63.                         int bSök = Convert.ToInt32(Console.ReadLine());
  64.  
  65.                         int resultat = binärSökning(SorteradLista, bSök, n);
  66.  
  67.                         if (resultat == -1)
  68.                         {
  69.                             Console.WriteLine("Sökta värdet finns inte i listan.");
  70.                         }
  71.                         else
  72.                         {
  73.                             Console.WriteLine("Värdet för den sökta temperaturen är: " + resultat);
  74.                         }
  75.                         break;
  76.  
  77.                     case 5:                      
  78.                         Console.WriteLine(lägstTemp(Städer).namn + " har lägst temperatur med: " + lägstTemp(Städer).temp + " grader.");
  79.                         break;
  80.  
  81.                     case 6:
  82.                         lägstTemp(Städer);
  83.                         Console.WriteLine(högstTemp(Städer).namn + " har högst temperatur med: " + högstTemp(Städer).temp + " grader.");
  84.                         break;
  85.  
  86.                     case 7:                      
  87.                         Console.WriteLine("Tack för att du använt Väderstationen.");
  88.                         avsluta = true;
  89.                         break;
  90.                        
  91.                     default:                      
  92.                         Console.WriteLine("Ett fel har uppstått");
  93.                         avsluta = true;
  94.                         break;              
  95.                 }
  96.             }
  97.             while (!avsluta);
  98.  
  99.             // Metod för linjär sökning i en lista
  100.             static int linsok(List<Stad> Städer, int n, int söktemp)
  101.             {
  102.                 for (int i = 0; i < Städer.Count; i++)
  103.                 {
  104.                     if (Städer[i].temp == söktemp)
  105.                     {
  106.                         return i;
  107.                     }
  108.                 }
  109.                 return -1;
  110.             }
  111.  
  112.             // Metod som sorterar stad-lista efter temperatur (kallast först)
  113.             void bubblesort(List<Stad> SorteradLista, int n)
  114.             {
  115.                 foreach (var item in SorteradLista)
  116.                 {
  117.                     Console.WriteLine(item.namn + ": " + item.temp + " grader.");
  118.                 }
  119.             }
  120.  
  121.             // Metod för binär sökning som söker efter temperatur i en sorterad lista
  122.             static int binärSökning(List<Stad> SorteradLista, int bSök, int n)
  123.             {
  124.                 int låg = 0;
  125.                 int hög = SorteradLista.Count - 1;
  126.  
  127.                 while (låg <= hög)
  128.                 {
  129.                     int mitten = (låg + hög) / 2;
  130.  
  131.                     if (bSök == SorteradLista[mitten].temp)
  132.                     {
  133.                         return mitten;
  134.                     }
  135.                     else if (SorteradLista[n].temp == 1)
  136.                     {
  137.                         return -1;
  138.                     }
  139.                     else if (bSök < SorteradLista[mitten].temp)
  140.                     {
  141.                         hög = mitten - 1;
  142.                     }
  143.                     else
  144.                     {
  145.                         låg = mitten + 1;
  146.                     }
  147.                 }
  148.                 return -1;
  149.             }
  150.  
  151.             // Metod som tar reda på stad med högst temperatur
  152.             static Stad högstTemp(List<Stad> Städer)
  153.             {
  154.                 int max = int.MinValue;
  155.                 Stad result = null;
  156.  
  157.                 foreach (var item in Städer)
  158.                 {
  159.                     if (item.temp > max)
  160.                     {
  161.                         max = item.temp;
  162.                         result = item;
  163.                     }
  164.                 }
  165.                 return result;
  166.             }
  167.  
  168.             // Metod som tar reda på stad med lägst temperatur
  169.             static Stad lägstTemp(List<Stad> Städer)
  170.             {
  171.                 int min = int.MaxValue;
  172.                 Stad result = null;
  173.  
  174.                 foreach (var item in Städer)
  175.                 {
  176.                     if (item.temp < min)
  177.                     {
  178.                         min = item.temp;
  179.                         result = item;
  180.                     }
  181.                 }
  182.                 return result;
  183.             }
  184.         }
  185.         class Stad
  186.         {
  187.             public string namn { get; set; }
  188.             public int temp { get; set; }
  189.  
  190.             // lagrar stadens namn och temperatur
  191.             public Stad(string namn, int temp)
  192.             {
  193.                 this.namn = namn;
  194.                 this.temp = temp;
  195.             }
  196.  
  197.             // Metod ToString
  198.             public string ToString()
  199.             {
  200.                 return namn + " " + temp;
  201.             }
  202.         }
  203.     }
Advertisement
Add Comment
Please, Sign In to add comment