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

Помогите исправить программу решения системы уравнений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Объясните код http://www.cyberforum.ru/cpp-beginners/thread1203177.html
Задача Улитка. Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползёт до вершины шеста? Программа получает на вход натуральные числа h, a, b и должна вывести одно натуральное число. Гарантируется, что a>b. При решении этой задачи нельзя пользоваться условной инструкцией if и циклами. int...
C++ Программа, которая будет работать с персональными данными 5 сотрудников малого предприятия Добрый вечер! Я изучать С++ начал, дошел до массивов и попалась задача вот такого содержания: "Программа, которая будет работать с персональными данными 5 сотрудников малого предприятия. Программа должна для каждого сотрудника хранить следующую информацию: • Фамилия • Имя • Отчество • Пол • Год рождения • Должность • Заработная плата http://www.cyberforum.ru/cpp-beginners/thread1203176.html
C++ Сортировка слиянием: подсчитать количество перестановок
Привет всем. Дана задача: подсчитать количество перестановок при сортировке массива. Нужен быстрый алгоритм, желательно алгоритм сортировки слиянием. Вот код: #include <stdio.h> #include <conio.h> void Merge(int *A, int first, int last) { int middle, start, final, j; int *mas=new int; middle = (first + last) / 2; start = first;
C++ Вставка элемента в массив после последнего положительного
Нужно сделать программу, которая бы вставляла после последнего положительного элемента массива заданное значение, в противном случае вывести "ошибку". Что-то не получается. Посмотрите и подскажите, где ошибка? #include <iostream.h> #include <conio.h> #include <stdlib.h> #include <time.h> void main () { int mas, i, a, b; cout<<"Vvedite chislo: "; cin >>a;
C++ Работа с переменными http://www.cyberforum.ru/cpp-beginners/thread1203133.html
В универе дали задание сделать что-то типо текстового редактора, выполняющего три функции: 1. Повышение регистра первых букв слов 2. Добавление в конец текста нового текста 3. Вставка в конец текста новый текст из файла Исходный текст вводится в начале, а затем на выбор предаставляются эти функции, причем порядок использования неважен и количество использования тоже не ограничено. То есть...
C++ Получить все n-элементные последовательности из нулей и единиц содержащие ровно m единиц (m<=n) Получить все n-элементные последовательности из нулей и единиц содержащие ровно m единиц (m<=n) Помогите, пожалуйста подробнее

Показать сообщение отдельно
A7X
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 15
09.06.2014, 14:42  [ТС]     Помогите исправить программу решения системы уравнений
Kuzia domovenok, Проверяла первый алгоритм, вот так все нормально работает:
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
# include <stdio.h>
#include <iostream>
# include <math.h>
#include <conio.h>
#include <locale.h>
 
const int n = 3;
 
int F(int n, double x1[], double x2[]);
 
int main(){
    double A[n][n] = { { 6.0, -1.0, -1.0 }, { -1.0, 6.0, -1.0 }, { -1.0, -1.0, 6.0 } };
    double b[n] = { 11.0, 32.0, 42.0 };
    double x1[n] = { 4.0, 4.0, 4.0 };
    double x2[n] = { 0 };
 
    for (int i = 0; i < n; i++){
        double s = 0;
        for (int j = 0; j < n; j++)
            s = s + A[i][j] * x1[j];
        s = s - A[i][i] * x1[i];
        x2[i] = (1.0 / A[i][i]) * (b[i] - s);
    }
 
    int f = F(n, x1, x2);
 
 
    while ( f == 1){
        for (int i = 0; i < n; i++){
            double t = x2[i];
            double s = 0;
            for (int j = 0; j < n; j++)
                s = s + A[i][j] * x1[j];
            s = s - A[i][i] * x1[i];
            x2[i] = (1.0 / A[i][i]) * (b[i] - s);
            x1[i] = t;
        }
        f = F(n, x1, x2);
    }
 
    for (int i = 0; i < n; i++)
        std::cout << x2[i] << std::endl;
 
    _getch();
    return 0;
}
 
int F(int n, double x1[], double x2[]){
    double eps = 0.001;
    double max = fabs(x2[0] - x1[0]);
    for (int i = 1; i < n; i++){
        if (fabs(x2[i] - x1[i]) > max)
            max = fabs(x2[i] - x1[i]);
    }
    if (max > eps)
        return 1;
    else
        return 0;
 
}
Миниатюры
Помогите исправить программу решения системы уравнений  
 
Текущее время: 01:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru