Составить блок-схему по готовой программе - C#

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста составить блок-схему) ума не приложу как это сделать
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Runtime.InteropServices;
  10. using System.IO;
  11.  
  12. namespace hpseo
  13. {
  14. public partial class Form1 : Form
  15. {
  16. public Form1()
  17. {
  18. InitializeComponent();
  19. //Opacity = 0;
  20. //Timer timer = new Timer();
  21. //timer.Tick += new EventHandler((sender, e) =>
  22. //{
  23. // if ((Opacity += 0.25d) == 1) timer.Stop();
  24. //});
  25. //timer.Interval = 100;
  26. //timer.Start();
  27. //изменение прозрачности формы при загрузке. Создаёт эффект плавного появления, но на слабых машинах может вызвать подвисания.
  28. }
  29. private void Form1_Load(object sender, EventArgs e)
  30. {
  31. webBrowser1.Navigate("http://wordstat.yandex.ru"); webBrowser2.Navigate("https://adwords.google.com/o/KeywordTool");
  32. //при загрузке формы загружаются в веббраузеры с прописанными адресами.
  33. ToolTip t = new ToolTip();
  34. t.SetToolTip(pictureBox1, "Выход");
  35. ToolTip r = new ToolTip();
  36. r.SetToolTip(pictureBox2, "Развернуть");
  37. ToolTip y = new ToolTip();
  38. y.SetToolTip(pictureBox3, "Сохранить");
  39. ToolTip f = new ToolTip();
  40. f.SetToolTip(pictureBox4, "Свернуть");
  41. //загружаются подсказки
  42. }
  43. private void pictureBox1_Click(object sender, EventArgs e)
  44. {
  45. this.Close();
  46. //«кнопка закрыть»
  47. }
  48. private void pictureBox2_Click(object sender, EventArgs e)
  49. {
  50. if (this.WindowState == FormWindowState.Maximized)
  51. this.WindowState = FormWindowState.Normal;
  52. else this.WindowState = FormWindowState.Maximized;
  53. // «кнопка развернуть и вернуть форму в прежнее состояние»
  54. }
  55. private void pictureBox3_Click(object sender, EventArgs e)
  56. {
  57. System.IO.File.WriteAllText(@"\Frequency Helper\sys\x.txt", webBrowser1.Document.Body.Parent.OuterText, Encoding.GetEncoding(webBrowser1.Document.Encoding));
  58. //сохраняет в документ всё содержимое страницы
  59. System.IO.File.WriteAllText(@"\Frequency Helper\sys\x2.txt", File.ReadAllText(@"\Frequency Helper\sys\x.txt").Replace(File.ReadAllText(@"\Frequency Helper\sys\1.txt"), ""));
  60. //из документа x.txt удаляется содержимое 1.txt и сохраняет в x2.txt
  61. System.IO.File.WriteAllText(@"\Frequency Helper\yandex_keyword.txt", File.ReadAllText(@"\Frequency Helper\sys\x2.txt").Replace(File.ReadAllText(@"\Frequency Helper\sys\2.txt"), ""));
  62. //из x2.txt удаляет содержимое 2.txt. и сохраняет в конечный файл yandex_keyword.txt
  63. }
  64.  
  65. private void pictureBox4_Click(object sender, EventArgs e)
  66. {
  67. this.WindowState = FormWindowState.Minimized;
  68. //позволяет свенуть форму
  69. }
  70. private void pictureBox5_Click(object sender, EventArgs e)
  71. {
  72. Form3 f = new Form3();
  73. f.Show();
  74. //вызывает 3форму с информацией о программе
  75. }
  76.  
  77. }
  78. }

Решение задачи: «Составить блок-схему по готовой программе»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Model
  5. {
  6.     public enum OptimizationDirection
  7.     {
  8.         ToMin,ToMax
  9.     }
  10.  
  11.     public class Rosenbrock
  12.     {
  13.         private readonly Func<double[], double> f;
  14.         private readonly double epsilon;
  15.         private Vector y;
  16.         private Vector[] d;
  17.         private readonly int n;
  18.         private readonly List<IterationDetails> details = new List<IterationDetails>();
  19.         public OptimizationDirection Direction = OptimizationDirection.ToMin;
  20.  
  21.         public IEnumerable<IterationDetails> Details { get { return new List<IterationDetails>(details); } }
  22.  
  23.         public Rosenbrock(Func<double[], double> f, Vector startPoint, double epsilon)
  24.         {
  25.             if (startPoint.IsEmpty)
  26.                 throw new ArgumentException("startPoint");
  27.             n = startPoint.Length;
  28.             this.f = x => Direction == OptimizationDirection.ToMin ? f(x) : -f(x);
  29.             this.epsilon = epsilon;
  30.             y = startPoint;
  31.             d = new Vector[n];
  32.             for (int i = 0; i < n; i++)
  33.             {
  34.                 d[i] = new Vector(n);
  35.                 d[i][i] = 1;
  36.             }
  37.             SmartPoint.SetFunction(f);
  38.         }
  39.  
  40.         public Vector Solve()
  41.         {
  42.             int k = 0;
  43.             details.Clear();
  44.             var lambda = new Vector(n);
  45.             Vector previousIterationY;
  46.             do
  47.             {
  48.                 k++;
  49.                 previousIterationY = y;
  50.                 var iterDetails = new IterationDetails(y, k);
  51.                 for (int j = 0; j < n; j++)
  52.                 {
  53.                     var previousStepY = y;
  54.                     int i = j;
  55.                     lambda[j] = Dichotomy(x => LambdaSolve(x, i), y[j]);
  56.                     y += lambda[j] * d[j];
  57.                     iterDetails.Add(new StepDetails(previousStepY, lambda[j], d[j], y, i+1));
  58.                 }
  59.                 details.Add(iterDetails);
  60.                 d = GramSchmidtProcess(lambda);
  61.             } while ((y - previousIterationY).Norm >= epsilon);
  62.             return y;
  63.         }
  64.  
  65.         private double LambdaSolve(double x, int j)
  66.         {
  67.             return f(y + x * d[j]);
  68.         }
  69.  
  70.         private Vector[] GramSchmidtProcess(Vector lambda)
  71.         {
  72.             var a = new Vector[n];
  73.             for (int j = 0; j < n; j++)
  74.                 if (Math.Abs(lambda[j]) < epsilon) //Если ноль
  75.                     a[j] = d[j];
  76.                 else
  77.                 {
  78.                     a[j] = new Vector(n);
  79.                     for (int i = j; i < n; i++)
  80.                         a[j] += lambda[i] * d[i];
  81.                 }
  82.             var b = (Vector[])a.Clone();
  83.             b[0].Normalize();
  84.             for (int j = 1; j < n; j++)
  85.             {
  86.                 for (int i = 0; i < j; i++)
  87.                     b[j] -= Vector.TransposeAndMultiply(a[j], b[i]) * b[i];
  88.                 b[j].Normalize();
  89.             }
  90.             return b;
  91.         }
  92.  
  93.         private double Dichotomy(Func<double, double> func, double startCoord)
  94.         {
  95.             double deviation = Math.Abs(startCoord) < double.Epsilon ? 5 : Math.Abs(startCoord) * 0.5 + 10;
  96.             double a = startCoord - deviation, b = startCoord + deviation;
  97.             double delta = epsilon / 10;
  98.             while (b - a >= epsilon)
  99.             {
  100.                 double middle = (a + b) / 2;
  101.                 double lambda = middle - delta, mu = middle + delta;
  102.                 if (func(lambda) < func(mu))
  103.                     b = mu;
  104.                 else
  105.                     a = lambda;
  106.             }
  107.             return (a + b) / 2;
  108.         }
  109.     }
  110. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы