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

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

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

Студворк — интернет-сервис помощи студентам
Всем привет,есть нужда заполнить матрицу разными способами для дальнейшей роботы с ними
немного набросал но из файла не получается сделать кому не сложно помогите
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)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2016, 13:09
Ответы с готовыми решениями:

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

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

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

4
Модератор
Эксперт С++
 Аватар для zss
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,258
22.02.2016, 13:17
Лучший ответ Сообщение было отмечено 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  [ТС]
Спасибо за замечание,ну это я поменял,но проблема осталась
0
0 / 0 / 1
Регистрация: 17.10.2015
Сообщений: 52
23.02.2016, 16:02  [ТС]
Учусь на первом курсе,до этого все шло +- нормально,но тут поднакопилося вопросов
Вот при таком роскладе как сказали выше,те агрументы в функции(выделил жирным) не определяет,что я делаю не так


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
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.01.2020, 10:41
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Вот уже год прошел, как у меня домен в reg.ru ...
Etyuhibosecyu 16.04.2026
И ничего они мне не сделали. Если отвязать карту, никакие услуги они не навяжут. Я бы с радостью продлил еще на два года, чтобы не мучиться с временным доменом и меня уже знали по red-star-soft. com,. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru