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

Разделение программы на файлы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ не могу разобраться с функциями ( значение функции, заданной с помощью ряда) http://www.cyberforum.ru/cpp-beginners/thread774426.html
Добрый день! пишу программу, которая вычисляет значение функции, заданной с помощью ряда. я плохо разбираюсь в написании функций, но вроде все сделал, написал определение функции до функции tmain, потом саму функцию, но компилятор VS2010 выдает ошибки: error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)-строка 31, 38, 65 требуется...
C++ Оптимизация алгоритма вычисления определителя матрицы Здравствуйте! Написал я давеча программку, которая считает определитель. Только вот беда - он не считает определители матриц выше 10 порядка - тупо не хватает памяти. Я так понимаю, это из-за того, что мой алгоритм - рекурсивный. Так вот, можно ли больше оптимизировать мой код, или эта рекурсия - заведомо плохой вариант? //Определитель вычисляется по формуле det( A ) = a( i, j ) * ( -1 )^( i... http://www.cyberforum.ru/cpp-beginners/thread774425.html
C++ Даны N предложений. Подсчитать количество слов в каждом предложении и вывести на печать
Здравствуйте. Помогите, пожалуйста, в написании алгоритма на C++. >>Даны N предложений. Подсчитать количество слов в каждом предложении и вывести на печать.<< Спасибо заранее добрым людям!
Как закрыть документ Word не закрывая приложение? C++
Удалить из заданной строки все вхождения "*". Надеюсь, что с вашей помощью я таки пойму строковые данные на паскаль!
C++ Вложенные циклы и необъявленные идентификаторы http://www.cyberforum.ru/cpp-beginners/thread774311.html
есть часть кода: for(int a=0; a<3;a++) if (a=0) int b=1; else if (a=1) int b=2; else if (a=2) int b=3; for(int c=0; c<3;c++) if (c=0) int d=1; else if (c=1) int d=2; else if (c=2) int d=3;
C++ Хеширование-метод середины квадрата Вот такая ситуация... Тип данных строки, метод разрешения колизии "открытая адресация". Проблема в самой хеш-функции, прочитал много теории, но никак не выходит теорию в жизнь воплатить =) Вот что есть: int _key(char* ch0) { int key; key=strlen(ch0); return key; } подробнее

Показать сообщение отдельно
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
29.01.2013, 16:15     Разделение программы на файлы
В чем причина не знаю, но скорее всего связано с тем щи вы используемой шаблоны. Там есть свои причуды связанные с файлами. Но если в main включить sort.cpp то все работает.

Вот так работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//sort.h
#include <iostream>
using namespace std;
 
//сортировка выбором
template <class T>
void SelectSort(T list[], int size);
 
//сортировка вставками
template <class T>
void InsertSort(T list[], int size);
 
//сортировка пузырьком
template <class T>
void BubbleSort(T list[], int size);
 
//модифицированная сортировка пузырьком
template <class T>
void BubbleSortFast(T list[], int size);
 
#include "sort.cpp"
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
//sort.cpp
 
template <class T>
void SelectSort(T list[], int size)
{
    int minPtr;
 
    for(int i = 0; i < size - 1; i++)
    {
        //ищем минимимальный элемент в списке list[i + 1, ... , size - 1]
        minPtr = i + 1;
        for(int j = minPtr + 1; j < size; j++)
            if(list[j] < list[minPtr])
                minPtr = j;
 
        //меняем местами найденный элемент и list[i] (если требуется)
        if(list[minPtr] < list[i])
            swap(list[minPtr], list[i]);
    }
}
 
template <class T>
void InsertSort(T list[], int size)
{
    int location;
    T newElement;
 
    for(int i = 1; i < size; i++){
        newElement = list[i];
        location = i - 1;
 
        //поиск места для вставки нового элемента
        while((location >= 0) && (list[location] > newElement)){
            list[location + 1] = list[location];
            location--;
        }
 
        //место найдено, вставляем новый элемент
        list[location + 1] = newElement;
    }
}
 
template <class T>
void BubbleSort(T list[], int size)
{
    for(int pass = 1; pass <= size - 1; pass++)
        for(int elem = 0; elem < size - pass ; elem++)
            if(list[elem] > list[elem + 1])
                swap(list[elem], list[elem + 1]);
}
 
template <class T>
void BubbleSortFast(T list[], int size)
{
    bool swapped = true;
 
    for(int i = 1; swapped && (i <= size-1); i++){
        swapped = false;
 
        for(int j = 0; j < size - i; j++)
            if(list[j] > list[j + 1]){
                swap(list[j], list[j + 1]);
                swapped = true;
            }
    }
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "sort.h"
 
 
int main(){
    const int SIZE = 11;
    int list[SIZE] = {1,45,123,5,2,034,6,23,4,56,2};
 
    ::BubbleSortFast(list, SIZE);
    for(int i = 0; i < SIZE; i++)
        cout << list[i] << ' ';
    cout << endl;
    system("pause>0");
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru