М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
lisa301
lisa301
29.03.2022 11:18 •  Информатика

ТОЛЬКО ГЕНИЙ МОЖЕТ РЕШИТЬ ЭТУ ЗАДАЧУ. Простая, но интересная задача по Ассемблеру: С Debug написать код, выполняющий вывод на экран текстового сообщения и последующее вычисление выражения:

Y=[(Х1+Х2)ХЗ–Х4]/Х5,

где X1 = 521, X2 = 263, X3 = 12, X4 = 2544, X5 = 21.

Результат вычисления выражения программа помещает инструкций MOV в регистры AX и DX. Нужно вывести эти результаты в двоичной системе счисления.

Структура выходного сообщения программы:

“Программа вычисления выражения Y=[(Х1+Х2)ХЗ–Х4]/Х5,
где X1=..., X2=..., X3=..., X4=..., X5=...”

AX=0011110111000101 DX=0000000000010101

Вместо точек должны выводиться заданные числа (в шестнадцатеричной системе).

, приложите исполнимый файл программы с расширением .com и для понимания, при возможности, схематичную блок схему действий кода к ответу !

*Assemler NASM для intel x86

👇
Открыть все ответы
Ответ:
bar569
bar569
29.03.2022
Как-то так
#include <iostream>
using namespace std;
int main(){    cout << "Vvedute kol-vo ocenok" << endl;
    int n,i,a,Four,Five;    n = i = a = Four = Five = 0;
    cin >> n;
    for (i = 1; i <= n; i++)    {        cin >> a;        if (a == 4){         Four++;}  else if (a == 5)      {         Five++;      }    }    if (Four > Five){   cout << "Four" << endl;} else if (Five > Four)      {   cout << "Five" << endl;      }      else      {         cout << "Equal"<< endl;      }      cout << "Kol-vo 4: " << Four << " Kol-vo 5: " << Five << endl;    return 0;}
4,5(78 оценок)
Ответ:
Yanawer
Yanawer
29.03.2022
В начале мы создаем массив случайных элем.
Потом работаем с ним.
Нам нужны 2 переменные:
1 - переменная, для сохранения результата (номера).
2 - переменная флажок.
Мы обходим весь массив ПО СТОЛБЦАМ.
В начале обхода конкретного столбца переменной флажка присвоим 1.
Сравниваем текущий элемент столбца с последующим,
если они не равны то ставим флажок 0

Код:
//Размерность массива
const n = 3;
//Сам массив
var 
ar : array[1..n,1..n] of integer;
//Переменные для работы с массивом
var 
i,j : integer; 
//Переменные для поиска столбца
//f - переменная флажок, которая по окончанию обхода столбца будет
//показывать одинаковы ли элементы в нем
//numb - переменная, в которой сохраним номер столбца с
//одинаковыми значениями элементов.
var 
f,numb : integer;
begin
//Создание и вывод на экран массива
//Элементы генерируются случайным образом
//  
for i:=1 to n do 
begin   
for j:=1 to n do   
begin     
ar[i,j] := random(2);     
write(ar[i,j]:3);   
end;   
writeln;   
end;  
// 

//Вот сам алгоритм поиска
//
//Записываем в numb значение -1
//Если в процессе работы значение не изменится (-1)
//То означает, что в массиве нет одинаковых столбцов
  numb := -1; 

//Идем по массиву
//
for j:=1 to n do
//Момент начала конкретного j столбца  
  begin    
//записываем в f значение 1
  //Предполагаем, что столбец одинаков
  //Если в конце обхода конкретного столбца значение f=1
  //Значит, что данный столбец одинаков
  f := 1;    
 
//Идем по столбцу
// n-1
//(т.к сравниваем текущий со следующим)
for i:=1 to n-1 do   
begin  
//Сравниваем текущий элемент столбца, со следующим     
if (ar[i,j] <> ar[i+1,j]) then
    //Если они не равны, то изменяем значение флажка f на 0       
    f := 0;   
end; 
//Конец обхода конкретного столбца  
 
//Если столбец одинаков   
if (f = 1) then
    //то записываем его номер в numb     
    numb := j;  
end;  
//  

//Вывод результата 
if (numb <> -1) then   
writeln('Столбец №: ',numb) 
else   
writeln('Нет ни одного одинакового столбца');    
end.
4,8(86 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ