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

Используя текст программы оформить каждый пункт задания в виде функции - C++

Восстановить пароль Регистрация
 
paxak93
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 28
31.05.2012, 13:41     Используя текст программы оформить каждый пункт задания в виде функции #1
Выполнить задание 6-й лабораторной работы («Двумерные массивы»), оформив каждый пункт задания в виде функции. Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.

А вот задание 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
// Laba6.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
 
void main(void)
{
    setlocale (0,"Rus");
    char h;
    cout << "Здравствуйте" << endl
    << "Желаете начать работу, y/n?";
    cin >> h;
    while (h!='n')
    {   
        int
            n, // Количество строк
            m, // Количество столбцов
            *sum; // Сумма в отрицательных строрках
            
        /*Ввод размерности массива*/
        cout << "Введите количество строк: ";
        cin >> n; 
        cout << "Введите количество столбцов: ";
        cin >> m;
        int **a= new int *[n]; // выделение памяти под массив
        for(int i=0; i < n; i++) 
            a[i] = new int [m];
        cout << "Введите элементы массива:\n";
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
            {
                cout << "a( " << i+1 << " , "<<j+1<<" ) = "; 
                cin >> a[i][j];
            }
            cout << "Исходная матрица:"<< endl;
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
                cout << setw(3) << a[i][j] << " ";
            cout << endl;
        }
        
        sum = new int [m];
        for(int j=0;j<m;j++)
        {
            sum[j]=0;
            for(int i=0;i<n;i++)
                if(a[i][j]<0&&(a[i][j]%2)!=0)
                    sum[j]+=abs(a[i][j]);
        }
        for(int j=0;j<m;j++)
        {
 
            int k=j;
            for(int i=j+1;i<m;i++)
                if(sum[i]<sum[k])
                    k=i;
            int buf=sum[j];
            sum[j]=sum[k];
            sum[k]=buf;
            for(int i=0;i<n;i++)
            {
                buf=a[i][j];
                a[i][j]=a[i][k];
                a[i][k]=buf;
            }
        }
        cout << "Отсортированая матрица:"<< endl;
    for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
                cout << setw(3) << a[i][j] << " ";
            cout << endl;
        }
    for(int j = 0; j<m; j++)
    {
        bool b=false;
        for(int i = 0; i<n; i++)
            if(a[i][j] < 0)
            {
                b=true;
                break;
            }
        if(b)
        {
            int S=0 ;
            for(int i = 0; i<n; i++)
                S += a[i][j];
            cout << "Сумма элементов столбца "<< j+1 << " : "<< S << endl;
        } 
    }
        cout << "Желаете повторить, y/n ";
        cin >> h;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 13:41     Используя текст программы оформить каждый пункт задания в виде функции
Посмотрите здесь:

C++ Оформить в виде функции
C++ Оформить каждый пункт задания в виде функции
C++ Оформить каждый пункт задания в виде функции
C++ Оформить в виде функции
C++ Оформить в виде функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aesonet
23 / 23 / 1
Регистрация: 04.04.2012
Сообщений: 119
31.05.2012, 13:44     Используя текст программы оформить каждый пункт задания в виде функции #2
А что у вас не получается? Или вы плохо в функциях ориентируетесь? Код то есть просто в функции его надо вписать.
paxak93
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 28
31.05.2012, 13:54  [ТС]     Используя текст программы оформить каждый пункт задания в виде функции #3
Я в функциях не разбираюсь, даже представления не имею как это делать.
paxak93
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 28
01.06.2012, 13:09  [ТС]     Используя текст программы оформить каждый пункт задания в виде функции #4
Выполнить задание 6-й лабораторной работы («Двумерные массивы»), оформив каждый пункт задания в виде функции. Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.

А вот задание 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 #include "stdafx.h"
 #include <iostream>
 #include <iomanip>
 using namespace std;
 
 void main(void)
 {
 setlocale (0,"Rus");
 char h;
 cout << "Здравствуйте" << endl
 << "Желаете начать работу, y/n?";
 cin >> h;
 while (h!='n')
 { 
 int
 n, // Количество строк
 m, // Количество столбцов
 *sum; // Сумма в отрицательных строрках
 
 /*Ввод размерности массива*/
 cout << "Введите количество строк: ";
 cin >> n; 
 cout << "Введите количество столбцов: ";
 cin >> m;
 int **a= new int *[n]; // выделение памяти под массив
 for(int i=0; i < n; i++) 
 a[i] = new int [m];
 cout << "Введите элементы массива:\n";
 for(int i=0;i<n;i++)
 for(int j=0;j<m;j++)
 {
 cout << "a( " << i+1 << " , "<<j+1<<" ) = "; 
 cin >> a[i][j];
 }
 cout << "Исходная матрица:"<< endl;
 for(int i=0;i<n;i++)
 {
 for(int j=0;j<m;j++)
 cout << setw(3) << a[i][j] << " ";
 cout << endl;
 }
 
 sum = new int [m];
 for(int j=0;j<m;j++)
 {
 sum[j]=0;
 for(int i=0;i<n;i++)
 if(a[i][j]<0&&(a[i][j]%2)!=0)
 sum[j]+=abs(a[i][j]);
 }
 for(int j=0;j<m;j++)
 {
 
 int k=j;
 for(int i=j+1;i<m;i++)
 if(sum[i]<sum[k])
 k=i;
 int buf=sum[j];
 sum[j]=sum[k];
 sum[k]=buf;
 for(int i=0;i<n;i++)
 {
 buf=a[i][j];
 a[i][j]=a[i][k];
 a[i][k]=buf;
 }
 }
 cout << "Отсортированая матрица:"<< endl;
 for(int i=0;i<n;i++)
 {
 for(int j=0;j<m;j++)
 cout << setw(3) << a[i][j] << " ";
 cout << endl;
 }
 for(int j = 0; j<m; j++)
 {
 bool b=false;
 for(int i = 0; i<n; i++)
 if(a[i][j] < 0)
 {
 b=true;
 break;
 }
 if(b)
 {
 int S=0 ;
 for(int i = 0; i<n; i++)
 S += a[i][j];
 cout << "Сумма элементов столбца "<< j+1 << " : "<< S << endl;
 } 
 }
 cout << "Желаете повторить, y/n ";
 cin >> h;
 }
Помогите кто чем может.
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
01.06.2012, 14:14     Используя текст программы оформить каждый пункт задания в виде функции #5
Вот что получилось
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <iostream> 
#include <math.h>
 
using namespace std; 
 
int ColumnCharacter(int **, int, int);
int SumInColumn(int **, int, int);
void Input(int **, int, int);
void PrintMatrix(int **, int, int);
void SortCharacter(int **, int, int);
void Sum(int **, int, int);
void SwapColumn(int **, int, int, int);
 
int main()
{   
    setlocale(0, "");
 
    int n, m;
    cout<<"n = ";
    cin>>n;
    cout<<"m = ";
    cin>>m;
 
    int **x = new int *[n];
    for(int i = 0; i < n; i++)
        x[i] = new int [m];
 
    Input(x, n, m);
    SortCharacter(x, n, m);
    PrintMatrix(x, n, m);
    Sum(x, n, m);
 
    for(int i = 0; i < n; i++) delete x[i];
    delete [] x;
 
    system("pause");
    return 0;
}
 
void Input(int **x, int n, int m)
{
    cout<<"Введите элементы:"<<endl;
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
            cin>>x[i][j];
    }
}
 
int ColumnCharacter(int **x, int n, int k)
{
    int s = 0;
    for(int i = 0; i < n; i += 2)
        if(x[i][k] < 0) s += abs(x[i][k]);
 
    return s;
}
 
void SwapColumn(int **x, int n, int a, int b)
{
    int z;
    for(int i = 0; i < n; i++)
    {
        z = x[i][a];
        x[i][a] = x[i][b];
        x[i][b] = z;
    }
}
 
void PrintMatrix(int **x, int n, int m)
{
    cout<<"\nМатрица:"<<endl;
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
            cout<<x[i][j]<<" ";
        cout<<endl;
    }
}
 
void SortCharacter(int **x, int n, int m)
{
    for(int i = 0; i < m - 1; i++)         
        for(int j = 0; j < m - 1; j++)  
            if (ColumnCharacter(x, n, j + 1) < ColumnCharacter(x, n, j)) 
                SwapColumn(x, n, j + 1, j);
}
 
void Sum(int **x, int n, int m)
{
    for(int i = 0; i < m; i++)   
    {
        for(int j = 0; j < n; j++)  
            if(x[j][i] < 0) 
            {
                cout<<"Cумма элементов в столбце # "<<i+1<<": "<<SumInColumn(x, n, i)<<endl;
                break;
            }
    }
}
 
int SumInColumn(int **x, int n, int k)
{
    int s = 0;
    for(int i = 0; i < n; i++)
        s += x[i][k];
 
    return s;
}
paxak93
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 28
01.06.2012, 14:26  [ТС]     Используя текст программы оформить каждый пункт задания в виде функции #6
Спасибо огромное!!!
Yandex
Объявления
01.06.2012, 14:26     Используя текст программы оформить каждый пункт задания в виде функции
Ответ Создать тему
Опции темы

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