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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Алина)
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 20
#1

Вывести все предложения текста в порядке неубывания их длины - C++

27.12.2010, 17:15. Просмотров 1328. Ответов 13
Метки нет (Все метки)

Люди,прошу,помогите задачу решить...зачет нужен(((Три задачи не решила,меньше недели. На Двумерный массив,функции и строки

1. Для группы фирм известен курс их акций за каждый из месяцев календарного года.Составить список тех фирм,которых все время повышался(т.е.курс за каждый последующий месяц больше,чем за предыдущий). проверку роста курса осуществить в продпрограмме.

3. Дан текст, состоящий из 3 строк с максимальной длиной 80 символов. Необходимо вывести все предложения данного текста в порядке неубывания их длины. Считать,что текст написан синтаксически грамотно,в качестве знаков препинания используются точка и запятая,слова состоят только из букв,перенос слов по слогам отсутствует. Для выделения предложений из текста создать пользовательскую функцию.

ВСЁ=) Прошу,помогите.

Добавлено через 1 минуту
Спасибо большое)

 Комментарий модератора 
Не дублируйте задания в разных темах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2010, 17:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести все предложения текста в порядке неубывания их длины (C++):

Вывести на экран слова текста в порядке невозрастания их длины - C++
Из произвольного текста, содержащего не более 10 строк, в каждой строке не более 80 символов, вывести на экран слова в порядке не...

Определить, какие слова из текста имеют длину от 1 до 10, и вывести их в порядке возрастания длины - C++
Определить сколько слов текста имеют длину 1, 2, 3, ... 10 символов. Вывести эти слова в последовательности возрастания их длины.

Считать текст из файла и вывести все его предложения в обратном порядке - C++
с++(желательно в коде cout) 1) надо решить с помощью двумерного массива: дана прямоугольная целочисленная матрица. Определить: а)...

Вывести цифры числа в порядке неубывания - C++
Дано произвольное целое положительное число K ( K<=10^9). Вывести цифры этого числа в порядке неубывания (например, 546085 =>045568)....

Считать текст из файла и вывести на экран все его предложения в обратном порядке - C++
Написать программу, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке

Вывести все слова входного потока в порядке увеличения их длины - C++
Здравствуйте . Задание: Вывести все слова входного потока в порядке увеличения их длины . Надеюсь на вашу помощь. Задание желательно...

13
asics
Freelance
Эксперт С++
2853 / 1788 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
27.12.2010, 17:56 #2
Цитата Сообщение от Алина) Посмотреть сообщение
3. Дан текст, состоящий из 3 строк с максимальной длиной 80 символов. Необходимо вывести все предложения данного текста в порядке неубывания их длины. Считать,что текст написан синтаксически грамотно,в качестве знаков препинания используются точка и запятая,слова состоят только из букв,перенос слов по слогам отсутствует. Для выделения предложений из текста создать пользовательскую функцию.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
 
bool pred(std::string str1, std::string str2)
{
    return str1.length() < str2.length();
}
 
int main()
{
    std::vector<std::string> vec_str(3);
    std::cout << "\n\n-> ";
    for(size_t i = 0; i < 3; ++i)
        getline(std::cin, vec_str[i]);
    std::sort(vec_str.begin(), vec_str.end(), pred);
    std::cout << "\n\n-> ";
    std::copy(vec_str.begin(), vec_str.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
    return 0;
}
1
Алина)
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 20
27.12.2010, 18:43  [ТС] #3
Спасибо большое=***Благодарю=):dance3:
0
easybudda
Модератор
Эксперт CЭксперт С++
9914 / 5837 / 975
Регистрация: 25.07.2009
Сообщений: 11,006
27.12.2010, 18:46 #4
1
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
#include <stdio.h>
#include <stdlib.h>
 
int is_ascendant(double * arr, size_t cnt){
    return ( cnt < 2 ) ? 1 : ( *arr >= *(arr + 1) ) ? 0 : is_ascendant(++arr, --cnt);
}
 
#define NUM_MONTHS 12
#define NAME_LEN 64
#define NAME_MASK "%63[^\n]%*c"
 
typedef struct COMPANY {
    char companyName[NAME_LEN];
    double sharePrice[NUM_MONTHS];
} company_t;
 
const char const * MONTHS[] = { "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" };
 
int main(void){
    int numCompanyes, i, j, cntAscendant;
    company_t * companyes;
    
    printf("Number of companyes: ");
    scanf("%d%*c", &numCompanyes);
    if ( ( companyes = (company_t*)malloc(sizeof(company_t) * numCompanyes) ) == NULL ){
        perror("malloc");
        exit(1);
    }
    
    for ( i = 0; i < numCompanyes; ++i ){
        printf("\nCompany #%d\n", i + 1);
        printf("Name: ");
        scanf(NAME_MASK, companyes[i].companyName);
        printf("Share price by months:\n");
        for ( j = 0; j < NUM_MONTHS; ++j ){
            printf("%s: ", MONTHS[j]);
            scanf("%lf%*c", &companyes[i].sharePrice[j]);
        }
    }
    
    cntAscendant = 0;
    printf("\n*****************\nCompanyes with ascendant share price:\n");
    for ( i = 0; i < numCompanyes; ++i ){
        if ( is_ascendant(companyes[i].sharePrice, NUM_MONTHS) ){
            printf("%s\n", companyes[i].companyName);
            ++cntAscendant;
        }
    }
    printf("%d companyes found.\n", cntAscendant);
    
    
    free(companyes);
    exit(0);
}
1
Алина)
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 20
27.12.2010, 20:46  [ТС] #5
Спасибо=*

Добавлено через 1 час 54 минуты
Есть еще одна задача на строки
7. Задачи на строки
1. Дан текст, состоящий из N (2N10) строк с максимальной длиной 80 символов. Необходимо вывести в алфавитном порядке последние слова всех предложений. Считать, что текст написан синтаксически грамотно, в качестве знаков препинания используются точка и запятая, слова состоят только из букв, перенос слов по слогам отсутствует. Для выделения слов из строки создать пользовательскую функцию.
0
asics
Freelance
Эксперт С++
2853 / 1788 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
27.12.2010, 22:06 #6
Цитата Сообщение от Алина) Посмотреть сообщение
1. Дан текст, состоящий из N (2N10) строк с максимальной длиной 80 символов. Необходимо вывести в алфавитном порядке последние слова всех предложений. Считать, что текст написан синтаксически грамотно, в качестве знаков препинания используются точка и запятая, слова состоят только из букв, перенос слов по слогам отсутствует. Для выделения слов из строки создать пользовательскую функцию.
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 <iostream>
#include <vector>
#include <algorithm>
#include <sstream>
#include <iterator>
 
int main()
{
    std::string str;
    std::vector<std::string> vec_str, vec_last_words;
 
    while(std::cout << "\n-> " && getline(std::cin, str))//Признак конца ввода - Ctrl + Z (для виндовс)
        vec_str.push_back(str);
 
    for(size_t i = 0; i < vec_str.size(); ++i)
    {
        std::string del(" ,.!?:;"), tmp = vec_str[i], _tmp;
 
        for(std::string::iterator it = tmp.begin();
                                    it != tmp.end(); ++it)
            if(del.find(*it) != std::string::npos)
                *it = ' ';
 
        std::istringstream ist(tmp);
        std::vector<std::string> vec_tmp;
 
        while(ist >> _tmp)
            vec_tmp.push_back(_tmp);
 
        vec_last_words.push_back(vec_tmp[vec_tmp.size() - 1]);
        vec_tmp.clear();
    }
 
    std::cout << "\n\nLast words after sort -> ";
    std::sort(vec_last_words.begin(), vec_last_words.end());
 
    std::copy(vec_last_words.begin(), vec_last_words.end(),
            std::ostream_iterator<std::string>(std::cout, " "));
    std::cout << std::endl;
 
    return 0;
}
Код
-> jhfjksd uryeu mnfs,jhdfjk.

-> jsidfj,jhfu:jfhusdf;urie?

-> irueio,hfsd,ire!

-> ^Z


Last words after sort -> ire jhdfjk urie

Process returned 0 (0x0)   execution time : 34.688 s
Press any key to continue.
1
sandye51
программист С++
686 / 588 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
27.12.2010, 22:24 #7
Цитата Сообщение от Алина) Посмотреть сообщение
3. Дан текст, состоящий из 3 строк с максимальной длиной 80 символов. Необходимо вывести все предложения данного текста в порядке неубывания их длины. Считать,что текст написан синтаксически грамотно,в качестве знаков препинания используются точка и запятая,слова состоят только из букв,перенос слов по слогам отсутствует. Для выделения предложений из текста создать пользовательскую функцию
по моему это прога написана выше в лаговом варианте
вот мой
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
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <conio.h>
 
using namespace std;
 
class T
{
public:
    bool operator() (const char* string1, const char* string2)
    {
        return strlen(string1) <= strlen(string2);
    }
};
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char str[80];
    vector<char*> toksentence;
    cout << "Введите строку с предложениями\n"; 
    cin.getline(str, 80);
    char* _substr = strtok(str, ".");
    toksentence.push_back(_substr);
    while(true)
    {
        _substr = strtok(NULL, ".");
        if (_substr == NULL)
            break;
        toksentence.push_back(_substr);
    }
    sort(toksentence.begin(), toksentence.end(), T());
    string strsort = "";
    for (vector<char*>::iterator i = toksentence.begin(); i != toksentence.end(); ++i)
    {
        strsort += string(*i);
        if (i != toksentence.end() - 1)
            strsort += ".";
    }
    cout << "Результат: " << strsort << endl; 
    _getch();
    return 0;
}
1
asics
Freelance
Эксперт С++
2853 / 1788 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
27.12.2010, 22:28 #8
Цитата Сообщение от sandye51 Посмотреть сообщение
по моему это прога написана выше в лаговом варианте
Аргументируйте.
1
sandye51
программист С++
686 / 588 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
27.12.2010, 23:53 #9
Цитата Сообщение от asics Посмотреть сообщение
Аргументируйте.
в 1 строке может быть несколько предложений, у вас на это проверки нет
1
asics
Freelance
Эксперт С++
2853 / 1788 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
28.12.2010, 00:00 #10
sandye51, И єто вы называете лаг ?Мда...
Я понял условие так: одно предложение - одна строка.
1
sandye51
программист С++
686 / 588 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
28.12.2010, 00:18 #11
asics, ничего личного, к словам не придирайтесь :-).. я сам сейчас внимательнее прочитал условие, моя тоже не совсем так работает)
1
asics
28.12.2010, 00:37
  #12

Не по теме:

sandye51, Ладно, проехали.

1
Алина)
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 20
28.12.2010, 08:55  [ТС] #13
Спасибо=*

Добавлено через 30 минут
5. Известны оценки группы студентов за сессию. В группе 20 студентов, в сессии 4 экзамена. Определить суммарную стипендию. Считать, что стипендия в размере R рублей начисляется студентам, сдавшим сессию без троек, а отличники получают стипендию, повышенную на 25% . Подсчет стипендии студента оформить в виде функции.
0
sandye51
программист С++
686 / 588 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
29.12.2010, 19:00 #14
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
#include <iostream>
#include <algorithm>
#include <conio.h>
#include <limits.h>
#include <time.h>
#include <iomanip>
 
using namespace std;
 
#define m 20
#define n 4
#define R 1
 
class new_mark
{
public:
    bool operator()(double* Buffer)
    {
        double tmp;
        for (size_t i = 0; i < n; ++i)
            cout << setw(4) << (Buffer[i] = (tmp = 0.5 * (rand() % 6 + 6)) == 3.5 ? 4 : tmp ) << " ";
        cout << endl;
        return true;
    }
};
 
void despose (double* Buffer)
{
    delete[]Buffer;
}
 
 
int main()
{
    srand((unsigned)time(NULL));
    double** group = new double*[m];
    for (size_t i = 0; i < m; ++i)
        group[i] = new double[4];
    for_each(group, group + m, new_mark());
    double St = R * count_if(group, group + m, 
        [&] (double* Buffer)->bool
    {
        return all_of(Buffer, Buffer + n, 
            [] (const double& Buf)->bool
        {
            return Buf >= 4; 
        });
    });
    St += 0.25 * R * count_if(group, group + m, 
        [&](const double* Buffer)->bool
    {
        return all_of(Buffer, Buffer + n, 
            [](const double& Buffer)->bool
        {
            return Buffer >= 5;
        });
    }); 
    cout << "Payments " << St << endl;
    _getch();
    for_each(group, group + m, despose);
    delete[]group;
    return EXIT_SUCCESS;
}
1
29.12.2010, 19:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2010, 19:00
Привет! Вот еще темы с ответами:

Вывести в порядке неубывания (возрастания) отрицательные элементы массива - C++
Дан одномерный массив из N случайных действительных чисел в диапазоне от -5 до 5. Вывести в порядке неубывания (возрастания) отрицательные...

Выведите все простые множители этого числа в порядке неубывания с учетом кратности (рекурсия) - C++
Дано натуральное число n&gt;1. Выведите все простые множители этого числа в порядке неубывания с учетом кратности.Алгоритм должен иметь...

Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки - C++
ребят всю голову сломал уже завтра уже надо сдавать(( Текстовый файл содержит строки – предложения разной длины. Записать их в...

Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки - C++
Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки.


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

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

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