Форум программистов, компьютерный форум CyberForum.ru

Динамический двухмерный массив - C++

Войти
Регистрация
Восстановить пароль
 
tAruuuch
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 144
31.10.2013, 22:47     Динамический двухмерный массив #1
Нужно сделать динамический двухмерный массив.
1. n столбиков и m строчек нужно задавать самому
2. массив должен записываться и считываться с файла
3. вычислить центральную координату массива
4. числа должны быть двойной точности
5. это все нужно сделать отдельными ф-ями (введение m и n, запись в файл, считывание из файла, вычисление средней координаты)

Можете помочь пожайлуста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 22:57     Динамический двухмерный массив #2
tAruuuch, то есть 2 способа ввода должно быть? Из файла и вручную?
tAruuuch
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 144
31.10.2013, 23:02  [ТС]     Динамический двухмерный массив #3
Folko, нет, ввести нужно сначала только m и n, потом сгенерировать массив рандомными числами, и сделать что бы было сохранение в файл и считывание с файла, тобеж у меня будет меню и там будет выводиться уже или просто ввести и вывести матрицу или сохранить её в файл и оттуда считать.

А еще легче сказать я это все делаю через классы и вот такое мне нужно реализовать
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 23:07     Динамический двухмерный массив #4
tAruuuch, с сохранением записью помочь не смогу, но создание матрицы:
C++
1
2
3
int** a = new int*[n];
for (int i = 0; i < n; i++)
a[i] = new int [m];
создает динамический массив n - строк, m - столбцов
BorD
4 / 4 / 0
Регистрация: 21.05.2013
Сообщений: 41
31.10.2013, 23:18     Динамический двухмерный массив #5
Сохранение в байт коде или читаемом? Вообще из этого самое сложное - работа с файлами, по работе с массивами у вас должна быть методичка, где все конкретно описано.
tAruuuch
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 144
31.10.2013, 23:35  [ТС]     Динамический двухмерный массив #6
BorD, ну массив я создать могу, и вывести его могу, я его не могу записать и считать с файла + это нужно в классах и все числа с двойной точностью (double) да и с файлами я очень плохо понимаю

Добавлено через 2 минуты
BorD, в каком коде не имеет значение оно просто должно быть в файле

Добавлено через 9 минут
вот коды того что у меня сейчас есть
dynamic.h
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
#pragma once
 
#include <iostream>
class dynamic
{
    int     m,
            n;
 
    double  z;
public:
    dynamic();
    dynamic(dynamic& x);
    ~dynamic();
 
    void Napus();
 
    //читання елементів із заданими координатами
    void Reads();
 
    //запис елементів із заданими координатами
    void Write();
 
    //визначення координат центральной точки
    void Coord();
};
dynamic.cpp
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
#include "dynamic.h"
#include <string.h>
#include <iostream>
#include <cstdlib>
#include <clocale>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <ctime>
#include <iomanip>
 
using namespace std;
 
dynamic::dynamic()
{
    n=0;
    m=0;
}
 
void dynamic::Napus()
{
    srand(time(NULL));
 
    cout <<"Введите размер матрицы: " << endl;
    cin >> m; 
    cin >> n;
    
    double **z = new double* [n]; 
    for (int i = 0; i < n; i++)
        z[i] = new double [m]; 
    
    // заполнение массива
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            z[i][j] = (rand() % 10 + 1);
 
    // вывод массива
    cout << "Наша матрица" << endl;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            cout << setw(4) << z[i][j] << "   ";
        cout << endl;
    }
 
    // удаление двумерного динамического массива
    for (int i = 0; i < n; i++)
        delete []z[i];
 
    system("pause");
}
 
void dynamic::Write()
{
 
}
 
void dynamic::Reads()
{
 
}
 
void dynamic::Coord()
{
 
}
 
dynamic::~dynamic()
{
 
}
Исходный код.cpp
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
#include "dynamic.h"
#include <iostream>
#include <cstdlib>
#include <Windows.h>
#include <stdio.h>
#include <conio.h>
#include <clocale>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Rus");
 
    dynamic Dynamic;
 
    do
    {
        cout << "Виберiть один з запропонованих варiантiв" << endl;
        cout << "1. tt" << endl;
        cout << "e. Вихiд" << endl << endl;
 
        int key = _getch ();
 
        switch (key)
        {
            case '1':   Dynamic.Napus();                break;
            case 'e':
            {return 0;}
            default:
                cout << "Невiрний вибiр! Натиснiть будь-яку клавiшу для продовження..." << endl;
                _getch ();
        }
 
    } while (true);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 00:06     Динамический двухмерный массив
Еще ссылки по теме:

Двухмерный динамический массив C++
C++ Динамический двухмерный массив (создать матрицу)
двухмерный динамический массив C++
C++ Создать двухмерный динамический массив строк
Как правильней объявить динамический двухмерный массив C++

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

Или воспользуйтесь поиском по форуму:
BorD
4 / 4 / 0
Регистрация: 21.05.2013
Сообщений: 41
01.11.2013, 00:06     Динамический двухмерный массив #7
Если с double работаешь, то запись лучше осуществлять в байт коде. Пробей в гугле: чтение\запись в файл в байт коде. Чтение и запись будет осуществляться через тот же цикл двухмерного массива:
C++
1
2
3
4
5
6
void write ()
{
for (i=0;i<n;i++)
for (j=0;j<m;j++)
//Функция записи(в ней просто вставляем значение a[i][j])
return 0;
Аналогично с считыванием
Yandex
Объявления
01.11.2013, 00:06     Динамический двухмерный массив
Ответ Создать тему
Опции темы

Текущее время: 09:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru