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

Считывание массива из Edit

02.07.2011, 18:10. Показов 3912. Ответов 2
Метки нет (Все метки)

Ситуация такая -
Пользователь должен ввести элемент вектора в Edit1 и после нажатия Button1 этот элемент должен быть выведен в Memo1 и добавлен в одномерный массив. После необходимо еще работать с массивом - вывести в другое мемо его минимальный положительный элемент.
Не получается у меня хотя-бы сообразить в каком месте следует добавлять новый элемент в массив...
Может тут?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Button1Click(Sender: TObject);
begin
if (Edit1.Text<>''Anchors)then
  begin
    if (StrToInt(Edit1.Text)<>0) then
    X:=StrToInt(Edit1.Text);
    Memo1.Text.Add(IntToStr(X)+#10+#13);
    for i:=1 to 5 do
      begin
        Vekt[i]:=X;    {?}
      end;
  end;
Или нет? Подскажите!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.07.2011, 18:10
Ответы с готовыми решениями:

Считывание из edit несколько значений
Доброй поры суток форумчане! Помогите пожалуйсто с задачей. Нужно считать 3 чисел из Edit и...

Считывание из файла txt и вывод в edit
В результате каждой итерации появляется пустая ячейка в массиве.Зарание спасибо за помощь...

Считывание из Edit разных типов данных
Подскажите пожалуйста, как из edit считать запись в разных типах данных, допустим в edit введено...

Считывание информации с Exel-документа и вывод данных из ячеек в Edit-ы
Доброго времени суток! Подскажите как реализовать, чтобы моя программа считывала информацию с...

2
Модератор
63389 / 47078 / 32450
Регистрация: 18.05.2008
Сообщений: 114,115
02.07.2011, 19:03 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
var
  Form1: TForm1;
  i:integer=0; //счетчик кликов на кнопку 1
  n:integer;
  a:array of integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var x:integer;
begin
n:=StrToInt(Edit1.Text);
x:=StrToInt(Edit2.Text);
Setlength(a,n);
a[i]:=x;
Memo1.Text:=Memo1.Text+IntToStr(a[i])+'  ';
i:=i+1;
Edit2.Clear;
Edit2.SetFocus;
if i=n then //если ввели все, отключим Эдит и кнопку
 begin
  Edit2.Enabled:=false;
  Button1.Enabled:=false;
 end; 
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var j,jmn,mn:integer;
begin
jmn:=-1;
j:=0;
while (j<n)and(jmn=-1)do
if a[j]>0 then jmn:=j
else j:=j+1;
if jmn=-1 then Memo2.Text:='В массиве нет положительных элементов'
else
 begin
  mn:=a[jmn];
  for j:=0 to n-1 do
  if(a[j]>0)and(a[j]<mn) then  mn:=a[j];
  Memo2.Text:='Минимальный положительный='+IntToStr(mn);
 end;
end;
1
Вложения
Тип файла: rar 123.rar (3.6 Кб, 40 просмотров)
3 / 3 / 2
Регистрация: 15.06.2011
Сообщений: 42
02.07.2011, 22:34  [ТС] 3
Теперь попыталась найти минимальный положительный с помощью рекурсивной функции, но что-то напутала... Вроде как из функции результат не возвращается:
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Edit2: TEdit;
    Label1: TLabel;
    Memo1: TMemo;
    Memo2: TMemo;
    Edit1: TEdit;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  i:integer=0; //ñ÷åò÷èê êëèêîâ íà êíîïêó 1
  n:integer;
  a:array of integer;
  rezult:integer;
implementation
 
{$R *.dfm}
function min_pol (a:array of integer; mn:integer; j:integer) :integer;
begin
 if(a[j]>0)and(a[j]<mn) then
  begin
  mn:=a[j];
  Result:=mn;
  exit
  end;
 if (j<>n) then min_pol(a,mn,j+1)
 else
  begin
  Result:=mn;
  exit
  end;
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
var x:integer;
begin
n:=StrToInt(Edit1.Text);
x:=StrToInt(Edit2.Text);
Setlength(a,n);
a[i]:=x;
Memo1.Text:=Memo1.Text+IntToStr(a[i])+'  ';
i:=i+1;
Edit2.Clear;
Edit2.SetFocus;
if i=n then //åñëè ââåëè âñå, îòêëþ÷èì Ýäèò è êíîïêó
 begin
  Edit2.Enabled:=false;
  Button1.Enabled:=false;
 end; 
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var j,jmn,mn:integer;
begin
jmn:=-1;
j:=0;
while (j<n)and(jmn=-1)do
if a[j]>0 then jmn:=j
else j:=j+1;
if jmn=-1 then Memo2.Text:=' Â ìàññèâå íåò ïîëîæèòåëüíûõ ýëåìåíòîâ! '
else
 begin
  mn:=10000;
  j:=0;
  min_pol(a,mn,j);
  Memo2.Text:=' Ìèíèìàëüíûé ïîëîæèòåëüíûé = '+IntToStr(mn);
 end;
end;
 
end.
Посмотрите, пожалуйста, функцию min_pol. Что я не так делаю?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2011, 22:34

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Считывание строки из Edit
Вот кусок программы, int K=2; int Lenght; char tmp; string s0; s0=Edit1-&gt;Text.c_str();...

Считывание текста с Edit
Как в Lazarus считать текст со строки Edit? как считывать цифры я знаю, а вот как буквы незнаю....

Считывание данных c edit
Добрый вечер! Возникла проблема со считыванием текста с эдита. Дело в том что раньше работала с...

Считывание текста с компонента Edit
Подскажите, как мне используя компонент Edit, сделать проверку для пароля. то есть пользователь...


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

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

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