Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Определите, является ли заданная целочисленная квадратная матрица ортонормированной. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ перестановка елементов матрицы http://www.cyberforum.ru/cpp-beginners/thread1077396.html
помогите пожалуйста срочно)). Данная действительно квадратная матрица порядка 2n. Получить новую матрицу переставляя ее блоки размера nxn накрест.
C++ необъявленный идентификатор #include <conio.h> #include <iostream> using namespace std; int vichis(int,int,int&); void cifri(int); void main() { int a; setlocale(0,"rus"); cout<<"Введите число= "; http://www.cyberforum.ru/cpp-beginners/thread1077393.html
Скажите, пожалуйста, возможно ли код сократить еще? C++
Вот код моей программы. #include <fstream> int a,b,c; main(){ std::fstream i("input.txt"),o("output.txt", 2); i>>a>>b>>c; o<<(a>=b+c?"YES":"NO"); } в частности меня интересует можно ли...
C++ Выполнить одно из указанных пользователем арифметических действий над двумя числами
Всем доброго дня! Помогите пожалуйста решить задачу. Задача: Разработайте программу, которая бы выполняла одно из указанных пользователем арифметических действий над двумя числовыми значениями.
C++ Нужно реализовать несколько ссылок http://www.cyberforum.ru/cpp-beginners/thread1077372.html
// вычисляет длину ASCII-строки (строка с нулем на конце) size_t strlen(const char* str); / // копирует source в destination и возвращает указатель на destination char* strcpy(char* destination,...
C++ Вывести элементы массива в виде таблицы и переставить его элементы местами Скажите каким образом переставляется двумерный массив ? К примеру : {1,2,3,4,5} мне нужно элементы поменять местами так чтобы последний (5) стал на место предпоследнего (4) и так со всеми элементами... подробнее

Показать сообщение отдельно
K0DiBeN
Сообщений: n/a

Определите, является ли заданная целочисленная квадратная матрица ортонормированной. - C++

21.01.2014, 14:45. Просмотров 340. Ответов 0
Метки (Все метки)

Уважаемые эксперты,я начинающий программист С++.Дано такое задание:
Разработайте программу обработки массивов. Входные данные введите с клавиатуры. Результаты работы программы отобразите на экране.
Определите, является ли заданная целочисленная квадратная матрица размером N ортонормированной, т.е. такой, в которой скалярное произведение каждой пары различных строк равно 0,а скалярное произведение каждой строки на себя равно 1.
Делал по книге,и не могу понять почему она вообще не работает.Язык Visual studio 2013 c++.
Вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <iomanip>
using namespace std;
template <class T>
{int main()
size_t matrix_size;
cout « "\n\nInput matrix size -> ";
cin » matrix_size;
int **matrix = new int*[matrix_size];
for (int i = 0; i < matrix_size; ++i)
    matrix[i] = new int[matrix_size];
input_matrix(matrix, matrix_size);
cout « '\n';
output_matrix(matrix, matrix_size);
cout «(cheking(matrix, matrix_size) ? "YES" : "NO") « endl;
for (int i = 0; i < matrix_size; ++i)
    delete[] matrix[i];
delete[] matrix; }
T MOD(T a)
 
{
    return ((a) < 0 ? -(a) : (a));
}
 
void input_matrix(int **matrix, const size_t matrix_size)
{
    for (int i = 0; i << matrix_size; ++i)
    for (int j = 0; j << matrix_size; ++j)
    {
        cout « "\nMatrix[" « i « "][" « j « "] = "<<endl;
        cin » matrix[i][j];
    }
}
 
void output_matrix(int **matrix, const size_t matrix_size){
    for (int i = 0; i < matrix_size; ++i){
        for (int j = 0; j < matrix_size; ++j)
            cout « setw(3) « matrix[i][j] « ' ';
    }
    cout « '\n';
}
 
bool cheking(int **matrix, const size_t matrix_size)
{
    bool ort = true;
    int pr = 0;
    for (int i = 0; i < matrix_size - 1 && ort; ++i)
    {
        pr = 0;
        for (int k = i + 1; k < matrix_size && ort; ++k)
        for (int j = 0; j < matrix_size; ++j)
            pr += matrix[i][j] * matrix[k][j];
        if (MOD(pr) > 0.0001)
            ort = false;
    }
    for (int i = 0; i < matrix_size - 1 && ort; ++i)
    {
        pr = 0;
        for (int j = 0; j < matrix_size; ++j)
            pr += matrix[i][j] * matrix[i][j];
        if (MOD(pr - 1) > 0.0001)
            ort = false;
    }
    return ort;
}
 
int main() {
    size_t matrix_size;
    cout « "\n\nInput matrix size -> ";
    cin » matrix_size;
    int **matrix = new int*[matrix_size];
    for (int i = 0; i < matrix_size; ++i)
        matrix[i] = new int[matrix_size];
    input_matrix(matrix, matrix_size);
    cout « '\n';
    output_matrix(matrix, matrix_size);
    cout «(cheking(matrix, matrix_size) ? "YES" : "NO") « endl;
    for (int i = 0; i < matrix_size; ++i)
        delete[] matrix[i];
    delete[] matrix;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru