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

Пример из книги "Как программировать на С++" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Объясните как Блок схему составить для цикла for http://www.cyberforum.ru/cpp-beginners/thread423368.html
ipMatr(); for(opMatr(),k=0;k<=n;k++) //прямой ход метода Гаусса; {for(aa=fabs(a),i=k,j=k+1;j<=n;j++)//поиск макс. ел-та; if(fabs(a)>aa){i=j;aa=fabs(a);}; if(aa<0) {printf("Система не имеет единственного решения!!!"); getch(); }
C++ Проектирование интерфейса: передача результата по цепочке // Main.h class Main () { public : Main() {} ~Main() {} vector<int> set(vector<int> &vec); vector<int> get() { // http://www.cyberforum.ru/cpp-beginners/thread423365.html
Немного теории C++
Доброго дня, форумчане! Пишу курсач на тему Системы программирования. Препод сказал, что у меня нет информации о видах систем программирования. Гугл по такому запросу ничего подходящего не выдает. Прошу помощи, объясните кто-нибудь, что именно я должен написать о видах систем или ссылку на ресурс с такой информацией
C++ Как правильно выделить память под структуру?
имеются структуры struct ship { struct point first; struct point last; }; struct point { int x;
C++ Недоработанное программа http://www.cyberforum.ru/cpp-beginners/thread423322.html
// 11.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> #include <ctype.h> int digitssum(const char * s) { return ( *s ) ? ( isdigit(*s) ) ? *s - '0' + digitssum(s+1) : digitssum(s+1) : 0;}
C++ Нужно превести задачу с Delphi на С++ const n=10; type Segments=record a,b:Integer; end; var ArrayOfSegments:array of Segments; i,j,count,Point,MaxPos:Byte; Begin подробнее

Показать сообщение отдельно
Капитан Техно
 Аватар для Капитан Техно
0 / 0 / 0
Регистрация: 18.07.2011
Сообщений: 32
06.01.2012, 14:35     Пример из книги "Как программировать на С++"
Доброго времени суток форумчане! Читал книгу и наткнулся на такой пример:
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
#include <iostream>
#include <iomanip>
 
using namespace std;
 
void  bubble(int *, const int, int(*)(int, int));
int ascending(const int, const int);
int descending(const int, const int);
 
int main()
{
    const int arraySize = 10;
    int order, trunk[arraySize] = { 2, 6, 4, 8, 10, 12, 89, 68, 45, 37};
 
    cout << "Введите 1 для сортировки в возрастающем порядке," << endl
           << "Введите 2 для сортировки в убывающеееем порядке: ";
    cin  >> order;
    cout << endl << "Элементы данных в исходном порядке" << endl;
 
    for(int counter = 0; counter < arraySize; counter++)
           cout << setw(4) << trunk[counter];
 
    if(order == 1) {
        bubble(trunk, arraySize, ascending);
        cout << endl << "Элементы данных в возрастающем порядке"
             << endl;
    }else{
        bubble(trunk, arraySize, descending);
        cout << endl << "Элементы данных в убывающеееем порядке"
             << endl;
    }
    for(int counter = 0; counter < arraySize; counter++)
        cout << setw(4) << trunk[counter];
 
    cout << endl;
 
return 0;
}
 
void bubble(int *work, const int size, int (*compare)(int, int))
{
    void swap(int *, int *)
 
    for(int pass = 1, pass < size; pass++)
        for(int count = 0; count < size - 1; count++)
            if((*compare)(work[count], work[count + 1]))
                swap(&work[count], &work[count + 1]);
}
 
void swap(int *element1Ptr, int *element2Ptr)
{
    int temp;
 
    temp = *element1Ptr;
    *element1Ptr = *element2Ptr;
    *element2Ptr = temp;
}
 
int ascending(const int aInt, const int bInt)
{
    return bInt < aInt;
}
 
int descending(const int aInt, const int bInt)
{
    return bInt > aInt;
}
не могу понять как используются и работают вот эти две функции:
C++
1
2
3
4
5
6
7
8
9
int ascending(const int aInt, const int bInt)
{
    return bInt < aInt;
}
 
int descending(const int aInt, const int bInt)
{
    return bInt > aInt;
}
что они делают я понял - возвращают выражение/значение(кому как угодно) а вот как это выражение/значение(де-жа-вю) использует bubble, я не очень понимаю, вот вижу что работает, что указывает в каком порядке сортировать, а вот понять механизм не могу, кто чем может - буду рад, с меня в репу +
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru