![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте! Помогите пожалуйста решить следующую задачу:я ввожу в StringGrid (Размерность 2х2) числа. Первая строка это элементы а1,а2. Вторая строка это элементы b1,b2. Нужно вычислить d=(a1*b1+a2*b2)/(b1+b2). В простом варианте я сделал программу:
Код:
procedure TForm1.Button1Click(Sender: TObject); var a1,a2,b1,b2,d:real; begin a1:=StrToFloat(StringGrid1.Cells[1, 0]); a2:=StrToFloat(StringGrid1.Cells[2, 0]); b1:=StrToFloat(StringGrid1.Cells[1, 1]); b2:=StrToFloat(StringGrid1.Cells[2, 1]); d:=(a1*b1+a2*b2)/(b1+b2); Label1.Caption:='d= '+FloatToStrF(d,ffFixed,5,2); end; end. |
#2
|
||||
|
||||
![]() Цитата:
столбцов? а не строк? ![]() ![]() |
#3
|
||||
|
||||
![]() Если я правильно понял задание то так:
Код:
procedure TForm1.Button1Click(Sender: TObject); Var i,j: Integer; Pr, SumKi, Sum, D: Real; begin Sum:= 0; SumKi:= 0; For i:= 0 To StringGrid1.ColCount - 1 Do begin Pr:= 1; For j:= 0 To StringGrid1.RowCount - 1 Do Pr:= Pr*StrToFloat(StringGrid1.Cells[i,j]); SumKi:= SumKi + Pr; Sum:= Sum + StrToFloat(StringGrid1.Cells[i,StringGrid1.RowCount-1]); end; D:= SumKi/Sum; end; Тут без разницы сколько строк, столбцов. (Sum - сумма последней строки. Правильно?) If end Then begin; Последний раз редактировалось AND_REY, 18.02.2011 в 22:38. |
#4
|
|||
|
|||
![]() Спасибо, всё работает! но я хочу сделать так, чтобы можно было вводить не все значения, т.е. пустые ячейки приравнивались бы к нулю.
Для одномерного массива это выглядит примерно так: Код:
for i:= 1 to 100 do if Length(StringGrid1.Cells[i-1,0]) <> 0 then a[i] := StrToFloat(StringGrid1.Cells[i-1,0]) else a[i] := 0; |
#5
|
||||
|
||||
![]() Код:
For i:= 0 To StringGrid1.ColCount - 1 Do For j:= 0 To StringGrid1.RowCount - 1 Do if StringGrid1.Cells[i,j] = '' Then StringGrid1.Cells[i,j]:= '0'; If end Then begin; |
#6
|
|||
|
|||
![]() Спасибо! Всё работает!
|