Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2011, 18:23   #1
Leshiy1
Форумчанин
 
Аватар для Leshiy1
 
Регистрация: 24.09.2009
Сообщений: 104
По умолчанию Maximum_T

Здравствуйте всем.
Нужно найти максимальный элемент массива. Если в массиве элементы все положительные считает правильно. А если отрицательные то находит из отрицательных только наибольший. А надо чтобы в массиве были и положительные и отрицательные числа и находил наибольший положительный

Код:
Program Massiv;
 Uses Crt;
 const n=10;
 var a:array[1..n] of integer;
     max,i:integer;
 begin
   clrscr; randomize;
   for i:=1 to n do
   begin
     a[i]:=random(10)-5; textcolor(12);
     write(a[i]:3);
   end;
 asm
 lea si,a
 mov cx,n
 mov dx,[si]
 xor bx,bx
 @1: lodsw
    cmp ax,dx
 jb @2
    mov dx,ax
    mov bx,si
 @2: loop @1
     mov max,dx
     xor ax,ax
     mov cx,ax
 end; writeln;
 write(' ',max);
 Readkey;
 End.
А задача такая: В одномерном массиве найти максимальный элемент и заменить все отрицательные числа массива на этот элемент

Спасайте завтра экзамен
Leshiy1 вне форума Ответить с цитированием
Старый 11.01.2011, 19:28   #2
Leshiy1
Форумчанин
 
Аватар для Leshiy1
 
Регистрация: 24.09.2009
Сообщений: 104
По умолчанию

Код:
 Program Massiv;
 Uses Crt;
 const n=10;
 var a:array[1..n] of integer;
     max,i:integer;
 begin
   clrscr; randomize;
   for i:=1 to n do
   begin
     a[i]:=random(10)-5; textcolor(12);
     write(a[i]:3);
   end;
 asm
 lea bx,a
 mov ax,[bx]{v ax zagruzhaem znachenie 1 peremennoy}
 mov cx,n {vsego elementov v massive}
 @1: cmp ax,[bx] {sravnivaem ax s tekushim elementom}
     jge @2{perehodim esli bolshe ili ravno}
     mov ax,[bx]
 @2: add bx,2{prodvigaem vpered}
     loop @1
     mov max,ax
 end; writeln; writeln;
 write(' Maximum=',max);
 Readkey;
 End.
Leshiy1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц