Сформировать другой массив, в который нечетные элементы из первого массива переписать без изменений - Turbo Pascal
Формулировка задачи:
Уже всю голову пробил, в чем ошибка? По сути программа должна выводить 2 массива - начальный и переработанный. на деле выходит, что получаю что-то в роде
37117 2 0 0
Вот само задание. Ниже мой вариант кода Дан массив байтов. Сформировать другой массив, в который нечетные элементы из первого массива переписать без изменений, а к четным прибавить 1.Решение задачи: «Сформировать другой массив, в который нечетные элементы из первого массива переписать без изменений»
textual
Листинг программы
var a, b: array [1..6] of Word; i: Integer; begin Randomize; for i:=1 to 6 do begin a[i]:=10+Random(90); Write(' ',a[i]); end; WriteLn; asm mov ax,ds mov es,ax lea si,a lea di,b cld mov cx,6 @1: lodsw or ax,1 stosw loop @1 end; for i:=1 to 6 do Write(' ',b[i]); WriteLn; end.
Объяснение кода листинга программы
В данном коде формируется массив a
, содержащий шесть элементов типа Word
. Затем происходит генерация случайных чисел от 10 до 90 для каждого элемента массива a
. Следующий блок кода выводит на экран пробел и каждый элемент массива a
.
Далее идет блок ассемблерного кода, который копирует содержимое массива a
в массив b
. Используется цикл loop @1
, который выполняется шесть раз, каждый раз сдвигая указатель si
на один элемент вперед и проверяя, не равен ли текущий элемент нулю. Если текущий элемент не равен нулю, то он копируется в соответствующий элемент массива b
.
В конце кода выводится на экран пробел и каждый элемент массива b
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д