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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
insi
Сообщений: n/a
#1

Помогите оптимизировать код - C++

16.05.2008, 20:48. Просмотров 1162. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста разобраться, хотелось бы чтобы это прграммка наконец-то заработала. Задача такая:

Одномерный массив целых чисел, размер которго задается с клавиатуры. Запрограммировать следующие действия с массивом:
1. циклически сдвигать на К позиций влево;
2. выяснить, упорядочены ли элементы массива по невозрастанию или неубыванию;
3. если в исходном массиве количество положительных значений меньше, чем отрицательных, то создавать новый массив для отрицательных значений, в противном случае - создавать массив для положительных значений и переписывать в него соответствующие значения исходного массива.

В приложении необходимо:
1. Для временного хранения наборов значений использовать только временные динамические массивы;
2. Программирование заданных действий производить с использованием указателей;
3. Вывод результатов оформлять в виде таблицы;
4. Создать пользовательсике функции;
5. В приложении необходимо обеспечить возможность выбора конкретного действия;
6. В приложении необходимо обеспечить возможность повторного выполнения задания без перезапуска приложения;



Код:
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
     int N;
    cin>>N;
    int *pm=new int[N];
// arr = указатель на первый элемент массива
// N = количество элементов в массиве
// shift = куда и на сколько двигать
// проверки на валидность отсутствуют
template <typename T>
void rotate(T* arr, size_t N, typename std::iterator_traits<T>::difference_type shift)
{
    if (shift < 0)
        shift = N+shift;
    std::rotate(arr, arr+shift, arr+N);
}
// Невозрастающая
template <typename T>
bool nonincreasing(T* arr, size_t N)
{
    return std::adjacent_find(arr, arr+N, std::less<T>()) == arr+N;
}
 
// Неубывающая
template <typename T>
bool nondecreasing(T* arr, size_t N)
{
    return std::adjacent_find(arr, arr+N, std::greater<T>()) == arr+N;
}
// двойной проход
template <typename T>
std:: pair<size_t, size_t> posneg_count(T* arr, size_t N)
{
    return std::make_pair(
        std::count_if(arr, arr+N, std::bind2nd(std::less<T>(), 0)),
        std::count_if(arr, arr+N, std::bind2nd(std::greater<T>(), 0))
        );
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2008, 20:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите оптимизировать код (C++):

Помогите оптимизировать код - C++
Здравствуйте! Помогите, пожалуйста, оптимизировать его: main.cpp #include &quot;main.h&quot; ...

Оптимизировать код - C++
Первое число входного потока - количество чисел Дальше идут те самые числа Надо найти кол-во пар чисел, для которых выполняется nums &lt;=...

Оптимизировать код - C++
Доброго времени суток, как можно оптимизировать код что бы он быстрее работал ? Дана последовательность из n чисел a1, a2,..., an. C...

Как оптимизировать код? - C++
Как оптимизировать код, чтобы работала программа быстрее #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; using namespace...

Исправить и оптимизировать код - C++
нужна помощь по исправлению ошибок Написал программу она работает все отлично но препод сказал что она не очень красивая Помогите...

Нужно оптимизировать код - C++
Вобщем код не принемает сайт, немного нагружает и по времени не проходит задание Август и Беатриса играют в игру. Август загадал...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 91
20.05.2008, 17:27 #2
чего-то я тоже не соображу, что тут у вас начеркано. давайте по порядку все. сдвиг на к позиций: вроде похоже на правду, если вместо N+shift брать N+shift по модулю N. и так же можно использовать и для любого знака shift.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2008, 17:27
Привет! Вот еще темы с ответами:

Оптимизировать и минимализировать код - C++
Cделал легкую прогу. Понимаю логики 0 в коде. Можете помочь оптимизировать код? А заодно и сделать код более минималистичным. #include...

Как оптимизировать код? - C++
Вот такой код, написанный для микроконтроллера импульсного блока питания. Просто интересно мнение, что можно поменять и изменить для...

Оптимизировать код оператор switch - C++
Послкажите что нетак после cin&gt;&gt;v содержимое switch не работает void main() { float inches=2.54; float cm; int...

Задача с E-olymp (оптимизировать код) - C++
Здравствуйте, уважаемые форумчане! Снова решаю задачи с сайта E-olymp. У меня возникла следующая проблема: Есть несложная задача: del И,...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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