![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Определить количество ячеек, удовлетворяющих определенным условиям, в столбце
|
#2
|
||||
|
||||
![]() А поподробнее вопрос
![]() Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#3
|
|||
|
|||
![]() Задача следующая:
Анкета спортсмена, подавшего заявку на соревнование, состоит из его пола, роста, веса, размеров одежды и обуви. По заданной последовательности заявок найти средний размер обуви женщин, вес которых не превышает 50 кг. Код ниже. Непонятно, как вычислить количество ячеек, на которое нужно разделить сумму, чтобы получить среднее арифметическое. Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls; type TForm1 = class(TForm) StringGrid1: TStringGrid; Button1: TButton; Label1: TLabel; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin StringGrid1.Cells[0, 0] := 'Пол'; StringGrid1.Cells[1, 0] := 'Рост'; StringGrid1.Cells[2, 0] := 'Вес'; StringGrid1.Cells[3, 0] := 'Размер одежды'; StringGrid1.Cells[4, 0] := 'Размер обуви'; end; procedure TForm1.Button1Click(Sender: TObject); var i: integer; Sum, Kol: integer; Srob:Real; begin Srob:= 0; Sum:=0; for i := 1 to StringGrid1.RowCount-1 do begin if ((StringGrid1.Cells[0, i] = 'Жен') and (StrToInt(StringGrid1.Cells[2, i]) < 50)) then Sum := (Sum + StrToInt(StringGrid1.Cells[4, i])); Kol:= ???????????; Srob:=Sum/Kol; end; if (Srob <> 0) then ShowMessage('Средний размер обуви женщин равен ' + FloatToStr(Srob)) else ShowMessage('Такой анкеты нет!'); end; end. |
#4
|
||||
|
||||
![]() Так тебе же нужно просто количество строк указать
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#5
|
|||
|
|||
![]() Так оно не фиксированное! Туда же вводятся различные данные, которые не модходят под условия - мужчины или женщины, вес которых выше 50. Нужно указать число тех, кто под условия подходит.
|
#6
|
||||
|
||||
![]() Ну тогда сначала нужно посчитать количество женщин с помощью счетчика
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#7
|
|||
|
|||
![]() Как это сделать?
|
#8
|
||||
|
||||
![]() у тебя код:
Код:
if ((StringGrid1.Cells[0, i] = 'Жен') and (StrToInt(StringGrid1.Cells[2, i]) < 50)) then Sum := (Sum + StrToInt(StringGrid1.Cells[4, i])); Kol:= ???????????; Srob:=Sum/Kol; end; Код:
Kol:=0; Код:
inc(Kol); //увеличивает Kol на единицу вот это пишешь уже после цикла, а не внутри: Код:
Srob:=Sum/Kol; знаете почему внизу эскалатора бабка в будке сидит? она там педальки крутит и лесенка едет! Последний раз редактировалось SerginhoLD, 16.06.2010 в 15:49. |
#9
|
||||
|
||||
![]() запустим еще один цикл для подсчета
Код:
for i := 1 to StringGrid1.RowCount-1 do begin if ((StringGrid1.Cells[0, i] = 'Жен') and (StrToInt(StringGrid1.Cells[2, i]) < 50)) then Sum := (Sum + StrToInt(StringGrid1.Cells[4, i])); for j := 1 to StringGrid1.RowCount - 1 do if StringGrid1.Cells[0,j] = Жен' then Inc(Kol); Srob:=Sum/Kol; end; Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#10
|
|||
|
|||
![]() Вопросы поставил чтоб проблему обозначить, поставил все как ты сказал, не выходит каменный цветок
![]() |
#11
|
||||
|
||||
![]() короче так:
Код:
kol:=0; Sum:=0; for i := 1 to StringGrid1.RowCount-1 do if ((StringGrid1.Cells[0, i] = 'Жен') and (StrToInt(StringGrid1.Cells[2, i]) < 50)) then begin Sum := Sum + StrToInt(StringGrid1.Cells[4, i]); inc(Kol); end; Srob:=Sum/Kol; знаете почему внизу эскалатора бабка в будке сидит? она там педальки крутит и лесенка едет! Последний раз редактировалось SerginhoLD, 16.06.2010 в 15:56. |
#12
|
|||
|
|||
![]() Kailon, все получилось. Огромное человеческое спасибо!)
|
#13
|
||||
|
||||
![]() Пожалуйста
![]() Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |