![]() |
pascal : Числа подсчитываются неверно ?
Это сортировка Методом Хоара :
На входе : a: массив чисел - integer; l,r - границы сортируемой части массива (l=1;r=n); c,m - количество сравнений, пересылок элементов. Цитата:
Вопрос : почему если n (кол-во элементов массива) < 200 то результат c нормально отображается. > 200 (300 и более, то при подсчете числа c результат уходит в -, т.е, например, -5123 ? Как исправить это ? Необходимо, чтобы считалось c правильно при 400 и более. p.s: аналогичное происходит с возведение x в степень 2 : если написать x*xто если пишем больше 100 считает в минус. если же написать так x=exp(2*ln(x)), то считает, практически любые числа правильно. |
переполнение. смени тип:поставь extended или longint вместо integer. или реализуй собственное прибавление единицы типа длинной арифметики или просто двух longint'ов
|
to desTiny :
применял longint, при n>200 c считало неверно. применил extended работает, при n=400 и более :-) пасиб :-) |
| Время: 09:42 |