IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

 
 Ответить  Открыть новую тему 
> Массивы..., Найти и вывести индекс первого четного элемента массива, кратный числ
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


Найти и вывести индекс первого четного элемента массива, кратный числу 6.
Зарание спасибо..

Добавлено через 2 мин.
Компилятор masm32 и сам массив:
Прикрепленный файл  array_20.rar ( 16.41 килобайт ) Кол-во скачиваний: 667
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






А если индекс первого четного не будет кратным числу 6, его не надо выводить? Задание корректно сформулируй, а то второй раз одно и то же: Найти и вывести максимальный из четных элементов массива, удовлетворяющих условию (28 < i < 232) - то же самое было, какая-то двусмысленность в задании...

Тебе надо найти первый индекс четного элемента, кратный 6-ти? Или индекс первого четного, кратного 6-ти? Что именно? Уточняй...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


индекс первого четного, кратного 6-ти
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Тут не сложно ведь, идешь по массиву, делишь на 6 и сравниваешь остаток с нулем.. Как только получишь равенство, вычисляешь индекс исходя из смещения..
Но это если я все правильно поняла, потому что "четный кратный 6" немного смущает.. разве может быть еще и "нечетный кратный шести" ?

Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


Цитата(Айра @ 5.05.2009 17:54) *

Тут не сложно ведь, идешь по массиву, делишь на 6 и сравниваешь остаток с нулем.. Как только получишь равенство, вычисляешь индекс исходя из смещения..
Но это если я все правильно поняла, потому что "четный кратный 6" немного смущает.. разве может быть еще и "нечетный кратный шести" ?

По логике я понимаю как это сделать, а вот как это написать в коде, я не знаю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Ну я ж тебе дал ссылку на очень похожее задание, чуть-чуть подправь его и получи то, что тебе надо:
.486
.model flat, stdcall
option casemap :none

include D:\masm32\include\windows.inc
include D:\masm32\macros\macros.asm

include D:\masm32\include\masm32.inc
include D:\masm32\include\kernel32.inc

includelib D:\masm32\lib\masm32.lib
includelib D:\masm32\lib\kernel32.lib

; Подключаем твой файл данных
include array_20.dat

DIVISOR db 6

.code

start:
call main
exit

main proc
mov esi, offset file1
mov edi, esi

mov ecx, fsize1
.while ecx > 0
xor ax, ax
mov al, [esi]

div DIVISOR ; делим на 6
test ah, 0fh ; проверяем остаток на 0
jz found ; ноль? Значит, нашли то, что надо

inc esi
dec ecx
.endw

; а вот если мы здесь, значит, нет такого элемента,
; который делится на 6 нацело. Выведи соотв. сообщение
; самостоятельно, и выходи из процедуры

found:
print chr$('first index = ')
xor eax, eax ; вычисляем индекс, для чего от текущего
mov eax, esi ; значения esi отнимаем смещение начала массива
sub eax, edi
print str$ (eax)
ret
main EndP
end start
Говорю сразу: программа проверена, отработала, никаких ошибок или предупреждений не выдает, выводит правильный ответ. Это на случай, если тебе тоже захочется что-нибудь поменять, а потом заявить, что не сработало...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


Огромное спасибо good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 20:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name