Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 25

обработка последовательности

04.11.2009, 18:02. Показов 3470. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток) Начинаю изучать С++, но лучше всего конечно же понимаю на примерах.
Прошу помочь с такими задачами :
1) Дана последовательность из n целых элементов. Сжать последовательность, удалив из нее все нулевые элементы, затем отсортировать ее по убыванию. Вывести на экран исходную последовательность до сжатия, после сжатия и после сортировки.
2) Та же задача, только вместо псоледовательности было бы задано число.
Например : 52045306
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2009, 18:02
Ответы с готовыми решениями:

Обработка последовательности
Для заданной последовательности слагаемых ряда и вводимых значений x, N и Е необходимо выполнить следующие действия: -найти первый...

Обработка числовой последовательности
Только начали изучать С++ сразу влипили задачу на обработку числовой последовательности), давали понять что легкая но я как то с этим не...

обработка последовательности символов
1.Даны натуральные числа n и m , символы s1,....,sn (m<n).Получить последовательность символов: sn,s(n-1),....,s(m+1),s1,.....,sm. ...

28
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 25
07.11.2009, 18:55  [ТС]
Студворк — интернет-сервис помощи студентам
0о терь бы разобраться что да как и как все это запихнуть в код (в самом начале) чтобы работало.
или есть ли варианты проще чтобы выглядело на экране примерно так :

Введите количество элементов :
5
Введите элементы
1
2
0
5
3
0
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 25
08.11.2009, 11:40  [ТС]
Вот сам код того что есть :
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
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using std::vector;
using std::cout;
using std::cin;
using std::endl;
using std::remove;
using std::sort;
using std::greater;
 
int main()
{
        setlocale(LC_ALL,"RUSSIAN");
        int i,n,arr[254]={0};
        cout<<"Введите количество элементов последовательности"<<endl;
        cin>>n;
        cout<<"Введите элементы последовательности"<<endl;
        for (i=0;i<n;i++)
        {
        cin>>arr[i];
        }
        vector<int>a(arr,arr+sizeof(arr)/sizeof(*arr));
        vector<int>::iterator pos = remove(a.begin(),a.end(),0);
        cout<<"последовательность:"<<endl;
        /*for (vector<int>::iterator it = a.begin() ; it!=a.end() ; ++it)
                cout<<*it<<' ';
            cout<<endl;*/
       for (vector<int>::iterator it = a.begin() ; it!=3 ; ++it)
       {if (*it==0) break;
           cout<<*it<<' ';
       }
            cout<<endl;
        vector<int>::iterator pos = remove(a.begin(),a.end(),0);
        cout<<"последовательность без нулей:"<<endl;
        for (vector<int>::iterator it = a.begin() ; it!=pos ; ++it)
                cout<<*it<<' ';
            cout<<endl;
        sort(a.begin(),pos,greater<int>());
        cout<<"отсортированная последовательность:"<<endl;
        for (vector<int>::iterator it = a.begin() ; it!=pos ; ++it)
                cout<<*it<<' ';
        system ("pause");
        return 0;
}
но проблема как раз в том чтобы отсечь нули (отмеченные красным), чтобы осталось просто 1 2 0 5 :

Введите количество элементов последовательности
4
Введите элементы последовательности
1
2
0
5
последовательность:
1 2 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0

последовательность без нулей:
1 2 5
отсортированная последовательность:
5 2 1 Для продолжения нажмите любую клавишу . . .
0
8 / 8 / 5
Регистрация: 30.05.2009
Сообщений: 47
08.11.2009, 11:48
Зачем вместе использовать статический массив и вектор?
Если удалить нули, то std::vector::erase( std::remove )
0
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 25
08.11.2009, 12:12  [ТС]
Точнее сказать как убрать на выводе самого вектора, чтобы показывал не все элементы а n заданных, т.е. чтобы на выводе не показывал элементы,выходящие за пределы заданного значения количества элементов.
Извиняюсь тестовый код случайно написал вместо исходного :

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
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using std::vector;
using std::cout;
using std::cin;
using std::endl;
using std::remove;
using std::sort;
using std::greater;
 
int main()
{
        setlocale(LC_ALL,"RUSSIAN");
        int i,n,arr[254]={-999};
        cout<<"Введите количество элементов последовательности"<<endl;
        cin>>n;
        cout<<"Введите элементы последовательности"<<endl;
        for (i=0;i<n;i++)
        {
        cin>>arr[i];
        }
        vector<int>a(arr,arr+sizeof(arr)/sizeof(*arr));
 
        cout<<"последовательность:"<<endl;
        for (vector<int>::iterator it = a.begin() ; it!=a.end() ; ++it)
                cout<<*it<<' ';
            cout<<endl;
        vector<int>::iterator pos = remove(a.begin(),a.end(),0);
        cout<<"последовательность без нулей:"<<endl;
        for (vector<int>::iterator it = a.begin() ; it!=pos ; ++it)
                cout<<*it<<' ';
            cout<<endl;
        sort(a.begin(),pos,greater<int>());
        cout<<"отсортированная последовательность:"<<endl;
        for (vector<int>::iterator it = a.begin() ; it!=pos ; ++it)
                cout<<*it<<' ';
        system ("pause");
        return 0;
}
0
8 / 8 / 5
Регистрация: 30.05.2009
Сообщений: 47
08.11.2009, 12:32
Смести итератор на n
0
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 25
08.11.2009, 12:36  [ТС]
заменил
for (vector<int>::n/*iterator*/ it = a.begin() ; it!=a.end() ; ++it)

но результат все тот же :

Введите количество элементов последовательности
5
Введите элементы последовательности
1
2
3
4
5
последовательность:
1 2 3 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
8 / 8 / 5
Регистрация: 30.05.2009
Сообщений: 47
08.11.2009, 12:52
C++
1
2
std::vector<int>::iterator pos_b( a.begin() ), pos_e( a.begin() );
for ( std::advance( pos_e, n ) ; pos_b != pos_e ; ++pos_b )
1
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 25
08.11.2009, 12:56  [ТС]
Огроменное спасибо
0
0 / 0 / 0
Регистрация: 31.10.2009
Сообщений: 3
08.11.2009, 12:56
проверте на наличие ошибок
Вложения
Тип файла: doc программирование.doc (39.0 Кб, 24 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.11.2009, 12:56

Обработка последовательности символов
Попытался, но не получилось Может кто подскажет, в чем проблема. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...

Обработка элементов последовательности
Задание 1. Заполнить файл Input.txt целыми числами. Длина последовательности целых чисел – случайное число от 10 до 30. Последовательность...

Обработка последовательности символов
Задание: В последовательности символов переставить заданную букву со следующей за ней. #include &lt;stdio.h&gt; // подключение...

Обработка последовательности символов
Здравствуйте, помогите пожалуйста разобраться. Условие: Даны символы S1,S2,… Известно, что символ S1 отличен от ! и что среди S2,S3…...

Обработка последовательности символов
На скрине задача. abc готово, но осталось для меня проблемой добавить aba Буду рад помощи еще раз. #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru