csaki

magasprog II. első gyak

Feb 11th, 2013
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.22 KB | None | 0 0
  1. // KÉT feladat magasprog II első gyakjáról:
  2.  
  3. // Első:
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8.  
  9. namespace II_1_gyak
  10. {
  11.     class Teglalap
  12.     {
  13.         public int xkoord;
  14.         public int ykoord;
  15.         public double magassag;
  16.         public double szelesseg;
  17.     }
  18.  
  19.     class Program
  20.     {
  21.         static Random rand = new Random();
  22.         static void Main(string[] args)
  23.         {
  24.             bool a = true; ;
  25.             while (a)
  26.             {
  27.                 Teglalap A = new Teglalap();
  28.                 A.xkoord = rand.Next(1, 3);
  29.                 A.ykoord = rand.Next(1, 3);
  30.                 A.magassag = rand.NextDouble();
  31.                 A.szelesseg = rand.NextDouble();
  32.  
  33.                 Teglalap B = new Teglalap();
  34.                 B.xkoord = rand.Next(1, 3);
  35.                 B.ykoord = rand.Next(1, 3);
  36.                 B.magassag = rand.NextDouble();
  37.                 B.szelesseg = rand.NextDouble();
  38.  
  39.                 if (belelog_e(A, B))
  40.                 {
  41.                     Console.WriteLine("A két téglalap egymásba lóg.");
  42.                 }
  43.                 else Console.WriteLine("A két téglalap nem lóg egymásba.");
  44.                 Console.ReadLine();
  45.             }
  46.         }
  47.  
  48.         static bool egypont(Teglalap t, double x, double y)
  49.         {
  50.             bool vx = (t.xkoord <= x) && (t.xkoord + t.szelesseg >= x);
  51.             bool vy = (t.ykoord <= y) && (t.ykoord + t.magassag >= y);
  52.             return (vx && vy);
  53.         }
  54.  
  55.         static bool belelog_e(Teglalap t1, Teglalap t2)
  56.         {
  57.             bool x =
  58.             egypont(t1, t2.xkoord, t2.ykoord) ||
  59.             egypont(t1, t2.xkoord, t2.ykoord - t2.magassag) ||
  60.             egypont(t1, t2.xkoord + t2.szelesseg, t2.ykoord) ||
  61.             egypont(t1, t2.xkoord + t2.szelesseg, t2.ykoord - t2.magassag) ||
  62.             egypont(t2, t1.xkoord, t1.ykoord) ||
  63.             egypont(t2, t1.xkoord, t1.ykoord - t1.magassag) ||
  64.             egypont(t2, t1.xkoord + t1.szelesseg, t1.ykoord) ||
  65.             egypont(t2, t1.xkoord + t1.szelesseg, t1.ykoord - t1.magassag);
  66.             return x;
  67.         }
  68.     }
  69. }
  70.  
  71.  
  72. // Második:
  73.  
  74.  
  75. using System;
  76. using System.Collections.Generic;
  77. using System.Linq;
  78. using System.Text;
  79.  
  80. namespace II_1_gyak_2
  81. {
  82.     class Fish
  83.     {
  84.         public double weight;
  85.         public bool predator;
  86.         public int depth;
  87.         public int top;
  88.     }
  89.  
  90.     class Program
  91.     {
  92.         static Random rand = new Random();
  93.         static void Main(string[] args)
  94.         {
  95.            
  96.  
  97.             while (true)
  98.             {
  99.                 Console.Clear();
  100.                 List<Fish> halak = new List<Fish>();
  101.                 for (int i = 0; i < 100; i++)
  102.                 {
  103.                     Fish p = new Fish();
  104.                     p.weight = rand.Next(150, 2500) / 100.0;
  105.                     p.predator = (rand.Next(100) > 90);
  106.                     p.top = rand.Next(0, 11) * 10;
  107.                     p.depth = rand.Next(5, 21) * 10;
  108.                     halak.Add(p);
  109.                 }
  110.  
  111.                 // írassuk ki 100 halból hány ragadozó és hány nem!
  112.                 Console.WriteLine("100 halból {0} ragadozó, és {1} nem!",
  113.                     ragadazoszam(halak), halak.Count - ragadazoszam(halak)); // db ragadozó, listaméret-db nemragadozó
  114.  
  115.                 // írassuk ki a legnagyobb hal súlyát
  116.                 Console.WriteLine("A legnagyobb hal súlya: {0} kg", legnagyobbhalsulya(halak));
  117.  
  118.                 // 1m 10cm, hány hal képes ilyen MÉLYSÉGben úszni!
  119.                 Console.WriteLine("Ennyi hal képes 1 méter 10 cm mélyen úszni: {0}", hanyhal110cm(halak));
  120.  
  121.                 // (random két halból döntsük el az úszási tartomány és a súly alapján, hogy egy ragadozó meg tudja-e enni
  122.                 // a növényevőt!)
  123.  
  124.                 int k = rand.Next(0, 100);
  125.                 int j = rand.Next(0, 100);
  126.                 Console.WriteLine("\n\nVizsgálunk két random halat, hogy meg tudják-e egymást enni...\n");
  127.  
  128.                 if ((halak[k].predator && !halak[j].predator) ||
  129.                    (!halak[k].predator && halak[j].predator)) // az egyik ragadozó és a másik nem
  130.                 {
  131.                     if ((halak[j].top + halak[j].depth) > (halak[j].top + halak[k].depth))
  132.                     {
  133.                         if (halak[k].depth > halak[j].top) // egybeesik
  134.                         {
  135.                             if (halak[k].predator)
  136.                             {
  137.                                 if (halak[k].weight * 1.2 > halak[j].weight)
  138.                                 {
  139.                                     Console.WriteLine("Az első hal, ami ragadozó, megeszi a második halat, ami növényevő.");
  140.                                 }
  141.                                 else Console.WriteLine("A második hal túl nagy az első halnak, pedig az első ragadozó, a második nem.");
  142.                             }
  143.                             else
  144.                             {
  145.                                 if (halak[j].weight * 1.2 > halak[k].weight)
  146.                                 {
  147.                                     Console.WriteLine("A második hal, ami ragadozó, megeszi az első halat, ami növényevő.");
  148.                                 }
  149.                                 else Console.WriteLine("Az első hal túl nagy a második halnak, pedig a második ragadozó, az első meg nem.");
  150.                             }
  151.                         }
  152.  
  153.                         else // nem esik egybe
  154.                         {
  155.                             Console.WriteLine("Nem esik egybe a két hal úszási tartománya!");
  156.                         }
  157.                     }
  158.  
  159.                     else
  160.                     {
  161.                         if (halak[j].depth > halak[k].top) // egybeesik
  162.                         {
  163.  
  164.                         }
  165.  
  166.                         else // nem esik egybe
  167.                         {
  168.  
  169.                         }
  170.                     }
  171.                 }
  172.                
  173.                 else Console.WriteLine("A két random kiválasztott halból vagy mindkettő növényevő vagy mindkettő ragadozó!");
  174.                 Console.ReadLine();
  175.             }
  176.         }
  177.  
  178.         static int hanyhal110cm(List<Fish> halak)
  179.         {
  180.             int db = 0;
  181.             foreach (Fish x in halak)
  182.             {
  183.                 if (x.top + x.depth >= 110)
  184.                 {
  185.                     db++;
  186.                 }
  187.             }
  188.             return db;
  189.         }
  190.  
  191.         static int ragadazoszam(List<Fish> halak)
  192.         {
  193.             int db = 0;
  194.             foreach (Fish x in halak)
  195.             {
  196.                 if (x.predator) db++;
  197.             }
  198.             return db;
  199.         }
  200.  
  201.         static double legnagyobbhalsulya(List<Fish> halak)
  202.         {
  203.             double nagy = halak[0].weight;
  204.             foreach (Fish x in halak)
  205.             {
  206.                 if (x.weight > nagy) nagy = x.weight;
  207.             }
  208.             return nagy;
  209.         }
  210.     }
  211. }
Advertisement
Add Comment
Please, Sign In to add comment