Выполнял лабораторную работу:
Даны вещественные числа a,b. Значения функции (выполняется один
вариант по номеру бригады) записать в массив a[N+1]. Вычислить значения
интегралов по двум формулам(Симпсона и трапеций), используя
сформированный массив. Сравнить полученные значения.
1) Формула трапеций
I1=h*(a[0]/2+a[1]+a[2]+…+a[N-1]+a[N]/2)
2) Формула Симпсона
I2=h/3*( a[0]+a[N] + 4*(a[1]+a[3]+…+a[N-1]) +
2*(a[2]+a[4]+…+a[N-2]))
x изменяется от a до b с шагом h=(b-a)/N,
выполнить программу для N=10, N=100, N=1000.
6. f(x)=x 2 √(2+3x) 3 ; a=0.5; b=2.5;
Написал код:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <locale.h>
using namespace std;
const int N = 10;
main()
{float f, x, a1=0.5, b=2.5, h, i, I1, I2, p1=0, p2=0, a[N+1];
system("CLS");
setlocale(0,"RUS");
h=(b-a1)/N;
i=0;
for(x=a1;x<b;x+=h){
f=x*x*sqrt(pow((2+3*x),3));
a[i]=f;
i++;
}
I1=a[0]/2;
for(i=1;i<N-1;i++)
I1+=a[i];
I1+=a[N]/2;
I1*=h;
for(i=1;i<N-1;i+=2)
p1+=a[i];
for(i=2;i<N-2;i+=2)
p2+=a[i];
I2=h/3*(a[0]+a[N]+4*p1+2*p2);
printf("\nI1 = %f\nI2 = %f",I1, I2);
printf("\n\n");
system("PAUSE");
return 0;
}
При компиляции выдаёт следующие ошибки:
In function 'int main()':
[Error] invalid types 'float [11][float]' for array subscript
[Error] invalid types 'float [11][float]' for array subscript
[Error] invalid types 'float [11][float]' for array subscript
[Error] invalid types 'float [11][float]' for array subscript
C чем может быть связано появление похожих ошибок?
Размер массива не может быть вещественным числом, например, он не может состоять из 2.6 элементов. Размер должен быть задан целой константой.
Вы объявили переменную 'a', а затем попытались объявить массив с тем же именем. Имя переменной должно быть уникальным, несколько переменных с тем же именем не допускаются.
Остальные ошибки, похоже, следствие этих. Вообще очень полезно читать сообщения компилятора. Я, собственно, просто пересказал своими словами то, что он вам написал.
Похоже, вы использовали в качестве размера массива и индекса числа с плавающей точкой...
Что такое массив из 3.5 элементов? Как обратиться к полуторному элементу массива?
Но это - предварительный ответ, потому что без вашего кода ставить диагноз - все равно что ставить диагноз больному по телефону... Приведите свой код.
Update
Диагноз подтверждается - вы используете в качестве индекса число с плавающей точкой. Это недопустимо - ни с точки зрения компилятора, ни с точки зрения обыденной реальности - например, в списке учащихся получить фамилию учащегося номер 8,25...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
В проекте создается экземпляр класса DatabaseManagerВ нем я создаю экземпляры класса Database в функции setupNewDatabase
Будет ли работать _set_se_translator в dll, собранной с флагом /EHa, если подключить такую dll к проекту без такого флага?
Здравствуйте я начал осваивать C++ примерно месяц назадПока что разобрался только с консолью и захотел сделать нормальное приложение, но я совсем...
Сейчас я расширяю от FragmentActivity вот так: