var i, j, n: integer; a: array[1..nn, 1..nn] of integer;
begin writeln('Задайте размер матрицы n'); readln(n); if n > nn then writeln('Вы превысили допустимый размер матрицы 20') else begin writeln('Матрица-результат'); for i := 1 to n do begin writeln; for j := 1 to n do begin if i < j then a[i, j] := 1 else if i = j then a[i, j] := 2 else a[i, j] := 3; write(a[i, j]:2) end; end; writeln end end.
DataGridView1 и два NumbericUpDown с соответствующими названиями добавь и вот код на форме: <begin code> using System; using System.Windows.Forms;
namespace SWF { public partial class Form1 : Form { public Form1() { InitializeComponent(); numericUpDown2_ValueChanged(null, null); } private void numericUpDown2_ValueChanged(object sender, EventArgs e) { dataGridView1.Rows.Clear(); dataGridView1.Columns.Clear(); Int32 M, N; M = (int)numericUpDown1.Value; N = (int)numericUpDown2.Value; Single[,] arr = new Single[M, N]; Random rnd = new Random(); for (int i = 0; i < M; i++) for (int j = 0; j < N; j++) arr[i, j] = rnd.Next(-20, 20); for (int i = 0; i < M; i++) { dataGridView1.Columns.Add("", ""); for (int j = 0; j < N; j++) { if ((i == 0) && (j == 0)) dataGridView1.Rows.Add(N); dataGridView1[i, j].Value = arr[i, j]; } } } } } <end code>
Разумеется, там много мелочей: на NUD1 и NUD2 добавить событие, установить минимальные значения... Лучше посмотрите решение в документе ниже: там архив с папкой проекта)
nn = 20;
var
i, j, n: integer;
a: array[1..nn, 1..nn] of integer;
begin
writeln('Задайте размер матрицы n');
readln(n);
if n > nn then
writeln('Вы превысили допустимый размер матрицы 20')
else begin
writeln('Матрица-результат');
for i := 1 to n do
begin
writeln;
for j := 1 to n do begin
if i < j then a[i, j] := 1
else if i = j then a[i, j] := 2
else a[i, j] := 3;
write(a[i, j]:2)
end;
end;
writeln
end
end.
Тестовый пример:
Задайте размер матрицы n
10
Матрица-результат
2 1 1 1 1 1 1 1 1 1
3 2 1 1 1 1 1 1 1 1
3 3 2 1 1 1 1 1 1 1
3 3 3 2 1 1 1 1 1 1
3 3 3 3 2 1 1 1 1 1
3 3 3 3 3 2 1 1 1 1
3 3 3 3 3 3 2 1 1 1
3 3 3 3 3 3 3 2 1 1
3 3 3 3 3 3 3 3 2 1
3 3 3 3 3 3 3 3 3 2
<begin code>
using System;
using System.Windows.Forms;
namespace SWF
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
numericUpDown2_ValueChanged(null, null);
}
private void numericUpDown2_ValueChanged(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
dataGridView1.Columns.Clear();
Int32 M, N;
M = (int)numericUpDown1.Value;
N = (int)numericUpDown2.Value;
Single[,] arr = new Single[M, N];
Random rnd = new Random();
for (int i = 0; i < M; i++)
for (int j = 0; j < N; j++)
arr[i, j] = rnd.Next(-20, 20);
for (int i = 0; i < M; i++)
{
dataGridView1.Columns.Add("", "");
for (int j = 0; j < N; j++)
{
if ((i == 0) && (j == 0)) dataGridView1.Rows.Add(N);
dataGridView1[i, j].Value = arr[i, j];
}
}
}
}
}
<end code>
Разумеется, там много мелочей: на NUD1 и NUD2 добавить событие, установить минимальные значения... Лучше посмотрите решение в документе ниже: там архив с папкой проекта)