На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Деление без остатка
    Пишу прогу для работы с дробями и столкнулся с такой проблемой:
    Как мне найти число,которое делится на знаменатель, при чем так, чтобы число было без остатка? Если не затруднит подскажите пожалуйста.
      а поподробнее?
        Примерный алгоритм:
        ..........
        if label1.Caption='/' then begin
        i:=strtoint(a1.text)*strtoint(b2.text);
        q:=strtoint(a2.text)*strtoint(b1.text);
        ch.text:=inttostr(i);
        zn.text:=inttostr(q);
                end else
        if label1.Caption='*' then begin
        i:=strtoint(a1.text)*strtoint(b1.text);
        q:=strtoint(a2.text)*strtoint(b2.text);
        ch.text:=inttostr(i);
        zn.text:=inttostr(q);
                end else
        .............
        В данном примере фигурирует 2 дроби, деление и умножение понятно, а вот как
        мне найти наименьший общий знаменатель при сложении\вычетании ?
          Наибольший Общий Делитель находится так:
          Цитата

          function GCD(a,b:integer):integer;
          var p1,p2,p3:integer;
          begin
          if a>b then
           begin p1:=a;p2:=b end
          else
           begin p1:=b;p2:=a end;
          while p2<>0 do
          begin
          p3:=p1 mod p2;
          p1:=p2; p2:=p3;
          end;
          GCD:=p1
          end;

          А наименьший общий знаменатель так:
          Цитата
          LC:=a*b div GCD(a,b);
          где a и b - знаменатили дробей.
          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0164 ]   [ 14 queries used ]   [ Generated: 3.06.24, 02:04 GMT ]