Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.99/135: Рейтинг темы: голосов - 135, средняя оценка - 4.99
0 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 31

Определение членов а(к) последовательности являющихся нечетными числами

13.04.2013, 15:56. Показов 25471. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Задание следующее: Ввести натуральное число n и последовательность натуральных чисел а(1),..,а(n). Определить количество членов а(к) последовательности являющихся нечетными числами.
Данная тема уже существует на форуме(тут), но ее автор так и не решил свою проблему. Теперь и я столкнулся с данной задачей. Подскажите выход из положения.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.04.2013, 15:56
Ответы с готовыми решениями:

Определить количество членов a(k) последовательности, являющихся нечетными числами
Ввести натуральное число n и последовательность натуральных чисел a(1),...,a(n). Определить количество членов a(k) последовательности ...

Определить количество членов последовательности, являющихся нечетными числами
Даны натуральные числа n, a1,….. an. Определить количество членов последовательности, являющихся нечетными числами, а также вывести их в...

Определить и вывести количество членов последовательности: являющихся удвоенными нечетными числами
Даны n натуральных чисел a1,a2,...,an . Определить и вывести количество членов последовательности:являющихся удвоенными нечетными числами;...

13
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
13.04.2013, 18:54
алгоритм: вводите число; в сх заносите введенное число и делаете цикл loop, в котором вводите числа и проверяете их на четность. ну и увеличиваете счетчик.
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
13.04.2013, 19:14
Посмотрел на решение от JokerCut... OMG
Всё же влобовую, 40 строк против 190.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
.586
    .model flat, stdcall    
    option casemap :none
    include \masm32\include\windows.inc
    include \masm32\include\masm32.inc
    include \masm32\include\msvcrt.inc
    include \masm32\macros\macros.asm
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\msvcrt.lib
.data
entr    db  'Enter array size:',0
tptd    db  '%d',0
enum    db  'Enter A[%d]:',0
res db  'Odd elements : %d',0
cnt dd  0
.data?
_len    dd  ?
buf dd  ?
.code    
start:  
        invoke  crt_printf, ADDR entr
    invoke  crt_scanf, ADDR tptd, ADDR _len
    mov edi, eax
    mov ecx, [_len]
    mov ebx, 1
@@: push    ecx
    push    ebx
        invoke  crt_printf, ADDR enum, ebx
    invoke  crt_scanf, ADDR tptd, ADDR buf
    pop ebx
    pop ecx
    inc ebx
    mov eax, [buf]
    bt  eax,0
    adc [cnt],0
    loop    @B
gtfo:
        invoke  crt_printf, ADDR res, [cnt]
    invoke  crt_exit, 0
    end start
0
13.04.2013, 20:11

Не по теме:

Цитата Сообщение от Charles Kludge Посмотреть сообщение
190.
ужс...

0
0 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 31
13.04.2013, 20:18  [ТС]
Благодарю за ответ. Можно вопрос: проверяю в ollydbg-ере и никак не пойму когда программа просит ввести размер массива и число?
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
13.04.2013, 20:21
стр 21,22 и 28,29
0
0 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 31
13.04.2013, 20:33  [ТС]
Можете объяснить как мы работаем со стеком: вот в строке 26 что означают две собаки перед пушами? И, если можно, можете написать параметры комманды invoke?
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
13.04.2013, 20:44
Цитата Сообщение от riko Посмотреть сообщение
что означают две собаки перед пушами?
Совсем локальная метка, к ней мы возвращаемся по loop в стр.36.
Цитата Сообщение от riko Посмотреть сообщение
параметры комманды invoke?
invoke - макрос, чтобы писать вызов ф-ции в одну строку, как в ЯВУ. Параметры зависят от ф-ции, которую вызываем - отбрасываете от имени ф-ции crt_ , а остально гуглите, например scanf MSDN.
0
0 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 31
13.04.2013, 21:17  [ТС]
ну я догадываюсь, что scanf это связано с вводом, а printf с выводом. Эти же комманды в сишке есть, я просто не нашел сразу параметры самого invoke

Добавлено через 20 минут
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
;Объявляем переменные---------------
.data
entr    db  'Enter array size:',0
tptd    db  '%d',0
enum    db  'Enter A[%d]:',0
res db  'Odd elements : %d',0
cnt dd  0
.data?
_len    dd  ?
buf dd  ?
;---------------------------------------------------
.code    
start:  
    invoke  crt_printf, ADDR entr           ;Вывод на экран надписи 'Enter array size:'
    invoke  crt_scanf, ADDR tptd, ADDR _len 
;Ввод десятичного значения, которое устанавливаем переменной tptd, и последний параметр – 
;куда идет запись (_len)
    mov edi, eax
    mov ecx, [_len]
    mov ebx, 1
@@: push    ecx     ;заносим  первім в стек знач регистра ecx 
    push    ebx     ;заносим  вторым в стек знач регистра ebx
        invoke  crt_printf, ADDR enum, ebx              ;Вывод на экран надписи db  'Enter A[%d]:'
    invoke  crt_scanf, ADDR tptd, ADDR buf  
;Ввод десятичн. знач (нашего натурального числа n) и заносим его знач в переменную buf
    pop ebx          ;вывод из стека ebx
    pop ecx          ; вывод из стека ecx (т.е. в стеке, если правильно поянл, мы работали с этими 
                               ;2-мя регистрами только зачем?)
    inc ebx
    mov eax, [buf]
    bt  eax,0   ;можно комментарий 
    adc [cnt],0 ; по этим двум командам?
    loop    @B  ; в цикле проходим «шаблон», который был выделен @@: 
gtfo:       ;что это?
        invoke  crt_printf, ADDR res, [cnt] ;вывод переменной res, но где мы ее использовали?
    invoke  crt_exit, 0 ;выход из …?
    end start
Добавлено через 3 минуты
смотрел, смотрел... и не нашел где мы проверяем наше условие, т.е. где мы находим нечетные элементы последовательности, а потом выводим их количество...
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
13.04.2013, 21:53
Цитата Сообщение от riko Посмотреть сообщение
Assembler
1
2
3
pop ebx ;вывод из стека ebx
 pop ecx ; вывод из стека ecx (т.е. в стеке, если правильно поянл, мы работали с этими 
 ;2-мя регистрами только зачем?)
ecx и ebx - счётчики, только ecx уменьшается, а ebx увеличивается для правильного вывода на экран номера элемента массива: A[1], A[2]...
Ф-ции выни имеют привычку гадить в регистры, поэтому их приходится сохранять.
Цитата Сообщение от riko Посмотреть сообщение
Assembler
1
2
bt eax,0 ;можно комментарий 
 adc [cnt],0 ; по этим двум командам?
bt eax,0 - здесь проверяем введённое число на чётность(бит 0), и если оно нечётное, то флаг переноса CY=1, если чётное, то флаг переноса CY=0
adc [cnt],0 - а теперь флаг переноса(0 или 1) прибавляем к счётчику нечётных чисел.
gtfo: ;что это? - забыл убрать, не нужно.
invoke crt_printf, ADDR res, [cnt] ;вывод переменной res, но где мы ее использовали? - вывод счётчика cnt по шаблону res.
0
0 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 31
13.04.2013, 22:06  [ТС]
Ок, благодарю за ответы. Последний вопрос: когда мы запускаем программу построчно в дебагере, каким образом мы вводим входные значения?
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
13.04.2013, 22:13
поставить точку останова сразу после вызова
Assembler
1
    invoke  crt_scanf, ADDR tptd, ADDR buf
0
0 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 31
13.04.2013, 23:04  [ТС]
Эм, пункт такой нашел... (breakpoint), а дальше? И еще, попутно: мы запускаем на постоянное выполнение (Run) или же пошагово?
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
15.04.2013, 12:38
Русская справка по отладчику OllyDbg
OllyDbg 1.10 Rus скачать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.04.2013, 12:38
Помогаю со студенческими работами здесь

Определить количество членов последовательности, являющихся нечётными числами, кратных 3 и некратных 5
Список задач 1. Даны натуральные числа n, A1, ..., An. Определить количество членов Ak последовательности A1, ..., An: а) являющихся...

Определить количество членов последовательности, имеющих четные порядковые номера и являющихся нечетными числами
Даны натуральные числа n, A 1, A2 , ..., An . Определить количество членов Ak последовательности A1 , ..., An :имеющих четные ...

Найти количество членов последовательности, имеющих чётные порядковые номера и являющихся нечётными числами
Даны натуральные числа n, a1,..., an. Определить количество членов ak последовательности a1,..., an: имеющих чётные порядковые номера и...

Определить количество членов ak последовательность a1,...,an: являющихся нечетными числами
Дано натуральное числа n,a1,...,an.Определить количество членов ak последовательность a1,...,an: являющихся нечетными числами; turbo pascal

Определить количество членов массива, являющихся нечетными числами
Даны натуральные числа n, a 1...an. Определить количество членов ak последовательности a1,...,an являющихся нечетными числами/


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru