|
Вопрос # 6 341/ вопрос решён / |
|
Приветствую, уважаемые эксперты! Помогите мне пожалуйста с кодом.
Задание: Вычислить и запомнить сумму и число положительных элементов каждого столбца матрицы(матрица А(10,15)). Результаты отпечатать в виде двух строк.
Буду очень благодарна!
Приложение: Переключить в обычный режим- unit Unit1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, Grids;
-
- type
- matricAr=array of integer ;
- TForm1 = class(TForm)
- matric: TStringGrid;
- Label1: TLabel;
- vyvMat: TButton;
- rasSym: TButton;
- procedure FormCreate(Sender: TObject);
- procedure vyvMatClick(Sender: TObject);
- procedure rasSymClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.dfm}
-
- procedure TForm1.FormCreate(Sender: TObject);
- var
- i,j:integer;
- begin
- for i:=0 to 15 do
- for j:=0 to 10 do
- begin
- matric.Cells[0,i]:='i'+IntToStr(i+1);
- matric.Cells[j,0]:='j'+IntToStr(j+1);
-
-
- end;
- end;
-
- procedure TForm1.vyvMatClick(Sender: TObject);
- var
- n,i,j:integer;
- Begin
- Randomize;
- For n:=1 to 1000 do
- For j:=1 to 1000 do
- Begin
- matricAr[n]:=-100+randon(200)
-
- End;
- end;
-
- procedure TForm1.rasSymClick(Sender: TObject);
- var
- s,i:integer;
- begin
- s:=0;
- i:=0;
-
- if matric.Cells>0 then
- s:=s+matric.Cells;
-
- end;
-
- end.
 |
Вопрос задала: m@riya (статус: Посетитель)
Вопрос отправлен: 22 декабря 2012, 19:03
Состояние вопроса: решён, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Написал за 5 минут.
program p6341;
{$APPTYPE CONSOLE}
{
Вычислить и запомнить сумму и число положительных элементов каждого
столбца матрицы(матрица А(10,15)). Результаты отпечатать в виде двух строк.
}
uses
SysUtils;
const
RowCount = 10;
ColCount = 15;
type
TMatrix = array[0..RowCount - 1, 0..ColCount - 1] of Integer; // Integer - не принципиально.
TVector = array[0..ColCount - 1] of Integer;
procedure MakeMatrix(var X: TMatrix);
var
Row, Col: Integer;
begin
for Row:= 0 to RowCount - 1 do // строка
begin
for Col:= 0 to ColCount - 1 do // столбец
begin
X[Row, Col]:= Random(50) - 24; // -24...+25 (для примера)
Write(X[Row, Col]: 4);
end;
WriteLn;
end;
end;
procedure Execute(const X: TMatrix; var Sum, Count: TVector);
var
Row, Col: Integer;
begin
for Col:= 0 to ColCount - 1 do // столбец
begin
Sum[Col]:= 0; // сумма положительных элементов столбцов
Count[Col]:= 0; // количество положительных элементов столбцов
for Row:= 0 to RowCount - 1 do // строка
if X[Row, Col] > 0
then begin
Inc(Sum[Col], X[Row, Col]);
Inc(Count[Col]);
end;
end;
end;
procedure PrintVector(const V: TVector);
var
Index: Integer;
begin
for Index:= 0 to High(TVector) do
Write(V[Index]: 4);
WriteLn;
end;
var
A: TMatrix;
Sum, Count: TVector;
begin
MakeMatrix(A);
Execute(A, Sum, Count);
WriteLn;
PrintVector(Sum);
PrintVector(Count);
ReadLn;
end.
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 24 декабря 2012, 09:23
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 23 декабря 2012, 15:53; участников в обсуждении: 1.
22 декабря 2012, 21:02: Вопрос перемещён из тематического раздела Delphi » Работа с компонентами и библиотеками в раздел Лабораторный практикум » Delphi модератором DNK
|
Толяныч (статус: 4-ый класс), 23 декабря 2012, 15:53 [#1]:
Где тут вообще в задании хоть слово про stringGrid? Матрица, как я полагаю, числовая, какого типа - неясно, то ли real, то ли integer. Нужно определиться и работать как с числами, преобразовывать в строку только для вывода.
Сами себе создаем трудности а потом призываем форумцев героически их преодолеть?
|
18 марта 2013, 21:32: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|