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

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

Войти
Регистрация
Восстановить пароль
 
eg01st
2 / 2 / 0
Регистрация: 16.11.2010
Сообщений: 84
#1

Курсач, неясность с динамическим массивом - C++

27.05.2012, 22:16. Просмотров 260. Ответов 0
Метки нет (Все метки)

Дали курсач. Сложно его назвать курсачем, но сделать надо. Появилась проблема с созданием массива нужных значений. Далее выложу задание, что бы хотя бы немного было понятно что я вообще делаю)

Создаем матрицу. Забиваем её значениями которые ищутся по формуле i3 (2i (i – 2,5) + 1,3 )Sin((2i (j – 2,5) + 1,3 )).
Далее, проверка, если все непарные столбики матрицы имеют одинаковое количество плюсовых значений - то в массив забрасываем числа из вспомогательной диагонали матрицы, иначе - забрасываем в массив значения из главной диагонали, которую сначала сдвигаем на к разрядов.
В общем - как я понимаю, проблема с выделением памяти, но я пока не могу понять, где именно ошибка. Подскажите пожалуйста хотя бы где её искать) Спасибо)
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// kursach.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
 
int CreateMas(int *ar, int chislo)
{
 
//создаем доролнительный массив 
int *temp;
temp = new int [sizeof(ar)/sizeof(ar[0])];// на кол-во элементов в массиве с данными
//далее копируем все данные из массива op в массив temp
for(int i=0;i<sizeof(ar)/sizeof(ar[0]);i++)
{
   temp[i] = ar[i];
}
//удаляем массив ор и создаем заново но на один элемент больше
delete [] ar;
ar = new int[(sizeof(ar)/sizeof(ar[0]))+1];
//и копируем данные обратно
for(int i=0;i<sizeof(ar)/sizeof(ar[0]);i++)
{
    ar[i]=temp[i];
}
 ar[sizeof(ar)/sizeof(ar[0])] = chislo;
 
 return *ar;
 
}
int _tmain(int argc, _TCHAR* argv[])
{   
    setlocale(LC_ALL,"Russian");
    int n; // Колличество строк
    int m; // Колличество столбцов
    int i,j;
    bool res = false;
    int ar[1];
    cout<<"Введите количество строк матрицы: "<<endl;
    cin>>n;
    cout<<"Введите количество столбцов матрицы: "<<endl;
    cin>>m;
    int** array_2d;
 
    // Создаем массив указателей
    array_2d = new int*[n];
    cout<<"Получена матрица вида: "<<endl;
    // А теперь создаем массивы значений, для каждой строки
    for (int i = 0; i < n; i++) {
        array_2d[i] = new int[m];
    }
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            array_2d[i][j] = (pow(i,3.0))*((pow(2.0,i)*(i-2.5))+1.3)*sin((pow(2.0,i)*(j-2.5))+1.3);
            cout << array_2d[i][j] <<"\t"<< " ";
        }
        cout << endl;
    }
    
    for (int  i = 1 ;i<n;i++)
    {
        int curr_count = 0, prev_count = 0;
        if ((i % 2) >= 1)
        {
        for (j=1;j<m;j++)
            {
            if (array_2d[i][j]>0) 
                curr_count++;
            }
        if(i == 1)
            {
                curr_count = prev_count;    
            }
        if (curr_count != prev_count)
            {
            res = false;
            i = n;
            }
        else 
            {
            prev_count = curr_count;
            curr_count = 0;
            res =  true;
            }
        }       
    }
 
    if(!res)
    {
        int k = 0;
        cout<<"Итог проверки на соответствие количества плюсовых чисел = ложь. Введите К"<<endl;
        cin>>k;
        for (int i = 0; (i < n) || (i < m); i++ )
        {
            if((i+k)<m)
            {
                    CreateMas(ar,array_2d[i][i+k]);
            }
        }
    }
    else
    {
        cout<<"Итог проверки на соответствие количества плюсовых чисел = истина"<<endl;
        for (int i = 0; i < n; i++)
        {
            for(int j = 0; j < m; j++)
            {
                if(j == n - i - 1 )
                {
                    CreateMas(ar,array_2d[i][j]);
                }
            }
        }
    }
 
 
 
    // Удаляем массивы значений
    for (int i = 0; i < n; i++) {
        delete[] array_2d[i];
    }
    // Удаляем массив указателей
    delete[] array_2d;
    system("pause"); 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2012, 22:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Курсач, неясность с динамическим массивом (C++):

Класс с динамическим массивом - C++
доброго времени суток! помогите мне немножко: создать клас vector для сохранения массиву, розмеры от 10 до 10к, память виделите...

Работа с динамическим массивом - C++
Помогите, пожалуйста. В чем проблема? Компилирует, но выполнять не хочет. Надо вставить элемент в конец динамического массива, удалить...

Проблема с динамическим массивом - C++
#include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; int l,r,i=0,j=0,k=0,k1=0,k2=0,x=2,z=1;int ost; int...

Работа с динамическим массивом - C++
Дано: динамический двумерный массив. Определить сумму всех элементов (с помощью функции, массив и его размерность передать в качестве...

Странность с динамическим массивом - C++
Меня в тупик поставило следующая ошибка (&quot;Название исполняемого файла&quot; has triggered a breakpoint.) В данном простеньком коде. Кто...

Класс с содержащимся динамическим массивом - C++
Возникла необходимость создать свой объект, с внутренним массивом данных, к которому возможно применять Add, Delete, Clear, Count ну и так...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2012, 22:16
Привет! Вот еще темы с ответами:

Дополнить класс динамическим массивом - C++
Доброго всем времи суток!!! Возникла проблема - создан класс &quot;sequence&quot; нужно дописать его так, чтобы он использовал динамический...

Ошибка связанная с Динамическим массивом - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; int main() { using namespace std; char * ch = new char; cin &gt;&gt; ch; for (int i = 1; i...

Сортировки слиянием с динамическим массивом - C++
Добрый вечер! мне нужно отсортировать массив слиянием с динамическим массивом помогите пожалуйста!!! массив #include &quot;stdafx.h&quot; ...

Работа с динамическим двумерным массивом - C++
Написал код. В двумерном массиве 5х5 находится максимальное значение каждой строки и затем минимальное из них. Необходимо указывать...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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