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

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

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


http://www.cyberforum.ru/delphi-beginners/thread414328.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2015, 17:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Заменить все элементы массива, предшествующие минимальному, единицами (Delphi):

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

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

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

Все элементы этого массива, предшествующие первому по порядку элементу со значением 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.

Заменить все отрицательные элементы массива на максимальный
Народ, выручайте! 2 задания не могу сделать...

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


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

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

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