1 / 1 / 0
Регистрация: 06.12.2014
Сообщений: 117

Получить массив B, присвоив его k-му элементу значение 1, если k-ая строка матрицы симметрична

16.04.2015, 19:58. Показов 4596. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
HELP .Задана матрица размером . Получить массив B, присвоив его k-му элементу значение 1, если k-ая строка матрицы симметрична, и значение 0 в противном случае.
Всё сделал, а вот получить и вывести массив B не выходит.
Помогите пожалуйста.
код:
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    StringGrid1: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    StringGrid2: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  A:array[1..21,1..21]of extended;
  B:array[1..21] of Extended;
  N,i,j,k: integer;
implementation
 
{$R *.dfm}
//Размерность матрицы(StringGrid)
procedure TForm1.Button1Click(Sender: TObject);
begin
   N:=strtoint(edit1.text) ;
   StringGrid1.RowCount:=n+1;
   StringGrid1.ColCount:=N+1;
   StringGrid2.RowCount:=N+1;
   StringGrid1.Cells[0,0]:='Массив A';
   StringGrid2.Cells[0,0]:='Массив B';
   StringGrid1.Height:=20*(n+1)+5+n;
   StringGrid1.Width:=20*(n+1)+5+n;
   StringGrid2.Height:=20*(n+1)+5+n;
   for i:=1 to n do 
    begin
      StringGrid1.Cells[0,i]:=inttostr(i);
      StringGrid1.Cells[i,0]:=inttostr(i);
     end;
end;
//Заполняем случайными числами
procedure TForm1.Button2Click(Sender: TObject);
begin
for i:=1 to n do
    begin
     For j:=1 to n do 
      begin
       Stringgrid1.Cells[i,j]:=floattostr(random(50)-20);
       Stringgrid1.Update;
       sleep(50);
     end;
    end;
   Button3.Enabled:=true;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  N:=3;
  StringGrid1.RowCount:=n+1;
  StringGrid1.ColCount:=N+1;
  StringGrid2.RowCount:=N+1;
  StringGrid1.Cells[0,0]:='Массив A';
  StringGrid2.Cells[0,0]:='Массив B';
  {StringGrid1.Height:=20*(n+1)+5+n;
  StringGrid1.Width:=20*(n+1)+5+n;
  StringGrid2.Height:=20*(n+1)+5+n;}
  for i:=1 to n do 
   begin
    StringGrid1.Cells[0,i]:=inttostr(i);
    StringGrid1.Cells[i,0]:=inttostr(i);
   end;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
begin
  for i:=1 to n do 
   begin
    For j:=1 to n do 
     begin
      Stringgrid1.Cells[i,j]:='';
      Stringgrid2.Cells[0,j]:='';
     end;
   end;
end;
 
 
end;
 
procedure TForm1.Button4Click(Sender: TObject);
begin
//Здесь получаем массив B(StringGrid2)
//Только как это сделать.
end;
 
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.04.2015, 19:58
Ответы с готовыми решениями:

Получить массив В, присвоив его K-му элементу значение 1, если элементы K-й строки матрицы упорядоченны по убыванию
задана матрица N*M Получить массив В, присвоив его K-му элементу значение 1, если элементы K-й строки матрицы упорядоченны по убыванию , и...

Получить массив В, присвоив его k-му элементу значение 1, если элементы k-ой строки матрицы упорядочены по убыванию
Задана матрица размером Получить массив B, присвоив его к-му элементу значение 1, если элементы к-ой строки матрицы упорядочены по...

Получить массив B, присвоив его k-му элементу значение 0, если все элементы k-го столбца матрицы нулевые
Задана матрица размером NxM. Получить массив B, присвоив его k-му элементу значение 0, если все элементы k-го столбца матрицы нулевые, и...

8
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
16.04.2015, 20:13
Цитата Сообщение от Tof_y Посмотреть сообщение
Получить массив B, присвоив его k-му элементу значение 1, если k-ая строка матрицы симметрична, и значение 0 в противном случае.
Delphi
1
2
3
4
5
6
7
8
for k:=1 to n do
 begin
  b[k]:=1;
  i:=1;
  while(i<=n div 2)and(b[k]=1) do
  if a[k,i]<>a[k,n-i+1] then b[k]:=0
  else inc(i);
 end;
1
1 / 1 / 0
Регистрация: 06.12.2014
Сообщений: 117
17.04.2015, 19:56  [ТС]
не работает.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.04.2015, 19:58
Цитата Сообщение от Tof_y Посмотреть сообщение
не работает.
Полы что ли не моет?
Приложи архив проекта.
0
1 / 1 / 0
Регистрация: 06.12.2014
Сообщений: 117
17.04.2015, 20:14  [ТС]
вот
Вложения
Тип файла: zip Project.zip (605.8 Кб, 59 просмотров)
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.04.2015, 20:26
Да ну тебя нафиг. С какого угару массив вещественный? Как будешь проверять числа на равенство?
Чего ты в проекте нагородил? Элементарно решить не можешь, зато на форме черт ногу сломит. Я пас.

Добавлено через 5 минут
Цитата Сообщение от Tof_y Посмотреть сообщение
//Заполняем случайными числами
И ты думаешь хоть 1 строка будет симметричной?
0
1 / 1 / 0
Регистрация: 06.12.2014
Сообщений: 117
17.04.2015, 21:17  [ТС]
Да согласен неправильно решил. Но я ведь новичок в этом деле. И хоть как то постарался ее решить хоть и неправильно.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
18.04.2015, 06:02
Вот решение этой задачи с динамическими массивами.
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
var
  Form1: TForm1;
  n,m:integer;
  a:array of array of integer;
implementation
 
{$R *.dfm}
//зададим некоторые параметры
procedure TForm1.FormCreate(Sender: TObject);
begin
with StringGrid1 do
 begin
  fixedcols:=0;
  fixedrows:=0;
  defaultcolwidth:=30;
  scrollbars:=ssBoth;
 end;
with StringGrid2 do
 begin
  fixedcols:=0;
  fixedrows:=0;
  rowcount:=1;
  defaultcolwidth:=30;
  scrollbars:=ssBoth;
 end;
SpinEdit1.MinValue:=2;
SpinEdit1.MaxValue:=30;
SpinEdit1.Value:=2;
SpinEdit2.MinValue:=2;
SpinEdit2.MaxValue:=30;
SpinEdit2.Value:=2;
end;
 
//создание матрицы
procedure TForm1.Button1Click(Sender: TObject);
begin
n:=SpinEdit1.Value; //количество строк
m:=SpinEdit2.Value; //количество столбцов
setlength(a,n,m);
with StringGrid1 do
 begin
  colcount:=m;
  rowcount:=n;
  options:=options+[goEditing];
 end;
StringGrid2.ColCount:=n;
ShowMessage('Введите в таблицу целые числа');
end;
//выполнение задачи
procedure TForm1.Button2Click(Sender: TObject);
var b:array of integer;
    i,j,k,c:integer;
begin
//проверим равильность ввода элемнтов матрицы
k:=0;
i:=0;
while (i<n)and(k=0) do
 begin
  j:=0;
   while(j<m)and(k=0)do
    begin
     val(StringGrid1.Cells[j,i],a[i,j],c);
     if c<>0 then
      begin
       k:=1;
       ShowMessage('Не все элементы введены верно, поправьте')
      end
     else inc(j);
    end;
   if k=0 then inc(i)
  end;
setlength(b,n);
for k:=0 to n-1 do
 begin
  b[k]:=1;
  i:=1;
  while(i<m div 2)and(b[k]=1) do
  if a[k,i]<>a[k,m-i-1] then b[k]:=0
  else inc(i);
 end;
for i:=0 to n-1 do
StringGrid2.Cells[i,0]:=inttostr(b[i]);
end;
1
1 / 1 / 0
Регистрация: 06.12.2014
Сообщений: 117
18.04.2015, 18:13  [ТС]
Большое спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2015, 18:13
Помогаю со студенческими работами здесь

Массив: Получить массив B, присвоив его k-му элементу значение 0, если среди элементов k-го столбца матрицы нулей больше, чем единиц, иначе - 1
Здравствуйте! Помогите пожалуйста решить задачу. Задана матрица размером NxM. Получить массив B, присвоив его k-му элементу значение 0, ...

Задана матрица размером n*m. Получить массив В, присвоив его k -му элементу значение 1, если элементы k -й строки матрицы упорядочены по убыванию
Задана матрица размером n*m. Получить массив В, присвоив его k-му элементу значение 1, если элементы k-й строки матрицы упорядочены по...

Массив: Получить массив B, присвоив его k-му элементу значение 0, если все элементы k-го столбца нулевые...
Из матрицы размером n∙m получить массив B, присвоив его k-му элементу значение 0, если все элементы k-го столбца матрицы нулевые, и...

Получить динамический вектор B, присвоив его k-му элементу значение 1, если элементы k-й строки матрицы А упорядочены
Составить программу формирования динамической матрицы А (n строк, m столбцов) случайными числами, сделать возможным ее редактирование....

Задана матрица размером . Получить массив B, присвоив его k-му элементу значение 1, если элементы k-ой строки
Задана матрица размером . Получить массив B, присвоив его k-му элементу значение 1, если элементы k-ой строки матрицы упорядочены по...


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

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

Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru