Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/22: Рейтинг темы: голосов - 22, средняя оценка - 4.59
3 / 1 / 0
Регистрация: 23.09.2011
Сообщений: 66
1

Одномерный массив через цикл

27.01.2012, 16:41. Показов 4148. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, помогите решить:
Определить сумму нечетных чисел и количество отрицательных чисел в массиве, в последовательности из n-чисел.
Решить через цикл.

Тест: 1 -4 -5 7 8
сумма нечетных: 3
Кол-во отрицательных: 2
Желательно с пояснениями.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2012, 16:41
Ответы с готовыми решениями:

Одномерный массив(ЦИКЛ-ПОКА или ЦИКЛ-ДО)
Несколько школьников выстроились в шеренгу. Для каждого школьника известен день его рождения....

Одномерный массив +цикл for
Данна задача В массиве Urogai(20) хранится урожайность (в центнерах с гектара) пщеницы в колхозе...

Одномерный массив (ЦИКЛ-ДЛЯ)
Известны итоги забега спортсменов на 100 метров. Требуется: определить спортсмена, показавшего...

Цикл для вывода min чисел в одномерный массив
Цикл для вывода min чисел в одномерный массив

2
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
27.01.2012, 21:31 2
Объявляем массив
Assembler
1
2
mas db 1,-4,-5,7,8 
len=$-mas
Количество отрицательных элементов
Assembler
1
2
3
4
5
6
7
mov si,offset mas ;si - указатель на массив
mov cx,len        ;cx - длина массива
xor dx,dx         ;dx - количество отрицательных элементов, обнуляем этот регистр
@@:lodsb          ;загружаем байт из [ds:si] в al и увеличиваем si
   add al,al      ;помещаем старший бит из al в cf
   adc dx,0       ;прибавляем cf к dx
loop @b
сумма нечётных
Assembler
1
2
3
4
5
6
7
8
9
10
mov si,offset mas   ;si - указатель на массив
mov cx,len          ;cx - длина массива
xor dx,dx           ;dx - сумма нечётных элементов
@@:lodsb            ;загружаем байт из [ds:si] в al и увеличиваем si
   ror al,1         ;помещаем младший бит al на место старшего
   sar al,7         ;копируем старший бит al во все биты al
   and al,[ds:si-1]
   cbw              ;расширяем al в ax         
   add dx,ax       
loop @b
Добавлено через 9 минут
Если не понятно - этот код
Assembler
1
2
3
4
ror al,1         ;помещаем младший бит al на место старшего
sar al,7         ;копируем старший бит al во все биты al
and al,[ds:si-1]
cbw              ;расширяем al в ax
работает так
Pascal
1
2
3
4
if al mod 2=0 then
  ax:=0
else
  ax:=byte[ds:si-1];
1
3 / 1 / 0
Регистрация: 23.09.2011
Сообщений: 66
27.01.2012, 22:01  [ТС] 3
Спасибо!)
0
27.01.2012, 22:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2012, 22:01
Помогаю со студенческими работами здесь

Создать массив указателей на одномерный массив и через указатели присвоить массиву значения
Не могу понять как работают указатели. Объявляю массив, делаю на него указатель. Циклом с...

через одномерный массив
решить через одномерный массив. Дана последовательность из n действительных чисел.Найти номер...

Одномерный массив через функцию
Помоготи пожалуйста. Очень надо. Я полный профан. А эта задача очень важна. Написать через функцию....

Матрица через одномерный массив
Нужна ваша помощь в программировании, есть задача: заполнить матрицу случ. числами и отсортировать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru