kamilosxd678

[SEM04][labPT][C#]Laborki 5 pkt 1 oraz prawie 4

May 28th, 2013
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.81 KB | None | 0 0
  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.Net;
  11.  
  12. namespace Lab5PT
  13. {
  14.     public partial class Form1 : Form
  15.     {
  16.         public Form1()
  17.         {
  18.             InitializeComponent();
  19.         }
  20.         private double getNominator(int k, int n){
  21.             double result = 1;
  22.             for(int i = 0; i < k; i++){
  23.                 result *= n - i;
  24.             }
  25.             return result;
  26.         }
  27.         private double getDenominator(int k){
  28.             double result = 1;
  29.             for(int i = 1; i <= k; i++){
  30.                 result *= i;
  31.             }
  32.             return result;
  33.         }
  34.         public delegate double AsyncNominatorCaller(int k, int n);
  35.         public delegate double AsyncDenominatorCaller(int k);
  36.         private void button1_Click(object sender, EventArgs e)
  37.         {
  38.             //Group I - Compute(Task)
  39.             if(textBox1.Text.Equals("") || textBox2.Equals("")){
  40.                 MessageBox.Show("You have to define N and K!");
  41.                 return;
  42.             }
  43.             double nominator, denominator;
  44.             double result = -1;
  45.             int n, k;
  46.             n = Convert.ToInt32(textBox1.Text);
  47.             k = Convert.ToInt32(textBox2.Text);
  48.             Task<double> task1 = new Task<double>(() => getNominator(k, n));
  49.             Task<double> task2 = new Task<double>(() => getDenominator(k));
  50.             task1.Start();
  51.             task2.Start();
  52.             task1.Wait();
  53.             task2.Wait();
  54.             nominator = task1.Result;
  55.             denominator = task2.Result;
  56.             result = nominator / denominator;
  57.             textBox3.Text = result.ToString();
  58.  
  59.         }
  60.  
  61.         private void button2_Click(object sender, EventArgs e)
  62.         {
  63.             //Async
  64.             double denominator, nominator, result;
  65.             int n, k;
  66.             n = Convert.ToInt32(textBox1.Text);
  67.             k = Convert.ToInt32(textBox2.Text);
  68.             AsyncDenominatorCaller dCaller = new AsyncDenominatorCaller(getDenominator);
  69.             AsyncNominatorCaller nCaller = new AsyncNominatorCaller(getNominator);
  70.             IAsyncResult deRes = dCaller.BeginInvoke(k, null, null);
  71.             IAsyncResult nRes = nCaller.BeginInvoke(k, n, null, null);
  72.             denominator = dCaller.EndInvoke(deRes);
  73.             nominator = nCaller.EndInvoke(nRes);
  74.             result = nominator / denominator;
  75.             textBox4.Text = result.ToString();
  76.  
  77.         }
  78.  
  79.         private void button3_Click(object sender, EventArgs e)
  80.         {
  81.             string file = System.IO.File.ReadAllText(@"C:\Users\Kamilos\Documents\visual studio 2012\Projects\Lab5PT\Lab5PT\adresy.txt");
  82.             file = file.Replace(",","");
  83.             string[] adresses = file.Split(' ');
  84.             /*string[] results = new string[adresses.Length];
  85.             for(int i = 0; i < adresses.Length; i++){
  86.                 results[i] = Dns.GetHostEntry(adresses[i]).AddressList[0].ToString();
  87.             } */
  88.             string
  89.             var result = from x in adresses.AsParallel()
  90.                             select new {
  91.                                 domain = x,
  92.                                 ip = Dns.GetHostEntry(x).AddressList[0].ToString()
  93.                             };
  94.             foreach(var x in result){
  95.                 textBox5.AppendText(
  96.             }
  97.  
  98.         }
  99.  
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment