По заданной последовательности заявок найти средний размер обуви
Анкета спортсмена, подавшего заявку на соревнование, состоит из его пола, роста, веса, размеров одежды и обуви. По заданной последовательности заявок найти средний размер обуви женщин, вес которых не превышает 50 кг.
Как то уже что то такое делал...
Немного не то, но под себя подогнать можно, если надо, скину весь проект, с формой
Код:
//Анкета спортсмена, подавшего заявку на соревнование, состоит из его
//пола, роста, веса, размеров одежды и обуви.
//По заданной последовательности заявок найти
//суммарный рост всех тех спортсменок, рост которых превышает два метра,
//и общий вес тех спортсменок, которые носят одежду 46 размера.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(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);
begin
StringGrid1.RowCount := StringGrid1.RowCount + 1;
end;
//***************************************************************************
//Произвести выборку
procedure TForm1.Button2Click(Sender: TObject);
var
i: integer;
Len, Weight: integer;
begin
//Начальные рост и вес
Len := 0;
Weight := 0;
//Пройтись по всем строкам таблицы
for i := 1 to StringGrid1.RowCount-1 do
begin
//Если женский пол и рост больше 200
if ((StringGrid1.Cells[0, i] = 'Ж') and//Женский пол
(StrToInt(StringGrid1.Cells[1, i]) > 200)) then//Рост больше 2 м.
Len := Len + StrToInt(StringGrid1.Cells[1, i]);//Считаем рост
//Если женчкий пол и размер одежды 46
if ((StringGrid1.Cells[0, i] = 'Ж') and//Женский пол
(StringGrid1.Cells[3, i] = IntToStr(46))) then//Размер одежды
Weight := Weight + StrToInt(StringGrid1.Cells[2, i]);//Считаем общий вес
end;
//Если суммарные рост и вес не равны 0, то
if (Len <> 0) and (Weight <> 0) then
ShowMessage('Суммарный рост ' + IntToStr(Len) + #10 +
'Суммарный вес ' + IntToStr(Weight))
else
ShowMessage('Таких анкет нет!');
end;
//***************************************************************************
//Очистить таблицу
procedure TForm1.Button3Click(Sender: TObject);
var
i: integer;
begin
for i := 1 to StringGrid1.RowCount-1 do
StringGrid1.Rows[i].Clear;
StringGrid1.RowCount := 2;
end;
//***************************************************************************
end.
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Смотрите, что получается. Не знаю, как задать количество необходимых ячеек, чтобы найти среднее арифметическое.
Код:
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;
Kol:=0;
//Пройтись по всем строкам таблицы
for i := 1 to StringGrid1.RowCount-1 do
begin
//Если женский пол и вес не превышает 50
if ((StringGrid1.Cells[0, i] = 'Жен') and//Женский пол
(StrToInt(StringGrid1.Cells[2, i]) < 50)) then//Вес меньше 50.
Sum := (Sum + StrToInt(StringGrid1.Cells[4, i]));//Считаем рост
Kol:= ????????? //количество ячеек
Srob:=Sum/Kol;
end;
//Если суммарные рост и вес не равны 0, то
if (Srob <> 0) then
ShowMessage('Cредний размер обуви женщин, вес которых не превышает 50 кг, равен ' + FloatToStr(Srob))
else
ShowMessage('Таких анкет нет!');
end;
end.
Admin: Пользуемся тегами!
Последний раз редактировалось Admin, 16.06.2010 в 10:00.