Advertisement
bogdan2004333

Untitled

Nov 27th, 2022
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.79 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <math.h>
  4. #include "mprinter.h"
  5.  
  6. //функция рандома
  7. int irandom(int low, int up) {
  8.     int num = (rand() % (up - low + 1)) + low;
  9.     return num;
  10. }
  11.  
  12. //функция факториала
  13. float factorial(float n) {
  14.     float res = 1;
  15.     for (int i = 1; i <=(int) n; i++)
  16.         res *= (float)i;
  17.     return res;
  18. }
  19.  
  20. //функция заполнения матрицы для первого задания
  21. float MatrixFilling(float **matr, int N, int x) {
  22.     for (int i = 0; i < N; i++) {
  23.         for (int j = 0; j < N; j++) {
  24.             if (i == j)
  25.                 matr[j][i] = 1;
  26.             if (i < j) {
  27.                 matr[j][i] = powf((float)x, (float)i) / powf(factorial((float)j),(float) i);
  28.             }
  29.             if (i > j) {
  30.                 matr[j][i] = powf((float)-x,(float) i) / powf(factorial((float)j),(float) i);
  31.             }
  32.         }
  33.     }
  34.     return 1;
  35. }
  36.  
  37. //функция для заполнения матрицы известного размера
  38. float MatrixFillingB(float (*a)[9], size_t n) {
  39.     for (int i = 0; i < n; i++) {
  40.         for (int j = 0; j < n; j++) {
  41.             a[i][j] =(float) (i * 10 + j);
  42.         }
  43.     }
  44.     return 1;
  45. }
  46.  
  47. //вывод матрицы известного размера
  48. void MatrixPrintB(float (*a)[9], size_t n, int precision) {
  49.     printf("Матрица B c заданной точностью\n");
  50.     for (int i = 0; i < n; i++) {
  51.         // пробегаем по всем столбцам для данной строки i
  52.         for (int j = 0; j < n; j++) {
  53.             printf("%15.*f ", precision, a[j][i]);
  54.         }
  55. // переход на следующую строку
  56.         printf("\n");
  57.     }
  58.     printf("\n");
  59.  
  60. }
  61.  
  62. //вывод матрицы неизвестного размера с фиксированной точностью
  63. void MatrixPrintPrecision(float **matr, int N, int precision) {
  64.     for (int i = 0; i < N; i++) {
  65.         // пробегаем по всем столбцам для данной строки i
  66.         for (int j = 0; j < N; j++) {
  67.             printf("%15.*f ", precision, matr[j][i]);
  68.         }
  69. // переход на следующую строку
  70.         printf("\n");
  71.     }
  72.     printf("\n");
  73. }
  74.  
  75. //вывод матрицы неизвестного размера в экспонтециальном формате
  76. void MatrixPrintEps(float **matr, int N) {
  77.  
  78.     for (int i = 0; i < N; i++) {
  79.         // пробегаем по всем столбцам для данной строки i
  80.         for (int j = 0; j < N; j++) {
  81.             printf("%15.2E+10f ", matr[j][i]);
  82.         }
  83. // переход на следующую строку
  84.         printf("\n");
  85.     }
  86.     printf("\n");
  87. }
  88.  
  89.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement