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

Заполнить матрицу с файла

22.02.2016, 13:09. Показов 2317. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет,есть нужда заполнить матрицу разными способами для дальнейшей роботы с ними
немного набросал но из файла не получается сделать кому не сложно помогите
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 "stdafx.h"
#include <iostream>
#include <ctime>
#include <fstream>
 
using namespace std;
 
 
 
struct matr
{
    int n;
    int** prt;
};
 
 
void opredelenie(matr &matr1);
 
void Vvod_Vivod(matr &matr1);
 
 
 
 
 
void  main(matr matr1)
{
    srand(time(0));
    setlocale(LC_ALL, "Russian");
 
    cout << "Введите порядок матрици #1" << endl;
 
    
    cin >> matr1.n;
 
    opredelenie(matr1);
    Vvod_Vivod(matr1);
 
    
    system("cls");
 
    cout << "Ваша матрица" << endl;
 
    for (int i = 0;i < matr1.n;i++)
    {
        for (int j = 0;j < matr1.n;j++)
        {
            cout << matr1.prt[i][j] << " ";
        }
        cout << endl;
    }
    
 
 
    system("PAUSE");
}
 
void opredelenie(matr& matr1) 
{
    //виділення памяті під динамічній масив#1
    matr1.prt = new int*[matr1.n];
    for (int i = 0; i < matr1.n; i++)
        matr1.prt[i] = new int[matr1.n];
}
 
 
 
void Vvod_Vivod(matr& matr1)
{
    //Воод  матрици #1
    cout << "Выберите способ заполнения матрицы #1:" << endl;
    cout << "1.Вручную" << endl;
    cout << "2.Сгенерировать автоматически" << endl;
    cout << "3.Ввести из файла" << endl;
    int b;
    cin >> b;
    if (b == 1) 
    {
        cout << "Введите вашу матрицу#1" << endl;
        for (int i = 0;i < matr1.n;i++)
            for (int j = 0;j < matr1.n;j++)
                cin >> matr1.prt[i][j];
    }
    if (b == 2)
    {
        cout << "Матрица сгенерирована автоматически" << endl;
        for (int i = 0;i < matr1.n;i++)
            for (int j = 0;j < matr1.n;j++)
                matr1.prt[i][j] = rand() % 10 + 1;
    }
 
    if (b == 3)
    {
        cout << "Матрица счината из файла" << endl;
        ifstream fin("init.txt");
        if (!fin.is_open())
          cout << "Error!" << endl;
        else
        {
            
            for (int i = 0; i < matr1.n; i++)
            
                for (int j = 0; j < matr1.n; j++)
                
                    
                    fin >> matr1.prt[i][j];
                    
                    
                
                
            
            fin.close();
        }
 
 
 
    }
И еще промежуточный вопрос,вот пользователь вводит порядок матрици,как предусмотреть варианты разных порядков мартиц в файле?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2016, 13:09
Ответы с готовыми решениями:

Заполнить матрицу из файла
Нужно с файла заполнить массив чисел 5х5 делаю так: 1) Файл .тхт 12232 11100 12032 12122...

Заполнить квадратную матрицу данными из файла и найти столбец с максимальной суммой элементов
Сама суть такова Программно сформировать файл data.txt содержащий 25 случайных чисел, записанных...

Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке
Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке.

Заполнить матрицу случайными числами. Развернуть матрицу на 90(градусов) против часовой стрелки
Заполнить матрицу случайными числами. Развернуть матрицу на 90o против часовой стрелки

4
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
22.02.2016, 13:17 2
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

Такое ощущение, что до этой программы Вы вообще не писали на С++.
Возьмите-ка за образец вот это:
Образцы (шаблоны) программ для типовых задач
Точка входа main имеет строго определенные прототипы:
C++
1
int main();
или
C++
1
int main(int argc,char** argv);
И ВСЁ!!!!!
никаких
Цитата Сообщение от Ancloosee Посмотреть сообщение
void main(matr matr1)
0
0 / 0 / 1
Регистрация: 17.10.2015
Сообщений: 52
22.02.2016, 13:27  [ТС] 3
Спасибо за замечание,ну это я поменял,но проблема осталась
0
0 / 0 / 1
Регистрация: 17.10.2015
Сообщений: 52
23.02.2016, 16:02  [ТС] 4
Учусь на первом курсе,до этого все шло +- нормально,но тут поднакопилося вопросов
Вот при таком роскладе как сказали выше,те агрументы в функции(выделил жирным) не определяет,что я делаю не так


opredelenie(matr1);
Vvod_Vivod(matr1);
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
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <fstream>
 
using namespace std;
 
 
 
struct matr
{
    int n;
    int** prt;
};
 
 
void opredelenie(matr &matr1);
 
void Vvod_Vivod(matr &matr1);
 
 
 
 
 
int  main()
{
    srand(time(0));
    setlocale(LC_ALL, "Russian");
 
    cout << "Введите порядок матрици #1" << endl;
 
    
    cin >> matr1.n;
 
    opredelenie(matr1);
    Vvod_Vivod(matr1);
 
    
    system("cls");
 
    cout << "Ваша матрица" << endl;
 
    for (int i = 0;i < matr1.n;i++)
    {
        for (int j = 0;j < matr1.n;j++)
        {
            cout << matr1.prt[i][j] << " ";
        }
        cout << endl;
    }
    
 
 
    system("PAUSE");
}
Добавлено через 1 час 6 минут
Ну что никто не укажет на ошибку?
0
0 / 0 / 0
Регистрация: 15.01.2020
Сообщений: 1
15.01.2020, 10:41 5
void Input(int** M,int n,int m)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<"M["<<i<<"]["<<j<<"]=?"; //не получится сразу записывать переменную в память и в матрицу..))
cin >> M[i][j];

Также для записи из переменной в матрицу необходимо предварительное выделение памяти для просчета матрицы
Есть такая реализация, лично не тестировала
**
double **x;
x = new double*[n];
for (int i = 0; i<n; i++) x[i] = new double[m];

/Считаем матрицу из файла
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
in >> x[i][j];

См.
http://blog.harrix.org/article/5812
0
15.01.2020, 10:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2020, 10:41
Помогаю со студенческими работами здесь

Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали
Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали

Заполнить матрицу случайными числами. Разбить матрицу на квадраты размером 3х3. В центре каждого квадрата поме
Помогите пожалуйста есть некоторые мысли, ну успешного ответа нет :((( #include &lt;iostream&gt;...

Не могу заполнить матрицу из файла
Добрый день. Есть квадратная матрица, которая заполняется из текстового файла (если в текстовом...

Заполнить матрицу А[N,M] с файла символами, если символы повторяются в рядах то эти же символы заменить на их коды.
Заполнить матрицу А с файла символами, если символы повторяются в рядах то эти же символы заменить...


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

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