Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 42
1

Поиск минимального значения элемента и определение порядкового номера наименьшего элемента

24.12.2019, 17:50. Показов 1621. Ответов 3
Метки нет (Все метки)

Необходимо написать программу, формирующую рандомный одномерный массив, а после определяющую минимальный ее элемент и его номер, часть которая формирует массив работает нормально, а вот нахождение элемента работать не хочет
В чем может быть дело?
(Lazarus)
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
procedure TForm1.Button1Click(Sender: TObject);
var n,i:integer;
    a:array[0..100,0..100] of integer;
begin
n:=strtoint(edit1.text);
stringgrid1.ColCount:=n;
stringgrid1.Visible:=true;
Randomize;
for i:=0 to n-1 do
   begin
   a[i,0]:=random(20)-10;
   stringgrid1.cells[i,0]:=inttostr(a[i,0]);
   end;
 
end;
 
procedure TForm1.BitBtn1Click(Sender: TObject);
var
a:array[1..100] of integer;
    min:integer;
    i:integer;
begin
 for i:=1 to 100 do
           a[i]:= StrToInt(StringGrid1.Cells[i-1,0]);
        min:=1;
        for i:=2 to 100 do
           if a[i] < a[min] then min:=i ;
        Edit2.Text:='Минимальный элемент массива: ' + IntToStr(a[min])
                        + #13 + 'Номер элемента:'+IntToStr(min);
 
end;
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2019, 17:50
Ответы с готовыми решениями:

Поиск минимального значения элемента и определение порядкового номера наименьшего элемента
Дана непустая последовательность различных натуральных чисел. Определить порядковый номер...

Сумма минимального позитивного элемента и его номера
Помогите пожалуйста решить задачу &quot;Найти сумму минимального позитивного элемента массива и его...

Определение номера элемента в динамическом массиве
Дан массив А. Определить номер элемента, который равен 15. Var A:array of extended; Begin...

Задача на определение порядкового номера
Условие: Дана непустая последовательность различных натуральных чисел, за которой следует 0....

3
Модератор
2470 / 1279 / 450
Регистрация: 15.11.2015
Сообщений: 5,082
24.12.2019, 18:19 2
Цитата Сообщение от walet1234 Посмотреть сообщение
a:array[0..100,0..100] of integer;
Трындец, зачем это?! Из него же только один столбец используется!

Невидимый StringGrid нафига нужен?!

Вводится количество элементов, а массив из 100 (101) элементов и потом просматривается всегда 100 элементов - здесь тоже ошибка.

Вот чуть намарафечено:
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
procedure TForm1.Button1Click(Sender: TObject);
var
  a: array of integer;
  min: integer;
  i: integer;
begin
  TryStrToInt(Edit1.Text, i); // Получение количества элементов. Если не получилось преобразовать, то возвращает 0
  SetLength(a, i);
 
  if i = 0 then begin
    Label1.Caption := 'Задайте корректное количество элементов массива.';
    Exit;
  end;
 
  // Заполнить массив
  Randomize;
  for i := 0 to High(a) do // Пройтись по всему массиву
    a[i] := Random(20) - 10; // Внести случайные числа
 
  // Поиск минимального элемента
  min := 0;
  // Проходим до конца массива и ищем среди них минимальный
  for i := 1 to High(a) do
    if a[i] < a[min] then
      min := i;
 
  Label1.Caption := 'Минимальный элемент массива: ' + IntToStr(a[min])
                    + #13#10 + '. Номер элемента: '+IntToStr(min);
end;
1
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 42
24.12.2019, 19:13  [ТС] 3
AzAtom, а возможно ли сделать так чтобы он не в 1 действие с кнопки 1 делал массив и находил элемент, а чтобы по Button1 массив строил и выводил, а по BitBtn1 уже находил и выводил наименьший элемент и его номер?
Нужно именно в 2 действия, а как так сделать сообразить не выходит
0
Модератор
2470 / 1279 / 450
Регистрация: 15.11.2015
Сообщений: 5,082
25.12.2019, 12:56 4
Лучший ответ Сообщение было отмечено walet1234 как решение

Решение

Цитата Сообщение от walet1234 Посмотреть сообщение
возможно ли сделать так чтобы ...
Конечно возможно:
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
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    a: array of integer;
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  s: string;
begin
  TryStrToInt(Edit1.Text, i); // Получение количества элементов. Если не получилось преобразовать, то возвращает 0
  SetLength(a, i);
 
  if i = 0 then begin
    Label1.Caption := 'Задайте корректное количество элементов массива.';
    Exit;
  end;
 
  // Заполнить массив и вывести в Edit, хоть это и не совсем правильно
  s := '';
  Randomize;
  for i := 0 to High(a) do begin // Пройтись по всему массиву
    a[i] := Random(20) - 10; // Внести случайные числа
    s := s + IntToStr(a[i]) + ' ';
  end;
  Edit2.Text := s;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
  min: integer;
  i: integer;
begin
  if Length(a) = 0 then begin // Если массив не задан, то вывести сообщение и выйти из процедуры
    Label1.Caption := 'Создайте массив нажатием кнопки "Создать массив"!';
    Exit;
  end;
 
  // Поиск минимального элемента
  min := 0;
  // Проходим до конца массива и ищем среди них минимальный
  for i := 1 to High(a) do
    if a[i] < a[min] then
      min := i;
 
  Label1.Caption := 'Минимальный элемент массива: ' + IntToStr(a[min])
                    + #13#10 + 'Номер минимального элемента: '+IntToStr(min);
end;
 
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2019, 12:56

Найти номера первого и последнего минимального элемента из данного набора
Дано целое число N и набор из N целых чисел. Нужно в Delphi, найти номера первого и последнего...

Определить номера элементов массива, значения которых больше значения предыдущего элемента
Дан одномерный массив размерности 20. Заполнить его случайными числами на отрезке . Определить...

Поиск минимального элемента массива
Вот составила программу,но мне ошибку выдает,не подскажите ли,в чем дело? unit Unit2; interface...

Поиск минимального элемента среди максимальных
Ищем максимальные элементы по строкам.В каждой строке свой максимальный элемент for j5:=0 to...


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

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

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