|
Вопрос # 4 842/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
помогите с задачей, пожалуйста....
даны целые числа А1, ..., А10, целочисленная квадратная матрица порядка n. заменить нулями в матрице те элементы, для которых имеются равные числа среди А1, ..., А10.
заранее спасибо!
|
Вопрос задал: NeStor (статус: Посетитель)
Вопрос отправлен: 19 декабря 2010, 23:05
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Только в качестве утренней зарядки для мозгов в хмурый зимний понедельник...
program p4842;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TVector = array of Integer;
TMatrix = array of array of Integer;
const
RandomLimit = 100;
procedure MakeMatrix(var X: TMatrix; const N: Word);
var
i, j: Integer;
begin
SetLength(X, N, N);
for i:= 0 to N - 1 do
for j:= 0 to N - 1 do
X[i, j]:= Random(RandomLimit);
end;
procedure PrintMatrix(const X: TMatrix);
var
i, j: Integer;
begin
for i:= 0 to Length(X) - 1 do
begin
for j:= 0 to Length(X[i]) - 1 do
Write(X[i, j]: 3);
WriteLn;
end;
end;
function ChangeMatrix(var X: TMatrix; const A: TVector): Word;
var
i, j, k: Integer;
begin
Result:= 0;
for i:= 0 to Length(X) - 1 do
for j:= 0 to Length(X[i]) - 1 do
for k:= 0 to Length(A) - 1 do
if A[k] = X[i, j]
then begin
X[i, j]:= 0;
Inc(Result);
end;
end;
var
X: TMatrix;
A: TVector;
N: Word;
Index: Integer;
begin
Randomize();
Write(' Choose the matrix dimensions (N): ');
ReadLn(N);
MakeMatrix(X, N);
WriteLn(#13#10' Source matrix "X" (', N, 'x', N, '):');
PrintMatrix(X);
WriteLn(#13#10' Source vector "A" (1x10):');
SetLength(A, 10);
for Index:= 0 to Length(A) - 1 do
begin
A[Index]:= Random(RandomLimit);
Write(A[Index]: 3);
end;
Index:= ChangeMatrix(X, A);
WriteLn(#13#10#13#10' Changed matrix (', Index, ' cells changed):');
PrintMatrix(X);
ReadLn;
end.
|
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 20 декабря 2010, 09:23
Оценка за ответ: 5
Комментарий к оценке: Спасибо, правда я в Си ничего не ловлю...
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 20 декабря 2010, 06:06; участников в обсуждении: 2.
|
Егор (статус: 10-ый класс), 20 декабря 2010, 05:30 [#1]:
нифига не понял. подробнее, пожалуйста
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
Мережников Андрей (статус: Абитуриент), 20 декабря 2010, 06:06 [#2]:
в чем, собственно, вопрос? Сложно сделать вложенный цикл прохождения по матрице? Или сравнить элемент матрицы с числами А1..А10? Или присвоить значение элементу матрицы?
|
20 декабря 2010, 08:43: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Лабораторный практикум » Delphi модератором min@y™ Причина: Скоро сессия...
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|