Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
KRafil
6 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 5
#1

Подсчитать количество одинаковых чисел под побочной диагональю матрицы

03.01.2013, 19:51. Просмотров 1160. Ответов 2
Метки нет (Все метки)

1. Подсчитать количество одинаковых чисел под побочной диагональю матрицы

2. Сформировать массив Z(N,N). Повернуть его на 270 градусов
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2013, 19:51
Ответы с готовыми решениями:

Подсчитать количество одинаковых чисел под главной диагональю матрицы
1. Подсчитать количество одинаковых чисел под главной диагональю матрицы ...

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

Обнулить элементы матрицы, находящие под побочной диагональю и на побочной диагонали
составить программу, для данной матрицы составил программу, что зануляет...

Подсчитать произведение отрицательных элементов матрицы, расположенных над побочной диагональю
доброго времени суток) прошу помощь в написании кода к этому заданию: "Дана...

Вычислить количество символов "а" над глав. диагональю, и количество символов "в" под побочной диагональю
вычислить количество символов "а" над глав. диагональю и количество символов...

2
Одиночка
3933 / 1858 / 337
Регистрация: 16.03.2012
Сообщений: 3,869
04.01.2013, 01:01 #2
Лучший ответ Сообщение было отмечено KRafil как решение

Решение

2. Поворот матрицы на 270 градусов:
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    UpDown1: TUpDown;
    StringGrid1: TStringGrid;
    Button1: TButton;
    Label3: TLabel;
    Label4: TLabel;
    Button2: TButton;
    procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Button2Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Edit1Change(Sender: TObject);
var
  N : Integer;
begin
  N:=StrToIntDef(Edit1.Text,5);
  if N<1 then Exit;
 
  StringGrid1.ColCount:= N;
  StringGrid1.RowCount:= N;
end;
 
procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
  Edit1.OnChange(Sender);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  i,j,n : Integer;
  s : String;
begin
  //Поворот на 270 градусов по часовой стрелке
  //(или поворот на 90 против часовой стрелки)
  n:=StringGrid1.ColCount;
  With StringGrid1 Do
  for i:=0 to (ColCount Div 2)-1 do
  for j:=i to n-i-1-1 do
  begin
    s:=Cells[j,i];
    Cells[j,i]:=Cells[n-1-i,j];
    Cells[n-1-i,j]:=Cells[n-1-j,n-1-i];
    Cells[n-1-j,n-1-i]:=Cells[i,n-1-j];
    Cells[i,n-1-j]:=s;
  end;
end;
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key In ['0'..'9',#8]) then Key:=#0;
end;
 
//Заполнение
procedure TForm1.Button2Click(Sender: TObject);
var i,j : Integer;
begin
  Randomize;
  with StringGrid1 do
  for i:= 0 to RowCount-1 do
  for j:= 0 to ColCount-1 do
  Cells[j,i]:= IntToStr(Random(100)-50);
end;
 
end.
1
Вложения
Тип файла: rar Поворот матрицы на 270 градусов_.rar (2.0 Кб, 32 просмотров)
Одиночка
3933 / 1858 / 337
Регистрация: 16.03.2012
Сообщений: 3,869
04.01.2013, 01:54 #3
1. Подсчитать количество одинаковых чисел под побочной диагональю матрицы
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    UpDown1: TUpDown;
    StringGrid1: TStringGrid;
    Button1: TButton;
    Label4: TLabel;
    Button2: TButton;
    Memo1: TMemo;
    Label1: TLabel;
    procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Button2Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Edit1Change(Sender: TObject);
var
  N : Integer;
begin
  N:=StrToIntDef(Edit1.Text,5);
  if N<1 then Exit;
 
  StringGrid1.ColCount:= N;
  StringGrid1.RowCount:= N;
end;
 
procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
  Edit1.OnChange(Sender);
end;
 
//Подсчёт количества одинаковых чисел под побочной диагональю матрицы
procedure TForm1.Button1Click(Sender: TObject);
var
  i, j, k, m, N : Integer;
  Matr, CountMatr : Array of Array of integer;
begin
  N:= StrToIntDef(Edit1.Text,5);
  //Определим массивы (память под них)
  SetLength(Matr,N,N);
  SetLength(CountMatr,N,N);
 
  //Перенесём значения из StringGrid-а в массив
  for i:=0 to N-1 do
  for j:=0 to N-1 do
  begin
    Matr[i,j]:=StrToIntDef(StringGrid1.Cells[j,i],0);
    CountMatr[i,j]:=1;
  end;
 
  Memo1.Lines.Clear;
  for i:=0 to N-1 do
  for j:=(N-1-i+1) to N-1 do
  if CountMatr[i,j]<>0 then //Если ранее не было такого значения
  for k:=i to N-1 do
  for m:=(N-1-k+1) to N-1 do
  If Not ((k=i) And (m=j)) Then
  if CountMatr[k,m]<>0 then //Если ранее не было такого значения
  if Matr[i,j]=Matr[k,m] then
  begin
    CountMatr[k,m]:=0; //Отмечаем найденный дубль
    inc(CountMatr[i,j]); //плюс 1 к количеству одинаковых
  end;
 
  //Занесём результаты в Memo
  for i:=0 to N-1 do
  for j:=(N-1-i+1) to N-1 do
  if CountMatr[i,j]>1 then
  Memo1.Lines.Add('Число '+IntToStr(Matr[i,j])+
  '  повторяется '+IntToStr(CountMatr[i,j])+' раз');
 
  //Освободим память массивов
  Finalize(Matr);
  Finalize(CountMatr);
end;
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key In ['0'..'9',#8]) then Key:=#0;
end;
 
//Заполнение
procedure TForm1.Button2Click(Sender: TObject);
var i,j : Integer;
begin
  Randomize;
  with StringGrid1 do
  for i:= 0 to RowCount-1 do
  for j:= 0 to ColCount-1 do
  Cells[j,i]:= IntToStr(Random(20)-10);
end;
 
end.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2013, 01:54

Найти количество положительных элементов, расположенных под главной диагональю матрицы
найти количество положительных элементов, расположенных под главной диагональю...

Подсчитать количество столбцов заданной матрицы размером 20*20, которые составлены из попарно различных чисел
Т.е. соседние числа в каждом столбике не должны быть равны. Задача сводится к...

Подсчитать количество столбцов целочисленной квадратной матрицы порядка n, которые составлены из попарно различных чисел
Подсчитать количество столбцов целочисленной квадратной матрицы порядка n,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru