Ошибка В Коде, Решение Слау Методом Итерраций

Тема в разделе "Общие вопросы по С и С++", создана пользователем -, 7 ноя 2011.

  1. Гость

    Собственно столкнулся с проблемой - алгоритм в маткаде работает, все считает верно.
    Как только это же самое перенес в С, не считает.. Хотя, по моему мнению, все верно.
    Вот код, может кто увидит ошибку

    Код (C++):
    #include <stdio.h>
    #include <iostream>
    #include <cmath>
    #include <iostream>
    #include <stdio.h>
    #include <math.h>
    #include <limits.h>
    #include <values.h>
    #include <conio.h>
    #include <iostream.h>
    #include <stdlib.h>
    #include <cstdlib>
    #include <stdlib.h>
    #include <VCL.h>
    #include <iostream.h>
    #include <string.h>
    #include <dos.h>

    FILE *f=fopen( "C:\\input.txt" , "r");
    FILE *f2=fopen( "C:\\output.txt" , "w");


    int main() {
    void readmas(float x[10][10],char name,int n);
    void readmas2(float x[10],char name,int n);
    float A[10][10];
    float B[10];
    float x[10][100];
    int i,j, ha,hb,wa,n;
    float E;
    int k = 1;
    int m = 1;
    float s;


    printf("Vvedite kolichestvo uravnenij:\n");
    scanf("%d",&n);
    printf("\nA:\n");
    readmas(A, 'A',n);
    printf("\nB:\n");
    readmas2(B, 'B',n);
    printf("\nVvedite tochnost resheniya:\n");
    scanf("%f",&E);
    printf("\n");

    while (m > E) {
    m = 0;
    for (i = 1; i <= n; i++) {
    s = 0;
    for (j = 1; j <= n; j++) {
    if (i != j) {
    s = s + A[i][j]*x[j][k];
    }
    }
    x[i][k+1] = (B[i]-s)/A[i][i];
    if (abs(x[i][k+1] - x[i][k]) > m) {
    m = abs(x[i][k+1] - x[i][k]);
    }
    }
    k = k + 1;
    }

    for (i = 1; i <= n; i++) {
    cout<<x[i][k];
    cout<<"\n";
    }

    getch();
    return 0;
    }


    void readmas(float x[10][10],char name,int n)
    {

    int i,j;
    for (i=1; i<=n;i++) {
    for (j=1; j<=n; j++) {
    fscanf(f, "%d", &x[i][j]);
    printf("%d ", x[i][j])   ;
    }
    printf("\n");
    }
    Задание же было - Составить программу решения системы линейных алгебраических уравнений методом итераций.
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    )))))))))))))))))))))))))))))что это, товарисч кодер:

    Код (C++):
    ...
    #include <dos.h>

    FILE *f=fopen( "C:\\input.txt" , "r");
    FILE *f2=fopen( "C:\\output.txt" , "w");


    int main() {
    ...
    ??????
    Я так понимаю, раз ты смог все это написать, то ты сможешь и это объяснить!?
    Да, и еще, что значит "не считает" что выдает программа?))
     
  3. Гость

    Это так сказать подзадания - организовать вывод рез-а в файл, а ввод СЛАУ из файла.
    Это так настораживает?

    Не считает -в прямом смысле. В идеале как должно было быть? Ввел систему уравнений, ввел неизвесные коэф-ы ( из файла ес-но)
    И вместо решения ( если задан массив размерностью 3х3 => 3 корня должно быть ) выдает некие числа, далекие от правды. Очень далёкие.
     
  4. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Ты компилировал эту программу? Что она выдает/не выдает? Описывай проблему конкретней а не так как ты описал "не считает. Вот код, может кто увидит ошибку".
     
  5. Гость

    Естественно, как иначе?
    Скомпилировал - ошибок нету.
    При нахождении неизвестных коэфицентов выдаются НЕ ПРАВИЛЬНЫЕ.
    Выдает - не правильное решение.
     
  6. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    А теперь объясни, как ты вызываешь функции за приделами какого-либо блока? Ни один известный мне компилятор не скомпилирует твой код.

    Я об этом, если ты не понял:
    Код (C++):
    ...
    #include <dos.h>

    FILE *f=fopen( "C:\\input.txt" , "r");
    FILE *f2=fopen( "C:\\output.txt" , "w");


    int main() {
    ...
    Добавлено:
    ))))))))))как эта программа может выдавать фразу "не правильное решение", если в твоем коде этой фразы просто нет!!?????
     
  7. Гость

    Ого, прям ни в одном? Значит у меня уникальный.
    Потому что все работает.
    Если сузить вообще проблему - мой косяк в АЛГОРИТМЕ. Вот я и прошу знающих и прошаренных людей помоч увидеть его.
    На инклуды прошу вообще не обращать внимания, все просто собраны в куче.
    зы в БДС и борланде код отлично компилируется.
     
  8. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Ну ок. Раз он у тебя компилируется.
    Первое что увидел: массив x[][] не инициализирован в этом месте:
    Код (C++):
    s = s + A[i][j]*x[j][k];
    Добавлено: Поехали дальше.
    В С/С++ индексация массивов начинается с нуля, а не с единицы.

    Добавлено: Функцию void readmas2(float x[10],char name,int n); я вообще не вижу. Вижу только прототип и обращение к ней.
     
  9. Гость

    Код был переписан мной из маткада, в маткаде все o'k
    Получается я не имею права использовать значения с 1го?
     
  10. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Например, есть массив int A[10];. Первый его элемент A[0], а последний A[9].
     
  11. Гость

    Это все? Просто для уровня того места, куда мне сдавать, главная задача программы - "чтобы работала"
    Я благодарен за тактичные замечания, но это все? Взгляд вижу намётан у вас, может еще что заметите? :)
     
  12. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Выкладывай исправленный код. В решении систем линейных уравнений я не силен, но помочь найти ошибки в коде я могу:facepalm:
    Пока все. Исправь сначала указанные ошибки.
     
  13. Гость

    Займусь этим на выходных, обязательно!!!! сейчас просто курсач :facepalm:
     
Загрузка...
Похожие Темы - Ошибка Коде Решение
  1. artik009
    Ответов:
    1
    Просмотров:
    1.005
  2. acelash
    Ответов:
    0
    Просмотров:
    1.077
  3. snake0202
    Ответов:
    1
    Просмотров:
    1.352
  4. roshax
    Ответов:
    0
    Просмотров:
    1.228
  5. Антинерусь
    Ответов:
    0
    Просмотров:
    1.232

Поделиться этой страницей