Lektion 6: lösningsförslag

  1. // 1
  2. // Här har vi valt övning 4 från lektion 1.
  3. static bool CanBecomePresident(string country, int age, int elected)
  4. {
  5. return country == "USA" && age >= 35 && elected <= 1;
  6. }
  7. // 2
  8. static bool IsWarm(double temperature)
  9. {
  10. return temperature >= 18 && temperature <= 26;
  11. }
  12. static bool IsQuiet(double volume)
  13. {
  14. return volume <= 45;
  15. }
  16. static bool IsHabitable(double temperature, double volume)
  17. {
  18. return IsWarm(temperature) && IsQuiet(volume);
  19. }
  20. // 3
  21. class Person1
  22. {
  23. public string FirstName;
  24. public string LastName;
  25. public int Age;
  26. public double Income;
  27. }
  28. static string FullName(Person1 p)
  29. {
  30. return p.FirstName + " " + p.LastName;
  31. }
  32. static bool CanMarry(Person1 p)
  33. {
  34. return p.Age >= 18;
  35. }
  36. static double FederalIncomeTaxRate(Person1 p)
  37. {
  38. if (p.Income <= 438900)
  39. {
  40. return 0;
  41. }
  42. else if (p.Income <= 638500)
  43. {
  44. return 0.2;
  45. }
  46. else
  47. {
  48. return 0.25;
  49. }
  50. }
  51. // 4
  52. class Person2
  53. {
  54. public string Name;
  55. public int Age;
  56. public double Wealth;
  57. public double Salary;
  58. }
  59. static void PaySalary(Person2 p)
  60. {
  61. p.Wealth += p.Salary;
  62. }
  63. static void WinLottery(Person2 p)
  64. {
  65. p.Wealth += 10000;
  66. }
  67. static void CelebrateBirthday(Person2 p)
  68. {
  69. p.Age += 1;
  70. p.Wealth += 500;
  71. }
  72. static void ShowPerson(Person2 p)
  73. {
  74. Console.WriteLine(p.Age + "-åriga " + p.Name + " har en lön på " + p.Salary + " kronor och " + p.Wealth + " kronor på banken.");
  75. }
  76. // 5
  77. static bool IsLarge(string s)
  78. {
  79. return s.Length > 50;
  80. }
  81. static bool IsLarge(int i)
  82. {
  83. return i > 1000;
  84. }
  85. class Person3
  86. {
  87. public double Height;
  88. }
  89. static bool IsLarge(Person3 p)
  90. {
  91. return p.Height > 190;
  92. }
  93. // 6
  94. // Ersätt varje enskilt steg i diagrammet med en metod, som sedan anropas när användaren ger svar som leder till det steget. När programmet behöver gå tillbaka till ett tidigare steg kan det således helt enkelt anropa metoden för det steg som det ska återvända till.