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

Построить результат сглаживания заданной вещественной матрицы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Клиент-сервер , скриншот http://www.cyberforum.ru/cpp-beginners/thread13203.html
Нужно написать на Си++ программу - клиент-сервер, в которой при нажатии кнопки у клиента, сервер делает у себя скриншот и пересылает его на клиента... Я не прошу написать мне данную программу, а прошу помощи в поиске литературы(форумов, статей и т.д.). Впринципе исходники скриншота есть, а вот по поводу клиент-сервера в инете ничего найти не могу :(. Заранее Спасибо.
C++ Класс Вектор Нужна помощь в написании программы. Класс "Вектор". (Чем он отличается от массива? в том что мне дали про вектора ни слова. Помогите разобраться.) Методы: Скалярное умножение векторов. Вычисление длины вектора. Умножение вектора на константу. Отображение всех компонент вектора на экране. Если можно то с комментариями. Что бы использовать как образец для дальнеёшего написания программ. http://www.cyberforum.ru/cpp-beginners/thread13187.html
C++ Где ошибка??
нужна такая прога которая при введении чисел a и b а также введение операции с выдавала результат.. вот написал на виж.студ. пишет что не может найти какой то ехе файл... это ошибка в тексте программы или что то иное?? если ошибка то поясните пожалуйста) #include <math> void main () { int c,a,b,v; cout << "Vvedite Primer"; cin >> a,c,b; if (c=*){ v=a*b;
C++ Очистка экрана (кроссплатформенный способ)
Подскажите, пожалуйста, существует ли кроссплатформенный способ очистки экрана? в Windows я знаю как это сделать. Например system("cls"); или clrscr();. Кажется вторую функцию поддерживает только CodeGear/Borland.
C++ Ссылки на функции класса http://www.cyberforum.ru/cpp-beginners/thread13168.html
Задача: В классе иметь массив ссылок на функции этого класса, чтобы вызывать их по номеру из массива. Также в классе должна присутствовать функция обработки массива с целью получения ссылки на функции (по номеру в массиве) и их вызова. Например: нужно вызвать функцию №2 класса MyClass........ typedef void (*PF)(void); //Это для ссылки на функцию // Есть класс: class MyClass { public:...
C++ C++ . Смерть на взлете. Коллеги, наверное, это очень важно для новичка - вместо того, чтобы теребить коллег с вопросами, что почитать, а уж начать, в конце концов, не важно с чего. А еще... не только почитать перед сном учебник, а поробовать что-то по нему сделать. Но вот у меня прямо сходу не получилось. Итак, пишу прямо по первому уроку как консольное приложение #include <iostream.h> int main() { int x=5; ... подробнее

Показать сообщение отдельно
Юся
Сообщений: n/a
26.12.2008, 16:54     Построить результат сглаживания заданной вещественной матрицы
я эту же задачу пыталась решать по-другому, но не получается. подскажите пожалуйста, где ошибка (задача с использованием шаблона для класса)
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
165
166
167
168
169
170
#include <cstdlib>
#include <windows.h>
#include <iomanip>
#include <cstddef>
#include <iostream>
using namespace std;
//Шаблон для класса
template <class TT>
class array2
{TT** a;
 int n;
 int m;
 public:
 //конструктор
 array2(int nn,int nm);
 //конструктор по умолчанию
 array2();
 //конструктор копий
 array2(const array2& ob);
 //деструктор
 ~array2();
 //методы доступа
 int getn();
 int getm();
 TT& geta(int r,int k);
 //метод для инициализации закрытого поля
 void set(int r,int k,TT b);
 //дружественная функция для сглаживания матрицы
 friend void sglag(const array2<TT>& t1,array2<TT>& t2,int n,int m);
};
//***** Определение функции для сглаживания матрицы *****//
template <class TT>
void sglag(const array2<TT>& t1,array2<TT>& t2,int n,int m)
{//Объявление массива и переменных
int i,j,r,k,l;
t s;
for(i=0;i<t1.n;i++)
   {for(j=0;j<t1.m;j++)
      {s=0;
       r=0;
       for (k=0;k<t2.n;k++)
        {for (l=0;l<t2.m;l++)
           {if((t2.n!=i)&&(t2.m!=j)&&(t2.n>=0)&&(t2.m>=0)&&(t2.n>=i-1)&&(t2.n<=i+1)&&(t2.m>=j)&&(t2.m<=j+1))  {s=s+t2.a[i][j];
                                                                                                               r++;
                                                                                                              }
           }
        }
    s=s/r;
    t2.a[i][j]=s;
    }
}
//***** Пользовательская функция вставки для двумерного массива *****//
template <class TT>
istream& operator>>(istream& is,array2<TT>& ob)
{TT temp;
 char s1[80], s2[80];
 CharToOem("\nВведите ", s1);
 CharToOem("\nстроку\n", s2);
  int i,j;
  for(i=0;i<ob.getn();i++)
     {cout<<s1<<i;
       cout<<s2;
       for(j=0;j<ob.getm();j++)
          {is>>temp;
           ob.set(i,j,temp);
          }
      }
 return is;
}
//***** Пользовательская функция извлечения для двумерного массива *****//
template <class TT>
ostream& operator<<(ostream& os, array2<TT> ob)
{int i,j;
  for(i=0;i<ob.getn();i++)
     {os<<endl;
       for(j=0;j<ob.getm();j++)
          {os<<setw(10)<<setprecision(4)<<ob.geta(i,j);
          }
      }
 return os;
}
//***** Конструктор для двумерного массива *****//
template <class TT>
array2<TT>::array2(int nn,int nm)
{n=nn;
  m=nm;
  //выделение  места под массив
  a=new TT* [n];
  if(a==NULL){cout<<"\nNet OP";
                          exit(1);
                         }
 for(int i=0;i<n;i++)
    {a[i]=new TT [m];
      if(a[i]==NULL){cout<<"\nNet OP";
                                  exit(1);
                                }
    }
}
//***** Конструктор по умолчанию для двумерного массива *****// 
template <class TT>
array2<TT>::array2()
{
}
//***** Конструктор копий для двумерного массива *****//
template <class TT>
array2<TT>::array2(const array2& ob)
{n=ob.n;
  m=ob.m;
  int i,j;
  a=new TT* [n];
  if(a==NULL){cout<<"\nNet OP";
                          exit(1);
                         }          
 for(i=0;i<n;i++)
    {a[i]=new TT[m];
      if(a[i]==NULL) {cout<<"\nNet OP";
                                  exit(1);
                       }
 }
for(i=0;i<n;i++)
   for(j=0;j<m;j++)
      a[i][j]=ob.a[i][j];
}
//***** Деструктор для двумерного массива *****//
template <class TT>
array2<TT>::~array2()
{
}
//***** Определение методов доступа для двумерного массива *****//
template <class TT>
int array2<TT>::getn()
{return n;
}
template <class TT>
int array2<TT>::getm()
{return m;
}
template <class TT>
TT& array2<TT>::geta(int r,int k)
{return a[r][k];
}
//***** Мeтод для инициализации закрытого поля для двумерного массива *****// 
template <class TT>
void array2<TT>::set(int r,int k,TT b)
{a[r][k]=b;
}
//Главная функция
void main()
{int i,j;
 char str[80];
 CharToOem("\nВведите размеры матрицы\nколичество строк  ", str);
 cout<<str;
 cin>>i;
 CharToOem("\nколичество столбцов  ",str);
 cout<<str;
 cin>>j;
 array2<double> Q(i,j);
 array2<double> X(i,j);
 CharToOem("\nВведите матрицу\n",str);
 cout<<str;
 cin>>Q;
 CharToOem("\nПечать матрицы",str);
 cout<<str;
 cout<<Q;
 //сглаживание
 sglag(Q,X);
 CharToOem("\nМатрица, полученная после cглаживания исходной матрицы\n",str);
 cout<<str;
 cout<<X<<endl;
}
Добавлено через 45 секунд
извиняюсь, свернуть не получилось...
 
Текущее время: 16:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru