![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Доброго времени суток!
у меня есть вопрос по сложению чисел например мне надо сложить число формата 5.2.4 с 6.2.4 так чтоб в конце получился ответ 11.4.8 Помогите кто с чем может? |
|
#2
|
|||
|
|||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
n1,n2: TStringList;
begin
n1:=TStringList.Create;
n2:=TStringList.Create;
ExtractStrings(['.'], [], PChar(edit1.Text), n1);
ExtractStrings(['.'], [], PChar(edit2.Text), n2);
edit3.Text:=IntToStr(StrToInt(n1[0])+StrToInt(n2[0]))+'.'+
IntToStr(StrToInt(n1[1])+StrToInt(n2[1]))+'.'+
IntToStr(StrToInt(n1[2])+StrToInt(n2[2]));
n1.Destroy;
n2.Destroy;
end; |
|
#3
|
||||
|
||||
|
мне бы чтоб он брал числа из edit1 и edit2?
Последний раз редактировалось blezigens, 16.06.2010 в 14:54. |
|
#4
|
||||
|
||||
|
Сейчас забабахаем
![]() |
|
#5
|
||||
|
||||
|
Спасибо
![]() |
|
#6
|
|||
|
|||
|
Цитата:
|
|
#7
|
||||
|
||||
|
Можго ли сделать так если
n1:TStringList больше n2:TStringList то совершаеться действие и как это сделать |
|
#8
|
||||
|
||||
|
На попробуй функцию писанную на скорую руку
Код:
function MyPlus(OneStr, TwoStr: String): String;
var
TempOne, TempTwo, Otvet: String;
One, Two, Res: Integer;
begin
TempOne := OneStr + '.';
TempTwo := TwoStr + '.';
while (Length(TempOne) <> 0) and (Length(TempTwo) <> 0) do
begin
One := StrToInt(Copy(TempOne,1,Pos('.',TempOne) - 1));
Two := StrToInt(Copy(TempTwo,1,Pos('.',TempTwo) - 1));
Res := One + Two;
Otvet := Otvet + IntToStr(Res) + '.';
Delete(TempOne,1,Pos('.',TempOne));
Delete(TempTwo,1,Pos('.',TempTwo));
end;
Delete(Otvet,Length(Otvet),1);
Result := Otvet;
end; |
|
#9
|
||||
|
||||
|
Можно ли сделать так чтоб если в edit1 было записано любое число в формате 35.89.89 и сравнивались эти 3 числа как отдельные
и если Например 2-рое число после точки было больше либо равно любому из двух чисел то выявлялось showmessage( 35< 89 = 89 ). |
|
#10
|
||||
|
||||
|
Ну ты блин загнул
. Это ты там что, решаешь уравнения чтоли![]() Вообще рассматривай это все естественно как строку. Режь её ка тебе нужно и сравнивай как хочешь. Думаю со строками нет проблем? Последний раз редактировалось Kailon, 16.06.2010 в 16:10. |
|
#11
|
||||
|
||||
|
я со строками не знаком.
![]() |
|
#12
|
||||
|
||||
|
А это число с точками только из трёх групп состоит или произвольно? Если произвольно, то какие тогда сравнивать?
|
|
#13
|
||||
|
||||
|
а вот так если edit1 = числу в формате 12.64.9
тогда чтоб 12 было в g1:string; 64 было в g2:string; 9 было в g3:string а потом вычислить какое из них больше Например Если g2 < g1 > g3 то совершаеться действие Если g2 = g1 > g3 то совершаеться действие Если g2 < g1 = g3 то совершаеться действие Если g2 = g1 = g3 то совершаеться действие Если g1 < g2 > g3 то совершаеться действие Если g1 = g2 > g3 то совершаеться действие Если g1 < g2 = g3 то совершаеться действие Если g1 = g2 = g3 то совершаеться действие Если g1 < g3 > g2 то совершаеться действие Если g1 = g3 > g2 то совершаеться действие Если g1 < g3 = g2 то совершаеться действие Если g1 = g3 = g2 то совершаеться действие в том то и дело что когда вводят число в edit1 не знаешь какое оно |
|
#14
|
||||
|
||||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var ed1,ed2: string;
i,p:integer;
a,b: array[1..3] of integer;
begin
ed1:=edit1.Text; ed2:=edit2.Text;
i:=1;
while i<>4 do
begin
if i=3 then
begin
a[i]:=StrToInt(ed1);
b[i]:=StrToInt(ed2);
end
else begin
p:=Pos('.',ed1);
a[i]:=StrToInt(Copy(ed1,1,p-1));
ed1:=Copy(ed1,p+1,Length(ed1)-1);
p:=Pos('.',ed2);
b[i]:=StrToInt(Copy(ed2,1,p-1));
ed2:=Copy(ed2,p+1,Length(ed2)-1);
end;
inc(i);
end;
end;например в edit1: 13.72.2 то a[1]=13, a[2]=72, a[3]=2 дальше сравнивай и складывай как ты хочешь Последний раз редактировалось SerginhoLD, 16.06.2010 в 16:49. |
|
#15
|
||||
|
||||
|
Вот еще вариант
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
g1,g2,g3: Integer;
TempS: String;
begin
g1 := 0; g2 := 0; g3 := 0;
TempS := Edit1.Text;
g1 := StrToInt(Copy(Temps,1,Pos('.', TempS) - 1));
Delete(TempS,1,Pos('.', TempS));
g2 := StrToInt(Copy(Temps,1,Pos('.', TempS) - 1));
Delete(TempS,1,Pos('.', TempS));
g3 := StrToInt(Copy(Temps,1,Length(TempS)));
//а дальше уже идет простое сравнение чисел
if (g1 > g2) and (g1 > g3) then
begin
//твой код
end;
if (g1 = g2) and (g1 > g3) then
begin
//твой код
end;
if (g1 > g2) and (g1 = g3) then
begin
/твой код
end;
end; |