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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tAruuuch
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 144
#1

Конструкторы - C++

14.11.2013, 00:53. Просмотров 219. Ответов 0
Метки нет (Все метки)

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
26
#pragma once
 
#include <string.h>
#include <iostream>
#include <cstdlib>
#include <clocale>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <ctime>
#include <iomanip>
 
class dynamic
{
    int         m,
                n;
 
    int         z;
public:
    dynamic();
    dynamic(dynamic& x);
    ~dynamic();
 
    void Create(int M, int N, int Z);
    void Napus();
};


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
#include "dynamic.h"
 
using namespace std;
 
dynamic::dynamic()
{
    m=0;
    n=0;
}
 
dynamic::dynamic(dynamic& x)
{
    memcpy_s(this, sizeof(dynamic), &x, sizeof(dynamic));
}
 
void dynamic::Create(int M, int N, int Z)
{
    this->m = M;
    this->n = N;
    this->z = Z;
}
 
void dynamic::Napus()
{
    srand(time(NULL));
 
    printf("Введите размер матрицы: ");
    cin >> m; 
    cin >> n;
    
    int **z = new int* [n]; 
    for (int i = 0; i < n; i++)
        z[i] = new int [m]; 
 
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            z[i][j] = (rand() % 10 + 1);
 
    printf("Наша матрица\n");
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            cout << setw(4) << z[i][j] << "   ";
            cout << endl;
    }
    
    if(n%2==1 && m%2==1)
        printf("Середнiй елемент: z[%d][%d]=%d\n", n/2, m/2, z[n/2][m/2]); 
    else if(n%2==1 && m%2==0)
        printf("Середнiй елемент:\nz[%d][%d]=%d\nz[%d][%d]=%d\n", n/2, (m-1)/2, z[n/2][(m-1)/2], n/2, m/2, z[n/2][m/2]);
    else if(n%2==0 && m%2==1)
        printf("Середнiй елемент:\nz[%d][%d]=%d\nz[%d][%d]=%d\n", (n-1)/2, m/2, z[(n-1)/2][m/2], n/2, m/2, z[n/2][m/2]);
    else{
        printf("Середнiй елемент:\n");
        printf("z[%d][%d]=%d\n", (n-1)/2, (m-1)/2, z[(n-1)/2][(m-1)/2]);
        printf("z[%d][%d]=%d\n", (n-1)/2, m/2, z[(n-1)/2][m/2]);
        printf("z[%d][%d]=%d\n", n/2, (m-1)/2, z[n/2][(m-1)/2]);
        printf("z[%d][%d]=%d\n", n/2, m/2, z[n/2][m/2]);
    }
 
    delete []z;
 
    system("pause");
}
 
dynamic::~dynamic()
{
    
}


test.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
#include "dynamic.h"
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Rus");
 
    dynamic Dynamic;
 
    do
    {
        cout << "Виберiть один з запропонованих варiантiв" << endl;
        cout << "1. Ввести даннi" << 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);
}


В эту прогу нужно доделать конструкторы :
• с тремя аргументами ( третий аргумент - по умолчанию ) - динамично резервирует память на заданное количество строк и столбцов и заполняет матрицу заданным значением; если значение ( третий аргумент ) отсутствует , заполняет матрицу случайными числами из диапазона 0 ... 99;
• с тремя аргументами - динамично резервирует память на заданное количество строк и столбцов и заполняет матрицу значениями из вещественной матрицы , указатель на которую передан в третьем аргументе ;
• с шестью аргументами - динамично резервирует память на заданное количество строк и столбцов и заполняет случайными числами из диапазона 0 ... 99 подматрицу , заданную парой координат (левого верхнего и правого нижнего угла) .

Можете помочь хотя бы два сделать 1 с тремя а второй с шестью, а то я в конструкторах ни бе ни ме(
Очень нужно а то завтра сдавать а я не могу сделать, пожайлуста помогите, если конечно не сложно

Добавлено через 38 минут
ребят никто не сможет помочь?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 00:53     Конструкторы
Посмотрите здесь:

Классы и конструкторы C++
C++ Конструкторы по умолчанию.
C++ Указатели и конструкторы
Конструкторы. синтаксис C++
C++ конструкторы копий
Объявить конструкторы C++
C++ наследование. конструкторы
Конструкторы в классе C++
Конструкторы и классы C++
Классы, конструкторы C++
C++ Конструкторы ООП С++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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