ozimas

PO zad. 1.3

Jan 20th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.27 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <omp.h>
  3. #include <stdlib.h>
  4. #include <iostream>
  5.  
  6. using namespace std;
  7.  
  8. typedef int t2[100][100];
  9.  
  10. void gnp(int n, float p, t2 A)
  11. {
  12.     int i, j, x;
  13.  
  14.     for (i = 0; i<n - 1; i++)
  15.     {
  16.         A[i][i] = 0;
  17.         for (j = i + 1; j<n; j++)
  18.         {
  19.             x = ((rand() % 100)*0.01 <= p); A[i][j] = x; A[j][i] = x;
  20.         }
  21.     }
  22.     A[n - 1][n - 1] = 0;
  23.  
  24.     printf("Liczba watkow %d\n",omp_get_num_threads());
  25.     printf("Maksymalna liczba watkow %d\n",omp_get_max_threads());
  26. }
  27.  
  28. int krawedzie(int n, t2 A)
  29. {
  30.     int i, j, k = 0;
  31.     for (i = 0; i<n - 1; i++)
  32.     for (j = i + 1; j<n; j++)
  33.     if (A[i][j]) k++;
  34.     return k;
  35. }
  36.  
  37. int trojkaty(int n, t2 A)
  38. {
  39.     int i, j, m, t = 0;
  40.     for (i = 0; i<n - 2; i++)
  41.     for (j = i + 1; j<n - 1; j++)
  42.     if (A[i][j]) for (m = j + 1; m<n; m++)
  43.     if (A[i][m] && A[j][m]) t++;
  44.     return t;
  45. }
  46.  
  47. void druk(int n, t2 A)
  48. {
  49.     int i, j;
  50.     for (i = 0; i<n; i++)
  51.     {
  52.         for (j = 0; j<n; j++) if (A[i][j]) printf("1 "); else printf("0 ");
  53.         printf("\n");
  54.     }
  55. }
  56.  
  57. int main(int argc, char* argv[])
  58. {
  59.     int lkraw, ltroj, n = 5;
  60.     float p = 0.7;
  61.     t2 A;
  62.     gnp(n, p, A);
  63.  
  64.     lkraw = krawedzie(n, A);
  65.  
  66.     ltroj = trojkaty(n, A);
  67.  
  68.     druk(n, A);
  69.     printf("Liczba krawedzi = %d\n", lkraw);
  70.     printf("Liczba trojkatow = %d\n", ltroj);
  71.    
  72.    
  73.     system("pause");
  74.     return 0;
  75. }
Add Comment
Please, Sign In to add comment