Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2010, 18:05   #1
Any13
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 10
По умолчанию Вычислить среднеарифметическое значение элементов для каждой строки матрицы в Delphi

Подскажите, пожалуйста. Вот написала программу, все работает, но считает среднее арифмитическое только для последней строки, а не для каждой. Объясните в чем ошибка. Вот код.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, Grids;
type
TForm1 = class(TForm)
Button1: TButton;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
LabeledEdit4: TLabeledEdit;
LabeledEdit5: TLabeledEdit;
StringGrid1: TStringGrid;
Button2: TButton;
BitBtn1: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var n,m,xn,xk,i,j:integer;
Ssr:real;
x:array of array of integer;
begin
randomize;
n:=strToInt(LabeledEdit1.Text);
m:=strToInt(LabeledEdit2.Text);
xn:=strToInt(LabeledEdit3.Text);
xk:=strToInt(LabeledEdit4.Text);
StringGrid1.RowCount:=n;
StringGrid1.ColCount:=m;
Setlength(x,n,m);
for i:=0 to n-1 do
begin
Ssr:=0;
for j:=0 to m-1 do
Begin
x[i,j]:=random(xk-xn+1)+xn;
StringGrid1.Cells[j,i]:=IntToStr(x[i,j]);
Ssr:=Ssr+x[i,j];
end;
Ssr:=Ssr/m;
LabeledEdit5.Text:=FormatFloat('0.0 0',Ssr);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
LabeledEdit1.Clear;
LabeledEdit2.Clear;
LabeledEdit3.Clear;
LabeledEdit4.Clear;
LabeledEdit5.Clear;
end;
end.
end;
end.
Any13 вне форума Ответить с цитированием
Старый 09.03.2010, 18:13   #2
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Код:
LabeledEdit5.Text:= LabeledEdit5.Text +FormatFloat('0.0 0',Ssr) + '   ';
profi вне форума Ответить с цитированием
Старый 09.03.2010, 18:21   #3
shelest
Пользователь
 
Аватар для shelest
 
Регистрация: 01.11.2009
Сообщений: 99
По умолчанию

программа в консольном режиме, думаю переделать в обьектно ориентированый вид не сложно
Код:
 program project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var p:integer;
type matr=array[1..100,1..100]  of integer;
var c:matr;
var i,j,k,n,m: integer;
procedure vvod_matrici (var c:matr);
var i,j: integer;
begin
writeln ('vvedite matricu');
 for I := 1 to n do
    for j := 1 to m do
    readln (c[i,j]);
end;
procedure vvod_matrici2 (var c:matr);
var i,j: integer;
begin
  randomize;
  for i:=1 to n do
  for j := 1 to m do
  c[i,j]:=1+random(11);
end;
procedure vivod_matrici (var c:matr);
var i,j: integer;
begin
for I := 1 to n do
begin
  for j := 1 to m do
  write(c[i,j]:6);
  writeln
end;
end;
 procedure vektor (c:matr);
Var  sr:integer;
 Begin
write ('koordinaty vektora B:');
for i:=1 to n do
Begin
sr:=0;
for j:=1 to m do
sr:=sr+c[i,j];
Write (sr div m:3);
End;

End;
begin
 writeln ('Vvedi kolichestvo strok');
 readln(n);
 writeln ('Vvedite kolichestvo stolbcov');
 readln (m);
 writeln ('vvedi 1 esli vvod sluchaen 0 esli s klaviaturi');
 readln (p);
 if p=1 then vvod_matrici2(c);
 if p=0 then vvod_matrici(c);
 vivod_matrici(c);
 vektor(c);

  readln
end.

Последний раз редактировалось shelest; 09.03.2010 в 18:28.
shelest вне форума Ответить с цитированием
Старый 09.03.2010, 18:29   #4
Any13
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 10
По умолчанию

profi, shelest Спасибо вам, добрые люди!) Все заработало) Еще раз благодарствую.
Any13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить сумму элементов каждой строки до первого отрицательного zealot74 Общие вопросы C/C++ 4 19.01.2010 10:29
Вычислить и запомнить суммы положительных элементов каждой строки матриц Babur4iK Помощь студентам 8 18.11.2009 13:56
найти среднеарифметическое значение принадлежащих отрезку [-8;+8] элементов (n-i+1)-й строки. Nani Помощь студентам 2 12.06.2009 21:11
Вычислить и запомнить суммы положительных элементов каждой строки матрицы kiko Паскаль, Turbo Pascal, PascalABC.NET 1 13.12.2008 17:32