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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2012, 18:21   #1
Орлов Никита
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
По умолчанию Двумерные массивы в делфи

Заданы матрицы A, B , C, D.
Вычислить след каждой матрицы и упорядочить их в порядке возрастания. Вычисление следа матрицы оформить в виде подпрограммы - функции.

В принципе я знаю как это делать, единственное что я бы хотел у Вас спросить, это то, как я смогу вывести эти массивы на форму?
Как я должен прописать процедуру кнопки, чтобы при нажатии на нее, скажем, массив А выводился на метку Label1.caption?
Для одномерного массива это простейшая задача, а для двумерного уже для меня, как для новичка, сложна.
Или как можно сделать процедуру той же кнопки, чтобы из файла происходил набор этого массива? И как тогда записывать числа в файле?
В интернете пока что не нашел, решил спросить у знатоков
Изображения
Тип файла: jpg Снимок экрана 2012-12-05 в 18.16.19.jpg (8.9 Кб, 129 просмотров)
Орлов Никита вне форума Ответить с цитированием
Старый 05.12.2012, 20:25   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

А зачем выводить массив на метку? Есть более удобные для этого компоненты - например, StringGrid
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 05.12.2012, 21:13   #3
Орлов Никита
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
По умолчанию

Да, верно, я уже изучил StringGrid и уже смог вывести массивы на форму. Теперь встает еще один вопрос передо мной...Там в задании сказано, что операцию вычисления следов функции нужно оформить в виде функции...У меня пока что это не очень получается...Можете помочь с этим? Потому что я в первый раз со StringGrid'ом работаю и я пока что не очень понимаю где что писать...Например, вот первый вопрос, как сделать в функции так, чтобы программа сама определяла сколько строк и столбцов в матрице и, исходя из этого, выполняла строго определенное количество повторений...?
Если есть возможность, напишите, пожалуйста, эту функцию, программу то не надо ее я сам сделаю...а с функцией и обратится не к кому...
Орлов Никита вне форума Ответить с цитированием
Старый 05.12.2012, 21:24   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Показывай, что не получается. То бишь - код в студию, желательно с комментариями, где грабли вылезают (если знаешь, конечно, где). Еще лучше - если к сообщению будет приложен архивчик с проектом - так будет быстрее отлаживать, чем просто код визуально.


По большому счету, след матрицы - это сумма элементов главной диагонали. Если матрицы у Вас одинаковой размерности, то проще всего определить все типом:

Код:
Const N=5; {размерность}

Type TMatrix=array [1..N,1..N] of real; {Тип матриц}


Function Trace(m: Matrix): real;
var i: integer;
    tr: real;
begin
  tr:=0;
  for i:=1 to n do tr:=tr+m[i,i];
  Trace;=tr;
end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 05.12.2012 в 21:32.
Sciv вне форума Ответить с цитированием
Старый 05.12.2012, 21:46   #5
Орлов Никита
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
По умолчанию

Вся сложность уже заключается в том, что две матрицы 2х2, а другие две 3х3.
Вот мой проект.
Я там сделал, чтобы массив выводился в форму в StringGrid, но мне теперь нужно составить функцию, которая посчитала бы след каждой из матриц...Я начал писать функцию, но запнулся там где стоит знак вопроса, потому что не знаю как написать, чтобы программа плюсовала именно тот элемент, который лежит на главной диагонали...и еще как записать, чтобы программа сама определяла количество строк и столбцов, я написал число "2", с учетом того, что максимальная матрица у меня 3х3...
Вложения
Тип файла: rar Лабораторная 7 делфи.rar (264.0 Кб, 10 просмотров)
Орлов Никита вне форума Ответить с цитированием
Старый 06.12.2012, 06:58   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Ну ловите, кое-что сделал, остальное - сами

У Вас самая главная проблема - непонимание, что есть матрица. Вы почему-то работаете с одномерным массивом a[i]. Это конечно, тоже матрица (частный случай), но обычно она называется вектор - это все чисто математически. Работать надо с четырьмя разными массивами: a,b размерностью [n,n] и c,d размерностью [m,m]
Вложения
Тип файла: zip Лабораторная 7 делфи.zip (311.1 Кб, 22 просмотров)
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 06.12.2012 в 07:00.
Sciv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Исправить зaдачку на двумерные массивы... Делфи. kazzz Помощь студентам 0 18.05.2011 18:12
двумерные массивы в делфи deus9604 Помощь студентам 2 10.03.2011 12:32
Делфи-двумерные массивы Lerika Помощь студентам 1 28.04.2009 21:47