fork download
  1. using System;
  2. using System.ComponentModel;
  3. using System.Text;
  4. using System.Windows.Forms;
  5. using System.Threading;
  6. using System.Net.Sockets;
  7. using System.Net;
  8.  
  9. namespace lab4
  10. {
  11. public partial class Form1 : Form
  12. {
  13. public Form1()
  14. {
  15. InitializeComponent();
  16. }
  17.  
  18. private void computeButton_Click(object sender, EventArgs e)
  19. {
  20. int fig;
  21. try
  22. {
  23. fig = Int32.Parse(intTextBox1.Text);
  24. }
  25. catch (Exception)
  26. {
  27. MessageBox.Show("Wpisz jakąś liczbę!", "Błąd!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  28. return;
  29. }
  30. backgroundWorker1.RunWorkerAsync(fig);
  31. computeButton.Enabled = false;
  32. intTextBox1.Enabled = false;
  33. }
  34.  
  35. private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
  36. {
  37. progressBar1.Value = e.ProgressPercentage;
  38. resultTextBox.Text = ((long)(e.UserState)).ToString();
  39. }
  40.  
  41. private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
  42. {
  43. BackgroundWorker worker = sender as BackgroundWorker;
  44. e.Result = fibonacci((int)e.Argument, worker);
  45. }
  46.  
  47. private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
  48. {
  49. resultTextBox.Text = e.Result.ToString();
  50. computeButton.Enabled = true;
  51. intTextBox1.Enabled = true;
  52.  
  53. try
  54. {
  55. TcpClient client = new TcpClient();
  56. //IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3000);
  57. client.Connect(IPAddress.Parse("127.0.0.1"), 3000);
  58. NetworkStream clientStream = client.GetStream();
  59. ASCIIEncoding encoder = new ASCIIEncoding();
  60. byte[] buffer = encoder.GetBytes(e.Result.ToString());
  61. clientStream.Write(buffer, 0, buffer.Length);
  62. clientStream.Flush();
  63. }
  64. catch (Exception)
  65. {
  66. MessageBox.Show("Nie ma servera :(", "Błąd!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  67. }
  68. }
  69.  
  70. public long fibonacci(int n, BackgroundWorker worker)
  71. {
  72. long result = 1;
  73. long prev = 0;
  74. if (n == 0)
  75. result = 0;
  76. else if(n > 1)
  77. {
  78. long temp;
  79. for (int i = 2; i <= n; i++)
  80. {
  81. temp = result;
  82. result += prev;
  83. prev = temp;
  84. int percent = (int)((float)i/(float)n*100.0);
  85. worker.ReportProgress(percent, result);
  86. Thread.Sleep(200);
  87. }
  88. }
  89. return result;
  90. }
  91. }
  92. }
  93.  
Success #stdin #stdout 0.02s 2280KB
stdin
Standard input is empty
stdout
Standard output is empty