Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

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

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

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2009, 19:29   #1
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию Протестируйте и помогите

Пишу программу для выполнения операций над простыми дробями. Есть две просьбы:
1) Протестируйте, если не затруднит Не пинать, так как программированием занимаюсь полгода.
2) Самое узкое место в программе - функция сокращения:
Код:
procedure TMainForm.Reducing(var N1, N2: Int64);
var MinN: Int64; I: integer;
begin
  InReducing := true;
  MinN := Min(Abs(N1), Abs(N2));
  if MinN > High(Integer) then MinN := High(Integer);
  for I := 2 to MinN do
    begin
      if (N1 mod I = 0) and (N2 mod I = 0) then
        while (N1 mod I = 0) and (N2 mod I = 0) do
          begin
            N1 := N1 div I;
            N2 := N2 div I;
          end;
      Info.Caption := 'Сокращение (' + IntToStr(I) + ' из ' + IntToStr(MinN) +
      '). Нажмите Esc для остановки';
      Application.ProcessMessages;
      if ((GetAsyncKeyState(VK_ESCAPE) <> 0) and
      (GetAsyncKeyState(VK_ESCAPE) <> 1)) or not InReducing then
        begin
          InReducing := false;
          Exit;
        end;
    end;
  InReducing := false;
end;
Можете это увидеть, если введете в дробях все четырех- и более значные числа. Как ее упростить?
Вложения
Тип файла: rar ZMath.rar (1.42 Мб, 16 просмотров)
k1r1ch вне форума Ответить с цитированием
Старый 13.10.2009, 22:07   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Ой, Вы что, на все подряд числа пытаетесь поделить? А не проще и лучше алгоритмом Евклида найти НОД?
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 14.10.2009, 09:46   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

2) Я не понял? Упрощения тормозит?
Тут же уже проходили...
http://programmersforum.ru/showthread.php?t=65730
------------------------------------------------------------
И почему она весит полтора метра?оО
TwiX вне форума Ответить с цитированием
Старый 14.10.2009, 09:59   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Цитата:
не пинать...
ну а конструктивное замечание можно?
- вот вы сделали навороченый интерфейс, все красиво спору нет... но вот смотришь, а куда какие числа вводить нужно догадываться или наощупь, хотя-б хинты добавили
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 14.10.2009, 10:04   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Вместо : можно использовать /
А как сделать такой крестик?
TwiX вне форума Ответить с цитированием
Старый 14.10.2009, 11:55   #6
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

2raxp: Да, согласен, исправлю.
2TwiX: Дак это я с вашего алгоритма развил.
2Greblin: А это как? Я думал про такое, но не знал как сделать.
Цитата:
Вместо : можно использовать /
А как сделать такой крестик?
Это буква 'x'
k1r1ch вне форума Ответить с цитированием
Старый 14.10.2009, 12:03   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

Цитата:
А как сделать такой крестик?
там скины.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.10.2009, 15:34   #8
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
там скины.
Т.е. тупо граница формы ставиться в bsNone и рисуется заново? Я то думал это чёт с winApi связано =)
TwiX вне форума Ответить с цитированием
Старый 14.10.2009, 15:49   #9
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Дооооолго решает:
Это считала минуты 3.
Изображения
Тип файла: jpg ZMathPart03.jpg (90.3 Кб, 167 просмотров)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 14.10.2009, 16:05   #10
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
Восклицание

Я про что и говорю! Я там в Помощи написал, что после 10 000 можно уже и отменять, так как вероятность ошибки мала. Но конечно бы хотелось это переделать. Может исходный код выложить, вам так проще будет?

ПыСы: А что, до 20 000 он 3 минуты сокращал У меня чуть больше 10 секунд!

Последний раз редактировалось k1r1ch; 14.10.2009 в 16:08.
k1r1ch вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Протестируйте программы Umen Софт 13 15.12.2010 00:13
протестируйте пож прогу NSvirus Паскаль, Turbo Pascal, PascalABC.NET 15 12.05.2009 20:04
Протестируйте программку, пожалуйста Air Софт 7 25.07.2008 15:37
Протестируйте пожалуйста terminadoor Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 24.07.2008 13:56
протестируйте программу Gambler Софт 13 04.02.2007 02:48

Реклама для незарегистрированных, регистрация на форуме