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

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

Войти
Регистрация
Восстановить пароль
 
referent
1 / 1 / 0
Регистрация: 24.04.2014
Сообщений: 36
#1

Поиск по заштрихованной части матрицы - C++

30.04.2014, 09:01. Просмотров 292. Ответов 3
Метки нет (Все метки)

Такая вот задача: есть матрица 5х5 (заполняется случайным образом), в ней некоторые елементы заштрихованы. Найти минимальный элемент в заштрихованной части матрицы и заменить им все элементы из незаштрихованной части.
Матрица выглядит так (слэш - заштрихованный элемент):
| ----- |
| ----/ |
| -///- |
| ////- |
| ----- |
Как организовать поиск по заштрихованной части и сделать шаблон штриховки из ввода с клавиатуры?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2014, 09:01     Поиск по заштрихованной части матрицы
Посмотрите здесь:

Найти наибольший элемент в заштрихованной части матрицы - C++
#include <iostream> using namespace std; const int n= 5; void main () { int a = {18, -45, 70, -28, 30, -66, 47, -39, -71, 0, 10,...

Найти наибольший и наименьший элемент заштрихованной части матрицы - C++
Помогите, пожалуйста. Если можно, с комментариями. Дано натуральное число n. Сформировать произвольную матрицу размерностью nxn....

Найти наибольшее из значений элементов, расположенной в заштрихованной части матрицы - C++
Здравствуйте. Помогите разобраться с массивами. Задали написать программу как вообще это сделать? можете ли подробно объяснить прогу и...

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

Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы - C++
Здравствуйте. Пожалуйста, напишите код. Буду очень благодарен. Дана действительная квадратная матрица порядка n. Найти наибольшее из...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
30.04.2014, 09:07     Поиск по заштрихованной части матрицы #2
C++
1
2
3
4
5
6
7
8
9
for (int i = 0; i < 5; i++)
  for (int j = 0; j < 5; j++)
    switch (i)
    {
      case 1: if (j == 4) ... ; break;
      case 2: if (j > 0 || j < 4) ... ; break;
      case 3: if (j < 4) ... ; break;
      default: ... ; // этот пункт можно использовать при заполнении остальных тем элементом
    }
Про шаблон, кстати, хорошая мысль. Можно создать массив bool, в котором отметить заштрихованные элементы.
referent
1 / 1 / 0
Регистрация: 24.04.2014
Сообщений: 36
30.04.2014, 09:44  [ТС]     Поиск по заштрихованной части матрицы #3
Керра, как-то так, я думаю
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
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <iterator>
#include <vector>
#include <climits>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Rus");
    int size = -1;
    cout << "Введите размер матрицы: ";
    while (size > 10 || size < 1) {
        cin >> size;
    }
 
    cout << "Введите шаблон штриховки (\"+\" - заштриховано, \"-\" - незаштриховано)\n";
 
    bool ** hatching = new bool *[size];
    char input;
    for (int i = 0; i < size; i++) {
        hatching[i] = new bool[size];
        for (int j = 0; j < size; j++) {
            cin >> input;
            if (input == '+') {
                hatching[i][j] = true;
            }
            else
            {
                hatching[i][j] = false;
            }
        }
    }
 
    cout << "Матрица:" << endl;
    int ** matrix = new int *[size];
    for (int i = 0; i < size; i++) {
        matrix[i] = new int[size];
        for (int j = 0; j < size; j++)
            cout << setfill(' ') << " " << (matrix[i][j] = rand() % 50 - 25) << " ";
        cout << "\n";
    }
 
    cout << "\n\n";
 
    int min = INT_MAX;
 
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            if (hatching[i][i]) {
                if (matrix[i][j] < min) {
                    min = matrix[i][j];
                }
            }
        }
    }
 
    cout << "Минимальный элемент найден: " << min << "\n\n" << endl;
 
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            if (!hatching[i][j]) {
                matrix[i][j] = min;
            }
            cout << matrix[i][j] << " ";
        }
        cout << "\n";
    }
 
    system("pause");
    return 0;
}
Как можно код, скажем, "причесать"?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2014, 20:44     Поиск по заштрихованной части матрицы
Еще ссылки по теме:

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

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

Получить наибольшее из элементов, расположенных в заштрихованной части действительной квадратной матрицы - C++
Всем привет! Помогите пожалуйста с курсовой работой.. Условие: Дана действительная квадратная матрица порядка n. Получить...

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

Обработка массивов (Найти количество положительных элементов, расположенных в заштрихованной части матрицы) - C++
Программирование алгоритмов сортировок элементов массивов. Решить задачу в консольном режиме. Дана действительная квадратная матрица...

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


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

Или воспользуйтесь поиском по форуму:
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
30.04.2014, 20: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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <iomanip>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Rus");
    int size = -1;
    cout << "Введите размер матрицы: ";
    while (size > 10 || size < 1)
        cin >> size;
 
    cout << "Введите шаблон штриховки (\"+\" - заштриховано, \"-\" - незаштриховано)\n";
 
    bool ** hatching = new bool *[size];
    char input;
    for (int i = 0; i < size; i++)
    {
        hatching[i] = new bool[size];
        for (int j = 0; j < size; j++)
        {
            cin >> input;
            if (input == '+')
                hatching[i][j] = true;
            else
                hatching[i][j] = false;
        }
    }
 
    cout << "Матрица:" << endl;
    int ** matrix = new int *[size];
    for (int i = 0; i < size; i++)
    {
        matrix[i] = new int[size];
        for (int j = 0; j < size; j++)
            cout << setfill(' ') << " " << (matrix[i][j] = rand() % 50 - 25) << " ";
        cout << "\n";
    }
 
    cout << "\n\n";
 
    int min = INT_MAX;
 
    for (int i = 0; i < size; i++)
        for (int j = 0; j < size; j++)
            if (hatching[i][i])
                if (matrix[i][j] < min)
                    min = matrix[i][j];
 
    cout << "Минимальный элемент найден: " << min << "\n\n" << endl;
 
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            if (!hatching[i][j])
                matrix[i][j] = min;
            cout << matrix[i][j] << " ";
        }
        cout << "\n";
    }
 
    system("pause");
    return 0;
}
Yandex
Объявления
30.04.2014, 20:44     Поиск по заштрихованной части матрицы
Ответ Создать тему
Опции темы

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