Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Востановление данных в матрице

Ответить
Настройки темы
Delphi - Востановление данных в матрице

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вопрос таков: Нужно создать матрицу 3х3 разработать схему контрольных сумм для востановления данных в матрице.
Зарание спасибо

Отправлено: 22:35, 17-12-2010

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


zDevil, Это не вопрос, это задание.
Вопрос то в чем? Какие требования к матрице, к контрольным суммам, к степени "восстанавливаемости"?
Какие собственные мысли по реализации?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 03:26, 18-12-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Хорошо скажу по другому. Нужна помощь с этой задачей

Отправлено: 18:22, 19-12-2010 | #3


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


zDevil, ок, поменяем ответ. Ты можешь мне помочь построить дачу?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 18:48, 19-12-2010 | #4


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Нужна помощь по курсавой
Есть задача: Нужно создать матрицу 3х3 разработать схему контрольных сумм для востановления данных в матрице.
Есть код:
Код: Выделить весь код
program DataCheck;

{$APPTYPE CONSOLE}

uses
SysUtils;
var data: array of array of integer;
var sum,ind,check,tsum: array of integer;
ldata,i,j:integer;

procedure zero(m_zero:array of integer;length:integer);
begin
for i := 0 to (2*length+1) do begin
m_zero[i]:=0;
end;
end;

procedure data_check;
begin
for i := 0 to (2*ldata+1) do begin
ind[i]:=0;
check[i]:=0;
tsum[i]:=0;
end;

for i := 0 to ldata-1 do begin
for j := 0 to ldata-1 do begin
if data[i,j]=0 then begin
ind[i]:=j;
ind[ldata+j]:=i;
inc(check[i]);
inc(check[ldata+j]);
if i=j then begin
ind[2*ldata]:=i;
inc(check[2*ldata]); end;
if i+j=ldata-1 then begin
ind[2*ldata+1]:=i;
inc(check[2*ldata+1]); end; end;
end; end;

for i := 0 to ldata-1 do
for j := 0 to ldata-1 do begin
if check[i]=1 then begin
tsum[i]:=tsum[i]+data[i,j];
end;
end;

for i := 0 to ldata-1 do
for j := 0 to ldata-1 do begin
if check[ldata+j]=1 then begin
tsum[ldata+j]:=tsum[ldata+j]+data[i,j];
end;
end;

if check[2*ldata]=1 then begin
for i := 0 to ldata-1 do
for j := 0 to ldata-1 do begin
if i=j then
tsum[2*ldata]:=tsum[2*ldata]+data[i,j];
end;
end;

for i := 0 to ldata-1 do
for j := 0 to ldata-1 do begin
if check[2*ldata+1]=1 then begin
if i+j=ldata-1 then
tsum[2*ldata+1]:=tsum[2*ldata+1]+data[i,j];
end;
end;

for i := 0 to ldata-1 do
begin
if tsum[i]<>0 then
data[i,ind[i]]:=sum[i]-tsum[i];
end;

for j := 0 to ldata-1 do
begin
if tsum[ldata+j]<>0 then
data[ind[ldata+j],j]:=sum[ldata+j]-tsum[ldata+j];
end;

for i := 0 to ldata-1 do begin
for j := 0 to ldata-1 do begin
if tsum[2*ldata]<>0 then
data[ind[2*ldata],ind[2*ldata]]:=sum[2*ldata]-tsum[2*ldata];
if tsum[2*ldata+1]<>0 then
data[ind[2*ldata+1],ldata-1-ind[2*ldata+1]]:=sum[2*ldata+1]-tsum[2*ldata+1];
end;
end;
end;

begin
randomize;
ldata:=3;
setlength(ind,2*ldata+2);
setlength(check,2*ldata+2);
setlength(tsum,2*ldata+2);
setlength(sum,2*ldata+2);

setlength(data,ldata);
for i := 0 to ldata-1 do
setlength(data[i],ldata);

for i := 0 to ldata-1 do
for j := 0 to ldata-1 do begin
data[i,j]:=random(9)+1;
end;

for i := 0 to (2*ldata+1) do begin
sum[i]:=0;
end;

for i := 0 to ldata-1 do
for j := 0 to ldata-1 do begin
sum[i]:=sum[i]+data[i,j];
sum[ldata+j]:=sum[ldata+j]+data[i,j];
if i=j then
sum[2*ldata]:=sum[2*ldata]+data[i,j];
if i+j=ldata-1 then
sum[2*ldata+1]:=sum[2*ldata+1]+data[i,j];
end;

for i := 0 to ldata-1 do begin
for j := 0 to ldata-1 do begin
write(data[i,j],' '); end; writeln; end;

for i := 0 to 2*ldata+1 do begin
write(sum[i],' '); end;

for i := 0 to 5 do
data[random(ldata),random(ldata)]:=0;

writeln;
for i := 0 to ldata-1 do begin
for j := 0 to ldata-1 do begin
write(data[i,j],' '); end; writeln; end;

for i := 0 to ldata do begin
data_check();
data_check();
data_check();
end;

writeln;
for i := 0 to ldata-1 do begin
for j := 0 to ldata-1 do begin
write(data[i,j],' '); end; writeln; end;

readln;
end.
в чем нужна помощь: в том что мне надо рассмотреть тему более открыто. А точнее я прошу как бы написали её вы; нужно несколько решений одной задачи

Последний раз редактировалось Drongo, 24-12-2010 в 22:45. Причина: [code]!!!


Отправлено: 21:58, 24-12-2010 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Востановление данных в матрице

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] фото в матрице)) One THE darK Цифровое изображение 3 11-06-2010 18:42
HDD - [решено] Востановление данных с поврежденной таблицей раздела Nsirotin Накопители (SSD, HDD, USB Flash) 1 15-03-2010 18:51
Установка - Помогите пожалуйста(срочно) востановление данных Dos-basist Microsoft Windows 7 3 15-12-2009 14:51
HDD - востановление данных OvosH Накопители (SSD, HDD, USB Flash) 1 11-02-2009 23:54
Удален профиль. Востановление Данных профиля. Windows 2000 unl1ke Microsoft Windows NT/2000/2003 4 29-10-2007 17:40




 
Переход