1 / 1 / 0
Регистрация: 03.12.2010
Сообщений: 29
1

Вывести вертикальную гистограмму длин слов введенного текста

13.03.2011, 12:55. Показов 3894. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вывести вертикальную гистограмму длин слов введенного текста
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2011, 12:55
Ответы с готовыми решениями:

Для заданного текста построить гистограмму распределения длин слов.
Для заданного текста построить гистограмму распределения длин слов. Помогите пожалуйста.В С++

Сформировать гистограмму длин слов, хранящихся в текстовом файле
помогите с этим заданием !!!..... Сформировать гистограмму длин слов, хранящихся в текстовом...

Получить гистограмму (столбчатую диаграмму) длин всех слов файла
Добрый день,помогите пожалуйста доработать программу. Нужно получить гистограмму (столбчатую...

Вывести вертикальную гистограмму длин слов введенного текста
Здравствуйте, дали задачу "вывести вертикальную гистограмму длин слов введенного текста". не особо...

2
Заблокирован
14.03.2011, 14:38 2
Уточните, какими средствами. Возможностей много и разнообразных.
0
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
23.03.2011, 19:49 3
Лучший ответ Сообщение было отмечено VTPO 10 как решение

Решение

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 <string>
#include <sstream>
////////////////////////////////////////////////////////
using namespace std;
////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale("")); 
    cout << "Введите " << endl;
    string s;
    getline (cin, s);
    istringstream st(s);
    vector <int> d;
    int max = 0;
    int longer = 0;
    while (st)
    {
        string temp;
        st >> temp;
        if (temp.size() > max)
            max = temp.size();
        longer++;
        d.push_back(temp.size());
    }
    vector <vector <char> > diagram(max, vector <char> (longer, ' '));
    for (int i = 0; i < longer; i++)
    {
        for (int j = max-1; j >= max-d[i]; j--)
            diagram[j][i] = 2;
 
    }
    for (int i = 0; i < max; i++)
    {
        for (int j = 0; j < longer; j++)
            cout << diagram[i][j];
        cout << endl;
    }
 
    return 0;
}
Добавлено через 9 минут
как-то так:
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
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
////////////////////////////////////////////////////////
using namespace std;
////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale("")); 
    cout << "Введите строку" << endl;
    string s;
    getline (cin, s);
    istringstream st(s);
    vector <int> d; //массив длин каждого слова
    int max = 0;    //маскимальная длинна слова
    int longer = 0; //количество слов
    while (st)
    {
        string temp;
        st >> temp;
        if (temp.size() > max)
            max = temp.size();
        d.push_back(temp.size());
        longer++;
    }
    //заполняем диаграму
    vector <vector <char> > diagram(max, vector <char> (longer, ' '));
    for (int i = 0; i < longer; i++)
        for (int j = max-1; j >= max-d[i]; j--)
            diagram[j][i] = 35;
 
    for (int i = 0; i < max; i++)
    {
        for (int j = 0; j < longer; j++)
            cout << diagram[i][j];
        cout << endl;
    }
    return 0;
}
Добавлено через 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
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
////////////////////////////////////////////////////////
using namespace std;
////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale("")); 
    cout << "Введите строку" << endl;
    string s;
    getline(cin, s);
    //считываем строку и делаем из нее поток
    istringstream str (s);
    vector <int> d; //массив длин каждого слова
    int max = 0;    //маскимальная длинна слова
    while (str)
    {
        string temp;
        str >> temp;
        d.push_back(temp.size());
        if (temp.size() > max)
            max = temp.size();
    }
    //без дополнительного массива
    for (int i = 0; i < max; i++)
    {
        for (int j = 0; j < d.size(); j++)
            if (i >= max-d[j])
                cout << "#";
            else
                cout << " ";
        cout << endl;
    }
    return 0;
}
1
23.03.2011, 19:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2011, 19:49
Помогаю со студенческими работами здесь

Программа, печатающая гистограмму длин вводимых слов
Вообщем ,думаю всем известно это упражнение из книги кернигана и ритчи. Я написал программу,но...

Дан символьный файл f. Получить гистограмму длин всех слов файла f
Привет! Пожалуйста, помогите решить. Дан символьный файл f. Считая, что количество символов в...

Вывести два соседних слова, сумма длин которых меньше суммы длин любых других пар соседних слов.
Необходимо вывести два соседних слова, сумма длин которых меньше суммы длин любых других пар...

Не получается реализовать вертикальную гистограмму
В упражнении 1.13 &quot;Керниган Риччи&quot; не получается вертикальная гистограмма. В интернете есть готовые...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru