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

[C++] Замена отрицательных элементов их модулями - C++

Восстановить пароль Регистрация
 
ilsurgaripov
 Аватар для ilsurgaripov
-12 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 15
30.11.2011, 08:43     [C++] Замена отрицательных элементов их модулями #1
Задание:
Разработать подпрограмму, заменяющую все отрицательные элементы исходной матрицы их модулями и возвращающую кол-во измененных элементов.
Применить эту подпрограмму для изменения заданной матрицы ТЕМ.

0.5 -14.7 -1.004
ТЕМ= 32 124.9 2.25
-7.6 -251 0
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
30.11.2011, 09:27     [C++] Замена отрицательных элементов их модулями #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int func ( int **matrix, int N, in M )
{
int counter = 0;
for ( int i = 0; i < N; i ++ )
     for ( int j = 0; j < M; j ++ )
     {
             if ( matrix[i][j] < 0 )
             {
                   matrix[i][j] = abs(matrix[i][j];    // модуль
                   counter++;          // Количество измененных эл-ов
              }
      }
return counter;
}
ilsurgaripov
 Аватар для ilsurgaripov
-12 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 15
30.11.2011, 10:06  [ТС]     [C++] Замена отрицательных элементов их модулями #3
co6ak, а как вот объявить эту матрицу ТЕМ после функции?
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
30.11.2011, 10:22     [C++] Замена отрицательных элементов их модулями #4
не очень понял вопроса.
ну допустим есть матрица
C++
1
2
3
4
int ** TEM;
TEM = new int* [N];
for ( int i = 0; i < N; i ++ )
     TEM[i] = new int [M];
где N и M заранее вводятся с клавиатуры до объявления матрицы
потом как-то заполняешь ее.
и делаешь примерно так
C++
1
std::cout << "Number of changed elements: " << func ( TEM, N, M ) << std::endl;
после функции у тебя матрица будет изменена.
ilsurgaripov
 Аватар для ilsurgaripov
-12 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 15
30.11.2011, 10:23  [ТС]     [C++] Замена отрицательных элементов их модулями #5
co6ak, спасибо тебе)
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
30.11.2011, 10:30     [C++] Замена отрицательных элементов их модулями #6
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
 
int func ( int **, int , int );
 
int main ()
{
    srand( time ( NULL ) );
    int ** TEM;
    std::cout << "Enter number of rows: ";
    int N;
    std::cin  >> N;
    std::cout << "\nEnter number of columns: ";
    int M;
    std::cin  >> M;
 
    TEM = new int * [N];
    for ( int i = 0; i < N; i ++ )
        TEM[i] = new int [M];
 
    for ( int i = 0; i < N; i ++ )
    {
        for ( int j = 0; j < M; j ++ )
            TEM[i][j] = rand() % 100 - rand() % 50;
    }
 
    for( int i = 0; i < N; i ++ )
    {
        for ( int j = 0; j < M; j ++ )
            std::cout << TEM[i][j] << "\t";
        std::cout << std::endl;
    }
 
    std::cout << "\nNumber of changed elements: " << func (TEM, N, M) << std::endl;
 
    std::cin.get();
    std::cin.get();
    return 0;
}
 
int func ( int **matrix, int N, int M )
{
int counter = 0;
for ( int i = 0; i < N; i ++ )
     for ( int j = 0; j < M; j ++ )
     {
             if ( matrix[i][j] < 0 )
             {
                   matrix[i][j] = abs(matrix[i][j]);    // модуль
                   counter++;          // Количество измененных эл-ов
              }
      }
return counter;
}
вот код короче
ilsurgaripov
 Аватар для ilsurgaripov
-12 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 15
30.11.2011, 11:03  [ТС]     [C++] Замена отрицательных элементов их модулями #7
если честно, я не очень понял что она делает.
у меня было Задание:
Разработать подпрограмму, заменяющую все отрицательные элементы исходной матрицы их модулями и возвращающую кол-во измененных элементов.
Применить эту подпрограмму для изменения заданной матрицы ТЕМ, причем в случае совпадения числа измененных элементов с общим числом элементов в матрице предусмотреть дополнитьно вывод на печать поясняющего текста. В программе вывести также на экран матрицу после изменения.
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
30.11.2011, 11:06     [C++] Замена отрицательных элементов их модулями #8
перед std::cin.get()
вставь
C++
1
2
3
4
5
6
    for( int i = 0; i < N; i ++ )
    {
        for ( int j = 0; j < M; j ++ )
            std::cout << TEM[i][j] << "\t";
        std::cout << std::endl;
    }
увидишь что делает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2011, 11:10     [C++] Замена отрицательных элементов их модулями
Еще ссылки по теме:

C++ Замена отрицательных элементов массива на их индексы
Работа с модулями элементов массива C++
Замена отрицательных элементов первой строчки на 0 C++

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

Или воспользуйтесь поиском по форуму:
ilsurgaripov
 Аватар для ilsurgaripov
-12 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 15
30.11.2011, 11:10  [ТС]     [C++] Замена отрицательных элементов их модулями #9
co6ak, а все понятно, благодарю!
Yandex
Объявления
30.11.2011, 11:10     [C++] Замена отрицательных элементов их модулями
Ответ Создать тему
Опции темы

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