Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2012, 23:46   #1
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию Деление числа без остатка

Нужно сделать вот что: есть сумма, выбираем на сколько частей ее делить. например на 5. Заносятся 5 частей от этой суммы в эдиты. Но! числа целочисленные. В последнее число заносится остаток от остальных.
ПРИМЕР: 50 000/6 если на калькуляторе то: 8 333,33... Должно получиться:
8 333
8 333
8 333
8 333
8 333
8 335
т,е. если их обратно сейчас сложить получится 50 000
///////////
Пока писал вопрос решение в голову дошло)) =
a:=50 000 div 6 ; (a=8333)
b:=50000 mod 6; (b=2)
S:=a*6+b=50000.
//////////
Но тогда вопрос в том, как раскидать в эдиты эти числа изменяя делитель (от 3 до 6)?




В принципе в ручную знаю как, но может что-нибудь мудрые на этом форуме посоветуют?
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics

Последний раз редактировалось grom333; 17.01.2012 в 23:49.
grom333 вне форума Ответить с цитированием
Старый 18.01.2012, 00:15   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Оставшаяся сумма div кол-во месяцев = сумма на каждый месяц из их кол-ва.
Человек_Борща вне форума Ответить с цитированием
Старый 18.01.2012, 00:19   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Держать массив array[1..6] of TEdit, поместить в него Edit-ы и в цикле от 1 до делителя поместить значение, от делителя+1 до 6 - очистить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.01.2012, 21:30   #4
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

ребят, мне задание не правильно объяснили... Числа надо так разделить, чтобы у них на конце было 5 или 0.
Т.е. Число 50 000 делим на 6 получается : 8 335+8 335+8 335+8 335+8 335+8325 или
8335*5+8325.
Как до такого додумать можно? Это уже не простое деление.
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 18.01.2012, 21:46   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
var i,k,j,xOst1,xOst2: Integer;
    xArray: array [1..6] of Integer;
begin
  k:=80000 div 6;
  xOst1:=80000 mod 6;
  xOst2:=0;
  for i:=1 to 5 do begin
    j:=(k+xOst2) mod 5;
    if j<=2 then begin
      xArray[i]:=k+xOst2-j;
      xOst2:=j;
    end
    else begin
      xArray[i]:=k+xOst2+5-j;
      xOst2:=j-5;
    end;
  end;
  xArray[6]:=k+xOst2+xOst1;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.01.2012, 22:04   #6
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
var i,k,j,xOst1,xOst2: Integer;
    xArray: array [1..6] of Integer;
begin
  k:=80000 div 6;
  xOst1:=80000 mod 6;
  xOst2:=0;
  for i:=1 to 5 do begin
    j:=(k+xOst2) mod 5;
    if j<=2 then begin
      xArray[i]:=k+xOst2-j;
      xOst2:=j;
    end
    else begin
      xArray[i]:=k+xOst2+5-j;
      xOst2:=j-5;
    end;
  end;
  xArray[6]:=k+xOst2+xOst1;
end;
Аватар, спасибо большое. Сколько уже раз помогли, а я все не могу плюс поставить... странная немного система
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 18.01.2012, 22:28   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вот еще вариант, чуть поинтересней
Код:
var i,k,j,xSum: Integer;
    xArray: array [1..6] of Integer;
    xAvg,xOst,xVsp: Real;
begin
  xAvg:=80000/6;
  xOst:=0;
  xSum:=0;
  for i:=1 to 5 do begin
    k:=Round(xAvg+xOst);
    j:=k mod 5;
    if j<=2 then xArray[i]:=k-j
            else xArray[i]:=k+5-j;
    xOst:=xAvg-xArray[i];
    Inc(xSum,xArray[i]);
  end;
  xArray[6]:=80000-xSum;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
список всех четырехзначных нечетных чисел, делящихся без остатка на сумму своих цифр. Kami-sama Общие вопросы C/C++ 2 12.11.2010 17:07
Деление многочленов. Нахождение остатка @Manya@ Общие вопросы C/C++ 2 05.05.2010 11:36
Делить без остатка rangel PHP 4 30.07.2009 14:31
Как узнать что число не Float(без остатка) при результате деления? zotox Помощь студентам 7 19.07.2009 15:49
Составить программу, определяющую количество чисел, делящихся без остатка на три phoenixSV Паскаль, Turbo Pascal, PascalABC.NET 2 05.12.2008 15:05