помогите пожалуйста с прогой! доделать мне надо

Модератор: Модераторы

помогите пожалуйста с прогой! доделать мне надо

Сообщение dima » 29.12.2011 21:09:12

помогите пожалуйстас прогой!доделать мне надо короче посчитать сумму элементов столбца и сумма элементов строки он мне короче хрен считает

Код: Выделить всё
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids,
  ExtCtrls, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Edit1: TEdit;
    Edit2: TEdit;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  i,j:integer;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  StringGrid1.ColCount:=strtoint(ComboBox1.Text);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  for i:=0 to StringGrid1.ColCount-1 do
  for j:=0 to StringGrid1.RowCount-1 do
  with StringGrid1 do
    Cells[i, j]:=inttostr(random(10));

end;

procedure TForm1.Button2Click(Sender: TObject);
var k:integer;
begin
for i:=0 to StringGrid1.ColCount-1 do
  for j:=0 to StringGrid1.RowCount-1 do
  with StringGrid1 do
  k:=k+strtoint(Cells[i,j]);
    Edit1.text:=inttostr(k);
end;

procedure TForm1.Button3Click(Sender: TObject);
var k:integer;
begin
  k:=0;
  for j:=0 to StringGrid1.ColCount-1 do
  begin
  for i:=0 to StringGrid1.RowCount-1 do
  with StringGrid1 do
  k:=k+strtoint(Cells[i,j]);
    Edit2.text:=Edit2.text+' '+inttostr(k);
     k:=0;
    end;
  end;

procedure TForm1.ComboBox2Change(Sender: TObject);
begin
  StringGrid1.RowCount:=strtoint(ComboBox2.Text);
end;



end.
dima
незнакомец
 
Сообщения: 1
Зарегистрирован: 29.12.2011 21:05:25

Re: ПОМОГИТЕ ПОЖАЛУЙСТА С ДОДЕЛКой ПРОГИ

Сообщение tema » 29.12.2011 21:17:57

Изображение
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

Re: помогите пожалуйста с прогой! доделать мне надо

Сообщение WAYFARER » 30.12.2011 10:45:14

dima, используйте тег code когда выкладываете код, иначе нет никакого желания его читать
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: помогите пожалуйста с прогой! доделать мне надо

Сообщение Padre_Mortius » 30.12.2011 19:38:06

dima,
что вы пытаетесь сделать в процедурах Button2Click и Button3Click?
Тут нет вычисления суммы столбца или строки. Тут вычисляется сумма диагонали.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: помогите пожалуйста с прогой! доделать мне надо

Сообщение tema » 30.12.2011 23:05:40

Padre_Mortius писал(а):dima,
что вы пытаетесь сделать в процедурах Button2Click и Button3Click?
Тут нет вычисления суммы столбца или строки. Тут вычисляется сумма диагонали.

Не диагонали, а всех элементов.
В приведённой задаче нет места, где вводится сумму какого столбца или какой строки посчитать. Полагаю задача чужая и вопрос не "помогите с задачей", а "сделайте за меня"
Хотя тут:
Код: Выделить всё
procedure TForm1.Button3Click(Sender: TObject);
var k:integer;
begin
  k:=0;
  for j:=0 to StringGrid1.ColCount-1 do
  begin
  for i:=0 to StringGrid1.RowCount-1 do
  with StringGrid1 do
  k:=k+strtoint(Cells[i,j]);
    Edit2.text:=Edit2.text+' '+inttostr(k);
     k:=0;
    end;
  end;

Написано всё правильно. На выходе получается строка сумм элементов столбцов через пробел. Только Edit2.Text обнулять стоит в начале процедуры.
Раз уж таки начал решать, то строку сумм элементов строк можно получить элементарной переменой мест двух строк кода (заодно k:=0; на более правильное место поставил и Edit обнулил):
Код: Выделить всё
procedure TForm1.Button2Click(Sender: TObject);
var k:integer;
begin
Edit1.text:='';
  for i:=0 to StringGrid1.RowCount-1 do
  begin
     k:=0;
  for j:=0 to StringGrid1.ColCount-1 do
  with StringGrid1 do
  k:=k+strtoint(Cells[i,j]);
    Edit1.text:=Edit1.text+' '+inttostr(k);
    end;
end;
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

Re: помогите пожалуйста с прогой! доделать мне надо

Сообщение Padre_Mortius » 31.12.2011 01:14:39

tema писал(а):Не диагонали, а всех элементов.

Тут ошибся. ибо писал на работе. На самом деле и задача не очень понятна, может нужно выводить сумму выделенного столбца или строки. Оставим решение за топик-стартером
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб


Вернуться в Помощь за вознаграждение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru