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

функции - C++

Восстановить пароль Регистрация
 
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
04.01.2011, 12:34     функции #1
Вот с функциями разобрался. мне попалось вот такое задание см Снимок.PNG . Там нужно чтоб на главной диогонали в матрице 7х7 все числа были чётные случайные значения. Чем в языке с++ чётные отличаются от нечётных. и вот я на картинке не понял то что выделено красным. там от 0 до 50 или 0 делить на 50?
Миниатюры
функции  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2011, 12:34     функции
Посмотрите здесь:

C++ Как из обыной функции вызвать функции член класса?
Dызовом родовой функции! Нужно передать массив в качестве аргумента функции через указатель." C++
ввод данных в функции конструктора и использование их в перегруженой функции C++
C++ Получить указатель из функции и использовать его в другой функции
C++ Определить конструкторы, функции-члены установки времени, функции получения часа, минуты и секунд
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
04.01.2011, 12:41     функции #2
Цитата Сообщение от Steam.dll Посмотреть сообщение
Чем в языке с++ чётные отличаются от нечётных
Тем же, чем и в математике
Цитата Сообщение от Steam.dll Посмотреть сообщение
и вот я на картинке не понял то что выделено красным. там от 0 до 50 или 0 делить на 50?
от нуля (включительно) до 50 (включительно)
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
04.01.2011, 13:42  [ТС]     функции #3
а как же тогда написать функцию что бы их отлечить
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
04.01.2011, 15:24     функции #4
Steam.dll, четное число - это число, которое делится на 2 нацело, т.е. остаток от деления этого числа на 2 равен нулю:
C
1
2
3
4
if(n % 2 == 0)
// n - четное
else
// n - нечетное
Или так:
C
1
2
3
4
if(n & 1)
// n - нечетное
else
// n - четное
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
04.01.2011, 19:31  [ТС]     функции #5
а Как тогда функцию сделать что бы на главной диоганали числа чётные были и они были случайными
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
04.01.2011, 20:33     функции #6
Steam.dll, любое число, умноженное на 2, является чётным. Так что чтобы получить чётное случайное число, нужно сгенерировать случайное число и умножить его на 2.
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
04.01.2011, 21:17  [ТС]     функции #7
я попробывал так сделать
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int diogonal(unsigned int **a);
 
int main(void)
{
    const int n=7;
    const int m=7;
    int u;
    int i,j ;
    unsigned int **a;
    a=new unsigned int *[n];
    for(i=0;i<n;i++)
    {
        a[i]=new unsigned int [m];
    }
    printf("\nmassiv\n\n");
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            a[i][j]=rand()%050;
            printf("%d", a[i][j]);
        }
        printf("\n");
    }
    u=diogonal(a);
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            a[i][j]=u;
            printf("%d", a[i][j]);
        }
        printf("\n");
    }
    
        
           delete  a;
           return 0;
        
    
}
int diogonal(unsigned int **a)
{
    
    {
        a[1][1]=(rand()%050)*2;
        a[2][2]=(rand()%050)*2;
        a[3][3]=(rand()%050)*2;
        a[4][4]=(rand()%050)*2;
        a[5][5]=(rand()%050)*2;
        a[6][6]=(rand()%050)*2;
        a[7][7]=(rand()%050)*2;
    }
    return 0;
 
}
ошибок нет програма во время работы ошибается
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
05.01.2011, 06:26     функции #8
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
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
 
#define SIZE 7
#define L_T 0
#define R_T 50
#define L_T_2 L_T / 2
#define R_T_2 R_T / 2
#define MAX(a, b) ((a) < (b) ? (b) : (a))
 
void fillMatrix(double m[SIZE][SIZE]);
void displayMatrix(double m[SIZE][SIZE]);
void minCols(double m[SIZE][SIZE], double* ret);
 
int main()
{
    srand((size_t) time(NULL));
    double  matrix[SIZE][SIZE];
    double mins[3];
    size_t i;
    fillMatrix(matrix);
    puts("Generated matrix:");
    displayMatrix(matrix);
    puts("Minimum values:");
    minCols(matrix, mins);
    for(i = 0; i < 3; ++i)
        printf("%u: %.2f\n", i + 1, mins[i]);
        
    exit(0);
}
 
void fillMatrix(double m[SIZE][SIZE])
{
    size_t i, j;
    double pi = acos(-1);
    for(i = 0; i < SIZE; ++i)
        for(j = 0; j < SIZE; ++j)
            if(i == j)
                m[i][j] = (rand() % (R_T_2 - L_T_2 + 1) + L_T_2) * 2;
            else
            {
                double ci = ((double) rand() / RAND_MAX) * (pi - L_T) + L_T;
                double cj = ((double) rand() / RAND_MAX) * (pi - L_T) + L_T;
                m[i][j] = MAX(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
            }
}
 
void displayMatrix(double m[SIZE][SIZE])
{
    size_t i, j;
    for(i = 0; i < SIZE; ++i)
    {
        for(j = 0; j < SIZE; ++j)
            printf("%-8.2f", m[i][j]);
        putchar('\n');
    }
}
 
void minCols(double m[SIZE][SIZE], double* ret)
{
    size_t i, j;
    for(j = 0; j < 3; ++j)
    {
        ret[j] = m[0][j];
        for(i = 1; i < SIZE; ++i)
            if(m[i][j] < ret[j])
                ret[j] = m[i][j];
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2011, 15:26     функции
Еще ссылки по теме:

Функции: вычислить значение сложной (составной) функции C++
C++ Не работают функции <math.h> в методе (функции-члене)
Разница в работе созданной функции и основной функции C++

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

Или воспользуйтесь поиском по форуму:
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
06.01.2011, 15:26  [ТС]     функции #9
спасибобольшо но я не понимаю для меня слишком трудно это понять ещё незнаю многого
я хочу так вот
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
int matrix(unsigned int **a);
 
 
int main(void)
{
    const int  n=7;
    const int m=7;
    srand((unsigned)time(NULL));
    int i,j ;
    unsigned int  **a;
    a=new  unsigned int *[n];
    for(i=0;i<n;i++)
    {
        a[i]=new  unsigned int  [m];
    }
    printf("\n             massiv\n\n");
    for( i=0; i<n; i++)
    {
        for( j=0; j<m; j++)
        {
            a[i][j]=matrix(a);
            printf("%4d", a[i][j]);
        }
        printf("\n\n");
    }
    for(i=0; i<n; i++)
    {
       delete (a[i]);
    }
    delete  a;
    return 0;
    
 
}
int matrix(unsigned int **a)
{
    int i,j;
    if(i==j)
    {
        a[i][j]=(rand()%050)*2;
    }
    else
    {
        a[i][j]=rand()%050;
    }
    return i,j;
}
только не знаю как функции связать с программой
Yandex
Объявления
06.01.2011, 15:26     функции
Ответ Создать тему
Опции темы

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