Сформировать другой массив, в который нечетные элементы из первого массива переписать без изменений - 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.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы