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

Выбросить из матрицы элементы, индексы которых делятся на четыре, и заменить их максимальным элементом

20.06.2015, 22:47. Показов 1098. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Данный массив m * n . Выбросить из массива те элементы , индексы которых делятся на четыре и заменить их максимальный элементом . Заменить все элементы , следующие за наибольшим элементом нулями.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.06.2015, 22:47
Ответы с готовыми решениями:

Выбросить из массива те элементы, индексы которых делятся на четыре и заменить их масимальным элементом
Данный массив m * n. Выбросить из массива те элементы, индексы которых делятся на четыре и заменить...

Заменить в массиве V те элементы, индексы которых делятся на четыре, наименьшим элементом массива
Помогите с заданием,пожалуйста и как можно скорее. 2. Заменить в массиве V те элементы, индексы...

Отрицательные элементы вещественной матрицы заменить максимальным элементом.
1.В первой строке активного листа заданы N значений одномерного массива X. Вывести во вторую строку...

Все элементы столбца матрицы с минимальным элементом заменить максимальным
Дан массив D. Каких элементов больше: положительных или видъъемних? Все элементы столбца с...

7
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
21.06.2015, 00:04 2
Koshuk,
Цитата Сообщение от Koshuk Посмотреть сообщение
индексы которых делятся на четыре
1) без остатка? т.е А(1,4);А(4,1);А(4,4);?
заменить их максимальный элементом

2)Т.е заменить А(1,4) на Max -
Цитата Сообщение от Koshuk Посмотреть сообщение
Заменить все элементы , следующие за наибольшим элементом нулями.
а дальше 0-ли?
0
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 11
21.06.2015, 15:14  [ТС] 3
1) Да
2)Тоже верно
Заранее спасибо

Добавлено через 13 часов 41 минуту
Narimanych, Помоги с задание пожалуйста
0
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
21.06.2015, 20:59 4
Лучший ответ Сообщение было отмечено Koshuk как решение

Решение

Ok....

Добавлено через 26 секунд
К вечеру....

Добавлено через 5 часов 33 минуты
Koshuk,

В "Uses"добавьте "Math"
Расположите на форме 3 Edit'a
1) Для ввода количества строк "M" матрицы;
2) Для ввода количества столбцов "N" матрицы;
3) Для вывода максимального значения ...

2 StringGrid'a

1)Для вывода сгенерированной матрицы;
2)Для вывода преобразованной матрицы;

2 кнопки...
1) Заполнение массива и вывод в 1-ый StringGrid;
2) поиск Max+замена максимальным элементом+замена последующих за наибольшими ----- 0-ми ( идет замена только одного последующего за наибольшим---- 0-м)+ Вывод измененного массива во 2-ой StringgRid.

Расписано "костыльно " , но доступно для понимания
Вот код:

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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
nit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids,Math;
 
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
   A: array of array of  real;
   Max:Real;
   i,j,M,N : Integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 if Edit1.text='' then
   begin
     ShowMessage('Введите "M" ');
     Edit1.SetFocus;
     Exit;
   end
   else
   begin
      M:=StrToInt(Edit1.text);
   end;
   if Edit2.text='' then
   begin
     ShowMessage('Введите "N" ');
     Edit2.SetFocus;
     Exit;
   end
   else
   begin
      N:=StrToInt(Edit2.text);
   end;
   if( M<4 ) and (N<4) then
   begin
    ShowMessage('"M" или  "N" должно быть больше 4-х ');
     Exit;
     end;
SetLength(A,m,n);
  With StringGrid1 do
   begin
     FixedCols:=0;
     FixedRows:=0;
     ColCount:=N;
     RowCount:=M;
   end;
    //Заполнение массива и вывод в 1-ый StringgRid
   for i:=0   to M-1 do
    begin
      for j:=0 to N-1 do
      begin
      A[i,j]:=RandomRange(-30,30);
      StringGrid1.Cells[j,i]:=FloatToStr(A[i,j]);
       end;
    end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
Var
C,R:Integer;
begin
 With StringGrid2 do
   begin
     FixedCols:=0;
     FixedRows:=0;
     ColCount:=N;
     RowCount:=M;
   end;
 
//поиск Max
   Max:=-10000000;
  for i:=0   to M-1 do
    begin
      for j:=0 to N-1 do
      begin
      if A[i,j]>Max then Max:=A[i,j];
       end;
    end;
    Edit3.text:=FloatToStr(Max) ;
      //замена  максимальным элементом
 
   for i:=0   to M-1 do
    begin
      for j:=0 to N-1 do
      begin
         if ((i+1) mod 4 =0 ) or  ((j+1) mod 4 =0 )  then
         begin
          A[i,j]:=Max;
         end
         else
         begin
         A[i,j]:=A[i,j];
         end;
      end;
    end;
 
      //замена последующих за наибольшими  0-ми
      SetLength(A,m+1,n+1);
   for i:=0   to  M do
    begin
      for j:=0 to N do
      begin
      if A[i,j]=Max then
       begin
        A[i,j+1]:=0;
       end
       else
       begin
         A[i,j]:=A[i,j];
       end;
       end;
    end;
      SetLength(A,m,n);
 
 
      //Вывод измененного массива  во 2-ой StringgRid
      for i:=0   to M-1 do
    begin
      for j:=0 to N-1 do
      begin
      StringGrid2.Cells[j,i]:=FloatToStr(A[i,j]);
      end;
    end;
 
end;
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
//Запрет ввода символов
begin
if not (Key in ['0'..'9', #8 ]) then Key:=#0;
 
end;
 
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
//Запрет ввода символов
begin
 if not (Key in ['0'..'9', #8 ]) then Key:=#0;
end;
 
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
 //Запрет ввода символов
begin
Key:=#0;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.text:='';
  Edit2.text:='';
  Edit3.text:='';
end;
 
end.

Удачи....
2
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 11
21.06.2015, 22:16  [ТС] 5
Спасибо большое

Добавлено через 20 минут
Все то что в uses выдает ошибку Fatal error file not found 'Winapi.Windows.dcu'
У меня delphi 7, как переделать ?
0
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
21.06.2015, 22:29 6
Koshuk,
Не копипасьте все...

Откройте новую форму...
1) "Uses"добавьте "Math"
2) Расположите на форме 3 Edit'a
3) 2 StringGrid'a
4) 2 кнопки...

Затем
В глобальные переменные введите

var
Form1: TForm1;
A: array of array of real;
Max:Real;
i,j,M,N : Integer;


implementation

Дальше - для каждого компонента из "Object inspector"-(слева внизу ) из вкладки "events" выберите соответствующую
процедуру...
Вот туда и прописывайте коды...
0
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 11
21.06.2015, 22:51  [ТС] 7
Ага, спасибо
0
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
21.06.2015, 22:54 8
Пожалуйста....
0
21.06.2015, 22:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2015, 22:54
Помогаю со студенческими работами здесь

Элементы столбца матрицы с максимальным по модулю элементом в k-ой строке заменить на число X
Элементы столбца матрицы с максимальным по модулю элементом в k-ой строке заменить на число X....

Элементы главной диагонали матрицы заменить максимальным элементом каждой строки
в матрице А(10,10) элементы главной диагонали заменить максимальным элементом каждой строки в...

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

Необходимо заменить нулевые элементы матрицы вещественных чисел размерностью 5 на 5 ее максимальным элементом
Помогите пожалуйста сделать программу на Borland C++ 6. Заменить нулевые элементы матрицы...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru