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

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

Войти
Регистрация
Восстановить пароль
 
Максим 1994
0 / 0 / 1
Регистрация: 16.11.2012
Сообщений: 43
#1

Предусмотреть использование шаблонного класса для работы с различными типами данных - C++

18.04.2013, 18:21. Просмотров 418. Ответов 1
Метки нет (Все метки)

Собственно само задание.

Преобразовать квадратную матрицу, осуществив поворот элементов вокруг центра матрицы на 90 градусов против хода часовой стрелки. Предусмотреть использование шаблонного класса для работы с различными типами данных.

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
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <math.h>
using namespace std;
int **masA, **masB, n, m, i, j, k;
double temp;
int main ()
{  
    setlocale( LC_CTYPE, ".1251" );  
    cout<<"Введите количество строк в матрице: "<< endl;
    cin>>n;
    cout<<"Введите количество столбцов в матрице: "<< endl;
    cin>>m;
    masA = new int*[n];
        masB = new int*[m];
    for(i=0; i<n; i++)
       masA[i] = new int[m];
   for(i=0; i<m; i++)
       masB[i] = new int[n];
    cout<<"Введите элементы матрицы: "<< endl;
    for(i=0; i<n; i++)
       for(j=0; j<m; j++)
       {
          cin>>masA[i][j];
       }
        cout<<"Исходная матрица: "<<endl;
    for(i=0; i<n; i++)
        {
       for(j=0; j<m; j++)
          cout<<masA[i][j]<<" ";
           cout<<endl;
        }
    cout<<"Повернутая матрица на 90 градусов против хода часовой стрелки: "<<endl;
        for(i=0, k=m-1; i<m; k--, i++)
       for(j=0; j<n; j++)
           masB[k][j] = masA[j][i];
        for(i=0; i<m; i++)
        {
       for(j=0; j<n; j++)
                   cout<<" "<<masB[i][j]; 
           cout<<endl;
        }
        system ("PAUSE");
         return 0; 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2013, 18:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Предусмотреть использование шаблонного класса для работы с различными типами данных (C++):

Как перегрузить оператор "+" для шаблонного класса, инстанцированного разными типами? - C++
подскажите как перегрузить оператор &quot;+&quot; для шаблона , инстанцированных разными типами ...

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

Реализовать программу-калькулятор, работающий с различными типами данных - C++
Реализовать программу-калькулятор, работающий с различными типами данных на языке с++

Как корректно передать в метод шаблонного класса объект шаблонного класса в качестве параметра? - C++
header.h template &lt;class T&gt; class MyVector { public: void swap(MyVector&lt;T&gt;Vector); } template &lt;class T&gt; void...

Друзья шаблонного класса. Использование вложенной в класс структуры - C++
Всем привет! Изучаю книгу &quot;Прата С. - Язык программирования С++. Лекции и упражнения&quot;. Разобрал тему шаблоны классов и в заданиях для...

Использование указателя на объект шаблонного класса в шаблонном классе. - C++
Всем привет! Мне нужно реализовать граф. Начал с вершин и ребер, причем и ребра и вершины - шаблонные классы, для того чтобы и ребро и...

1
stima
495 / 345 / 43
Регистрация: 22.03.2011
Сообщений: 1,107
Завершенные тесты: 2
18.04.2013, 19:05 #2
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
#include <iostream>
 
template <typename T>
class Matrix
  {
  struct Proxy
    {
    Proxy(T*& data_1d) : _data_1d(data_1d) {}
 
    T& operator[](size_t index) { return _data_1d[index]; }
 
    T * const _data_1d;
    };
 
  public:
    Matrix(size_t cols, size_t rows)
      : _data_2d(0), _cols(cols), _rows(rows)
      {
      _data_2d = new T*[cols];
      for (size_t i = 0; i < cols; ++i)
        _data_2d[i] = new T[rows]();
      }
    
    size_t cols() const { return _cols; }
    size_t rows() const { return _rows; }
 
    T& at(size_t row, size_t col) { return _data_2d[row][col]; }
    Proxy operator[](size_t index) { return Proxy(_data_2d[index]); }
 
    void rotate90()
      {
      /*write rotation here*/
      }
 
  private:
    T ** _data_2d;
 
    size_t _cols;
    size_t _rows;
  };
 
int main()
  {
  Matrix<int> matrix(10, 10);
 
  matrix[1][1] = 42;
  std::cout << matrix[1][1] << std::endl;
 
  return 0;
  }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2013, 19:05
Привет! Вот еще темы с ответами:

Шаблонный класс для работы с разными типами данных и объявление методов в main - C++
есть класс шаблонный, но не могу объявить методы в main и сделать длядругих типов :(когда делала через шаблонные функции, то программа...

Вызов метода у шаблонного поля, шаблонного класса - C++
Пытаюсь разобраться с шаблонами- задача создать шаблонный класс, у которого есть шаблонное поле. и затем вызывать метод у этого поля. ...

итератор для шаблонного класса - C++
Всем солнца! Честно честно честно пересмотрел более 100 различных вариантов разных решений. НО.... :wall: есть список: ...

Перегрузка << , >> для шаблонного класса - C++
Доброго времени суток всем! Данная тема не раз подымалась на форуме.. Но есть но.. Помогите перегрузить операторы побитового сдвига для...


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

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

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