Нужно решить простинькую задачку о массивах
вычислить массив Z=sgrt(1+X) где X - положительные корни уравнения Ах+Вcos£, при А=0.75,
£=-1.5+i*h£,
i=0,n,
h£=0.5,
n=10
А где твое решение?)
И если проблема какая, то где вопрос?
Я не думаю что здесь кто то будет решать твою задачу за тебя)
Как я могу написать мой свой вариант решения если С++ я начну учить только в сентебре а летнюю практику нужно написать на этом языке. :-(
Как же ты будешь сдавать решение на языке, который еще не начинал учить?
а B чему равно перед косинусом ?
Вот что накидал
#include <vector>
#include <iostream>
#include <math.h>
using namespace std;
int main()
{ vector <double> z;
double x,a=0.75,b=0.5/*Здесь значение B*/; int n=10;
system("cls");
for(int i=0;i<=n;i++)
{
x=-(b*cos(-1.5+(i*0.5)))/a; //нахождение корня
if (x>0) z.push_back(sqrt(1+x));//проверка корня и если что
} // вычисление очередного э-та вектора Z
for(int i=0;i<z.size();i++)
cout<<"Z["<<i+1<<"]= "<<z[i]<<endl; //вывод содержимого вектора Z
getchar();
cout<<"Bay! Bay! \n";
return 0;
}
Account
Во-первых, будет Warning, потому что размер vector-а - это unsigned int, а не просто int... Не надо смешивать знаковые и беззнаковые типы.
А во-вторых - не надо "освобождать" вектор. Сам удалится, как только выйдет из области видимости.
А вообще, скорее всего, речь шла не об STL. А о "ручном" выделении памяти через new. Они ж даже не начали изучать язык пока...
Включи ВСЕ Warning-и: Project -> Build options -> скрин...
Результат компиляции видно там же.
Включил, только в настройках, чтоб во всех проектах показывались все варнинги))
Тогда можно решить эту проблему во так
for(unsigned int i=0;i<z.size();i++)
Вы спрашивали чему ровно В в условии ничего нету значит вводится с клавиатуры. И писать наверно нужно через nеw (хотя я не знаю что это) так как по ходу прога не должна быть сложной, на подготовления был только месяц за это время врятли много выучиш
Вот переделал под new, и B вводится, но мне кажется что у этой переменной тоже наверное какоето ограничение должно быть...
#include <vector>
#include <iostream>
#include <math.h>
using namespace std;
int main()
{ double* z;
double x,a=0.75,b; int n=10,j=0;
system("cls");
cout<<"Vvedite B: ";
(cin>>b).get();
z = new double [n+1];
for(int i=0;i<=n;i++)
{
x=-(b*cos(-1.5+(i*0.5)))/a; //нахождение корня
if (x>0) {z[j]=sqrt(1+x);j++;}//проверка корня и если что
} // вычисление очередного э-та массива Z
for(int i=0;i<j;i++)
cout<<"Z["<<i<<"]= "<<z[i]<<endl; //вывод содержимого массива Z
getchar();
delete [] z ;
cout<<"Bay! Bay! \n";
return 0;
}
for(int i=0;i<=n;i++) {
if ((x=-(b*cos(-1.5+(i*0.5)))/a)>0) z[j++]=sqrt(1+x); // вычисление и проверка корня и если что
} // вычисление очередного э-а вектора Z
ок убрал <vector> и подправил вычисления условия
#include <iostream>
#include <math.h>
using namespace std;
int main()
{ double* z;
double x,a=0.75,b; int n=10,j=0;
system("cls");
cout<<"Vvedite B: ";
(cin>>b).get();
z = new double [n+1];
for(int i=0;i<=n;i++)
if ((x=-(b*cos(-1.5+(i*0.5)))/a)>0) {z[j]=sqrt(1+x);j++;}//вычисление и проверка корня и если что
// вычисление очередного э-та массива Z
for(int i=0;i<j;i++)
cout<<"Z["<<i<<"]= "<<z[i]<<endl; //вывод содержимого массива Z
getchar();
delete [] z ;
cout<<"Bay! Bay! \n";
return 0;
}