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

Помоги разобравться с нескольками прогами - C++

Восстановить пароль Регистрация
 
Vanek_velik
Сообщений: n/a
20.06.2012, 11:55     Помоги разобравться с нескольками прогами #1
Объясните, какие действия выполняет каждая строка в 6 программах.

№1.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
....
int add(int n, int m) {return n + m;}
int divi(int n, int m) {return n / m;}
int mult(int n, int m) {return n * m;} 
int subt(int n, int m) {return n - m;}
void main() {
    setlocale(0,"");
    int (*par)(int, int);       
    int a = 6, b = 2;    char c = '+';
    while (c != ' ') { 
    cout << "\n Аргументы: а = " << a <<", b = " << b;
    cout << ".  Результат для с = \'" << c << "\'" << " равен ";
    switch (c)
    { 
        case '+': par = add;  c = '/'; break;
        case '-': par = subt; c = ' '; break;
        case '*': par = mult; c = '-'; break;
        case '/': par = divi;  c = '*'; break;
     }
    cout << (a = (*par)(a,b));
....
№2

C++ (Qt)
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
....
//Определение типа указателя на функцию
typedef float(*pointFunc)(float);
//Определение функции для вычисления корня
float root(pointFunc F, float A, float B, float EPS) {      
 x*x-1
   float x, y, c, Fx, Fy, Fc;
   x=A; y=B;
   Fx=(*F)(x);                                              
   Fy=(*F)(y);                                              
   if(Fx*Fy > 0.0) {
          cout << "\nНеверен интервал локализации";
        exit(1);        //Аварийное завершение программы
      }
   do {
         c=(y + x)/2;       
         Fc=(*F)(c);        
         if (Fc*Fx > 0) {x=c; Fx=Fc;} else {y=c; Fy=Fc;}
      } while (Fc != 0 && y-x > EPS);
   return c;
}
#include<math.h>
//Определение тестовой функции y = x * x – 1
float testfunc(float x) {
    float test=x*x-1;//не работает формула ниже
    return test/*x * x – 1*/;
}
void main() {
    setlocale(0,"");
    float root(pointFunc, float, float, float);         //Прототип
    float result1,result2;
   result1 = root(testfunc, 0, 2, 1e-5);
   result2 = root(testfunc, -2, 0, 1e-5);
   cout << "\nКорени тестовой функции: " << result1 << ' ' << result2;
....
№3

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
...
void main() { 
   double z = 123456.;
   double& sz = z;
   double* pz = &z;    
   double& ssz = sz;
   cout << "\nz = " << z << "\tsz = " << sz << "\t*pz = " << *pz << "\tssz = " << ssz;
   z = 654321.;
   cout << "\nz = " << z << "\tsz = " << sz << "\t*pz = " << *pz << "\tssz = " << ssz;
   z = 0;
   cout << "\nz = " << z << "\t\tsz = " << sz << "\t\t*pz = " << *pz << "\t\tssz = " << ssz;
....

№4

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
using namespace std;
void changePtr(double *a, double *b) {
    double c = *a; *a = *b;  *b = c;
}
void changeRef(double& x, double& y) {
   double z = x; x = y;  y = z;
}
void main() {
   double d = 1.23; double e = 4.56;
   changePtr(&d, &e);       
   cout << "\nd = " << d << "\te = " << e;
   changeRef(d, e);         
   cout << "\nd = " << d << "\te = " << e;
....
№5

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
....
int& rmax(int n, int d[])   {
    int im = 0;
    for (int i = 1; i < n; i++)       im = d[im] > d[i] ? im : i;
   return d[im];
}
void main() {
    int n = 4;
    int x[] = {30,20,10,40};
    cout << "\nrmax(n,x) = " << rmax(n,x);
    rmax(n,x) = 0;
    for (int i = 0; i < n; i++)
    cout << "   x[" << i << "] = " << x[i];
....
№6

C++ (Qt)
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
....
//Функция возводит в куб значение параметра и возвращает его адрес
double& rcube(double& z)
{
    z=z*z*z;
    return z;
}
//Функция изменяет знак параметра и возвращает его адрес
double& rinvert(double& d)
{
    d = d*(-1);
    return d;
}
//Функция возвращает адрес параметра с максимальным значением
double& rmax(double& x, double& y)
{
    return (x>y)?x:y;
}
//Функция печатает значение параметра и возвращает его адрес
double& rprint(char* name, double& e)
{  
   cout << name << e;
   return e;
}
void main()
{ 
   double a = 11.0, b = 18.0;
   //cout << rmax(a,b) << '\t' << rinvert(rmax(a,b)) << '\t' << rcube(rinvert(rmax(a,b)));
 
   rprint("\nrcube (rinvert (rmax (a,b))) = ",
            rcube(rinvert(rmax(a,b)))) = 0.0;
   cout << "\na = " << a << '\t' << "b = " << b; // вывести a и b
   rcube(rinvert(rmax(a,b))) = 0.0;
   cout << "\na = " << a << '\t' << "b = " << b; // вывести a и b
...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2012, 11:55     Помоги разобравться с нескольками прогами
Посмотрите здесь:

Turbo Pascal Помогите пожалуйста с 2 прогами
C++ Помоги вставить команды в прогу
C# Combobox c нескольками колонками
Помогите с прогами
Windows 7 Глюки с прогами
C++ Задачка почти на смекалку, помоги те же решить
C++ Помоги сделать по информатике задачу, что-то у меня ничего не выходит
Преобразование цепи с нескольками источниками

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jtalk
93 / 79 / 4
Регистрация: 13.05.2011
Сообщений: 279
20.06.2012, 12:00     Помоги разобравться с нескольками прогами #2
Цитата Сообщение от Vanek_velik Посмотреть сообщение
Объясните, какие действия выполняет каждая строка в 6 программах.
Ну мааааааам!
Vanek_velik
Сообщений: n/a
20.06.2012, 12:02     Помоги разобравться с нескольками прогами #3
Цитата Сообщение от Jtalk Посмотреть сообщение
Ну мааааааам!
Я просто напросто не успею разобраться самостоятельно =(((
Yandex
Объявления
20.06.2012, 12:02     Помоги разобравться с нескольками прогами
Ответ Создать тему
Опции темы

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