1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| }0pa |
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 75 Пол: Мужской Репутация: 0 |
Кто-нибудь может програмно показать отличия между inc(n) и n:=n+1 для целого n. Плз помогите!
-------------------- Ну, а почему бы в свободное время не позаниматься программированием?
|
![]() ![]() |
| }0pa |
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 75 Пол: Мужской Репутация: 0 |
Вот сделал:
Код uses crt; const n = 25000; var tm, tm1: longint; i,j,k: longint; begin clrscr; writeln('n = ', n, ' * ', n); {----- inc(k); -----} tm1:= MemL[$0040:$006c]; for i := 1 to n do for j := 1 to n do begin inc(k); end; tm:= MemL[$0040:$006c]; tm:=tm-tm1; writeln('#1: ',tm); {----- k:=k+1 -----} tm1:= MemL[$0040:$006c]; for i := 1 to n do for j := 1 to n do begin k:=k+1 end; tm:= MemL[$0040:$006c]; tm:=tm-tm1; writeln('#2: ',tm); readkey end. Результаты теста: Код n=25000*25000 #1:179 #2 133 n=15000*15000 #1:126 #2 96 Но хотелось бы знать, что значут эти рез-ты? Неужели k:=k+1 быстрее? Что определяют эти массивы? Почему они именно так записаны? Код tm1:= MemL[$0040:$006c]; ..................................... tm:= MemL[$0040:$006c]; ЗЫ:Уж извините за такое кол-во вопросов. Все-таки хочется узнать! Сообщение отредактировано: }0pa - -------------------- Ну, а почему бы в свободное время не позаниматься программированием?
|
| Malice |
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
У тебя k - longint, поэтому inc выглядит так:
add w,[k],1 k:=k+1 так: mov ax,[k] Видимо второй вариант лучше распаралеливается.. Если бы тип был byte, word, integer (умещался в регистр), то результат был бы обратный |
}0pa Сравненин 3.12.2006 5:39
klem4 Что значит программно показать отличие ? Эти опера… 3.12.2006 13:56
Malice Если делаешь n=n+1 то используется сложение через … 3.12.2006 14:11
volvo :no1: Для 16-битных компиляторов (проверялось на … 3.12.2006 14:39
}0pa А с помощью Таймера по=моему можно проверить...? Д… 3.12.2006 23:21
volvo Так как показано здесь:
Улучшение кода
(просто по… 3.12.2006 23:38
}0pa Ну, уж очень хочется узнать :give_rose: :give_ros… 4.12.2006 17:59
}0pa 1.Malice, я просто с трудом понимаю, что значит тв… 5.12.2006 3:39
Malice
1.Malice, я просто с трудом понимаю, что значит т… 5.12.2006 13:32
hiv Это все относится к вопросу чистоты эксперимента … 5.12.2006 15:48
volvo :yes2: Как я и написал выше - 32 битные компилятор… 5.12.2006 16:05
NTL Тогда,пожалуйста,объясните рез-ат моего тестера, к… 11.12.2006 22:40
Malice Потому что у тебя m - longint, читай внимательнее,… 11.12.2006 23:55![]() ![]() |
|
Текстовая версия | 8.11.2025 1:07 |