Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 842

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
помогите с задачей, пожалуйста....
даны целые числа А1, ..., А10, целочисленная квадратная матрица порядка n. заменить нулями в матрице те элементы, для которых имеются равные числа среди А1, ..., А10.

заранее спасибо!

NeStor Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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™ Причина: Скоро сессия...

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 17 декабря 2018, 05:23
Выполнено за 0.03 сек.
Рейтинг@Mail.ru