1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Это ошибка в Delphi? Или во мне? помогите разобраться!

Тема в разделе "Delphi - программирование", создана пользователем ALEXby, 14 июн 2009.

  1. ALEXby

    ALEXby Гость

    Репутация:
    0
    Во время работы участка программы заметил ошибку:
    Пытаюсь вывести значения х1 пока оно не станет больше х2 с шагом h:

    repeat начало цикла
    begin
    memo1.Lines.Add(floattostrf(x1,fffixed,5,2)+#13); вывожу в окно значение х1
    x1:=x1+h; увеличиваю на h
    end;
    until x1>x2; сравниваю с х2

    Теперь самое интересное:
    при х1=0.1; х2=1; h=0.1;
    прога выдает:
    0,10
    0,20
    0,30
    0,40
    0,50
    0,60
    0,70
    0,80
    0,90
    ВОПРОС: где значение х1=1,00???
    а при х1=1; х2=10; h=1; всё нормально
    прога выдает:
    1,00
    2,00
    3,00
    4,00
    5,00
    6,00
    7,00
    8,00
    9,00
    10,00

    Может кто-нибудь знает в чём причина?
    В архиве лежит проект с программой.
     

    Вложения:

    • Prog.rar
      Размер файла:
      167,9 КБ
      Просмотров:
      10
  2. mir

    mir Гость

    Репутация:
    0
    Это особенность хранения типа.
    На самом деле на последней итерации у тебя в переменной x1 значение не 1.0 а 1.000000....01
    Поменяй тип переменных с extended на real и все будет ок.
     
  3. ALEXby

    ALEXby Гость

    Репутация:
    0
    пасиб за информацию, на будущее буду знать, а в проге я просто к x2 прибавил h/10, что тоже работает :rolleyes:
     
Загрузка...

Поделиться этой страницей