fork download
  1. #include <stdio.h>
  2.  
  3. #define N 4 // кількість елементів у множині A
  4. #define R_SIZE 6 // кількість пар у R
  5.  
  6. // Відношення R
  7. int R[R_SIZE][2] = {
  8. {1,1}, {2,2}, {3,3},
  9. {1,2}, {2,1}, {1,3}
  10. };
  11.  
  12. // Перевірка, чи (a,b) ∈ R
  13. int inRelation(int a, int b) {
  14. for (int i = 0; i < R_SIZE; i++) {
  15. if (R[i][0] == a && R[i][1] == b)
  16. return 1;
  17. }
  18. return 0;
  19. }
  20.  
  21. int main() {
  22. int A[N] = {1, 2, 3, 4};
  23.  
  24. int reflexive = 1, symmetric = 1, antisymmetric = 1, transitive = 1;
  25.  
  26. // --- Рефлексивність ---
  27. for (int i = 0; i < N; i++) {
  28. if (!inRelation(A[i], A[i])) {
  29. reflexive = 0;
  30. break;
  31. }
  32. }
  33.  
  34. // --- Симетричність та антисиметричність ---
  35. for (int i = 0; i < R_SIZE; i++) {
  36. int a = R[i][0], b = R[i][1];
  37.  
  38. if (!inRelation(b, a)) {
  39. symmetric = 0;
  40. }
  41.  
  42. if (a != b && inRelation(b, a)) {
  43. antisymmetric = 0;
  44. }
  45. }
  46.  
  47. // --- Транзитивність ---
  48. for (int i = 0; i < R_SIZE; i++) {
  49. for (int j = 0; j < R_SIZE; j++) {
  50. int a = R[i][0], b = R[i][1];
  51. int c = R[j][0], d = R[j][1];
  52.  
  53. if (b == c) {
  54. if (!inRelation(a, d)) {
  55. transitive = 0;
  56. }
  57. }
  58. }
  59. }
  60.  
  61. // Вивід результатів
  62. printf("Рефлексивність: %s\n", reflexive ? "так" : "ні");
  63. printf("Симетричність: %s\n", symmetric ? "так" : "ні");
  64. printf("Антисиметричність: %s\n", antisymmetric ? "так" : "ні");
  65. printf("Транзитивність: %s\n", transitive ? "так" : "ні");
  66.  
  67. return 0;
  68. }
  69.  
  70.  
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
Рефлексивність: ні
Симетричність: ні
Антисиметричність: ні
Транзитивність: ні