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

Диалог да/нет в - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обработка строк http://www.cyberforum.ru/cpp-beginners/thread1209712.html
В тексте найти и вывести на экран все слова максимальной и минимальной длины Написать программу на С++
C++ Обращение к функции, из другого CPP допустим есть один проект, и лепить все в один файл не хочется.. можно ли в разные файлы в одном проекте написать функции.. чтобы в главном файле был только main() и все, и в мейне обращения к функциям http://www.cyberforum.ru/cpp-beginners/thread1209709.html
Создать иерархию классов представляющих простое наследование C++
Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска и удаления слова полиндрома (читающегося в обоих направлениях одинаково) в строке базового класса.
C++ Создать 2 объекта разработанного класса
Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка. В результате выполнения программы в обоих объектах слово MAX длины заменить на слово MIN длины. Содержимое объектов (их строки) до и после обмена вывести на экран.
C++ С++ http://www.cyberforum.ru/cpp-beginners/thread1209704.html
где читать про изменения и нововведения в С++? а то поменяли некоторые функции, хотелось бы и остальное почитать
C++ Подскажите что с рекурсией не так помогите пожалуйста дописать программу условие вычислить используя рекурсию sqrt(8-sqrt(8+sqrt(8-sqrt(8-sqrt(8+ ... знаки перед корнями повторяются "-", "+", "-" вычислять пока этот большой корень не станет равен 2.1847925309 #include <math.h> #include <conio.h> подробнее

Показать сообщение отдельно
krooglov
0 / 0 / 0
Регистрация: 16.06.2014
Сообщений: 5
16.06.2014, 18:00     Диалог да/нет в
Добрый день!
Подскажите пожалуйста, какими бы я способами не пробовал не могу впаять в код диалог, в котором определяется как будет вводится матрица, руками или из файла.
Помогите пожалуйста, завтра сдаюсь!!!!!
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#include <iostream>
#include <iomanip>
#include <cmath>
#include <cstdio>
#include <fstream>
#include <string>
 
void readMatrixFromFile( std::string name, double **a, double *b, int &n )
{
    std::ifstream in( name.c_str(), std::ios::in );
    if ( in.is_open() )
    {
        in >> n;
        for( int i = 0; i < n; ++i )
            for( int j = 0; j <= n; ++j )
            {
                if ( j < n )
                    in >> a[ i ][ j ];
                else
                    in >> b[ i ];
            }
        in.close();
    }
    else
        printf( "Fayl ne znayden!\n" );
}
 
void readMatrix( double **a, double *b, int n )
{
    for( int i = 0; i < n; ++i )
    {
        for( int j = i; j < n; ++j )
        {
            std::cout << "A[ " << i + 1 << ", " << j + 1 << " ] = ";
            std::cin >> a[ i ][ j ];
            a[ j ][ i ] = a[ i ][ j ];
        }
        std::cout << "B[ " << i + 1 << " ] = ";
        std::cin >> b[ i ];
    }
}
 
void printMatrix( double **a, double *b, int n,  bool flag )
{
    for( int i = 0; i < n; ++i )
    {
        for( int j = 0; j < n; ++j )
            printf( "%7.4f ", a[ i ][ j ] );
        if ( flag )
            printf( " | %7.4f", b[ i ] );
        printf( "\n" );
    }
}
 
bool checkMatrix( double **a, int n )
{
    for( int i = 0; i < n; ++i )
        for( int j = i; j < n; ++j )
            if ( a[ i ][ j ] != a[ j ][ i ] )
                return false;
    return true;
}
 
void getMatrixS( double **a, double **s, double *b, int n )
{
    double s1;
 
    for( int i = 0; i < n; ++i )
    {
        s1 = 0.0;
        for( int k = 0; k < i; ++k )
            s1 = s1 + s[ k ][ i ] * s[ k ][ i ];
        s[ i ][ i ] = std::sqrt( a[ i ][ i ] - s1 );
        for( int j = i; j < n; ++j )
        {
            s1 = 0.0;
            for( int k = 0; k < i; ++k )
                s1 = s1 + s[ k ][ i ] * s[ k ][ j ];
            s[ i ][ j ] = ( a[ i ][ j ] - s1 ) / s[ i ][ i ];
        }
    }
}
 
void getVectorY( double **s, double *y, double *b, int n )
{
    double s1;
    for( int i = 0; i < n; ++i )
    {
        s1 = 0.0;
        for( int k = 0; k < i; ++k )
            s1 += s[ k ][ i ] * y[ k ];
        y[ i ] = ( b[ i ] - s1 ) / s[ i ][ i ];
    }
}
 
void gettVectorX( double **s, double *y, double *x, int n )
{
    double s1;
    for( int i = n - 1; i >= 0; --i )
    {
        s1 = 0.0;
        for( int k = i; k < n; ++k )
            s1 += s[ i ][ k ] * x[ k ];
        x[ i ] = ( y[ i ] - s1 ) / s[ i ][ i ];
    }
}
 
void printVector( double *v, int n )
{
    for( int i = 0; i < n; ++i )
        printf( "%7.4f ", v[ i ] );
    printf( "\n" );
}
 
int main()
{
    const int M = 10;
    int n;
 
    double **a = new double *[ M ],
           **s = new double *[ M ],
            *b = new double [ M ],
            *y = new double [ M ],
            *x = new double [ M ];
 
    for( int i = 0; i < M; ++i )
    {
        a[ i ] = new double [ M ];
        s[ i ] = new double [ M ];
    }
 
    int k;
    printf( "Vvesty matricy z failu? " );
    scanf("%d", &k);
    if (k="y")
    {
        readMatrixFromFile( "input", a, b, n );
    }
    else
    {
        printf( "Vvedit' rozmir matricy: " );
        scanf( "%d", &n );
        readMatrix( a, b, n );
    }
    printMatrix( a, b, n, true );
 
    if ( checkMatrix( a, n ) )
    {
        getMatrixS( a, s, b, n );
        std::cout << "Matricya S: " << std::endl;
        printMatrix( s, b, n, false );
        getVectorY( s, y, b, n );
        gettVectorX( s, y, x, n );
        std::cout << "Vector X: ";
        printVector( x, n );
    }
    else
    {
        std::cout << "Nemae rozv'yazku" << std::endl;
    }
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru