С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222

Задача по векторам №2

31.07.2013, 18:50. Показов 940. Ответов 9
Метки нет (Все метки)

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

Преобразовать и вывести преобразованные элементы вектора получилось. Но вот вывести их по 8 в строке, что то не как. Буду благодарен всем кто объяснит, как это делать.

Вот мои потуги:
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
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
template <class T>
void show (vector<T> & x)
{
    for (vector<T>::iterator it = x.begin() ; it != x.end() ; ++it)
                cout<<" "<<*it;
}
 
void main()
{
    setlocale(LC_ALL, "rus");
 
    string words;
    string word;
    vector<string> some_text;
    vector<string> s_t;
    
    cout << "Введите текст. По окончанию ввода, нажмите - ctrl + Z" << endl;
 
    while (getline(cin, words))
    {
        some_text.push_back(words);
        word = words;
    }
 
    for (string::size_type ix = 0; ix != word.size(); ++ix)
    {
        word[ix] = toupper(word[ix]);
    }
 
    s_t.push_back(word);
    cout << endl;
 
    show(some_text);
    cout << endl;
    cout << endl;
    show(s_t);
    cout << endl;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.07.2013, 18:50
Ответы с готовыми решениями:

Цикл по векторам
Здравствуйте, помогите написать код для цикла. Без цикла получается вот такая картина, нужно написать цикл чтобы выпустилось N-...

Вопрос по векторам
Вектор AB. Противоположны ему векторы BA и -AB. Т.е. АВ = - ВА Так?

Вектор а ортогонален векторам b и c
Вектор а ортогонален векторам b и с. известна длина а. Найти а!!. b(-1;1;-1) c(1;1;1\3) |a|= sqrt14, пр OY a&lt;0. как это делается?...

9
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
31.07.2013, 19:04
Цитата Сообщение от Аццкий Прогер Посмотреть сообщение
C++
1
2
[CPP]for (vector<T>::iterator it = x.begin() ; it != x.end() ; ++it)
   cout<<" "<<*it;
[/CPP]
C++
1
2
3
4
5
6
for (vector<T>::iterator it = x.begin(); it != x.end(); ) {
   for (size_t i = 0; (i != 8) && (it != x.end()); ++i, ++it) {
      cout << *it << ' ';
   }
   cout << endl;
}
?

Добавлено через 7 минут
upd:
C++
1
2
3
4
5
6
7
8
9
template<typename T>
void show(vector<T> const& x) {
   for (typename vector<T>::const_iterator it = x.begin(); it != x.end(); ) {
      for (size_t i = 0; (i != 8) && (it != x.end()); ++i, ++it) {
         cout << *it << ' ';
      }
      cout << endl;
   }
}
1
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
31.07.2013, 19:11  [ТС]
Цитата Сообщение от gray_fox Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
template<typename T>
void show(vector<T> const& x) {
   for (typename vector<T>::const_iterator it = x.begin(); it != x.end(); ) {
      for (size_t i = 0; (i != 8) && (it != x.end()); ++i, ++it) {
         cout << *it << ' ';
      }
      cout << endl;
   }
}
Спасибо. А куда вставить символ переноса на новую строку, чтобы при достижении 8 элемента вектора, вывод переносился на новую строку, а то сейчас они по прежнему выводятся в одну строку.
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
31.07.2013, 19:13
Цитата Сообщение от Аццкий Прогер Посмотреть сообщение
куда вставить символ переноса на новую строку, чтобы при достижении 8 элемента вектора, вывод переносился на новую строку
да вроде всё переводится: http://ideone.com/FngntW
0
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
31.07.2013, 19:20  [ТС]
Цитата Сообщение от gray_fox Посмотреть сообщение
да вроде всё переводится:
вот что выводиться у меня. может это из-за того что у меня считывается строка а не целые числа. И скорее всего она считается одним элементом, а не восемью как хотелось бы.
Миниатюры
Задача по векторам №2  
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
31.07.2013, 19:32
Цитата Сообщение от Аццкий Прогер Посмотреть сообщение
может это из-за того что у меня считывается строка
да, вместо
C++
1
2
3
4
5
6
7
8
9
10
11
while (getline(cin, words))
{
    some_text.push_back(words);
    word = words;
}
 
 
for (string::size_type ix = 0; ix != word.size(); ++ix)
{
    word[ix] = toupper(word[ix]);
}
попробуй
C++
1
2
3
4
5
6
7
8
9
for (string some_word; cin >> some_word; ) {
   some_words.push_back(some_word);
}
 
for (size_t i = 0; i != some_words.size(); ++i) {
   for (size_t j = 0; j != some_words[i].size(); ++j) {
      some_words[i][j] = ::toupper(some_words[i][j]);
   }
}
Добавлено через 2 минуты
либо
C++
1
2
3
4
5
6
7
8
9
10
#include <iterator>
#include <algorithm>
 
// ...
 
vector<string> some_words((istream_iterator<string>(cin)), istream_iterator<string>());
 
for (size_t i = 0; i != some_words.size(); ++i) {
   transform(some_words[i].begin(), some_words[i].end(), some_words[i].begin(), ::toupper);
}
1
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
31.07.2013, 19:51  [ТС]
Цитата Сообщение от gray_fox Посмотреть сообщение
да, вместо

попробуй
C++
1
2
3
4
5
6
7
8
9
for (string some_word; cin >> some_word; ) {
   some_words.push_back(some_word);
}
 
for (size_t i = 0; i != some_words.size(); ++i) {
   for (size_t j = 0; j != some_words[i].size(); ++j) {
      some_words[i][j] = ::toupper(some_words[i][j]);
   }
}
Спасибо, это помогло.

Добавлено через 4 минуты
Цитата Сообщение от gray_fox Посмотреть сообщение
C++
1
some_words[i][j] = ::toupper(some_words[i][j]);
Скажите, а в этой строке, как работает "::"? Ведь там не указано пространство имен к которому оно принадлежит.
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
31.07.2013, 19:56
Цитата Сообщение от Аццкий Прогер Посмотреть сообщение
как работает "::"?
:: явно указывает глобальное пространсто имён. Можно без и этого...

Добавлено через 3 минуты
В принципе можно даже так писать
C++
1
::std::vector<::std::string> some_words;
)
1
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
31.07.2013, 21:21  [ТС]


ок, запомню )))
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
31.07.2013, 22:41
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
#include <cctype>
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
 
void up_case(std::string& s)
{
    std::transform(s.begin(), s.end(),
        s.begin(), ::toupper);
}
 
void print(std::vector<std::string>& v, int items_per_line)
{
    int n = 0;        
    for(std::size_t i = 0; i < v.size(); ++i)
    {        
        if(n == items_per_line)
        {
            n = 0;
            std::cout << '\n';
        }
                    
        std::cout << v[i] << ' ';
        ++n;
    }
 
    std::cout << '\n';
}
 
int main() 
{    
    std::vector<std::string> v;
    
    for(std::string s;
        std::cin >> s; )
    {
        v.push_back(s);
        up_case(v.back());
    }
    
    const int items_per_line = 8;    
    print(v, items_per_line);
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.07.2013, 22:41
Помогаю со студенческими работами здесь

Нарисовать по векторам в паскале
Заранее благодарен! Составьте для исполнителя «Чертежник» системы ABC Pascal с помощью смещения по векторам.

Разложение вектора по векторам
Собственно само условие задачи: На стороне BC треугольника ABC взята точка К так, что BK:KC=3:5. Разложить вектор AK по векторам a=AB...

Нахождение угла по векторам
Как найти угол зная вектор position и вектор указателя мыши с помощью libGDX?

Разложение вектора по векторам
Вторая задача: Вектор x перпендикулярен оси Оу и вектору p и образует тупой угол с осью Оz. Найти координаты вектора х, если вектор...

Направить объект по двум векторам
Привет всем! Столкнулся с такой проблемой, есть информация из файла о двух векторах направления объекта. сперва необходимо...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru