Advertisement
Archangelpl

Untitled

Jun 9th, 2017
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <stdlib.h>
  3. #include<stdio.h>
  4. #include <math.h>
  5.  
  6. FILE *fd;
  7.  
  8. int main()
  9. {
  10. double W1[10][10], W2[10][10], W3[10][10], M1[10], M2[10], M3;
  11. int n, m, k;
  12.  
  13. if (!(fd = fopen("dane.txt", "r")))
  14. {
  15. printf("Blad wczytywania danych");
  16. exit(0);
  17. }
  18. fscanf(fd, "%d", &n);
  19. fscanf(fd, "%d", &m);
  20. fscanf(fd, "%d", &k);
  21.  
  22. for (int i = 0; i < n; i++)
  23. {
  24. for (int j = 0; j < k; j++)
  25. {
  26. W3[i][j] = 0;
  27. }
  28.  
  29. }
  30. //printf("Macierz 1\n");
  31. for (int i = 0; i < n; i++)
  32. {
  33. for (int j = 0; j < m; j++)
  34. {
  35. fscanf(fd, "%lf", &W1[i][j]);
  36. //printf("%lf ", W1[i][j]);
  37. }
  38. //printf("\n");
  39. }
  40. //printf("Macierz 2\n");
  41. for (int i = 0; i < m; i++)
  42. {
  43. for (int j = 0; j < k; j++)
  44. {
  45. fscanf(fd, "%lf", &W2[i][j]);
  46. //printf("%lf ", W2[i][j]);
  47. }
  48. //printf("\n");
  49. }
  50. //printf("Wektor 1\n");
  51. for (int j = 0; j < k; j++)
  52. {
  53. fscanf(fd, "%lf", &M1[j]);
  54. //printf("%lf ", M1[j]);
  55. }
  56.  
  57. for (int i = 0; i < n; i++)
  58. {
  59. for (int j = 0; j < k; j++)
  60. {
  61. for (int l = 0; l < m; l++)
  62. {
  63. W3[i][j] = W3[i][j] + W1[i][l] * W2[l][j];
  64. }
  65. }
  66.  
  67.  
  68. }
  69.  
  70.  
  71.  
  72. printf("\n");
  73. printf("zad1\n\n");
  74. for (int i = 0; i < n; i++)
  75. {
  76. for (int j = 0; j < k; j++)
  77. {
  78.  
  79. printf("%lf ", W3[i][j]);
  80. }
  81. printf("\n");
  82. }
  83.  
  84.  
  85.  
  86. double min = INFINITY;
  87. double max = (-1)*INFINITY;
  88. int q, w, e, r;
  89.  
  90. for (int i = 0; i < n; i++)
  91. {
  92. for (int j = 0; j < k;j++)
  93. {
  94. if (W3[i][j] > max)
  95. {
  96. max = W3[i][j];
  97. q = i; w = j;
  98. }
  99. if (W3[i][j] < min)
  100. {
  101. min = W3[i][j];
  102. e = i; r = j;
  103. }
  104. }
  105. }
  106. printf("Zad2 \n\n");
  107. printf(" Najmniejsza wartosc macierzy to %lf znajduje sie w na pozcji rownej n= %d k= %d \n Natomiast najwieksza wartosc to %lf znajduje sie na pozycji n= %d k= %d \n\n", min, e, r, max, q, w);
  108. printf("Zad 3n\n");
  109.  
  110. M3 = 0;
  111. for (int i = 0; i < k;i++)
  112. {
  113. M3 = M3 + W3[q][i] * M1[i];
  114. }
  115. printf("%lf\n", M3);
  116. printf("\nZad 4\n\n");
  117. for (int i = 0;i < k; i++)
  118. {
  119. M2[i] = 0;
  120. }
  121. for (int i = 0; i < n; i++)
  122. {
  123. for (int j = 0;j < k; j++)
  124. {
  125. M2[i] = M2[i] + W3[i][j] * M1[j];
  126. }
  127. }
  128. for (int i = 0;i < n;i++)
  129. {
  130. printf(" %lf \n ", M2[i]);
  131. }
  132. printf("\n");
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement