Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
s4nt1ago
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 13
#1

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

07.06.2015, 17:25. Просмотров 307. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заменить все элементы массива, предшествующие минимальному, единицами (Delphi):

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

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

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

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

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

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

8
Rasomaha
55 / 55 / 17
Регистрация: 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 / 17
Регистрация: 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 / 17
Регистрация: 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 / 17
Регистрация: 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
Привет! Вот еще темы с ответами:

Найти минимальный элемент массива и вывести на экран все номера элементов массива равные минимальному - Delphi
Найти минимальный элемент массива и вывести на экран все номера элементов массива равные минимальному(Delphi)

Заменить все отрицательные элементы массива на максимальный - Delphi
Народ, выручайте! 2 задания не могу сделать 1.http://www.fotohost.by/pic_b/11/04/16/0985f4035cfed90ee86f05ba0ad5718d.jpg 2.Заменить все...

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

В одномерном массиве замените все нулевые элементы-единицами - Delphi
Всем привет! помогите плиз: В предложенном одномерном массиве замените все нулевые элементы-единицами! Заранее благодарю!:)


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

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

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