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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2010, 13:33   #1
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию возвести матрицу в степень !!!

есть исходная динамическая матрица в stringgrid . по нажатию кнопки , матрица должна умножаться саму на себя . вывод осуществлять в том же stringgrid .
Народ прошу помочь , а то сам че та написать на могу
drylozav вне форума Ответить с цитированием
Старый 03.10.2010, 13:37   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Покажите, что написали.

Если ничего -
читаем маны по информатике - раздел Hello World на Delphi.
читаем маны по матану - раздел перемножение матриц - это не так просто, как кажется.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 03.10.2010, 13:43   #3
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

var
k,i,j:integer;
s:real;
begin
for i:=0 to stringgrid1.colcount-1 do
for j:=0 to stringgrid1.rowcount -1 do begin
s:=0;
for k:=0 to stringgrid1.colcount -1 do
s:=s+stringgrid1.cells[k,i]*stringgrid1.cells[j,k];
stringgrid1.cells[j,i]:=s;

конечно , наверное то что здесь написано является бредом , но до большего додуматься не мог , программирую совсем недолго
drylozav вне форума Ответить с цитированием
Старый 03.10.2010, 13:48   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Так, ясно...

курим: http://ru.wikipedia.org/wiki/%D0%9F%...80%D0%B8%D1%86

1) Считываем таблицу из Cells в два двумерных массива.
2) Производим матан. (Помним девиз - "не учишь матан - пойдешь на метан!")
3) Вставляем получившееся чудо обратно в Cells.

Если попытаетесь производить действия сразу - с вашим уровнем знаний запутаетесь.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 03.10.2010 в 13:53.
Alex Cones вне форума Ответить с цитированием
Старый 03.10.2010, 13:53   #5
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

можно уточнить . то есть я должен создать такой же динамический массив , но не выводить его , а просто хранить его в памяти компьютера . а потом просто перемножать эти две матрицы , как рассказано в примере ? да ?
drylozav вне форума Ответить с цитированием
Старый 03.10.2010, 13:57   #6
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Да, для вашего уровня знаний это будет самый простой и наглядный способ. Только не один массив, а два, т.к. первый во время перемножения будет изменяться.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 03.10.2010, 14:10   #7
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

Код:
var
a:array of array of real;
b:array of array of real;
s:real;
n:integer;
i,j,k:integer;
begin
a[i,j]:=stringgrid1.cells[j,i];
b[i,j]:=stringgrid1.cells[j,i];
for i:=0 to n do
for j:=0 to n do begin
s:=0;
for k:=1 to n do begin
s:=s + a[i, k]*b[k, j];
         stringgrid1.cells := s;
Вот так правильно ??

если не так , то скажите какие нужно внести поправки .

Последний раз редактировалось Stilet; 03.10.2010 в 19:33.
drylozav вне форума Ответить с цитированием
Старый 03.10.2010, 14:31   #8
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Код:
stringgrid1.cells[i,j] := s;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 03.10.2010, 15:18   #9
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

а здесь нету ошибки . можете этот вариант написать без ошибок пожалуйста ?

скажите , а почему моя программа не работает ?? то есть вроде код написан верно , но она или зацикливает или пишет ошибку или вообще ничего не пишет ???
скажи те может для двух динамических матриц нужно ввести setlength ??
если кто то может напишите правильный работающий код или помогите доработать этот !!!
люди ил хотя бы дайте ссылки на какие нибудь схожие с моей темой задачи !!!!!!!!!

Последний раз редактировалось Stilet; 03.10.2010 в 19:34.
drylozav вне форума Ответить с цитированием
Старый 03.10.2010, 19:37   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если я правильно понял задание то обработчик кнопки должен выглядеть так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
 with StringGrid1 do
  for i:=0 to RowCount-1 do
   for j:=0 to ColCount-1 do Cells[i,j]:=IntToStr(sqr(StrToInt(Cells[i,j])));
end;
Это если я правильно понимаю насчет умножения матрицы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как возвести число в степень? Wintrymoon Паскаль, Turbo Pascal, PascalABC.NET 36 09.05.2011 15:11
как возвести в степень??? Yokka Свободное общение 4 24.03.2010 12:52
Возвести в степень b некоторое число a Михаил70 Общие вопросы Delphi 3 09.09.2009 16:10
Объясните пожалуйста как можно считать значения в этом файле в вектор, 4 -ую матрицу, 6-ую матрицу ciaonataha Помощь студентам 1 30.03.2009 20:57
как ВОЗВЕСТИ В СТЕПЕНЬ? Sova123456 Помощь студентам 2 14.05.2008 20:19