![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
savedata |
![]()
Сообщение
#1
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 64 Регистрация: 8.1.2011 Из: Красноярск Город: Krasnoyarsk Учебное заведение: СибГТУ Вы: студент ![]() |
почему паскаль выдает мне непонятные значения, если в теле одновременно присутствуют вычисления сумм, типа вот этого
o:=0; s:=0; gettime(h1,m1,s1,hund1); while s<100 begin inc(s); inc(o); end; gettime(h2,m2,s2,hund2); writeln('время: ',h2-h1,':',m2-m1,':',s2-s1,':'hund2-hund1); writein('s=',s,'o=',o); он то время выдает вот такое: 0:0:65133:7 или 0:0:0:63488 то s=-23549 то o=-12044 это не только на моем компе, и в универе...кстати такую же фигню часто выдает при заполнении массива random типа как значения от -100 до 100: A[i]:=random(200)-100; выдает невероятные цифры |
![]() ![]() |
Vahappaday |
![]()
Сообщение
#2
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
О невероятных значениях времени...
У вас как объявлены h1,h2,m1,m2..... и иже с ними? Видимо, эти цифры соответствуют небольшим отрицательным значениям. А тип, в который Вы их пишете - беззнаковый. Почему отрицательные? Потому что, например, 7h 23m 2s 11ms - 7h 23m 1s 23ms у Вас при поразрядном вычитании будет равно 0h 0m 1s -12ms. Вычитать надо с "переносом разрядов". Либо искать какую-то специальную ф-ю паскаля - я с паскалем знаком слабовато. Во FreePascal тип integer при выводе через writeln вполне корректно отображает отрицательные числа. Загадку с отрицательными s, o не разгадал - давайте точный код, тогда можно будет смотреть. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 29.5.2025, 20:07 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru