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

Поменять местами максимальный и минимальный элементы в каждой строке двумерного массива StringGrid

12.07.2019, 11:03. Показов 4654. Ответов 12

Студворк — интернет-сервис помощи студентам
Дан двумерный массив, сформированный случайным образом (заполнен числами от -100 до 100).
Нужно запрограммировать кнопку, которая заменит максимальный элемент каждой строки на минимальный элемент в этой же строке и наоборот.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2019, 11:03
Ответы с готовыми решениями:

Массив: В каждой строке двумерного массива поменять местами максимальный и минимальный элементы
дана матрица вещественных чисел. В каждой строке поменять местами максимальный и минимальный...

В каждой строке массива поменять местами максимальный и минимальный элементы
Дано файл в котором находиться прямоугольный массив действительных чисел.В каждом его столбике...

В каждой строке двумерного массива (n × m) поменять местами первый и максимальный элементы строки
В каждой строке двумерного массива (n × m) поменять местами первый и максимальный элементы строки.

Поменять местами максимальный и минимальный элементы в каждой строке
задан двумерный массив A(K,N) Поменять местами максимальный и минимальный элементы в каждой...

12
1436 / 1013 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
12.07.2019, 11:46 2
Массив: В каждой строке двумерного массива поменять местами максимальный и минимальный элементы
0
0 / 0 / 0
Регистрация: 12.07.2019
Сообщений: 7
12.07.2019, 13:17  [ТС] 3
Нужно использовать StringGrid для ввода и вывода матрицы, как записать такую программу?
0
1069 / 482 / 314
Регистрация: 05.04.2013
Сообщений: 2,112
12.07.2019, 13:58 4
Лучший ответ Сообщение было отмечено Barabashka- как решение

Решение

Цитата Сообщение от Barabashka- Посмотреть сообщение
как записать такую программу?
переделать с консоли в графику никак?
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
var
  Form1: TForm1;
  a:array of array of Integer;
  i,j,n,m,max,min:Integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin   {Настройка Грида}
with StringGrid1 do begin
     FixedCols := 0;
     FixedRows := 0;
     Align := AlLeft;
     ColCount := 1;
     RowCount := 1;
     end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin    {Сформировать массив -100..+100}
n := StrToInt(LabeledEdit1.Text);
m := StrToInt(LabeledEdit2.Text);
SetLength(a, n, m);
StringGrid1.RowCount := n;
StringGrid1.ColCount := m;
Randomize;
for i := 0 to n-1 do
for j := 0 to m-1 do begin
    a[i,j] := -100 + Random(201);
    StringGrid1.Cells[j,i] := IntToStr(a[i,j]);
    end;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
for i := 0 to n-1 do begin
    max := a[i,0];
    min := a[i,0];
    for j := 1 to m-1 do begin {поиск}
        if a[i,j] > max then max := a[i,j];
        if a[i,j] < min then min := a[i,j];
        end;
    for j := 0 to m-1 do begin {замена}
        if a[i,j] = max then a[i,j] := min else
        if a[i,j] = min then a[i,j] := max;
        StringGrid1.Cells[j,i] := IntToStr(a[i,j]);
        end;
    end;
end;
Миниатюры
Поменять местами максимальный и минимальный элементы в каждой строке двумерного массива StringGrid  
1
0 / 0 / 0
Регистрация: 10.06.2020
Сообщений: 18
10.06.2020, 18:54 5
Скажите пожалуйста, а что нужно поменять, чтобы замена осуществлялась не в каждой строчке, а например в матрице найден максимальный и минимальный элемент, их нужно поменять местами.
0
Модератор
8487 / 5647 / 2290
Регистрация: 21.01.2014
Сообщений: 24,228
Записей в блоге: 3
11.06.2020, 04:55 6
Andrey Sid, а какая принципиальная разница, где менять, можете объяснить?
0
2898 / 1548 / 624
Регистрация: 19.03.2019
Сообщений: 5,142
11.06.2020, 09:43 7
Andrey Sid, смотри, если нужно найти какие-то особые элементы и потом поменять их местами, то всегда используется следующий подход - при поиске нужных элементов ты запоминаешь индекс(или два индекса, если массив двухмерный) позиции найденного элемента. Тоже самое делаешь для другого элемента, который нужно найти.

а потом меняешь местами элемент матрицы A[imin,jmin] с A[imax,jmax]

Теперь всё понятно или есть вопросы?
0
1069 / 482 / 314
Регистрация: 05.04.2013
Сообщений: 2,112
13.06.2020, 10:30 8
Цитата Сообщение от Andrey Sid Посмотреть сообщение
Скажите пожалуйста, а что нужно поменять, чтобы замена осуществлялась не в каждой строчке, а например в матрице найден максимальный и минимальный элемент, их нужно поменять местами.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button3Click(Sender: TObject);
begin
    max := a[0,0];
    min := a[0,0];
for i := 0 to n-1 do begin
for j := 0 to m-1 do begin {поиск}
    if a[i,j] > max then max := a[i,j];
    if a[i,j] < min then min := a[i,j];
    end;
    end;
 
for i := 0 to n-1 do begin
for j := 0 to m-1 do begin {замена}
    if a[i,j] = max then a[i,j] := min else
    if a[i,j] = min then a[i,j] := max;
    StringGrid1.Cells[j,i] := IntToStr(a[i,j]);
    end;
    end;
end;
0
2898 / 1548 / 624
Регистрация: 19.03.2019
Сообщений: 5,142
15.06.2020, 12:11 9
AHBAR, ну да, и что будет,
если матрица, например,
Код
1 1 1 9
1 1 1 1
точно местами поменяются минимальный и максимальный элементы ?
0
1069 / 482 / 314
Регистрация: 05.04.2013
Сообщений: 2,112
16.06.2020, 07:58 10
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
и что будет,
если матрица, например,
ответ выдаст:
Код
9 9 9 1
9 9 9 9
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
точно местами поменяются минимальный и максимальный элементы ?
все элементы, равные минимальному, заменятся на значение, равное максимальному. И.
все элементы, равные максимальному, заменятся на значение, равное минимальному.
если придираться к формулировке
0
1436 / 1013 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
16.06.2020, 08:17 11
Цитата Сообщение от AHBAR Посмотреть сообщение
заменятся на значение
На каждой итерации заменятся, замечу
0
2898 / 1548 / 624
Регистрация: 19.03.2019
Сообщений: 5,142
16.06.2020, 09:54 12
Цитата Сообщение от AHBAR Посмотреть сообщение
все элементы, равные минимальному, заменятся на значение, равное максимальному. И.
все элементы, равные максимальному, заменятся на значение, равное минимальному.
если придираться к формулировке
Так и я об этом.
в задании сказано про то, что найден максимальный/минимальный (не найдены, а найден - один).
Цитата Сообщение от Andrey Sid Посмотреть сообщение
в матрице найден максимальный и минимальный элемент, их нужно поменять местами.
Впрочем, ничего не сказано, как поступать, если таких элементов - несколько. Обычно в таких случаях уточняют, какой из максимальных/минимальных нужен (первый, последний) или в задании говорится, что если их несколько, то "все элементы, равные минимальному, заменятся на значение, равное максимальному и все элементы, равные максимальному, заменятся на значение, равное минимальному."


Цитата Сообщение от Matan! Посмотреть сообщение
На каждой итерации заменятся, замечу
не понял этого замечания?
вроде бы с этим всё в порядке. В первых двух вложенных циклах находим значения min и max
потом ещё пара вложенных циклов - в них заменяем.

если Вы имеете в виду, что каждое нажатие на Button3 будет приводить к тому, что элементы меняются местами - то это нормально и не противоречит заданию.
0
1069 / 482 / 314
Регистрация: 05.04.2013
Сообщений: 2,112
17.06.2020, 19:09 13
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
Впрочем, ничего не сказано, как поступать, если таких элементов - несколько. Обычно в таких случаях уточняют
я сначала задавал такие вопросы. в ответ обычно слышишь "ну не знаю, препод дал вот такое задание..."
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2020, 19:09
Помогаю со студенческими работами здесь

В каждой строке матрицы поменять местами максимальный и минимальный элементы
Дана действительная матрица размера (nxm), (n,m меньше или равно 10). В каждой строке матрицы ...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами
Народ помогите найти ошибку!) последняя лаба не могу здать!) плиз!! вот пример: Найти в...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами
Народ помогите найти ошибку!) плиз!! вот пример: Найти в каждой строке матрицы максимальный и...

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

В матрице найти, в каждой строке максимальный и минимальный элементы и поменять их местами
var a:array of integer; i,j,n,m,max,min,z:integer; begin writeln('n,m'); readln(n,m);...

В произвольной матрице A [ N ][ M ] поменять местами в каждой строке минимальный и максимальный элементы
Здраствуйте,помогите пожалуйста с кодом для данной задачи: В произвольной матрице A поменять...


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

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

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