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

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

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

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

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

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

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

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

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

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

 Комментарий модератора 
Не дублируйте задания в разных темах.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2010, 17:15     Вывести все предложения текста в порядке неубывания их длины
Посмотрите здесь:

C++ Вывести все слова входного потока в порядке увеличения их длины
C++ Считать из текстового файла 3 предложения и вывести их в обратном порядке
C++ Считать текст из файла и вывести на экран все его предложения в обратном порядке
C++ Вывести цифры числа в порядке неубывания
C++ Считать три предложения и вывести их в обратном порядке
C++ Определить, какие слова из текста имеют длину от 1 до 10, и вывести их в порядке возрастания длины
Считать текст из файла и вывести все его предложения в обратном порядке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
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;
}
Алина)
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 20
27.12.2010, 18:43  [ТС]     Вывести все предложения текста в порядке неубывания их длины #3
Спасибо большое=***Благодарю=):dance3:
easybudda
Эксперт С++
9455 / 5468 / 927
Регистрация: 25.07.2009
Сообщений: 10,493
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);
}
Алина)
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 20
27.12.2010, 20:46  [ТС]     Вывести все предложения текста в порядке неубывания их длины #5
Спасибо=*

Добавлено через 1 час 54 минуты
Есть еще одна задача на строки
7. Задачи на строки
1. Дан текст, состоящий из N (2N10) строк с максимальной длиной 80 символов. Необходимо вывести в алфавитном порядке последние слова всех предложений. Считать, что текст написан синтаксически грамотно, в качестве знаков препинания используются точка и запятая, слова состоят только из букв, перенос слов по слогам отсутствует. Для выделения слов из строки создать пользовательскую функцию.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
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.
sandye51
программист С++
677 / 579 / 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;
}
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
27.12.2010, 22:28     Вывести все предложения текста в порядке неубывания их длины #8
Цитата Сообщение от sandye51 Посмотреть сообщение
по моему это прога написана выше в лаговом варианте
Аргументируйте.
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
27.12.2010, 23:53     Вывести все предложения текста в порядке неубывания их длины #9
Цитата Сообщение от asics Посмотреть сообщение
Аргументируйте.
в 1 строке может быть несколько предложений, у вас на это проверки нет
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
28.12.2010, 00:00     Вывести все предложения текста в порядке неубывания их длины #10
sandye51, И єто вы называете лаг ?Мда...
Я понял условие так: одно предложение - одна строка.
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
28.12.2010, 00:18     Вывести все предложения текста в порядке неубывания их длины #11
asics, ничего личного, к словам не придирайтесь :-).. я сам сейчас внимательнее прочитал условие, моя тоже не совсем так работает)
asics
28.12.2010, 00:37
  #12

Не по теме:

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

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

Добавлено через 30 минут
5. Известны оценки группы студентов за сессию. В группе 20 студентов, в сессии 4 экзамена. Определить суммарную стипендию. Считать, что стипендия в размере R рублей начисляется студентам, сдавшим сессию без троек, а отличники получают стипендию, повышенную на 25% . Подсчет стипендии студента оформить в виде функции.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2010, 19:00     Вывести все предложения текста в порядке неубывания их длины
Еще ссылки по теме:

C++ как выделить 3 первых предложения 1,2,3 и вывести их в обратном порядке 3,2,1 ?
Считать в строку три предложения и вывести их в обратном порядке C++
Выведите все простые множители этого числа в порядке неубывания с учетом кратности (рекурсия) C++
C++ Вывести предложения в обратном порядке
Вывести предложения в обратном порядке C++

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

Или воспользуйтесь поиском по форуму:
sandye51
программист С++
677 / 579 / 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;
}
Yandex
Объявления
29.12.2010, 19:00     Вывести все предложения текста в порядке неубывания их длины
Ответ Создать тему
Опции темы

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