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

Функции , описание к действием. - C++

Восстановить пароль Регистрация
 
gr33
5 / 5 / 0
Регистрация: 03.12.2009
Сообщений: 13
09.02.2010, 11:04     Функции , описание к действием. #1
Вот вообще сам код по с++ но очень хочеться узнать что к чему. (если можно подробно пожайлуста что к чему, чтобы разобраться.)
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
#include <iostream>
#include <conio.h>
#include <math.h>
#include <iomanip>
#include <time.h>
using namespace std;
 
 
double x(int i,double (&a)[8][8]) //описание и все буду очень благодарен (нужен ли амперсант)
{
        return a[i][i]; //описание и все буду очень благодарен
}
void main()
{
        setlocale( LC_ALL, "Russian" );
        double a[8][8];
        double y,da_min=-16, da_max=24; //описание блока и все буду очень благодарен
 
        srand((unsigned)time( NULL ));
 
        for (int i=1;i<8;i++)
        {
                y=((double)rand())/RAND_MAX;
                a[i][i]=y*(da_max-da_min)+da_min; //описание блока и все буду очень благодарен
        }
        
        for (int i=1;i<8;i++) //описание и все буду очень благодарен
        {
                for(int j=1;j<8;j++) //описание и все буду очень благодарен
                {
                        if (i!=j)
                        {
                                if(i==1 || i==2)
                                        {a[i][j]=tan(7/(0.5*x(1,a)*x(1,a)+2.5*x(2,a)));}
                                else if(i==3 || i==4)
                                        {a[i][j]=cos(1/(x(2,a)*x(2,a)+5*x(4,a)+1));}  //описание блока и все буду очень благодарен
                                else
                                {a[i][j]=min(2/(pow(x(5,a),-1)+log(x(6,a)*x(6,a))),asin(x(7,a)/28));}
                        }
                cout <<  setprecision(3) << setw(6) << a[i][j] << " "; //описание блока и все буду очень благодарен
                }
                cout << "\n";
        }
        getch();
}
1. что делает double x(int i,double (&a)[8][8]) и нужен ли амперсант.
2, что делает вот этот отрезок
C++
1
2
3
4
5
6
7
 setlocale( LC_ALL, "Russian" );
        double a[8][8];
        double y,da_min=-16, da_max=24;
 
        srand((unsigned)time( NULL ));
 
        for (int i=1;i<8;i++)
3. что делает вот этот
C++
1
2
3
4
{
                y=((double)rand())/RAND_MAX;
                a[i][i]=y*(da_max-da_min)+da_min;
        }
4. какие имеено массивы обозначаються
C++
1
2
3
 for (int i=1;i<8;i++)
        {
                for(int j=1;j<8;j++)
5.
C++
1
2
3
4
5
6
f(i==1 || i==2)
                                        {a[i][j]=tan(7/(0.5*x(1,a)*x(1,a)+2.5*x(2,a)));}
                                else if(i==3 || i==4)
                                        {a[i][j]=cos(1/(x(2,a)*x(2,a)+5*x(4,a)+1));}
                                else
                                {a[i][j]=min(2/(pow(x(5,a),-1)+log(x(6,a)*x(6,a))),asin(x(7,a)/28));}
что тут=)

6. правильно ли с входом и выходом?
C++
1
2
3
cout <<  setprecision(3) << setw(6) << a[i][j] << " ";
                }
                cout << "\n";
заранее спасибо, очень хотелось бы подробно разобраться что к чему и что как работает и что как зависит. и нет ли ошибок.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2010, 11:04     Функции , описание к действием.
Посмотрите здесь:

Описание функции.Никак не сделаю. C++
описание функции C++
C++ Описание функции
C++ Описание функции ltoa
Описание функции ungetch() C++
Описание функции C++
описание функции C++
Поместить описание функции в программу C++
C++ Описание функции toascii
Описание функции C++
C++ Описание функции getopt
C++ Описание функции istringstream

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
09.02.2010, 12:08     Функции , описание к действием. #2
1. что делает double x(int i,double (&a)[8][8]) и нужен ли амперсант.
Эта функция возвращает элемент, лежащий на пересечении строки i и столбца j, т.е. здесь по-сути изобретен велосипед. Вместо вызова этой функции нужно использовать оперецию взятия индекса, например:
C++
1
2
double s=a[4][4];
//Вместо double s=x(4, a);
setlocale( LC_ALL, "Russian" ); - установка русской локали для ввода-вывода кириллицы
double a[8][8]; - объявление вещественной матрицы типа double размерностью 8х8
double y,da_min=-16, da_max=24; - объявление и инициализация вещественных переменных
srand((unsigned)time( NULL )); - инициализация генератора (псевдо)случайных чисел текущим временем
for (int i=1;i<8;i++)
{
y=((double)rand())/RAND_MAX;
a[i][i]=y*(da_max-da_min)+da_min; //описание блока и все буду очень благодарен
}
- здесь идет инициализация элементов главной диагонали матрицы a псевдослучайными числами. RAND_MAX - максимальное значение, которое может сгенерироваться, т.е. y лежит в диапазоне [0;1]. a[i][j], соотв. = y*40-16
какие имеено массивы обозначаються
- если честно, не понял, что здесь тебе надо
for (int i=1;i<8;i++) //описание и все буду очень благодарен
{
for(int j=1;j<8;j++) //описание и все буду очень благодарен
{
if (i!=j)
{
if(i==1 || i==2)
{a[i][j]=tan(7/(0.5*x(1,a)*x(1,a)+2.5*x(2,a)));}
else if(i==3 || i==4)
{a[i][j]=cos(1/(x(2,a)*x(2,a)+5*x(4,a)+1));} //описание блока и все буду очень благодарен
else
{a[i][j]=min(2/(pow(x(5,a),-1)+log(x(6,a)*x(6,a))),asin(x(7,a)/28));}
}
cout << setprecision(3) << setw(6) << a[i][j] << " "; //описание блока и все буду очень благодарен
}
cout << "\n";
}
- здесь идет инициализация остальных элементов матрицы (т.е. всех, которые не лежат на главной диагонали)
Элементы 2 и 3 строки (помним, что индексация начинается с 0!) инициализируются через тангенс, элементы 4 и 5 - через косинус, а остальные - через функцию, которая возвращает минимальное из двух чисел
cout << setprecision(3) << setw(6) << a[i][j] << " "; - вывод элементов матрицы с точностью до 3 значащих цифр после точки и шириной поля 6
cout << "\n"; - переход на новую строку
getch(); - ожидание реакции пользователя (ввода символа) перед завершением программы
gr33
5 / 5 / 0
Регистрация: 03.12.2009
Сообщений: 13
11.02.2010, 18:11  [ТС]     Функции , описание к действием. #3
Цитата Сообщение от Nameless One Посмотреть сообщение
Эта функция возвращает элемент, лежащий на пересечении строки i и столбца j, т.е. здесь по-сути изобретен велосипед. Вместо вызова этой функции нужно использовать оперецию взятия индекса, например:
C++
1
2
double s=a[4][4];
//Вместо double s=x(4, a);
setlocale( LC_ALL, "Russian" ); - установка русской локали для ввода-вывода кириллицы
double a[8][8]; - объявление вещественной матрицы типа double размерностью 8х8
double y,da_min=-16, da_max=24; - объявление и инициализация вещественных переменных
srand((unsigned)time( NULL )); - инициализация генератора (псевдо)случайных чисел текущим временем

- здесь идет инициализация элементов главной диагонали матрицы a псевдослучайными числами. RAND_MAX - максимальное значение, которое может сгенерироваться, т.е. y лежит в диапазоне [0;1]. a[i][j], соотв. = y*40-16
- если честно, не понял, что здесь тебе надо
- здесь идет инициализация остальных элементов матрицы (т.е. всех, которые не лежат на главной диагонали)
Элементы 2 и 3 строки (помним, что индексация начинается с 0!) инициализируются через тангенс, элементы 4 и 5 - через косинус, а остальные - через функцию, которая возвращает минимальное из двух чисел
cout << setprecision(3) << setw(6) << a[i][j] << " "; - вывод элементов матрицы с точностью до 3 значащих цифр после точки и шириной поля 6
cout << "\n"; - переход на новую строку
getch(); - ожидание реакции пользователя (ввода символа) перед завершением программы
Спасибо ВОПРОСОВ НЕТ!=) лучше чем нужно!=)
Yandex
Объявления
11.02.2010, 18:11     Функции , описание к действием.
Ответ Создать тему
Опции темы

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