Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Delphi] Матрица. Сумма диагонадей 
:(
    Опции темы
DeeCee
Дата 16.12.2007, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.11.2007

Репутация: нет
Всего: нет



Дана матрица размера n*n. Сосчитать сумму элементов главной диагонали всех матриц и найти их определители.
PM MAIL   Вверх
Treod
Дата 6.1.2008, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 21.11.2007

Репутация: 1
Всего: 2




Цитата

Сосчитать сумму элементов главной диагонали всех матриц и найти их определители

Как понять? Матрица же вроде одна....
PM MAIL ICQ   Вверх
Burka
Дата 7.1.2008, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: 1
Всего: 2



Код

Var S:integer;
begin
i:=0;
For i:=1 to n
 Inc(s,Matrix1[i]);
end;

а потом складывый S всех матриц..

а что такое определители я хз)

Это сообщение отредактировал(а) Burka - 7.1.2008, 01:11


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
Treod
Дата 7.1.2008, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 21.11.2007

Репутация: 1
Всего: 2



Вот код нахождения определителя:

Код


#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    double *a, k, r, max;
    int i, j ,q, n, j_max;

    cout << "Input n: ";
    cin >> n;
    a=new double [n*n];
    for (i=0; i<n; i++){
        for (j=0; j<n; j++){
            cout << "Input a[" << i << "][" << j << "]=";
            cin >> a[i*n+j];
        }
    }
    for (i=0; i<n; i++){
        for (j=0; j<n; j++)
            cout << a[i*n+j] << " ";
        cout << endl;
    }

    for (i=0; i<n-1; i++){
        // Ищем максимальный по 
        // модулю элемент в столбце
        max=a[i*n+i];
        j_max=i;
        for (j=i+1; j<n; j++){
            if (fabs(a[j*n+i])>fabs(max)){
                max=a[j*n+i];
                j_max=j;
            }
        }
        // Меняем строки местами
        if (j_max!=i){
            for (j=0; j<n; j++){
                r=a[j_max*n+j];
                a[j_max*n+j]=a[i*n+j];
                a[i*n+j]=-r;
            }
        }
        /*
        Если элемент главной диагонали не равен нулю,
        используя элементарные преобразования,
        обнуляем все элементы j-ого столбца,
        начиная с i+1 элемента.
        */
        if (a[i*n+i]!=0){
            for (j=i+1; j<n; j++){
                k=a[j*n+i]/a[i*n+i];
                for (q=i; q<n; q++)
                    a[j*n+q]-=k*a[i*n+q];
            }
        }
        else{
            cout << "Net resh!";
            return 0;
        }
    }
    if (a[(n-1)*n+(n-1)]==0){
        cout << "Net resh!";
        return 0;
    }

    k=1;
    for (i=0; i<n; i++)
        k=k*a[i*n+i];
    cout << endl;
    cout << "det= " << k << endl;

    delete [] a;
    cin >> i;
    return 0;
}



PM MAIL ICQ   Вверх
THandle
Дата 7.1.2008, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



Treod, так ведь надо на Delphi smile 
PM   Вверх
Treod
Дата 7.1.2008, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 21.11.2007

Репутация: 1
Всего: 2




Цитата

Treod, так ведь надо на Delphi 


Сорри, не обратил внимания. Может найдется кто перепишет эту прогу на делфи... 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.2530 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.