Цикл While проскакивает ограничения - C#

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace SimpleCounter
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. Console.WriteLine("Set a limit");
  14. double C = Convert.ToDouble(Console.ReadLine());
  15. Console.WriteLine("Set a start point");
  16. double A = Convert.ToDouble(Console.ReadLine());
  17. double B = A / 2;
  18. double Asum = A + B;
  19. double AsumControl = 0;
  20. int counter = 0;
  21.  
  22. Console.WriteLine("На шаге номер " + counter + " сумма была равна: " + Asum);
  23. B = B / 2;
  24.  
  25. while (Asum !=AsumControl)
  26. {
  27. AsumControl = Asum;
  28. Asum = Asum + B;
  29. counter++;
  30. Console.WriteLine("На шаге номер " + counter + " сумма была равна: " + Asum);
  31. B = B / 2;
  32. if (Asum >= C) break;
  33. }
  34. Console.ReadKey();
  35. }
  36. }
  37. }
Когда-то, давным-давно, в далёкой-далёкой галактике, в какой-то книге я вычитал, что из пункта А в пункт Б невозможно дойти, если каждый последующий шаг будет в 2 раза короче предыдущего. Понятное дело, что это true/false этого утверждения зависит от дистанции и длинны первого шага, но не в том суть. Решил я значит от совсем нечего делать написать программку которая бы считала пройденное расстояние по заданному алгоритму. Вопрос в следующем: У условиях while четко указано, что цикл повторяется только пока пройденное расстояние продолжает изменяться с последующим шагом. Но, к примеру, при дистанции 25, длине первого шага 7, цикл продолжает выводить неизменный ответ 7 раз. Хотя не должен бы. Почему? Есть предположение, что дело в хитром округлении, но хотелось бы несколько более грамотного объяснения. Спасибо.

Решение задачи: «Цикл While проскакивает ограничения»

textual
Листинг программы
  1. Console.WriteLine("На шаге номер {0} сумма была равна: {1}", counter, Asum);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут