Вычисление интеграла методом Симпсона в среде visual c#
Формулировка задачи:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace simpson
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// Заданная функция
double f1 (double x) { return 1/Math.Sqrt(x*x+1.2); }
private void button1_Click(object sender, EventArgs e)
{
/* a и b -границы отрезка, на котором ищется интеграл
n – число отрезков
h – шаг
Q1 – значение интеграла при n=8
Q2 – значение интеграла при n=16
*/
double a,b,h,Q1,Q2,Q; int n,i; // объявили переменные
a = 0.8; b = 1.6;
n = 8; h = (b-a)/n;
Q1 = f1(a)+f1(b);
double s1=0, s2=0, x=a;
for (i=1; i<n; i++)
{
x += h;
if (i%2)
// сумма значений функции в точках с нечетными номерами
s1 += f1(x);
else
// сумма значений функции в точках с четными номерами
s2 += f1(x);
}
Q1 = h/3*(Q1+4*s1+2*s2);
listBox1.Items.Add(Convert.ToString(Q1));
n = 16;
h = (b-a)/n;
Q2 = f1(a)+f1(b);
s1=0; s2=0; x=a;
for ( i=1; i<n; i++)
{
x += h;
if (i % 2)
// сумма значений функции в точках с нечетными номерами
s1 += f1(x);
else
// сумма значений функции в точках с четными номерами
s2 += f1(x);
}
Q2 = h/3*(Q2+4*s1+2*s2);
listBox2.Items.Add(Convert.ToString(Q2));
Q = Math.Abs(Q1 - Q2) / 15;
listBox3.Items.Add(Convert.ToString(Q));
}
}
}
Ошибка: Неявное преобразование типа "int" в "bool" невозможно, ругается на if (i[COLOR="Red"]%[/COLOR]2)
Подскажите, что я упустил?Решение задачи: «Вычисление интеграла методом Симпсона в среде visual c#»
textual
Листинг программы
if (i%2 == 0 или 1)