Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Матрицы
- //19. По заданным коэффициентам и правым частям найти решение "треугольной" системы из n уравнений.
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <ctime>
- double** create_array(int string, int column)
- {
- double **a = new double*[string];
- for (unsigned int i = 0; i < string; i++)
- {
- a[i] = new double[column];
- }
- return a;
- }
- void delete_array(double **a, int string)
- {
- for (int j = 0; j < string; j++)
- delete[]a[j];
- }
- void print_array(double **a, int string, int column)
- {
- for (unsigned int k = 0; k < string; k++)
- {
- printf("\n");
- for (unsigned int j = 0; j < column; j++)
- {
- printf("%f\t", a[k][j]);
- }
- }
- printf("\n");
- }
- void fill_array(double **a, int string, int column)
- {
- for (unsigned int k = 0; k < string; k++)
- for (unsigned int j = 0; j < column; j++)
- {
- if (j == column - 1 || j <= k)
- a[k][j] = rand() % 10 + 1;
- else
- a[k][j] = 0;
- }
- }
- double **find_solution(double **a, int string, int column)
- {
- double **arr = create_array(string, 1);
- for (int i = 0; i < string; i++)
- {
- arr[i][0] = 0;
- }
- arr[0][0] = a[0][column - 1] / a[0][0];
- for (int i = 1; i < string; i++)
- {
- arr[i][0] += a[i][column - 1];
- for (int j = 0; j < i; j++)
- {
- arr[i][0] -= (a[i][j] * arr[j][0]);
- }
- arr[i][0] /= a[i][i];
- }
- return arr;
- }
- int main()
- {
- int string;
- int column;
- srand(time(0));
- printf("put the number of unknowns, please:\n");
- scanf("%d", &string);
- column = string + 1;
- double **a = create_array(string, column);
- fill_array(a, string, column);
- printf("Matrix:");
- print_array(a, string, column);
- double **b = find_solution(a, string, column);
- printf("\nSolution:");
- print_array(b, string, 1);
- delete_array(a, string);
- delete_array(b, string);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement