using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; namespace hard { class Program { static void Main(string[] args) { Program app = new Program(); } Program() { bool ok = false double[] w = new double[25]; double[] l = new double[25]; double[] u = new double[25]; double[] z = new double[25]; double ft = 0.0, fx = 0.0, alpha = 0.0, h = 0.0, k = 0.0, vv = 0.0, t = 0.0, x = 0.0; int n = 0, m = 0, m1 = 0, m2 = 0, n1 = 0, flag = 0, i1 = 0, i = 0, j = 0 ; input(ref ok,ref fx,ref ft,ref alpha,ref n,ref m); if (ok) { m1 = m - 1; m2 = m - 2; // n1 = n - 1; /* step 1 */ h = fx / m; k = ft / n; vv = alpha * k / (h * h); /* step 2 */ for (i = 1; i <= m1; i++) w[i - 1] = F(i * h); /* step 3 */ l[0] = 1.0 - 2.0 * vv; u[0] = vv / l[0]; /* step 4 */ for (i = 2; i <= m2; i++) { l[i - 1] = 1.0 - 2.0 * vv - vv * u[i - 2]; u[i - 1] = vv / l[i - 1]; } /* step 5 */ l[m1 - 1] = 1.0 - 2.0 * vv - vv * u[m2 - 1]; /* step 6 */ for (j = 1; j <= n; j++) { /* step 7 */ /* current t(j) */ // t = j * k; z[0] = w[0] / l[0]; /* step 8 */ for (i = 2; i <= m1; i++) z[i - 1] = (w[i - 1] - vv * z[i - 2]) / l[i - 1]; /* step 9 */ w[m1 - 1] = z[m1 - 1]; /* step 10 */ for (i1 = 1; i1 <= m2; i1++) { i = m2 - i1 + 1; w[i - 1] = z[i - 1] - u[i - 1] * w[i]; } } /* step 11 */ output(ft, x, m1,ref w, h); } } private double F(double X) { double f; f = 0.3061 * X * X -2.1286*X+38.11; return f; } private void input(ref bool ok,ref double fx, ref double ft, ref double alpha, ref int n, ref int m ) { Console.Write("Has the function F been created immediately (Y/N) : "); string sonuc = Console.ReadLine(); if (sonuc.ToUpper() == "Y") { Console.WriteLine("The lefthand endpoint on the X-axis is 0."); ok = false; while (!ok) { Console.Write("Input the righthand endpoint on the X-axis: "); fx = Convert.ToDouble(Console.ReadLine()); if (fx < 0.0) Console.WriteLine("Must be positive number."); else ok = true; } ok = false; while (!ok) { Console.Write("Input the maximum value of the time variable T : "); ft = Convert.ToDouble(Console.ReadLine()); if (ft < 0.0) Console.WriteLine("Must be positive number."); else ok = true; } Console.Write("Input the constant alpha: "); alpha = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Input integer m = number of intervals”); Console.WriteLine("input N = number of time intervals"); Console.WriteLine("Note :must be m>3 ve n>0 "); ok = false; while (!ok) { Console.Write("m (>3) = "); m = Convert.ToInt32(Console.ReadLine()); Console.Write("n (>0) = "); n = Convert.ToInt32(Console.ReadLine()); if (m <= 2 || n <= 0) { Console.WriteLine("Numbers are not within correct range."); } else { ok = true; } } } else { Console.WriteLine("The program will end so that the function F can be created."); ok = false; } } public void output(double ft, double x, int m1, ref double[] w, double h) { System.IO.StreamWriter oup; System.IO.TextWriter tmp = Console.Out; Console.WriteLine("Choice of output method."); Console.WriteLine("1. Output to screen"); Console.WriteLine("2. Output to text file"); int flag = Convert.ToInt32(Console.ReadLine()); if (flag == 2) { Console.WriteLine("Sample: D:\\1.txt"); string name = Console.ReadLine(); try { oup = new System.IO.StreamWriter(name); Console.SetOut(oup); write(ft, x, m1, ref w, h); oup.Close(); } catch (System.IO.IOException expc) { Console.WriteLine(expc.Message + " file dont extract."); } } else { write(ft, x, m1, ref w, h); } } private void write(double ft, double x, int m1, ref double[] w, double h) { Console.WriteLine("I\tX(I)\tW(X(I),{0:#.#})", ft); for (int i = 1; i <= m1; i++) { x = i * h; Console.WriteLine("{0:#.##}\t{1:#.###}\t\t{2:#.###}", i, x, w[i - 1]); } } } }
using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.IO; namespace hard { class Program { static void Main(string[] args) { Program app = new Program(); } Program() { bool ok = false; double[] w = new double[25]; double[] l = new double[25]; double[] u = new double[25]; double[] z = new double[25]; double ft = 0.0, fx = 0.0, alpha = 0.0, h = 0.0, k = 0.0, vv = 0.0, t = 0.0, x = 0.0; int n = 0, m = 0, m1 = 0, m2 = 0, n1 = 0, flag = 0, i1 = 0, i = 0, j = 0 ; input(ref ok,ref fx,ref ft,ref alpha,ref n,ref m); if (ok) { m1 = m - 1; m2 = m - 2; // n1 = n - 1; /* step 1 */ h = fx / m; k = ft / n; vv = alpha * k / (h * h); /* step 2 */ for (i = 1; i <= m1; i++) w[i - 1] = F(i * h); /* step 3 */ l[0] = 1.0 - 2.0 * vv; u[0] = vv / l[0]; /* step 4 */ for (i = 2; i <= m2; i++) { l[i - 1] = 1.0 - 2.0 * vv - vv * u[i - 2]; u[i - 1] = vv / l[i - 1]; } /* step 5 */ l[m1 - 1] = 1.0 - 2.0 * vv - vv * u[m2 - 1]; /* step 6 */ for (j = 1; j <= n; j++) { /* step 7 */ /* current t(j) */ // t = j * k; z[0] = w[0] / l[0]; /* step 8 */ for (i = 2; i <= m1; i++) z[i - 1] = (w[i - 1] - vv * z[i - 2]) / l[i - 1]; /* step 9 */ w[m1 - 1] = z[m1 - 1]; /* step 10 */ for (i1 = 1; i1 <= m2; i1++) { i = m2 - i1 + 1; w[i - 1] = z[i - 1] - u[i - 1] * w[i]; } } /* step 11 */ output(ft, x, m1,ref w, h); } } private double F(double X) { double f; f = 0.3061 * X * X -2.1286*X+38.11; return f; } private void input(ref bool ok,ref double fx, ref double ft, ref double alpha, ref int n, ref int m ) { try { FileStream fs = new FileStream("d:\\a.txt", FileMode.Open); StreamReader sr = new StreamReader(fs); List<string> lines = new List<string>(); String line; //add all the lines to a list while ((line = sr.ReadLine()) != null) { lines.Add(line); } //read the lines you would like to read: try { fx = double.Parse(lines[0]); ft = double.Parse(lines[1]); alpha = double.Parse(lines[2]); m = Int32.Parse(lines[3]); n = Int32.Parse(lines[4]); } catch { } } catch (Exception e) { Console.WriteLine("Exception in ShowFile: {0}", e); } } public void output(double ft, double x, int m1, ref double[] w, double h) { System.IO.StreamWriter oup; System.IO.TextWriter tmp = Console.Out; Console.WriteLine("Choice of output method."); Console.WriteLine("1. Output to screen"); Console.WriteLine("2. Output to text file"); int flag = Convert.ToInt32(Console.ReadLine()); if (flag == 2) { Console.WriteLine("Sample: D:\\1.txt"); string name = Console.ReadLine(); try { oup = new System.IO.StreamWriter(name); Console.SetOut(oup); write(ft, x, m1, ref w, h); oup.Close(); } catch (System.IO.IOException expc) { Console.WriteLine(expc.Message + " file dont extract."); } } else { write(ft, x, m1, ref w, h); } } private void write(double ft, double x, int m1, ref double[] w, double h) { Console.WriteLine("I\tX(I)\tW(X(I),{0:#.#})", ft); for (int i = 1; i <= m1; i++) { x = i * h; Console.WriteLine("{0:#.##}\t{1:#.###}\t\t{2:#.###}", i, x, w[i - 1]); } } } }
using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Program app = new Program(); Console.ReadLine(); } Program() { bool ok = false; double[] w = new double[25]; double[] l = new double[25]; double[] u = new double[25]; double[] z = new double[25]; double ft = 0.0, fx = 0.0, alpha = 0.0, h = 0.0, k = 0.0, vv = 0.0, t = 0.0, x = 0.0; int n = 0, m = 0, m1 = 0, m2 = 0, n1 = 0, flag = 0, i1 = 0, i = 0, j = 0; input(ref ok, ref fx, ref ft, ref alpha, ref n, ref m); if (ok) { m1 = m - 1; m2 = m - 2; // n1 = n - 1; /* step 1 */ h = fx / m; k = ft / n; vv = alpha * k / (h * h); /* step 2 */ for (i = 1; i <= m1; i++) w[i - 1] = F(i * h); /* step 3 */ l[0] = 1.0 - 2.0 * vv; u[0] = vv / l[0]; /* step 4 */ for (i = 2; i <= m2; i++) { l[i - 1] = 1.0 - 2.0 * vv - vv * u[i - 2]; u[i - 1] = vv / l[i - 1]; } /* step 5 */ l[m1 - 1] = 1.0 - 2.0 * vv - vv * u[m2 - 1]; /* step 6 */ for (j = 1; j <= n; j++) { /* step 7 */ /* current t(j) */ // t = j * k; z[0] = w[0] / l[0]; /* step 8 */ for (i = 2; i <= m1; i++) z[i - 1] = (w[i - 1] - vv * z[i - 2]) / l[i - 1]; /* step 9 */ w[m1 - 1] = z[m1 - 1]; /* step 10 */ for (i1 = 1; i1 <= m2; i1++) { i = m2 - i1 + 1; w[i - 1] = z[i - 1] - u[i - 1] * w[i]; } } /* step 11 */ output(ft, x, m1, ref w, h); } } private double F(double X) { double f; f = 0.3061 * X * X - 2.1286 * X + 38.11; return f; } private void input(ref bool ok, ref double fx, ref double ft, ref double alpha, ref int n, ref int m) { try { FileStream fs = new FileStream("D:\\1.txt", FileMode.Open); StreamReader sr = new StreamReader(fs); string[] lines = new string[10]; // you cannot use list like that string line; //add all the lines to a list int i = 0; while ((line = sr.ReadLine()) != null) { lines[i++] = (line); } //read the lines you would like to read: fx = double.Parse(lines[0]); ft = double.Parse(lines[1]); alpha = double.Parse(lines[2]); m = Int32.Parse(lines[3]); n = Int32.Parse(lines[4]); } catch (Exception e) { Console.WriteLine("Exception in ShowFile: {0}", e); } ok = true; } public void output(double ft, double x, int m1, ref double[] w, double h) { System.IO.StreamWriter oup; System.IO.TextWriter tmp = Console.Out; Console.WriteLine("Choice of output method."); Console.WriteLine("1. Output to screen"); Console.WriteLine("2. Output to text file"); int flag = Convert.ToInt32(Console.ReadLine()); if (flag == 2) { Console.WriteLine("Sample: C:\\Data\\1.txt"); string name = Console.ReadLine(); try { name = name.Replace(@"\", @"\\"); // look at the changes in the path oup = new System.IO.StreamWriter(name); Console.SetOut(oup); write(ft, x, m1, ref w, h); oup.Close(); } catch (System.IO.IOException expc) { Console.WriteLine(expc.Message + " file dont extract."); } } else { write(ft, x, m1, ref w, h); } } private void write(double ft, double x, int m1, ref double[] w, double h) { Console.WriteLine("I\tX(I)\tW(X(I),{0:#.#})", ft); for (int i = 1; i <= m1; i++) { x = i * h; Console.WriteLine("{0:#.##}\t{1:#.###}\t\t{2:#.###}", i, x, w[i - 1]); } } } }
| DaniWeb Message | |
| Cancel Changes | |