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

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

Войти
Регистрация
Восстановить пароль
 
J_Max
Заблокирован
#1

Обмен половинами в матрице - C++

21.02.2010, 16:19. Просмотров 353. Ответов 3
Метки нет (Все метки)

Дана матрица HxW H = 4 W = 4. Составить функцию, которая может, менять столбцы первой половины матрицы на столбцы второй половины матрицы. Сделайте пожалуйста. лучше на C++.
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2010, 16:19     Обмен половинами в матрице
Посмотрите здесь:

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

Обмен строчек в матрице - C++
вообщем немогу найти ошибку(ничего не меняет #include <iostream> #include <conio.h> #include <locale> using namespace std; ...

Обмен значениями - C++
Не понимаю, почему в двух последних случаях обмен значений переменных не происходит. #include <iostream> void swapr(int & a, int &...

Модифицированний обмен - C++
Здравствуйте, можете подсказать, что это за сортировка (модифицированная) ? Гуглил, ничего не нашел, вот объяснение к этой сортировке. ...

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

Обмен через порт - C++
нужно написать две программки под UNIX, которые общались бы между собой через последовательный порт /dev/ser. Может кто нибудь рассказать...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1235 / 773 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
21.02.2010, 16:32     Обмен половинами в матрице #2
Раз уж на C++ попробуй абстрактное решение.
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
#include <iostream.h>
#include <stdlib.h>
 
 
//Обмен одной половина матрицы с её другой половиной
template <class T>
long swap_halfs(T *matrix , const int H, const int W);
template <class T>
long print_m(T *matrix ,const  int H, const int W);
 
int main(){
const int H = 4;
const int W = 4;
    int matrix[H][W] = {
        {1,1,2,2},
        {1,1,2,2},
        {1,1,2,2},
        {1,1,2,2}
};
print_m(matrix,H,W);
swap_halfs((int*)matrix,H,W);
print_m(matrix,H,W);
 
return 0;
}
 
template <class T>
long print_m(T *matrix , const int H, const int W){
    for(int i=0;i<H;i++){
        for(int j=0;j<W;j++){
          cout<<' '<<matrix[i][j];
        }
cout<<'\n';
}
cout<<'\n';
return 0;
}
 
 
template <class T>
long swap_halfs(T *matrix , const  int H, const int W){
if(W%2!=0)return -1;    //матрица должна быть чётной ширины.
T tmp; 
//Цикл обмен половинами
for(int i=W/2-1,j=W/2; i>=0||j<W; i--,j++){
    for(int str = 0;str<H;str++){
    tmp = matrix[str*W+i];
    matrix[str*W+i]=matrix[str*W+j];
    matrix[str*W+j] = tmp;
    }
}
return 0;
}
J_Max
Заблокирован
21.02.2010, 16:38  [ТС]     Обмен половинами в матрице #3
А без шаблонов можно как то?

Добавлено через 2 минуты
Я не очень их понимаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2010, 16:44     Обмен половинами в матрице
Еще ссылки по теме:

Неудачный обмен данных - C++
// использование строк в классе #include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; ...

Межпрограммный обмен данными - C++
Помогите сделать , чтобы при вводе в одной консоле(сервере) выдавала на другую консоль(клиент) текст В данный момент этот код выдаёт...

Обмен строк в матрицах - C++
Помогите пожалуйста с программкой на с++! буду очень благодарен! В каждой из матриц A (4×3), B (5×4) поменять местами две строки: в A...

Обмен между приложениями - C++
Есть два приложения в ОС Windows , одно консольное которое ждет ввода трех чисел std::cin , второе диалоговое , диалоговое запускает...


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

Или воспользуйтесь поиском по форуму:
Genius Ignat
1235 / 773 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
21.02.2010, 16:44     Обмен половинами в матрице #4
По десять раз писать одно и тоже.
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
#include <iostream.h>
#include <stdlib.h>
 
 
//Обмен одной половина матрицы с её другой половиной
 
long swap_halfs(int *matrix , const int H, const int W);
long print_m(int *matrix ,const  int H, const int W);
 
int main(){
const int H = 4;
const int W = 4;
    int matrix[H][W] = {
        {1,1,2,2},
        {1,1,2,2},
        {1,1,2,2},
        {1,1,2,2}
};
print_m((int*)matrix,H,W);
swap_halfs((int*)matrix,H,W);
print_m((int*)matrix,H,W);
 
return 0;
}
 
 
long print_m(int *matrix , const int H, const int W){
    for(int i=0;i<H;i++){
        for(int j=0;j<W;j++){
          cout<<' '<<matrix[i*W+j];
        }
cout<<'\n';
}
cout<<'\n';
return 0;
}
 
 
 
long swap_halfs(int *matrix , const  int H, const int W){
if(W%2!=0)return -1;    //матрица должна быть чётной ширины.
int tmp; 
//Цикл обмен половинами
for(int i=W/2-1,j=W/2; i>=0||j<W; i--,j++){
    for(int str = 0;str<H;str++){
    tmp = matrix[str*W+i];
    matrix[str*W+i]=matrix[str*W+j];
    matrix[str*W+j] = tmp;
    }
}
return 0;
}
Yandex
Объявления
21.02.2010, 16:44     Обмен половинами в матрице
Ответ Создать тему
Опции темы

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