Обработка исключений при расчете формулы - C#
Формулировка задачи:
День добрый, ткните плиз носом где я что не так сделал
Суть в чем, нужно найти значения функций и записать их в различные массивы и произвести обработку искл ситуаций. Так вот почему-то не работает обработка искл ситуаций, а именно когда рез функции NaN. Пытаюсь заменить NAN на 0 но все равно получаю NaN
Заранее спс)
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 WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { int i, j, q, iskl, n; double x; n = 0; for (x = -3; x <= 7; x += 0.5) //считаем кол-во эл. массивов { n++; } double[] a = new double[n]; double[] b = new double[n]; Random rand = new Random(); double[] c = new double[n]; i = 0; iskl = 0; for (x = -3; x <= 7; x += 0.5) //операции с массивом 1 { try { checked { a[i] = Math.Cos((x - 1) / (x + 1)); } } catch (NotFiniteNumberException) //NaN { a[i] = 0; ++iskl; } catch (DivideByZeroException) //деление на ноль { a[i] = 0; ++iskl; } catch (Exception) //Остальные ошибки { a[i] = 0; ++iskl; } finally { richTextBox1.AppendText(("A [" + Convert.ToString(i + 1) + "] = " + String.Format("{0:0.00}", a[i]) + Environment.NewLine)); ++i; } } for (j = 0; j < n; j++) //второй массив { b[j] = rand.Next(-100, 100); richTextBox2.AppendText(("B [" + Convert.ToString(j+1) + "] = " + Convert.ToString(b[j]) + Environment.NewLine)); } for (q = 0; q < n; q++) //трейтий массив { try { c[q] = Math.Sqrt(a[q] + b[q]); } catch (NotFiniteNumberException) //NaN { c[q] = 0; ++iskl; } catch (IndexOutOfRangeException) //при переполнении массива выходим из его { q = n;//выходим из цикла ++iskl; } catch (Exception) //деление на ноль и другие ошибки { c[q] = 0; ++iskl; } finally { richTextBox3.AppendText(("С [" + Convert.ToString(q+1) + "] = " + String.Format("{0:0.00}", c[q]) + Environment.NewLine)); } } label4.Text = Convert.ToString(iskl); } } }
Решение задачи: «Обработка исключений при расчете формулы»
textual
Листинг программы
var a = Math.Cos(double.PositiveInfinity);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д