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

Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не.. - C++

Восстановить пароль Регистрация
 
Just_dake
1 / 1 / 1
Регистрация: 21.03.2011
Сообщений: 78
29.05.2011, 14:45     Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не.. #1
Доброго дня! Тут есть такая задачка:Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не более чем на 1. Для данной целочисленной матрицы [Aij] размером mxn найти матрицу из 0 и 1 [Bij], элемент которой b[ij] равен 1, когда все соседи a[ij] и само a[ij] равны нулю.
Может кто растолковать как это решается, желательно решить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2011, 14:45     Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не..
Посмотрите здесь:

Образовать матрицу A(nxn), сгенерировав элементы случайным образом. Определить индексы минимального элемента матрицы. Определить индексы максимального C++
C++ Образовать матрицу A(nxn), сгенерировав элементы случайным образом. Определить индексы минимального элемента матрицы.
Матрицы: удалить из матрицы столбцы, в которых есть равные элементы C++
Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым C++
Из существующей матрицы n*m записать в новую матрицу все элементы исходной матрицы, кроме максимального и минимального элемента из каждой строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LittleLi
 Аватар для LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
29.05.2011, 15:26     Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не.. #2
Потрібно пройтися циклом по всіх елементах і зробити для кожного перевірку...Щось типу
C++
1
2
3
4
5
6
7
8
9
10
11
12
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
if(i<n-1&&i>0&&j<m-1&&j>0)
{
    if(a[i][j]==0&&a[i-1][j]==0&&a[i+1][j]==0&&a[i][j-1]==0&&a[i][j+1]==0)
        b[i][j]=1;
    else b[i][j]=0;
}
if(){}
if(){}
.......
}
Але слід врахувати що в елементів по кутках матриці і коли i==0 або j==0 то в них є не всі сусідні елементи.Для того потрібна найперша if з того що я написала...
Надіюсь ідея зрозуміла...
Just_dake
1 / 1 / 1
Регистрация: 21.03.2011
Сообщений: 78
29.05.2011, 15:35  [ТС]     Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не.. #3
LittleLi, спасибо за отклик, но не могли бы вы на русском обьяснить, а то я по украйнский ни бум-бум.

Добавлено через 1 минуту
И что нужно вписать в 10,11 строки?
LittleLi
 Аватар для LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
29.05.2011, 15:40     Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не.. #4
я русский тоже очень плохо знаю ....
Пользуюсь Google translate

Нужно пройтись циклом по всем элементам и сделать для каждого проверку ... Что-то типа

C++
1
2
3
4
5
6
7
8
9
10
11
12
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
if(i<n-1&&i>0&&j<m-1&&j>0)
{
        if(a[i][j]==0&&a[i-1][j]==0&&a[i+1][j]==0&&a[i][j-1]==0&&a[i][j+1]==0)
                b[i][j]=1;
        else b[i][j]=0;
}
if(){}
if(){}
.......
}


Но следует учесть что у элементов по углам матрицы и когда i == 0 или j == 0 то у них есть не все соседи.Для того нужна первая if из того что я написала ...
Надеюсь идея понятна ...

туда надо добавить if похожи на первую для проверки о которой я писала...
Just_dake
1 / 1 / 1
Регистрация: 21.03.2011
Сообщений: 78
29.05.2011, 15:47  [ТС]     Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не.. #5
LittleLi, а можно по подробней а то я не совсем вникаю.
LittleLi
 Аватар для LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
29.05.2011, 15:59     Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не.. #6
ну надо рассмотреть случаи когда a [i] [j] находится в углу матрицы, когда не в углу но у края и посередине ..
что то вроде
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
#include<iostream>
using namespace std;
void main()
{
    const int n=4,m=4;
    int a[n][m],b[n][m];
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
        {
            cout<<"a["<<i<<"]["<<j<<"]= ";
            cin>>a[i][j];
        }
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
        {
            if(i<n-1&&i>0&&j<m-1&&j>0)
            {
                if(a[i][j]==0&&a[i-1][j]==0&&a[i+1][j]==0&&a[i][j-1]==0&&a[i][j+1]==0)
                    b[i][j]=1;
                else b[i][j]=0;
            }
            else if(i==0&&j==0)
            {
                if(a[0][0]==0&&a[0][1]==0&&a[1][0]==0)
                    b[i][j]=1;
                else b[i][j]=0;
            }
            else if(i==0&&j==n)
            {
                if(a[0][n]==0&&a[0][n-1]==0&&a[1][n]==0)
                    b[i][j]=1;
                else b[i][j]=0;
            }
else if(i==n&&j==0)
            {
                if(a[n][0]==0&&a[n-1][0]==0&&a[n][1]==0)
                    b[i][j]=1;
                else b[i][j]=0;
            }
            else if(i==n&&j==n)
            {
                if(a[n][n]==0&&a[n][n-1]==0&&a[n-1][n]==0)
                    b[i][j]=1;
                else b[i][j]=0;
            }
            else if(i==0&&j!=0&&j!=n)
            {
                if(a[i][j]==0&&a[i][j-1]==0&&a[i][j+1]==0&&a[i+1][j]==0)
                    b[i][j]=1;
                else b[i][j]=0;
            }
        ......................
        }
 
        for (int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
            {
                if(j==0)cout<<endl<<a[i][j]<<" ";
                else cout<<b[i][j]<<" ";
            }
        }
        system("PAUSE");
}


эта программа еще не закончена

но возможно есть лучший более быстрый метод, это то что первое в голову пришло
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2011, 16:10     Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не..
Еще ссылки по теме:

Поменять большие элементы в строке матрицы с маленькими элементами этой же матрицы C++
Соседями элемента A ij в матрице назовем элементы А kl, где C++
C++ Найти такие элементы, у которых оба соседних элемента, как и сам он, делятся нацело на одно и то же число

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

Или воспользуйтесь поиском по форуму:
Just_dake
1 / 1 / 1
Регистрация: 21.03.2011
Сообщений: 78
29.05.2011, 16:10  [ТС]     Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не.. #7
Спасибо,щас попробую разобраться.
Yandex
Объявления
29.05.2011, 16:10     Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не..
Ответ Создать тему
Опции темы

Текущее время: 17:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru