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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2014, 09:48   #1
ksu04061992
Пользователь
 
Регистрация: 29.11.2011
Сообщений: 23
Радость Найти сумму всех элементов

Здравствуйте,помогите разобраться, пожалуйста. Дана задача: с помощью ассемблерных вставок найти сумму всех элементов массива, не превышающих заданного числа.
Вот код программы:

Код:
uses crt;
var i,n,sum, elem,c:integer;
var a: array[1..100] of word;
 
begin
write('Vvedite kolichestvo elementov mas.: ');
readln(n);
sum:=0;
i:=1;
while i <= n do begin
   write('a[',i,'] = ');
   readln(a[i]);
   i:=i+1;
   end;
 
write('Vvedite chislo: ');
readln(c);
 
 
i:=0;
while i<=n do begin
i:=i+1;
elem:=a[i];
  asm
  mov dx,c
  mov ax,elem
  cmp dx,ax
  jc @cont1
 
 @cont1:
  add sum,ax
  end;
  end;
write('Summa =  ', sum);
readln
end.

Данная программа в результате выводит всю сумму элементов, а не сумму меньшую заданному числу. В чем ошибка?




___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 09.12.2014 в 12:56.
ksu04061992 вне форума Ответить с цитированием
Старый 09.12.2014, 10:15   #2
Thread
 
Аватар для Thread
 
Регистрация: 08.06.2011
Сообщений: 4
По умолчанию

попробуй так

Код:
uses crt;
 var i,n,sum, elem,c:integer;
 var a: array[1..100] of word;

 begin
 write('Vvedite kolichestvo elementov mas.: ');
 readln(n);
 sum:=0;
 i:=1;
 while i <= n do begin
 write('a[',i,'] = ');
 readln(a[i]);
 i:=i+1;
 end;

 write('Vvedite chislo: ');
 readln(c);


 i:=0;
 while i<=n do begin
 i:=i+1;
 elem:=a[i];
 asm
 mov dx,c
 mov ax,elem
 cmp dx,ax
 ja @cont1 ;перейти если с > elem
 add sum,ax ;иначе добавить к сумме
@cont1:
 end;
 end;
 write('Summa = ', sum);
 readln
 end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 09.12.2014 в 12:56.
Thread вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Используя классы, найти сумму всех элементов массива Катерины Помощь студентам 3 28.09.2014 20:35
Матрица а(4,4) В строке с отрицательным элементом на главной диагонали найти сумму всех элементов Андрей23 Помощь студентам 7 20.11.2013 11:32
Дана матрица С в строках с положительным элементом на побочной диагонали найти сумму всех элементов. greml Паскаль, Turbo Pascal, PascalABC.NET 0 02.12.2012 18:55
двухмерные массивы - найти сумму всех элементов главной диагонали ( в с# ) Корнелия Помощь студентам 1 01.12.2011 20:49
Pascal - Найти сумму всех ее отрицательных элементов и заменить ею все диагональные элементы этой матрицы NewBi Паскаль, Turbo Pascal, PascalABC.NET 2 24.04.2010 09:15