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

Заменить все элементы массива, предшествующие минимальному, единицами

07.06.2015, 17:25. Просмотров 831. Ответов 8
Метки нет (Все метки)

дан массив. Заменить все элементы, предшествующие малейшем элемента, единицами

я перевел двухмерный массив в одномерный а потом до минимального еденицами заменить, а потом опять перевести в двухмерный и вывести в 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
var
  Form1: TForm1;
  m,n:integer;
  b:array [1..100] of integer;
  min,l:integer;
procedure TForm1.Button3Click(Sender: TObject);
var   a:array[0..10,0..10]of integer;
i,j,z,min:integer;
begin
l:=0;
with StringGrid1 do
for i:=1 to n do
for j:=1 to m do
l:=l+1; b[l]:=a[i,j];
min:=b[1]; z:=1;
for i:=1 to l do
if min > b[i] then begin
min:=b[i];z:=i;end;
for i:=1 to z do
b[i]:=1; l:=0;
for i:=1 to n do
for j:=1 to m do begin
l:=l+1; a[i,j]:=b[l];end;
 
for i:=1 to n do
for j:=1 to m do
StringGrid1.Cells[i,j]:=inttostr(a[i,j]);
Добавлено через 23 часа 10 минут
аууууууууууу
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2015, 17:25
Ответы с готовыми решениями:

все нулевые элементы данного вектора заменить единицами
все нулевые элементы данного вектора заменить единицами

все нулевые элементы данного вектора заменить единицами
все нулевые элементы данного вектора заменить единицами

Заменить элементы массива, встречающиеся несколько раз, единицами, а неповторяющиеся – нулями
Среди элементов этого массива нет нулей и единиц. Заменить элементы,...

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

Все элементы этого массива, предшествующие первому по порядку элементу со значением max(a1, ...,a10), умножить на этот максимальный элемент
Дан одномерный массив из а элементов. Все элементы этого массива,...

8
Rasomaha
55 / 55 / 37
Регистрация: 11.05.2015
Сообщений: 196
09.06.2015, 09:38 2
Зачем переводить из двумерного в одномерный массивы? какая-то странная формулировка в задании, ты уверен что правильно понял задачу? если так, то можно сделать как-то так
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
var
  Mas: Array of Array of Integer;
 
...
 
procedure Replacing;
var
i,j,Min: Integer;
begin
Min:=Mas[0,0];
For i:=0 to Length(Mas)-1 do For j:=0 to Length(Mas[i])-1 do
  If Min>Mas[i,j] then Min:=Mas[i,j];
i:=0;
j:=0;
While Mas[i,j]<>Min do
  If j=Length(Mas[i]) then
  begin
    j:=0;
    Inc(i);
  end else
  begin
    Mas[i,j]:=1;
    Inc(j);
  end;
end;
Добавлено через 4 минуты
хм... странно, в одном цикли ты делаешь верно, а в другом нет. можешь сказать в чем разница между циклами
Цитата Сообщение от s4nt1ago Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
for i:=1 to n do
for j:=1 to m do
l:=l+1;
...
for i:=1 to n do
for j:=1 to m do begin
l:=l+1; a[i,j]:=b[l];end;
0
s4nt1ago
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 13
09.06.2015, 10:45  [ТС] 3
Ну я делаю как мне обьяснили
что-то я не понял твоего кода)

Ну во втором цикле элементы заносит в одномерный массив
0
Rasomaha
55 / 55 / 37
Регистрация: 11.05.2015
Сообщений: 196
09.06.2015, 11:00 4
Цитата Сообщение от s4nt1ago Посмотреть сообщение
Ну во втором цикле элементы заносит в одномерный массив
А в первом? Какие у тебя вопросы по поводу моего кода?
0
s4nt1ago
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 13
09.06.2015, 11:13  [ТС] 5
А первый походу лишний)
Твой не знаю куда вписывать
0
Rasomaha
55 / 55 / 37
Регистрация: 11.05.2015
Сообщений: 196
09.06.2015, 11:19 6
Цитата Сообщение от s4nt1ago Посмотреть сообщение
А первый походу лишний)
Он не лишний, он неправильно выполнен
Цитата Сообщение от s4nt1ago Посмотреть сообщение
Delphi
1
2
3
4
for i:=1 to n do
for j:=1 to m do
l:=l+1;
b[l]:=a[i,j];
А мой код прост. Первый цикл ищет минимальное значение в массиве. Второй цикл заполняет массив единицами до первого минимального элемента.
0
s4nt1ago
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 13
09.06.2015, 11:24  [ТС] 7
а как его привязать, чтобы элементы массива брались из stringgrid
0
Rasomaha
55 / 55 / 37
Регистрация: 11.05.2015
Сообщений: 196
09.06.2015, 11:43 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от s4nt1ago Посмотреть сообщение
а как его привязать, чтобы элементы массива брались из stringgrid
Можешь из StringGrid'а заполнять массив, или сразу использовать 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
procedure TForm1.Replace;
var
i,j: Integer;
Min: String;
begin
With StringGrid1 do
begin
  Min:=Cells[1,1];
  For i:=1 to ColCount-1 do For j:=1 to RowCount-1 do
    If StrToInt(Min)>StrToInt(Cells[j,i]) then Min:=Cells[j,i];
  i:=1;
  j:=1;
  While Cells[j,i]<>Min do
  begin
    Cells[j,i]:='1';
    Inc(j);
    If j=ColCount-1 then
    begin
      j:=1;
      Inc(i);
    end;
  end;
end;
end;
0
s4nt1ago
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 13
09.06.2015, 12:14  [ТС] 9
спасибо, разобрался)
Чувак, люблю тебя
0
09.06.2015, 12:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2015, 12:14

Все нули в изображении числа заменить единицами
дано некоторое целое число.все нули в изображении числа заменить единицами.

Найти минимальный элемент массива и вывести на экран все номера элементов массива равные минимальному
Найти минимальный элемент массива и вывести на экран все номера элементов...

Заменить все элементы массива большие 10, на число k
заменить все элементы массива большие 10, на число k.


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

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

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