Таблица умножения на Паскале

Задача

Достаточно часто требуется построить на экране какую-нибудь двумерную таблицу. Это можно реализовать с помощью двух циклов for. При этом один цикл должен быть вложен в другой.

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

Решение

Внешний цикл for отвечает за формирование строк. Всего их будет 10, значит количество итераций цикла должно быть равно 10.

Внутренний цикл for формирует каждое значение в строке. Всего значений в строке 10. Значит и число его итераций должно быть 10.

В теле вложенного цикла for происходит формирование конкретного значения путем умножения текущего значения счетчика внешнего цикла на текущее значение счетчика внутреннего цикла. Поскольку на протяжении десяти итераций внутреннего цикла, значение счетчика внешнего цикла не меняется, то получается строка, где числа от 1 до 10 умножаются на одно и то же число.

После выхода из внутреннего цикла, перед следующей итерацией внешнего цикла требуется осуществить переход на новую строку. Иначе все значения будут записаны не в виде таблицы, а в виде одной строки.

Тема

Циклы

Уровень

Простые задачи

Комментарии

uses crt;
var a:array[0..50,0..50]of integer;
    i,j,n:integer;
begin
readln(n);
for i:=1 to n do
begin
 a[i,0]:=i;
 a[0,i]:=i;
end;
for i:=1 to n do
 for j:=1 to n do
 begin
  a[i,j]:=i*j;
 end;
 
for i:=0 to n do
begin
 for j:=0 to n do
 begin
  if (i=0) or (j=0) then
   textcolor(lightgreen)
  else
   textcolor(white);
   write(a[i,j]:4);
 end;
 writeln;
end;
end.

program multiplication_table;
uses crt;
var i,j,n,k: integer;
begin
writeln('vvedite chislo');
readln(n);
for i:=1 to n do begin
for j:=1 to n do begin
k:=j*i;
writeln(i, '*', j, '=',k);
end;
writeln;
end;
end.

Добавить комментарий