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

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

Войти
Регистрация
Восстановить пароль
 
Just_dake
1 / 1 / 1
Регистрация: 21.03.2011
Сообщений: 78
#1

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

29.05.2011, 14:45. Просмотров 1205. Ответов 6
Метки нет (Все метки)

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

Образовать матрицу A(nxn), сгенерировав элементы случайным образом. Определить индексы минимального элемента матрицы. Определить индексы максимального - C++
Образовать матрицу A(nxn), сгенерировав элементы случайным образом. Определить индексы минимального элемента матрицы. Определить индексы...

Образовать матрицу A(nxn), сгенерировав элементы случайным образом. Определить индексы минимального элемента матрицы. - C++
Образовать матрицу A(nxn), сгенерировав элементы случайным образом. Определить индексы минимального элемента матрицы. Вычислить сумму...

Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым - C++
Добрый день, помогите пожалуйста сделать вот такую программу. Даны натуральное k , символьный файл f и текстовый файл f1 . Файл f...

Посчитать количество столбцов матрицы, в которых все элементы отличаются - C (СИ)
помогите пжлста разобраться с массивами, в си новичок, на форуме похожие задачки не нашла. задание следующее:программа должна состоять из...

Для заданной матрицы 8x8 найти такие k, при которых k-я строка матрицы совпадет с k-ым столбцом - C#
Решение не нужно) Нужно объяснение того, что от меня хотят)

Для заданной матрицы 8х8 найти такие k, при которых k-я строка матрицы совпадает с k-м столбцом - C#
Для заданной матрицы 8х8 найти такие k, при которых k-я строка матрицы совпадает с k-м столбцом. Найти сумму элементов в тех строках,...

6
LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
29.05.2011, 15:26 #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 з того що я написала...
Надіюсь ідея зрозуміла...
1
Just_dake
1 / 1 / 1
Регистрация: 21.03.2011
Сообщений: 78
29.05.2011, 15:35  [ТС] #3
LittleLi, спасибо за отклик, но не могли бы вы на русском обьяснить, а то я по украйнский ни бум-бум.

Добавлено через 1 минуту
И что нужно вписать в 10,11 строки?
0
LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
29.05.2011, 15:40 #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 похожи на первую для проверки о которой я писала...
1
Just_dake
1 / 1 / 1
Регистрация: 21.03.2011
Сообщений: 78
29.05.2011, 15:47  [ТС] #5
LittleLi, а можно по подробней а то я не совсем вникаю.
0
LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
29.05.2011, 15:59 #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");
}


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

но возможно есть лучший более быстрый метод, это то что первое в голову пришло
1
Just_dake
1 / 1 / 1
Регистрация: 21.03.2011
Сообщений: 78
29.05.2011, 16:10  [ТС] #7
Спасибо,щас попробую разобраться.
0
29.05.2011, 16:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2011, 16:10
Привет! Вот еще темы с ответами:

Для заданной матрицы размером 8 на 8 найти такие k,при которых k-я строка матрицы совпадет с k-ым столбцом - C#
Для заданной матрицы размером 8 на 8 найти такие k,при которых k-я строка матрицы совпадет с k-ым столбцом.Найти сумму элементов в тех...

Выбросить из матрицы элементы, индексы которых делятся на четыре, и заменить их максимальным элементом - Delphi
Данный массив m * n . Выбросить из массива те элементы , индексы которых делятся на четыре и заменить их максимальный элементом . Заменить...

Для квадратной матрицы определить индексы максимального элемента главной диагонали матрицы - Java SE
Для квадратной матрицы определить индексы максимального элемента главной диагонали матрицы

Получить массив, где будут храниться индексы строк матрицы, в которых есть равные элементы - Lazarus
2. Дан прямоугольный массив A. Получить линейный массив B, в котором будут храниться номера тех строк матрицы A, в которых есть равные...


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

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

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