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

Создание классов с использованием конструкторов различного типа - C++

Восстановить пароль Регистрация
 
Zoltan
0 / 0 / 0
Регистрация: 20.02.2012
Сообщений: 5
16.04.2012, 22:20     Создание классов с использованием конструкторов различного типа #1
Здраствуйте!, появилась проблемка с работой, чего-то не доганаю....=)

Задание: Разработать программу на С++ использующую класс “Мassiv” описывающий N-мерный массив данных размещенный в динамической области памяти. Используя два обьекта этого класса получить вычисляемое значение, согласно заданного варианта
Размеры массивов и значение элементов задавать произвольно


Класс “Мassiv” должен содержать три функции - элементы
ввода элементов массива с клавиатуры и запись их в динамическую область памяти.
доступа к любому элементу данных , размещенных в динамической области памяти, по заданным индексам массива
определение некоторого значения ,являющегося функцией от значений элементов массивов (в соответствии с заданным вариантом)

Задание:Двумерный массив вещественного типа, нужно определить: Произведение всех элементов с нечетными индексами.


Половина дела уже готова но дальше не въезжаю, буду признателен если поможете=)

Код:
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
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <stdio.h>
#include <windows.h>
 
 
using std::cout;
using std::cin;
 
class Massiv
{
    int i; 
    float **Arr,
          element;
 
public:
    int ROW,
        COL;
 
/*Вводим строки,столбцы,инициализируем массив*/
    Massiv(void)
    {
        cout<<"Введите количество строк массива: ";
        cin >> ROW;
        cout << "\n";
        cout<<"Введите количество столбцов массива: ";
        cin >> COL;
 
        Arr = new float*[ROW];
        for(int i = 0;i < ROW;i++){
            Arr[i] = new float[COL];
        }
    }
 
/*Вводим элементы массива*/
    void Vvod()
    {
        for(int i = 0;i < ROW;i++){
            cout << "->";
            for(int j = 0;j < COL;j++){
                cin >> Arr[i][j];
            }
        }
    }
 
/*Выводим элементы массива*/
    void Vuvod()
    {
        for (int i = 0;i < ROW; i++){
            for(int j = 0;j < COL;j++){
                printf("%3.3f  ",Arr[i][j]);
        }
        cout << "\n";
        }
    }
/*Производим вычисления*/
    void Summa()
    {
        float Sum = 0;
        for(int i = 0;i < ROW;i++){
            for(int j = 0;j < COL;j++){
                if(i % 2 != 0){
                    if (j % 2 != 0){
                        Sum += Arr[i][j];
                    }
                }
            }
        }
        printf("Сумма элементов с четными индексами: %3.3f", Sum);
    }
 
/*Удаляем массив из динамической памяти*/
    void del_mas()
    {
        delete []Arr;
    }
};
 
void main()
{
    setlocale(LC_ALL, "Russian");
    SetConsoleTitle(_T(""));
    Massiv object_1;
    object_1.Vvod();
    cout << "Введенный массив:";
    cout << "\n";
    object_1.Vuvod();
    object_1.Summa();
    object_1.del_mas();
    getch();
}
НА данный момент программа считает сумма всех элементов с четными индексами а надо - Произведение всех элементов с нечетными индексами.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
16.04.2012, 23:51     Создание классов с использованием конструкторов различного типа #2
Цитата Сообщение от Zoltan Посмотреть сообщение
for(int i = 0;i < ROW;i++){
* * * * * * for(int j = 0;j < COL;j++){
* * * * * * * * if(i % 2 != 0){
* * * * * * * * * * if (j % 2 != 0){
* * * * * * * * * * * * Sum += Arr[i][j];
* * * * * * * * * * }
* * * * * * * * }
* * * * * * }
* * * * }
Так считают только лопухи
Для чего в цикле for предусмотрено столько возможностей изменения инкремента и условия продолжения цикла?
Сложно так сделать для чётных???
C
1
2
3
for(int i = 0;i < ROW;i+=2)
* * * * * * for(int j = 0;j < COL;j+=2) 
                     Sum += Arr[i][j];
И так для нечётных
C
1
2
3
for(int i = 1;i < ROW;i+=2)
* * * * * * for(int j = 1;j < COL;j+=2) 
                     Sum += Arr[i][j];
parker1994
1 / 1 / 0
Регистрация: 02.12.2011
Сообщений: 8
18.04.2012, 23:33     Создание классов с использованием конструкторов различного типа #3
C++
1
2
3
4
5
6
7
8
 void Proizvedenie()
    {
        float Pro = 1;
        for(int i = 1 ;i < ROW; i+=2)
            for(int j = 1 ;j < COL; j+=2)
                        Pro *= Arr[i][j];
        printf(...);
    }
Zoltan
0 / 0 / 0
Регистрация: 20.02.2012
Сообщений: 5
19.04.2012, 13:12  [ТС]     Создание классов с использованием конструкторов различного типа #4
Спасибо!, разобрался=)
Yandex
Объявления
19.04.2012, 13:12     Создание классов с использованием конструкторов различного типа
Ответ Создать тему
Опции темы

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