Сравненин |
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 (умещался в регистр), то результат был бы обратный |
Текстовая версия | 8.05.2024 1:57 |