У меня проблемы с выяснением этого задания, которое я имею в HLA.
Напишите программу для создания таблицы номеров, как описано здесь. Эта таблица должна быть построена из единственного целочисленного значения, предоставленного пользователем. Программа отобразит квадрат 5X5 различных чисел. Введенное число должно появиться в виде буквы X по всей таблице, по диагонали по всей таблице. Каждое другое пятно, кроме рисунка X, должно быть заполнено числом. Эти избыточные числа должны начинаться с единицы, превышающей введенный номер, и увеличиваться на единицу для каждого дополнительного используемого избыточного числа.
Например, следующий вывод должен быть получен, когда пользователь вводит начальное значение 15:
Дайте мне начальное значение: 15
15 16 17 18 15
19 15 20 15 21
22 23 15 24 25
26 15 27 15 28
15 29 30 31 15
Например, когда пользователь вводит начальное значение 20, должен быть получен следующий вывод:
Дайте мне начальное значение: 20
20 21 22 23 20
24 20 25 20 26
27 28 20 29 30
31 20 32 20 33
20 34 35 36 20
(Подсказка: пожалуйста, не беспокойтесь о форматировании таблицы, если оно не совсем соответствует моему выше. Цель - попрактиковаться с HLA, а мы действительно не знаем, достаточно, чтобы получить идеальный интервал ...)
У меня есть следующий код, который я пробовал, но не могу понять. Я совершенно новичок в программировании HLA.
program tableX;
#include( "stdlib.hhf" );
// Initiate variable
static
tblX : int32 := 0; // tblX value
// Columns for row 1
column1 : int32 := 0;
// Start the program
begin tableX;
// Ask the user to input a value
stdout.put("Gimme a starting value: ");
// Get the user's inputted value
stdin.get(tblX);
// Get the value into the register EAX
mov(tblX, EAX);
mov(0, EBX);
mov(column1, EAX);
mov(1, EBX);
// Add the values
add(EAX, EBX);
add(1, tblX);
add(EAX, EBX);
add(1, column1);
// Put the value back into the tblX variable
mov(EBX, tblX);
// 1st row
stdout.put(tblX);
stdout.put(column1);
// End the program
end tableX;
У меня буквально возникают проблемы с выяснением, как отображать его в 5x5. Нужно ли добавлять больше переменных для столбцов для каждой строки. Я только добавил один столбец для целей тестирования. Если вы можете помочь с этим, я буду очень признателен. Спасибо!