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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2013, 22:07   #1
lyubov17
 
Регистрация: 13.10.2013
Сообщений: 6
По умолчанию Программа на языке Си: Определить является ли заданна целочисленная квадратная матрица размером n*n ортонормированной

Всем здравствуйте! Прошу, помогите пожалуйста написать программу на языке Си!!!
Определить является ли заданна целочисленная квадратная матрица размером n*n отронормированной, т.е. такой, в которой скалярное произведение каждой пары различных строк равно 0, а скалярное произведение каждой строки на себя равно 1.
Я, конечно, понимаю, что врятли кто-то захочет писать всю программу за меня! Но хотя бы может часть помогут написать добрые люди! Я просто полный ноль в этом, к сожалению, только начинаю вникать во всё это. Такая задача мне не по зубам.. Заранее благодарю хоть за какую-нибудь помощь!!!
lyubov17 вне форума Ответить с цитированием
Старый 04.12.2013, 07:18   #2
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

попробую помочь. что можете?
есть идеи?
давайте с вас код ввода квадратной матрицы размерности N.
и чему равно скалярное произведение 1 и 3ей строки в матрице
x1 x2 x3
y1 y2 y3
z1 z2 z3
Если вы ответите на эти два несложных вопроса. То мы быстро разберемся с вашей задачей ;-)
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Старый 10.12.2013, 20:25   #3
lyubov17
 
Регистрация: 13.10.2013
Сообщений: 6
По умолчанию

Скалярное произведение строк в матрице, т.е. векторов? Скалярным произведением двух векторов называется число, равное произведению длин этих векторов на косинус угла между ними.

Код ввода квадратной матрицы:
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
scanf("%d%d",&[имя массива][i][j]);

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

нашла вот еще такой отрывок из программы:

bool chek=false;

for(int i=0;i<size;i++)
{
for(int j=0;j<size;j++)
{
if(matrixSource[i] [j] ==matrixE[i] [j])
chek=true;
else
chek=false;
}
}

сразу скажу, я полный ноль в этом.. поэтому прошу хоть какой-то помощи по написанию программы! заранее спасибо!))

Последний раз редактировалось lyubov17; 10.12.2013 в 20:29.
lyubov17 вне форума Ответить с цитированием
Старый 10.12.2013, 21:13   #4
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Цитата:
Скалярное произведение строк в матрице, т.е. векторов? Скалярным произведением двух векторов называется число, равное произведению длин этих векторов на косинус угла между ними
не туда... в этом определении вектор это величина, характеризующаяся размером и направлением.в нашем случае вектор есть нечто иное как строка. поэтому нужно скалярное произведение элементов строк. Но это не к чему,вы верно поняли про А*Ат=Е, где А-исходная,Ат-транспонированная А,и Е -единичная матрица.
Цитата:
и что дальше?
если произведение А*Ат даст единичную матрицу,то А и есть ортонормированная.
теперь по коду
scanf("%d",&[имя массива][i][j]);вы считываете одну переменную,поэтому %d только один. если вы
Цитата:
полный ноль в этом..
советую почитать про циклы и ввод-вывод значений.
по коду вам нужно:
ввести матрицу, уже умеете
потом
цикл по I
цикл по J
Если ( i=j И A[i][j]*A[i][j]!=1) то выход из циклов,матрица не ортонорм. Произведение элементов на главной диагонали отлично от 1
Если (i != j И A[i][j]*A[j][i]!=0) то выход из циклов,матрица не ортонорм. Произведение элементов не дают 0

Конец цикла
Конец цикла

думаю понятны использования условий...если нет-пишите.
З.Ы. Время много,мож чего не так написал. завтра посмотрю еще... пишите-задачу обязательно решим)
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 10.12.2013 в 21:26.
SaLoKiN вне форума Ответить с цитированием
Старый 10.12.2013, 21:17   #5
lyubov17
 
Регистрация: 13.10.2013
Сообщений: 6
По умолчанию

Спасибо за помощь!!!
lyubov17 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить, является ли заданная целая квадратная матрица n-го порядка симметричной Иляна Помощь студентам 1 30.01.2013 00:10
Определить, является ли заданная целая квадратная матрица n- го порядка симметричной (относительно главной диагонали.) Jlovenpk1 Общие вопросы C/C++ 2 16.01.2013 11:33
Дана целочисленная квадратная матрица. Определить сумму элементов в тех строках, которые содержат хотя бы один отрицательный элеме EvgeniyPR Помощь студентам 0 18.11.2012 20:02
Целочисленная квадратная матрица Оля89 Паскаль, Turbo Pascal, PascalABC.NET 1 14.11.2011 02:54