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

Нужно отсортировать массив от *start до *finish - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выяснить, образуют ли цифры данного числа возрастающую последовательность http://www.cyberforum.ru/cpp-beginners/thread671686.html
Здраствуйте, помогите сделать лабораторную, программирование мне не понадобиться так что не хочу забивать этим голову, зарание спасибо. Вот условие задач. 3) Выяснить, образуют ли цифры данного натурального числа N возрастающую последовательность.
C++ Найти все четные четырехзначные числа, цифры которых следуют в порядке возрастания или убывания Здраствуйте, помогите сделать лабораторную, программирование мне не понадобиться так что не хочу забивать этим голову, зарание спасибо. Вот условие задач. 4) Найти все четные четырехзначные числа, цифры которых следуют в порядке возрастания или убывания. http://www.cyberforum.ru/cpp-beginners/thread671685.html
C++ Получить число, образованное цифрами исходного, записанными в обратном порядке
Здраствуйте, помогите сделать лабораторную, программирование мне не понадобиться так что не хочу забивать этим голову, зарание спасибо. Вот условие задач. 5) По заданному натуральному числа N получить число M, записанное цифрами исходного числа,взятыми в обратном порядке.
C++ Получить все четырехзначные числа, в записи которых встречаются только цифры 0,2,3,7
Здраствуйте, помогите сделать лабораторную, программирование мне не понадобиться так что не хочу забивать этим голову, зарание спасибо. Вот условие задач. 6) Получить все четырехзначные числа, в записи которых встречаются только цифры 0,2,3,7.
C++ Выяснить, есть ли в записи натурального число N две одинаковые цифры http://www.cyberforum.ru/cpp-beginners/thread671681.html
Здраствуйте, помогите сделать лабораторную, программирование мне не понадобиться так что не хочу забивать этим голову, зарание спасибо. Вот условие задач. 7) Выяснить, есть ли в записи натурального число N две одинаковые цифры.
C++ Получить все четырехзначные целые числа, в записи которых нет одинаковых цифр Здраствуйте, помогите сделать лабораторную, программирование мне не понадобиться так что не хочу забивать этим голову, зарание спасибо. Вот условие задач. 8) Получить все четырехзначные целые числа, в записи которых нет одинаковых цифр. подробнее

Показать сообщение отдельно
maxon887
12 / 12 / 3
Регистрация: 05.06.2012
Сообщений: 280
16.10.2012, 12:31  [ТС]     Нужно отсортировать массив от *start до *finish
Моя функция sorting() это породия на sort() из <algorthm> библиотеки обобщённых олгаритмов.Она должна работать и с STL и с "Array"
Array.h - самодельный контейнер
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#ifndef ARRAY_H
#define ARRAY_H
#include <iostream>
using namespace std;
 
//определение
 
template<class type>
class Array
{
public:
    Array(int sz=0){ init(0,sz); }
    Array(type *a,int sz){ init(a,sz); }
    Array(Array *a){ init(a,a->Size()); }
    int Size(){ return size; }
    ~Array(){ delete[] arr; }
    void display();
    type& operator[](int i){return arr[i];}
    bool operator ==(Array &a);
    bool operator !=(Array &a);
    Array* operator =(Array *a){return a;}
    type find(type val);
    void push(type v);
    void pup(){ size--; }
    type* begin(){ return &arr[0];}
    type* end(){ return &arr[size];}
protected:
    void init(type *a,int sz);
    int size;
    type *arr;
};
 
//реализация
 
template<class type>
void Array<type>::display()
{
    cout<<"This-"<<(this)<<" cout="<<size<<" size="<<sizeof(type)*size<<"bytes"<<endl;
    for(int i=0;i<size;i++)
    {
        cout<<arr[i]<<" ";
    }
    cout<<endl;
}
template<class type>
bool Array<type>::operator ==(Array &a)
{
    if(a.Size()!=this->size)
        return false;
    else
    {
        for(int i=0;i<this->size;i++)
        {
            if(a.arr[i]!=this->arr[i])
                return false;
        }
        return true;
    }
}
template<class type>
bool Array<type>::operator !=(Array &a)
{
    if(a.Size()!=this->size)
        return true;
    else
    {
        for(int i=0;i<this->size;i++)
        {
            if(a.arr[i]!=this->arr[i])
                return true;
        }
        return false;
    }
}
template<class type>
void Array<type>::push(type v)
{
    type temp[size];
    for(int i=0;i<size;i++)
    {
        temp[i]=arr[i];
    }
    size++;
    arr=new type[size];
    for(int i=0;i<size-1;i++)
    {
        arr[i]=temp[i];
    }
    arr[size-1]=v;
}
template<class type>
void Array<type>::init(type *a, int sz)
{
    size=sz;
    arr=new type[size];
    for(int i=0;i<size;i++)
    {
        if(!a)
        {
            arr[i]=type();
        }
        else
        {
            arr[i]=a[i];
        }
    }
}
 
#endif // ARRAY_H
algorithms.h - обощённые алгоритмы которые должны работать как с классом "Array" так и с STL.
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
#ifndef ALGORITHMS_H
#define ALGORITHMS_H
#include "Array.h"
template<class elm>
void swaping(elm &i,elm &j)
{
    elm tmp=i;
    i=j;
    j=tmp;
}
template<class elm>
void sorting(elm *st,elm *fn)
{
  //  elm *fin=fn;
    while(st!=fn)
    {
        for(elm *next=st;next!=fn;next++)
        {
            if((*next)<(*st))
            {
                swaping((*next),(*st));
            }
        }
        st++;
    }
}
 
#endif // ALGORITHMS_H
main.cxx
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <QtCore/QCoreApplication>
#include <vector>
#include <algorithm>
#include <iostream>
#include "Array.h"
#include "Algorithms.h"
using namespace std;
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    int myints[] = {32,71,12,45,26,80,53,33};
    Array<int> arr(myints,8);
    arr.display();
    sort(arr.begin(),arr.end()); //пример вызова функции
    arr.display();
 
    return a.exec();
}
p.s. надеюсь всё понятно
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru