Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.05.2014
Сообщений: 21
1

Дана матрица 4x4. Нужно составить вектор из минимальных элементов столбцов матрицы

26.05.2014, 20:20. Показов 2101. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Условие задачи: дана матрица 4x4. Нужно составить вектор из минимальных элементов столбцов матрицы. Написать функции для чтения из файла, вывести на экран матрицу и вектор.

Вот код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <iomanip>
using namespace std;
//Прототип функции для чтения матрицы из файла
double** inputf (ifstream& f, int n, int m, char std[40]);
//Прототип функции для вывода матрицы на монитор
void outputm(double** a,int n,int m);
//Прототип функции нахождения минимальных значений 
double* min (double** a, int n, int m, int l);
//Прототип для функции вывода вектора
void outputv (double* x, int l);
//Главная функция
void main()
{//Руссификация
    setlocale (LC_ALL, "Russian");
 //Объявление потока чтения из файла и массивов
    ifstream sf;
    double** a, * x;
    char s[40];
    int n, m;
 //Ввести имя файла, из которого читается матрица а
    cout<<"\n Ввод имени файла, из которого читается матрица а \n";
    cin>>s;
    cout<<"\n Количество столбцов а\n";
    cin>>n;
    cout<<"\n Количество строк а\n";
    cin>>m;
 //Читаем матрицу а из файла
    a=inputf (sf, 4, 4, s);
 //Выводим матрицу а
    cout<<"\n Матрица а: \n";
    outputm (a, 4, 4);
 //Обращение к функции поиска минимального элемента
    x=min (a, 4, 4, 4);
 //Обращение к функции для вывода вектора
    cout<<"\n Вектор x: \n";
    outputv (x, 4);
    cout<<endl;
}
//Функция для чтения матрицы из файла
double** inputf ( ifstream& f, int n, int m, char str[40])
{//Объявление переменных
    double** a;
    int i, j;
 //Открываем файл чтения, проверяем успешность открытия файла
    f.open (str);
    if (f.fail()) {cout<<"\n Ошибка открытия файла для чтения ";
                exit(1);
                  }
    //Выделение памяти под массив
    a=new double* [n];
    if(a==NULL) {cout<<"\nНедостaточно ОП ";
                  exit(1);
                 }
    for(i=0;i<n;i++)
      {a[i]=new double [m];
    if(a==NULL) {cout<<"\nНедостaточно ОП ";
                  exit(1);
                 }
      }
 
 //Чтение матрицы из файла
    for (i=0; i<n; i++)
    for (j=0; j<m; j++)
    f>>a[i][j];
 //Закрытие файла
    f.close();
    return a;
}
//Функция для вывода динамической матрицы
void outputm(double** a,int n,int m)
{//Объявление переменных
int i,j;
//Вывод
for(i=0;i<n;i++)
  {cout<<endl;
   for(j=0;j<m;j++)
     cout<<setw(10)<<a[i][j];
  }
}
//Функция нахождения минимальных значений столбцов матрицы
double* min (double** a, int n, int m, int l)
{//Объявление переменных
    int i, j;
    double* x;
    double p;
 //Выделение ОП под вектор
    x=new double [l];
    if (x==NULL) {cout<<"\n Не хватило ОП ";
    exit(1);
    }
    for(j=0;j<m;j++)
        x[j]=0;
 //Вычисления
    for (j=0; j<m; j++)
    {p=a[0][j]; l=j;
        for (i=0; i<n; i++)
        {if (a[i][j]<p) {p=a[i][j];
                         x[l]=p;
                        }
        }
    }
    return x;
}
//Вывод вектора
void outputv (double* x, int l)
{//Объявление переменных
    int i;
 //Вычисления
    for (i=0; i<l; i++)
    {if (i%6==0) cout<<endl;
    cout<<setw(10)<<x[l];
    }
}
При запуске программы ничего не выдает: ни ошибок, ни угроз. Но получается такой результат:
Ввод имени файла, из которого читается матрица а
D:\m.cpp

Количество столбцов а
4

Количество строк а
4

Матрица а:

1.2 4.75 -11.8 13
3.45 -2.1 8 0
7.43 0 -3.25 4.17
-2.2 9.86 4.58 15
Вектор x:

-1.45682e+144-1.45682e+144-1.45682e+144-1.45682e+144
Для продолжения нажмите любую клавишу . . .
В чем тут проблема, подскажите, пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2014, 20:20
Ответы с готовыми решениями:

Дана матрица B(8,5). Составить массив, содержащий произведения элементов строки матрицы
Дана матрица B(8,5). Составить массив, содержащий произведения элементов строки матрицы.

Дана вещественная матрица А(N.M). Составить программу замены всех отрицательных элементов матрицы на элемент, имеющий максимальное значение.
Дана вещественная матрица А(N.M). Составить программу замены всех отрицательных элементов матрицы...

Даны три квадратные матрицы. Сформировать вектор, состоящий из минимальных элементов каждой матрицы, отличных от нуля
Даны три квадратные матрицы. Сформировать вектор, состоящий из минимальных элементов каждой...

Дана матрица целых чисел размером 4x4. Определите произведение минимальных элементов каждой строки матрицы. Результат вывести на экран монитор
Дана матрица целых чисел размером 4x4. Определите произведение минимальных элементов каждой...

0
26.05.2014, 20:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2014, 20:20
Помогаю со студенческими работами здесь

Сформировать вектор из минимальных элементов столбцов матрицы
Помогите плиз написать программу котороя формирует вектор из min элементов столбцов матрицы...

Дана матрица целых чисел размером 4x4. Определите сумму и количество положительных элементов каждого столбца матрицы
Дана матрица целых чисел размером 4x4. Определите сумму и количество положительных элементов...

Сформировать с помощью процедуры вектор, состоящий из минимальных элементов столбцов матрицы
Заданы матрицы А(3х4) и В(3х5). Элементы их определите как случайные числа из диапазонов ,....

Составить одномерный массив D из минимальных элементов столбцов матрицы B
ЗАДАЧА: Сформировать двумерный массив B размером 3 x 3 с помощью генератора случайных чисел и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru