Печать таблицы умножения числа в разных языках программирования

О чём эта статья
Краткое руководство по печати таблицы умножения числа с примерами на четырёх языках. Подойдёт начинающим и тем, кто хочет быстро вспомнить синтаксис. Показываем: реализацию до 10, реализацию до заданного диапазона, тест-кейсы, варианты для интерактивного ввода и альтернативы (рекурсия, списковые выражения, векторизация).
Важно: все примеры используют целые числа, если вам нужны числа с плавающей точкой — см. раздел с крайними случаями.
Содержание
- Печать таблицы до 10
- Печать таблицы до заданного диапазона
- Реализации: C++, Python, JavaScript, C
- Альтернативные подходы и когда они уместны
- Тест-кейсы и критерии приёмки
- Краткий глоссарий и чек-листы для разных ролей
Печать таблицы умножения числа до 10
Задача
Дано число num. Нужно вывести таблицу умножения этого числа от 1 до 10. Пример: num = 5.
Ожидаемый вывод:
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50Подход
- Запустить цикл от 1 до 10.
- На каждой итерации умножать num на текущее значение итерации и выводить результат.
C++
// C++ программа: вывести таблицу умножения числа до 10
#include
using namespace std;
// Функция печати таблицы умножения до 10
void printTable(int num) {
for (int i = 1; i <= 10; ++i) {
cout << num << " * " << i << " = " << num * i << endl;
}
}
int main() {
int num = 5;
cout << "Число: " << num << endl;
cout << "Таблица умножения для " << num << endl;
printTable(num);
return 0;
} Вывод (пример):
Число: 5
Таблица умножения для 5
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50Python
# Python: вывести таблицу умножения числа до 10
# Функция печати таблицы умножения до 10
def printTable(num):
for i in range(1, 11):
print(f"{num} * {i} = {num * i}")
# Точка входа
if __name__ == "__main__":
num = 5
print("Число:", num)
print("Таблица умножения для", num)
printTable(num)Вывод (пример):
Число: 5
Таблица умножения для 5
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50JavaScript (браузер)
// JavaScript: вывести таблицу умножения числа до 10 в документ
function printTable(num) {
for (let i = 1; i <= 10; ++i) {
document.write(num + " * " + i + " = " + num * i + "
");
}
}
// Пример
var num = 5;
document.write("Число: " + num + "
");
document.write("Таблица умножения для " + num + "
");
printTable(num);Примечание: в Node.js вместо document.write используйте console.log или формируйте строку и отправляйте в поток вывода.
C
/* C программа: вывести таблицу умножения числа до 10 */
#include
/* Функция печати таблицы умножения до 10 */
void printTable(int num) {
for (int i = 1; i <= 10; ++i) {
printf("%d * %d = %d\n", num, i, num * i);
}
}
int main() {
int num = 5;
printf("Число: %d\n", num);
printf("Таблица умножения для %d\n", num);
printTable(num);
return 0;
} Печать таблицы умножения числа до заданного диапазона
Задача
Дано число num и целое положительное range. Нужно вывести таблицу умножения от 1 до range. Пример: num = 5, range = 14.
Ожидаемый вывод (пример): 5 1 = 5 … 5 14 = 70
Подход
- Запустить цикл от 1 до range включительно.
- Печать num * i на каждой итерации.
C++
// C++: таблица умножения до заданного диапазона
#include
using namespace std;
void printTable(int num, int range) {
for (int i = 1; i <= range; ++i) {
cout << num << " * " << i << " = " << num * i << endl;
}
}
int main() {
int num = 5;
int range = 14;
cout << "Число: " << num << endl;
cout << "Диапазон: " << range << endl;
cout << "Таблица умножения для " << num << endl;
printTable(num, range);
return 0;
} Python
# Python: таблица умножения до заданного диапазона
def printTable(num, r):
for i in range(1, r + 1):
print(f"{num} * {i} = {num * i}")
if __name__ == "__main__":
num = 5
r = 14
print("Число:", num)
print("Диапазон:", r)
print("Таблица умножения для", num)
printTable(num, r)JavaScript
// JavaScript: таблица умножения до заданного диапазона
function printTable(num, range) {
for (let i = 1; i <= range; ++i) {
document.write(num + " * " + i + " = " + num * i + "
");
}
}
var num = 5;
var range = 14;
document.write("Число: " + num + "
");
document.write("Диапазон: " + range + "
");
document.write("Таблица умножения для " + num + "
");
printTable(num, range);C
/* C: таблица умножения до заданного диапазона */
#include
void printTable(int num, int range) {
for (int i = 1; i <= range; ++i) {
printf("%d * %d = %d\n", num, i, num * i);
}
}
int main() {
int num = 5;
int range = 14;
printf("Число: %d\n", num);
printf("Диапазон: %d\n", range);
printf("Таблица умножения для %d\n", num);
printTable(num, range);
return 0;
} Альтернативные подходы и когда их использовать
- Рекурсия — понятна как учебный пример. Но для больших диапазонов возможен переполнение стека. Ментальная модель: рекурсия превращает цикл в цепочку вызовов.
- Списковые выражения и генераторы (Python) — удобно, если нужно собрать результаты в список для дальнейшей обработки: list comprehension, map.
- Векторизация (NumPy) — полезно, когда нужно быстро получить массив произведений и выполнять операции над ним. Ментальная модель: один вызов делает много умножений на С-уровне.
- Формирование таблицы как строки с выравниванием — полезно для вывода в консоль/лог или для учебных распечаток.
Когда это не подходит
- Рекурсия не подходит для очень больших диапазонов (>10 000) из-за глубины стека.
- Векторизация оправдана только при больших объёмах или при последующей математической обработке. Для простого вывода она избыточна.
Практические рекомендации и приёмы форматирования
- Для красивого консольного вывода используйте форматирование по ширине (например, printf(“%2d * %2d = %3d\n”) или f-строки с форматами).
- Для интерактивных программ проверяйте ввод: диапазон должен быть положительным; на отрицательных значениях логика остаётся валидной, но документируйте поведение.
- Для многострочного HTML-вывода заменяйте переносы на теги
или формируйте таблицу