Вывести таблицы сложения и умножения в заданной системе счисления - Pascal
Формулировка задачи:
Помогите, пожалуйста, Составить программу, которая печатает на экране таблицы сложения и умножения в системе счисления, основание которой (от 2 до 9) вводится с клавиатуры.
Решение задачи: «Вывести таблицы сложения и умножения в заданной системе счисления»
textual
Листинг программы
type operate = (add, mul);
const s: array[operate] of string[9] = ('сложения', 'умножения');
var a, b, t, p: byte;
op: operate;
begin
repeat
write('Система счисления (0..9)? ');
readln(p)
until p in [2..9];
for op := add to mul do
begin
writeln;
writeln('Таблица ', s[op]);
write(' |');
for a := 0 to p - 1 do write(a:3);
writeln;
write('--+');
for a := 1 to p do write('---');
writeln;
for b := 0 to p - 1 do
begin
write(b, ' |');
for a := 0 to p - 1 do
begin
case op of
add: t := a + b;
mul: t := a * b
end;
if t < p
then write(' ')
else write(t div p:2);
write(t mod p)
end;
writeln
end
end;
readln
end.
Объяснение кода листинга программы
- Объявление перечисления
operateс возможными значениямиaddиmul. - Объявление константы
s- массив строк, содержащего словасложенияиумножения. - Объявление переменных
a, b, t, pкак байт. - Объявление переменной
opтипаoperate. - Начало главной части программы.
- Ввод значения переменной
p(система счисления) с запросом ввода до тех пор, пока значение не будет в диапазоне от 2 до 9. - Начало цикла
forотaddдоmul. - Вывод текста
Таблица сложенияилиТаблица умножения. - Вывод шапки таблицы с нумерацией для столбцов от 0 до
p-1. - Вывод разделителя для таблицы.
- Вывод тела таблицы, перебирая значения от 0 до
p-1для строки и столбца. - В зависимости от типа операции (
addилиmul) происходит выполнение соответствующего действия и вывод результата в ячейку таблицы. - Проверка результата: если
tменьше чемp, то выводится пробельный символ, иначе выводитсяt div pи остаток от деленияt mod p. - Конец цикла.
- Конец программы. Ожидание ввода пользователя.