Консультация № 144477
20.09.2008, 15:54
0.00 руб.
0 2 1
Уважаемые эксперты!
Помогите выполнить следующую задачу:
Дано целое число N и набор из N вещественных чисел. Проверить, образует ли данный набор убывающую последовательность. Если образует, то вывести True, если нет - вывести False.

Благодарю за помощь!

Обсуждение

Неизвестный
20.09.2008, 16:40
общий
это ответ
Здравствуйте, Минин Руслан Васильевич!

В приложении реализация задачи на компиляторе fasm для ОС Windows.
Элементы последовательности заданы статически в коде программы.

Приложение:
format PE GUI 4.0
entry start

include '%fasminc%\win32wx.inc'
include '%fasminc%\encoding\win1251.inc'

section '.data' data readable writeable
szTitle TCHAR 'Result',0
szTrue TCHAR 'True',0
szFalse TCHAR 'False',0
align 16
array dq 15.8f, 13.2f, 5.65f, 0.55f,10.0f
count = ($-array)/8

section '.text' code readable executable

start:
mov ecx, count-1 ; Количество операций сравнения
lea esi, [array] ; Указатель на элемент массива
finit ; Подготовка FPU

start_loop:
fld qword [esi] ; Загрузка числа в st0 FPU
add esi, 8 ; Перемещение указателя
fcomp qword [esi] ; Сравнения st0 и числа на которое указывает esi
fstsw ax ; Слово состояния FPU помещяеться в регистр ax
sahf ; Регистр ax копируеться в регистр флагов CPU
jna false ; Выход из цикла если текущее число больше предидущего
dec ecx ; Декримент счётчика
jnz start_loop ; Переход на начало цикла, если ecx не равен нулю

invoke MessageBox, 0, szTrue, szTitle, MB_OK ; Вывод True
jmp exit ; Переход на выход
false:
invoke MessageBox, 0, szFalse, szTitle, MB_OK ; Вывод False
exit:
invoke ExitProcess, 0 ; Завершение программы



section '.idata' import data readable writeable

library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL'

include '%fasminc%\api\kernel32.inc'
include '%fasminc%\api\user32.inc'
Неизвестный
23.09.2008, 21:42
общий
А что именно Вам в этом ответе не понравилось? Что значит
такой способ менее знаком
? Это плохо или хорошо?
Форма ответа