← Все вопросы
вложенные циклы в паскале, не получается таблица умножения квадратиком
5
Надо вывести таблицу умножения от 1 до 5 в виде квадрата (строки и столбцы). У меня всё печатается в один столбик подряд, а не таблицей. Что-то с циклами не то делаю.
var
i, j: integer;
begin
for i := 1 to 5 do
for j := 1 to 5 do
writeln(i * j);
end.
Как сделать чтоб было ровными рядами?
2 ответа
11
✓ Принятый ответ — помог автору
Две вещи: используй write (без ln) внутри, чтобы числа шли в одну строку, а перевод строки делай ПОСЛЕ внутреннего цикла. И не забудь begin/end у внешнего цикла, раз там стало две команды:
var
i, j: integer;
begin
for i := 1 to 5 do
begin
for j := 1 to 5 do
write(i * j : 4);
writeln;
end;
end.
Как это работает:
- внешний цикл
i— это строки таблицы. - внутренний цикл
j— столбцы внутри одной строки. write(... : 4)печатает число и отступ до ширины 4, чтобы столбики были ровные.- пустой
writeln;после внутреннего цикла = переход на новую строку, когда строка таблицы готова.
Главная идея вложенных циклов: внутренний прокручивается полностью на каждый шаг внешнего. Как часы: пока часовая стрелка стоит на одном часе, минутная обегает весь круг.
4
ёлочка из звёздочек по той же схеме делается:
for i := 1 to 5 do
begin
for j := 1 to i do write('*');
writeln;
end;
тут внутренний цикл to i — поэтому звёздочек с каждой строкой больше. красиво же)
Ваш ответ
Войдите, чтобы ответить на вопрос.