← Все вопросы

вложенные циклы в паскале, не получается таблица умножения квадратиком

Задан 16 месяцев назад969 просмотров2 ответа
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 — поэтому звёздочек с каждой строкой больше. красиво же)

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект