Facebook
From Tiny Duck, 7 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 361
  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.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.Diagnostics;
  11. using System.Threading;
  12.  
  13.  
  14. namespace zadaniePW
  15. {
  16.     public partial class Form1 : Form
  17.     {
  18.         int i = 1;
  19.         static int silnia = 0;
  20.         static int suma = 0;
  21.         long CzasDoKonca = 0;
  22.  
  23.         Stopwatch czas = new Stopwatch();
  24.      
  25.         static Thread watek;
  26.  
  27.         private static int silnia1(int i)
  28.         {
  29.             if (i < 1)
  30.                 return 1;
  31.             else
  32.                 return i * silnia1(i - 1);
  33.         }
  34.  
  35.         public void dodawanie()
  36.         {
  37.             while (true)
  38.             {
  39.  
  40.             MethodInvoker m = new MethodInvoker(() => progressBar1.Value = suma);
  41.             progressBar1.Invoke(m);
  42.  
  43.             suma++;
  44.  
  45.             if (silnia == suma)
  46.                 {
  47.                     watek.Join();
  48.                     break;
  49.                 }                
  50.             }
  51.         }
  52.  
  53.  
  54.  
  55.         public Form1()
  56.         {
  57.             InitializeComponent();
  58.         }
  59.  
  60.         private void button1_Click(object sender, EventArgs e)
  61.         {
  62.  
  63.            
  64.  
  65.             czas.Start();
  66.             silnia = silnia1(Convert.ToInt16(textBox1.Text));
  67.             label7.Text=Convert.ToString(silnia);
  68.             progressBar1.Maximum=silnia;
  69.             progressBar1.Minimum=0;
  70.  
  71.            
  72.  
  73.             for(i=1; i<silnia+1; i++){
  74.                 progressBar1.Value = i;
  75.  
  76.  
  77.                 if (i % 25 == 0)
  78.                 {
  79.                     CzasDoKonca = ((silnia - i) * Convert.ToInt64(czas.ElapsedMilliseconds) / i);
  80.                     label6.Text = Convert.ToString(CzasDoKonca/1000) + " s";
  81.                     label5.Text = Convert.ToString(czas.ElapsedMilliseconds / 1000) + " s";
  82.                     label5.Refresh();
  83.                     label6.Refresh();
  84.                    
  85.                 }
  86.  
  87.                
  88.             }
  89.  
  90.             czas.Stop();
  91.             label5.Text = Convert.ToString(czas.ElapsedMilliseconds/1000) + " s";
  92.  
  93.         }
  94.  
  95.         private void button4_Click(object sender, EventArgs e)
  96.         {
  97.             silnia = silnia1(Convert.ToInt16(textBox1.Text));
  98.             label7.Text = Convert.ToString(silnia);
  99.             progressBar1.Maximum = silnia;
  100.             progressBar1.Minimum = 0;
  101.  
  102.             watek = new Thread(new ThreadStart(dodawanie));
  103.             watek.Start();
  104.         }
  105.     }
  106. }