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

классы с массивами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить среднее арифметическое всех отрицательных элементов матрицы http://www.cyberforum.ru/cpp-beginners/thread272137.html
Для заданной матрицы A(n, m) определить среднее арифметическое всех отрицательных элементов.В случае отстутствия вывести сообщение про их отсутствие. Очень нужно.
C++ Массив-проверка В целочисленном масиве найти сумму всех элементов кратных двум и трём. Вот код реализации #include <iostream> #include <cmath> #include <iomanip> #include <ctime> #include <conio.h> #include "fun_console.h" using namespace std; http://www.cyberforum.ru/cpp-beginners/thread272134.html
Создать класс Date – дата, содержащая поля: день, месяц, год. C++
Создать класс Date – дата, содержащая поля: день, месяц, год. Определить операторы "+" и "-", как методы класса, а "++" и "--" в обеих формах (префиксная и постфиксная) как дружественные функции. Оператор "+" должен позволять осуществление операции только с переменными встроенного int. (x=y+5.)Должна быть предусмотрена корректная работа с високосными годами.
Создать матрицу.Вывести самый меньший парный элемент C++
Создать матрицу.Вывести самый меньший парный элемент.Парный имеется ввиду который стоит к примеру во втором столбце и второй строчке.
C++ Проверить матрицу на ортоганальность http://www.cyberforum.ru/cpp-beginners/thread272114.html
Всем привет=) Вот такое задание есть: "Проверить матрицу ортоганальная ли она (с помощью функций), то есть скалярные произведения каждого ряда на другой равны о" Подкиньте идею пож... Заранее спасибо=)
C++ Циклы в C# Подскажите, пожалуйста, где ошибка? Программа неправильный результат выдаёт! Вот исходные данные: p=s=4*(1-(1/3)+...+((-1)^n*(1/2*n+1)+...) e=0.0001 Через рекуррентное соотношение: q=-(2*n+1)/(2*n+3) Вот сама программа: { подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,302
09.04.2011, 15:56     классы с массивами
редактор...

Добавлено через 1 минуту
Пожалуй, что так
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
using namespace std;
 
 
class Array
{
        int *ar;
        int size;
        public:
                Array(int size_=0);
                ~Array(){if (ar) delete []ar;}
                void Set(int i, int e);
                int Get(int i);
                int GetSize(){return size;}
                void Add(int e=0);
                double sum();
                double avg(){return sum()/GetSize();}
                void SetRand(int min=0, int max=RAND_MAX);
                void SetSize(int new_size);
 
                bool otnimanie ();  
                void sort_po_vozr ();
 
 
        private:
                  
 
};
 
Array::Array(int size_)
{
        size=size_;
        if (size==0)
        {
                ar=0;
                return;
        }
 
        ar=new int[size];
        for (int i=0;i<size;i++) ar[i]=0;
}
 
void Array::Set(int i, int e)
{
        if (i>=0 && i<size) ar[i]=e;
}
 
int Array::Get(int i)
{
        if (i>=0 && i<size) return ar[i];
        return 0;
}
 
double Array::sum()
{
        double s=0;
        for (int i=0;i<size;i++)
                s+=ar[i];
        return s;
}
 
void Array::SetRand(int min, int max)
{
        srand( (unsigned)time( NULL ) );
        for (int i=0;i<size;i++)
                ar[i]=rand()%(max-min-1)+min;
}
 
void Array::SetSize(int new_size)
{
        int *t=new int[new_size];
 
        for (int i=0;i<new_size;i++)
        {
                if (i<size) t[i]=ar[i];
                else t[i]=0;
        }
 
        if (ar) delete []ar;
        ar=t;
        size=new_size;
        
}
 
void Array::Add(int e)
{
        SetSize(size+1);
        ar[size-1]=e;
}
 
 
bool Array::otnimanie() {
 int temp= GetSize()- 1;
 int temp_1= Get(temp);
 if (temp < 1)
  return false;
 else {
  for (int i= 0; i< temp; Set(i, Get(i)- temp_1), i++);
 } 
}
 
void Array::sort_po_vozr() {
// void shellsort (int v[], int n) {
 int n= GetSize();
 int gap, i, j, temp;
 for (gap= n/2; gap> 0; gap/= 2) {
  for (i= gap; i< n; i++) {
   for (j= i- gap; j>= 0&& Get(j)  > Get  (j+ gap); j-= gap) {
    temp= Get (j) ;
    Set (j, Get (j+ gap)); 
    Set (j+ gap, temp);
   }
  }
 }
}
 
 
int main(int argc, char* argv[])
{
        int i;
        Array a(10);
 
        a.SetRand(1,100);
        cout<<"size="<<a.GetSize()<<"\n";
        
        for (i=0;i<a.GetSize();i++)
                cout<<i<<": "<<a.Get(i)<<"\n";
 
        cout<<"sum="<<a.sum()<<"\n";
        cout<<"avg="<<a.avg()<<"\n";
 
        
        a.Add(33);
        //a.SetSize(20);
        cout<<"size="<<a.GetSize()<<"\n";
        
        for (i=0;i<a.GetSize();i++)
                cout<<i<<": "<<a.Get(i)<<"\n";
 
        cout<<"sum="<<a.sum()<<"\n";
        cout<<"avg="<<a.avg()<<"\n";
        cout<<"++++++++++++++++++++++++++\n";
 
        if (a.otnimanie ()) {
                 for (i=0;i<a.GetSize();i++)
                cout<<i<<": "<<a.Get(i)<<"\n";
 
        }
        
        cout<<"++++++++++++++++++++++++++\n";
        a.sort_po_vozr ();
                 for (i=0;i<a.GetSize();i++)
                cout<<i<<": "<<a.Get(i)<<"\n";
        
 
        getchar (); 
 
 
        return 0;
}
 
Текущее время: 20:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru