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

Создание формы по коду - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Объяснить выражение http://www.cyberforum.ru/cpp-beginners/thread1175475.html
Привет всем. Помогите пожалуйста, объясните, что значит следующее выражение: int value = flex != 0 ? flex : 10000;
C++ Вывести слова сообщения в порядке возрастания их длин Вывести слова сообщения в порядке возрастания их длин. http://www.cyberforum.ru/cpp-beginners/thread1175469.html
C++ Сколько различных символов встречается в строке
которая для заданной строки s определяет, сколько различных символов встречается в строке.
Std::set( vector ) и расход памяти C++
Здравствуйте! Пытаюсь разобраться сколько памяти съедают контейнеры и никак не могу понять следующее. Вот есть код( ниже) В конце стоит бесконечный цикл(знаю что так делать нельзя) только для того чтобы в таск менеджере посмотреть сколько памяти мы съели. На экран выводится: size1= 0.4666; size2 = 1,430; size3 = 4,1008 При этом в таск менеджере расход показывает 6,11 Если set заменить на...
C++ Для каждого столбца двумерного массива подсчитать сумму четных положительных элементов http://www.cyberforum.ru/cpp-beginners/thread1175459.html
III. Дан массив размером n×n, элементы которого целые числа. Замечание. Для хранения массив n×n использовать ступенчатый массив. Для каждого столбца подсчитать сумму четных положительных элементов и записать данные в новый массив.
C++ Поменять местами два средних столбца двумерного массива Дан массив размером n×n, элементы которого целые числа. Замечание:использовать двумерный массив. Поменять местами два средних столбца, если количество столбцов четное, и первый со средним столбцом, если количество столбцов нечетное. подробнее

Показать сообщение отдельно
Kolebastro
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 15
14.05.2014, 10:56     Создание формы по коду
Здравствуйте. Нужна помощь в создании формы из ниже перечисленного кода, чтобы она показала итог программы:

1. кол-во столбцов, не содержащих ни одного нулевого элемента ( оформить в виде функции );
2. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик.(оформить в виде процедуры).

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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include "stdafx.h"
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
 
// Размерность матрицы
#define N 5
 
// Заполнение матрицы случайными числами в интервале от -10 до 9
void matr_random(int m[][N]) {
    int i, j;
    srand(time(0));
    for (i = 0; i < N; i++)
        for (j = 0; j < N; j++)
            m[i][j] = rand() % 20 - 10; // остаток деления случайного числа на 20 
(чтобы получить сл. числа от 0 до 19)
}
 
// Ввод матрицы с экрана
void matr_input(int m[][N]) {
    int i, j;
    for (i = 0; i < N; i++)
        for (j = 0; j < N; j++) {
            printf("m[%d][%d]=", i, j);
            scanf("%d", &m[i][j]);
        }
}
 
// Вычисление характеристического значения строки матрицы
// numRow - номер строки.
int matr_chrs(int m[][N], int numRow) {
    int i;
    int chrs = 0;
    for (i = 0; i < N; i++) {
        // Если элемент строки меньше 0 и четный (делится на 2 без остатка - (x % 2 == 0)) 
        // то суммируем с х.з. (характеристическим значением :)
        if ((m[numRow][i] < 0) && (m[numRow][i] % 2 == 0))
            chrs += m[numRow][i];
    }
    return chrs;
}
 
// Поиск столбца с нулевым элементом
int matr_find_zero(int m[][N]) {
    int i, j;
    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++)
            // обратить внимание в отличие от остальных функций здесь j - номер строки, 
i - номер столбца
            if (! m[j][i])
                return i;
    }
    return -1;
}
 
// Поменять местами строки с номерами row1 и row2
void matr_swap_rows(int m[][N], int row1, int row2) {
    int i;
    int tmp;
 
    for (i = 0; i < N; i++) {
        // Меняются местами i-е элементы строк row1 и row2
        tmp = m[row1][i];
        m[row1][i] = m[row2][i];
        m[row2][i] = tmp;
    }
}
 
// Сортировка строк матрицы в порядке убывания характеристик строк. (классический пузырек)
void matr_sort_chrs(int m[][N]) {
    int i;
    int sorted;
    // В цикле меняются местами пары строк которые не удовлетворяют условию 
сортировки до тех пор,
    // пока таких не останется (матрица не будет отсортирована)
    do {
        sorted = 1; // Изначально предполагаем что матрица отсортирована.
        for (i = 0; i < N - 1; i++) {
            // Если характеристика строки i < характеристики строки i + 1
            // то это нарушения условия отсортированности матрицы по убыванию.
            if (matr_chrs(m, i) < matr_chrs(m, i + 1)) {
                // Меняем местами строки нарушающие условие сортировки 
                matr_swap_rows(m, i, i + 1);
                // и снова проверяем всю матрицу
                sorted = 0;
                break;
            }
        }
    } while (! sorted);// Пока матрица не отсортирована - сортировать :))
}
 
 
// Вывод матрици на экран. Если параметр print_chrs != 0 то для каждой строки 
выводится характеристика
void matr_print(int m[][N], int print_chrs = 0) {
    int i, j;
    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++)
            printf("% 3d ", m[i][j]);
        if (print_chrs)
            printf(" | %d", matr_chrs(m, i));
        printf("\n");
    }
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int m[N][N];
    int colNum;
 
//    matr_random(m);
    matr_input(m);
    printf("input matrix:\n");
    matr_print(m);
 
    colNum = matr_find_zero(m);
    if (colNum >= 0)
        printf("First column with zero is: %d",  colNum + 1);
    else
        printf("Column with zero not found");
 
    matr_sort_chrs(m);
    printf("\noutput matrix:\n");
    matr_print(m, 1);
    // ждем пока не нажмут <ENTER>
    getchar();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru