Пользователь, вводит на форму 10 целых чисел. При нажатии на кнопку “Выполнить” положительные числа сохраняются во внешнем файле, минимальное выводится в отдельном месте на форме.
Так а проблема в чем именно? Что пробовали, что получилось, что не получилось?
я хз как это делать)
Так а где вы его взяли? Наверно ж там выдали и материалы по основам программирования, Паскаля, Лазаруса )
Изучив их можно как минимум сформулировать конкретные вопросы о том, что не понятно.
Зачем это ХЗ делать, цель какая?
Нужно сделать программу. Я не понимаю как это сделать. Вот и прошу помощи
Так и как помочь если нет никаких конкретных вопросов? (которые обычно появляются при попытках разобраться что и как делать)
Вопрос- Как сделать эту программу?
Начать изучать материалы по основам программирования, Паскаля, Лазаруса (или на чем вам сделать надо), с помощью них пытаться делать то, что просят в задаче. В итоге либо всё получится, либо появятся более конкретные вопросы, например, “почему этот код выдает такую ошибку?”, “почему выдает A, а не B?” или “как сделать, чтоб при XXX происходило YYY? Я попытался использовать ZZZ, но возникла вот такая проблема”.
Новая папка (5).rar (4.7 МБ)
Вот я попробовал написать . Как мне сделать чтобы выводилось минимальное число и сохраняло положительные?
procedure TForm1.Button1Click(Sender: TObject);
var str:string;
i:integer;
begin
str:=Memo1.Lines[0];
for i:=0 to 9 do
begin
if (Memo1.Lines[i])<str then
str:=Memo1.Lines[i];
end;
Edit1.Text:=str;
for i:=0 to 9 do
begin
if (strtoint(Memo1.Lines[i]))>0 then
Memo1.Lines.insert(i,Memo1.Lines[i]);
Memo1.Lines.SaveToFile('Положтельные.txt');
Memo1.Clear;
end;
end;
Если это поиск минимума, то тут надо все строки в числа конвертировать (StrToInt
, и для вывода в конце обратно IntToStr
), иначе 123 будет меньше 99.
Вообще лучше массив чисел создать в начале и дальше с ним работать.
var
numbers: array [0..9] of integer;
i: integer;
begin
for i:=0 to 9 do
begin
numbers[i] := StrToInt(Memo1.Lines[i]);
end;
9000.rar (4.6 МБ)
Вот я добавил
И у меня сохраняются все числа, а нужно чтобы сохранялись только положительные
procedure TForm1.Button1Click(Sender: TObject);
var str:string;
numbers: array [0..9] of integer;
i: integer;
begin
for i:=0 to 9 do
begin
numbers[i] := StrToInt(Memo1.Lines[i]);
end;
begin
str:=Memo1.Lines[0];
for i:=0 to 9 do
begin
if (Memo1.Lines[i])<str then
str:=Memo1.Lines[i];
end;
Edit1.Text:=str;
for i:=0 to 9 do
begin
if (strtoint(Memo1.Lines[i]))>0 then
Memo1.Lines.insert(i,Memo1.Lines[i]);
Memo1.Lines.SaveToFile('Положтельные.txt');
Memo1.Clear;
end;
end;
и ещё когда я ввожу все числа с - , у меня выдаёт в минимальном -1
Так и толку добавлять массив если не использовать его дальше вместо мемо при поиске мин и положительных?)
Выше я и писал про это.
Код лучше выкладывать просто копированием основной части кода и нажатием кнопки Код.
Как это сделать?
Скинь те весь код как надо сделать
Дык так же как и было, просто использовать массив вместо мемо.
Ну и тип str
сделать integer
, и советую переименовать в например min
.
А как использовать массив вместо мемо.
procedure TForm1.Button1Click(Sender: TObject);
var min:integer;
numbers: array [0..9] of integer;
i: integer;
begin
for i:=0 to 9 do
begin
numbers[i] := StrToInt(Memo1.Lines[i]);
end;
begin
min:=Memo1.Lines[0];
for i:=0 to 9 do
begin
if (Memo1.Lines[i])<min then
min:=Memo1.Lines[i];
end;
Edit1.Text:=min;
for i:=0 to 9 do
begin
if (strtoint(Memo1.Lines[i]))>0 then
Memo1.Lines.insert(i,Memo1.Lines[i]);
Memo1.Lines.SaveToFile('Положтельные.txt');
Memo1.Clear;
end;
end;
end;
end.
Вместо
if numbers[i] ...
и т.д.
А в конце для сохранения мемо вообще вряд ли надо трогать.
Лучше например в TStringList
добавлять нужные числа и его сохранять.
TStringList-TStrings Tutorial - Lazarus wiki
А вот это всё заменять на numbers: array [0…9] of integer;?