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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
krooglov
0 / 0 / 0
Регистрация: 16.06.2014
Сообщений: 5
#1

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

16.06.2014, 18:00. Просмотров 520. Ответов 6
Метки нет (Все метки)

Добрый день!
Подскажите пожалуйста, какими бы я способами не пробовал не могу впаять в код диалог, в котором определяется как будет вводится матрица, руками или из файла.
Помогите пожалуйста, завтра сдаюсь!!!!!
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;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2014, 18:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Диалог да/нет в (C++):

Диалог с компьютером - C++
Всем привет!!! Только начинаю вникать в С++ и очень рад этому. Наконец то я начал(до этого каждый день самообман о том что завтра начну,...

Многократный диалог с пользователем - C++
Помогите пожалуйста,нужно с помощью функции организовать многократный диалог с пользователем о повторении программы,вот программу написал,а...

Новый диалог не слушается - C++
такая проблема, добавляю к проекту новый диалог IDD_DIALOG2, на основой вешаю кнопку и для неё обрабочик void CTestDialog::OnButton1() ...

Разработка проекта «Диалог» - C++
Создать программу , которая будет выполнять такие действия: пользователь вводит свое имя например « Олег » и нажимает клавишу Enter, после...

Диалог выбора файла - C++
Добрый вечер/ночи! Подскажите, плиз, с помощью какой команды можно открыть диалоговое окно для выбора файла? Спасибо!

DestroyWindow() не закрывает диалог! - C++
BOOL WINAPI OpenProgramDlgProc (HWND hWnd, UINT Message, UINT wParam,LONG lParam) { switch(Message) { case WM_INITDIALOG: ...

6
nmcf
6079 / 5390 / 1876
Регистрация: 14.04.2014
Сообщений: 22,349
16.06.2014, 18:32 #2
В 134-й строке вводишь число, потом анализируешь как строку и к тому же неправильно.
0
krooglov
0 / 0 / 0
Регистрация: 16.06.2014
Сообщений: 5
16.06.2014, 18:41  [ТС] #3
Можете подсказать как правильно?
0
nmcf
6079 / 5390 / 1876
Регистрация: 14.04.2014
Сообщений: 22,349
16.06.2014, 18:44 #4
Например, 1 - да, 0 - нет. И проверяй
C++
1
if(k == 1)
0
krooglov
0 / 0 / 0
Регистрация: 16.06.2014
Сообщений: 5
16.06.2014, 20:00  [ТС] #5
Кто-то может написать как должен выглядеть код уже с работающим диалогом?
Пожалуйста!
0
zss
Модератор
Эксперт С++
6857 / 6419 / 2145
Регистрация: 18.12.2011
Сообщений: 16,854
Завершенные тесты: 1
16.06.2014, 20:11 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от krooglov Посмотреть сообщение
int k;
printf( "Vvesty matricy z failu? " );
scanf("%d", &k);
if (k="y")
Заменяем на
C++
1
2
3
4
char k;
    printf( "Vvesty matricy z failu? " );
    scanf("%c", &k);
if (k=='y')
1
krooglov
0 / 0 / 0
Регистрация: 16.06.2014
Сообщений: 5
17.06.2014, 00:04  [ТС] #7
Спасибо огромное!!
0
17.06.2014, 00:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2014, 00:04
Привет! Вот еще темы с ответами:

Программа ведущая диалог с пользователем - C++
Всем привет. Хочу написать программку, которая отвечает на вопросы пользователя. То есть ведет диалог. Основу и алгоритм программы написал,...

Не получается организовать диалог в программе - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;Windows.h&gt; using namespace std; void main() { setlocale(0, &quot;&quot;); cout &lt;&lt;...

Диалог с пользователем. Консольные команды - C++
Есть несколько команд. После ввода проверяется содержание, если совпадение есть, то выполняется определенное действие, иначе ошибка. Я...

Диалог запроса логина и пароля - C++
Уважаемые программисты, не подскажите как вызвать системный диалог запроса логина и пароля у пользователя через Win32 Api и в какой длл он...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru