Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2008, 17:59   #1
Ajanami
 
Аватар для Ajanami
 
Регистрация: 25.11.2008
Сообщений: 3
По умолчанию ПОмогите разобраться в коде программы на С++

Заранее извиняюсь, т.к. такой вопрос нужно задавать знакомым в ICQ, а не на форуме. Просто нужно срочно, а спросить не у кого и времени нет залазить в учебники. Компилятор выдает ошибку, не могу ее устранить. Ошибка no match for 'operator>>' in 'infile >> t' в коде
...
for (i=0; i<n; i++)
{
cout<<endl;
for (j=0; j<n+1; j++)
{
infile >> t;
temp[i][j]=t;
cout<<t<<" ";
} ранее в программе использовала outfile<<t, а тут ошибку выдает. Помогите пожалуйста, не понимаю в чем проблема, С++ только начала учить, а пришлось делать программу. Спасибо тем, кто откликнеться.
Ajanami вне форума Ответить с цитированием
Старый 26.11.2008, 02:04   #2
StudentPolitech
Форумчанин
 
Аватар для StudentPolitech
 
Регистрация: 21.11.2008
Сообщений: 400
По умолчанию

Ты хоть бы задачу написала и весь код, компилятор может выдавать ошибку где угодно, не обязательно где он показывает.
Винда, KIS 2010, книжка по С/С++, остальное неважно........
StudentPolitech вне форума Ответить с цитированием
Старый 26.11.2008, 02:24   #3
Ajanami
 
Аватар для Ajanami
 
Регистрация: 25.11.2008
Сообщений: 3
По умолчанию

Нужно реализовать метод Гаусса (единственного деления). Вот весь код. Мне помог далекий знакомый, отрыл где-то у себя с прошлого года. Кое что поисправляла, были ошибки, но одну устранить не могу, в 44 строке.

#include <iostream.h>
#include <math.h>
#include <fstream.h>


float det(float [20][20], int);
void iskl(float a[20][20], int k, int n)
{
int i, j;
float r, b[40];
r=a[k][k];
for (j=k; j<n+1; j++) a[k][j]/=r;
for (i=k+1; i<n; i++)
{
r=a[i][k];
for(j=k; j<n+1; j++) a[i][j]-=a[k][j]*r;
}
}

int _tmain()
{
int i, j, n, k;
float a[20][20], d[20][20], b[40], temp[20][20], t, intDet;

ofstream outfile("matr1.txt");
cout<<"VVedite razmernost yravneniya ";
cin >> n;
cout<<endl;
cout<<"Vvod matricu " <<endl;
for (i=0; i<(n*n+n); i++)
{
cin >> t;
outfile << t <<" ";
}
outfile.close();
cout<<"Matrica "<<endl;

ofstream infile("matr1.txt");
for (i=0; i<n; i++)
{
cout<<endl;
for (j=0; j<n+1; j++)
{
infile >> t;
temp[i][j]=t;
cout<<t<<" ";
}
}

//matrix
for (i=0; i<n; i++)
for (j=0; j<n; j++)
a[i][j]=temp[i][j];
//vektor

intDet=det(a, n);
if (intDet==0)
{
cout<<"Reweniya SLAY net ";
goto net;
}
else
cout<<"det= "<<intDet;

//pryamoi hod metoda Gaussa
cout<<"Treygolnaja matrica "<<endl;
for (i=0; i<n; i++) iskl(temp, i, n);
for (i=0; i<n; i++)
{
cout<<endl;
for (j=0; j<n+1; j++) cout<<temp[i][j]<<' ';
}
//obratnii hod
cout<<"\n";
for (i=0; i<n+1; i++){b[i]=temp[i][n]; cout<<b[i]<<" ";}
cout<<"\n"<<"Rewenie SLAY:"<<endl;
for (i=n; i>-1; i--)
{
b[i]/=temp[i][i];
for (j=i+1; j<n; j++) b[i]-=b[j]*temp[i][j];
}
for (i=0; i<n; i++) cout<<b[i]<<" ";
net:

return 0;
}

float det(float b[20][20], int n)
{
float x,s;
int i,j,k;
for (i=0; i<n-1; i++)
for (k=i+1; k<n; k++)
{
x=b[k][i]/b[i][i];
for (j=i; j<n; j++) b[k][j]=b[k][j]-b[i][j]*x;
}
s=1;
for (i=0; i<n; i++) s=s*b[i][i];
return s;
}
Ajanami вне форума Ответить с цитированием
Старый 26.11.2008, 09:55   #4
como
Форумчанин
 
Регистрация: 26.07.2008
Сообщений: 116
По умолчанию

У тебя infile определен как:
Код:
ofstream infile("matr1.txt");
А надо как:
Код:
ifstream infile("matr1.txt");
Запомни, ofstream - это файловый поток вывода, для него определена операция << (вывод), а ifstream - ввода, для него определена операция >> (ввод).
como вне форума Ответить с цитированием
Старый 26.11.2008, 15:24   #5
Ajanami
 
Аватар для Ajanami
 
Регистрация: 25.11.2008
Сообщений: 3
По умолчанию

Спасибо. Теперь компилируется, осталось только логические отследить)
Ajanami вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с алгоритмом программы Evgenii Помощь студентам 10 07.11.2008 16:07
[C++] ошибка в коде программы!! jazzben Помощь студентам 12 27.09.2008 19:25
Вылетает Out of Bounds в коде помогите разобраться Airou Общие вопросы Delphi 5 24.07.2008 09:56
Можно ли заполнить Combobox в коде программы?! Anna_new Помощь студентам 6 18.04.2008 11:09