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

Инверсия предложения в С++

07.12.2018, 18:45. Показов 2436. Ответов 16

Author24 — интернет-сервис помощи студентам
Добрый вечер!
Помогите, пожалуйста, решил для себя выучить язык С++.
Выполняю следующее задание. (Не получается написать рабочий код):
Вводим предложение из n-слов (количество слов и символов в них не ограничено - МАССИВ ДИНАМИЧЕСКИЙ!). На выводе нужно получить то же предложение, но со случайным порядком слов
+
То же задание, но порядок слов в предложении обратный

......................
Пробовал выполнить, но получалось только изменить порядок символов внутри предложения (привет - тевирп)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2018, 18:45
Ответы с готовыми решениями:

Дано два предложения (Распечатать слова из первого предложения, который начинаются на первую букву последнего слова второго предложения)
Дано два предложения. Распечатать: - слова из первого предложения, который начинаются на первую букву последнего слова второго...

Разделить текст на предложения, предложения на слова. (через двумерный массив строк)
Задача заключается в том, что надо разделить текст на предложения, предложения на слова. Решил сделать это через двумерный массив...

Ввести предложения. Вывести слова предложения, чередуя уровне яркости символов
Ввести предложения. Вывести слова предложения, чередуя уровне яркости символов. Спасибо за Внимание !

16
 Аватар для Nishen
1355 / 854 / 365
Регистрация: 26.02.2015
Сообщений: 3,806
07.12.2018, 18:48
Цитата Сообщение от Puchlyak Посмотреть сообщение
Помогите, пожалуйста, решил для себя выучить язык С++.
Зачем?

Добавлено через 1 минуту
Цитата Сообщение от Puchlyak Посмотреть сообщение
решил для себя
Цитата Сообщение от Puchlyak Посмотреть сообщение
выучить язык С++
Цитата Сообщение от Puchlyak Посмотреть сообщение
МАССИВ ДИНАМИЧЕСКИЙ
Уверен, что ты решил выучить C++? И вообще, что это ты решил, а не твой преподаватель. Для чего использовать динамическую память, когда есть хорошие абстракции в виде <string> и <algorithm>?
0
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 7
07.12.2018, 18:56  [ТС]
Добавлено через 3 минуты
Ок, раскусил) Преподаватель захотел, чтобы я его выучил) Но я сам по себе парень не глупый, но с уклоном в инженерную сторону, с программированием проблемы есть

Преподаватель хочет именно через решение задачи именно динамический массив .
Но если есть любые другие предложения по решению - буду очень благодарен)
0
 Аватар для alkl
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
07.12.2018, 19:13
Цитата Сообщение от Puchlyak Посмотреть сообщение
Преподаватель хочет именно через динамический массив решить задачу.
Если Ваш преподаватель хочет, чтобы Вы вводили слова в уже созданный динамический массив, то стоит у него уточнить один моментик - как он хочет, чтобы ему это реализовали, учитывая, что дин. массив создаётся с фиксированным размером, который ещё неизвестен заранее перед вводом слов ?
Можно, конечно, постоянно, с каждым словом, пересоздавать его и копировать туда-сюда все данные, но Вы же понимаете, что это некомильфо ?
0
 Аватар для Nishen
1355 / 854 / 365
Регистрация: 26.02.2015
Сообщений: 3,806
07.12.2018, 19:16
Цитата Сообщение от Puchlyak Посмотреть сообщение
Вводим предложение из n-слов
Цитата Сообщение от Puchlyak Посмотреть сообщение
количество слов и символов в них не ограничено
Тогда придётся писать какую-то абстракцию на подобии <vector>.
0
 Аватар для alkl
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
07.12.2018, 19:17
Вообще, к слову, тот-же string основан на принципе динамического выделения памяти под строки. При манипуляциях с ним, память всегда перевыделяется, а данные копируются.
Так что, можете делать на string и смело преподу заявлять, что у Вас используется динамическое выделение памяти
0
 Аватар для Nishen
1355 / 854 / 365
Регистрация: 26.02.2015
Сообщений: 3,806
07.12.2018, 19:22
Цитата Сообщение от Puchlyak Посмотреть сообщение
МАССИВ ДИНАМИЧЕСКИЙ
А можно использовать список?
0
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 7
07.12.2018, 19:24  [ТС]
Nishen
Нет, список нельзя. только слова, записанные в строчку. Даже без запятых
0
 Аватар для Nishen
1355 / 854 / 365
Регистрация: 26.02.2015
Сообщений: 3,806
07.12.2018, 19:25
Цитата Сообщение от Puchlyak Посмотреть сообщение
список нельзя
Цитата Сообщение от Puchlyak Посмотреть сообщение
только слова, записанные в строчку.
Я спрашиваю, строки можно хранить не в массиве, а в списке.
0
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 7
07.12.2018, 19:28  [ТС]
Nishen
ваши вопросы довольно сложны для меня, не очень понимаю, о чем вы в принципе)
Говорю же, что я не программист)
Моя надежда только на Вас!=) Если кто-то поможет - буду просто боготворить=)
Вообще, буду ооооочень рад любому решению проблемы!
0
 Аватар для alkl
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
07.12.2018, 19:35
Puchlyak, если преподаватель от Вас требует определённого задания, то Вы должны будете по нему ответить на любой вопрос препода. Если мы напишем Вам кусок программы, Вы сможете это сделать ?
Да и вообще, сможете адекватно определить, то ли вообще Вам написали ?
0
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 7
07.12.2018, 19:42  [ТС]
alkl
Поверьте, этот преподаватель нам сам ничего объяснить не может, я очень сомневаюсь в его способностях)
А вообще, если у меня будет скрипт, я в нем детально разберусь, что и к чему)
По поводу проверки правильности - как минимум я могу вбить этот код и проверить на работоспособность))
0
 Аватар для alkl
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
07.12.2018, 19:51
Цитата Сообщение от Puchlyak Посмотреть сообщение
я очень сомневаюсь в его способностях)
Тогда напишите какую-нибудь билеберду, всё равно не разберётся

Цитата Сообщение от Puchlyak Посмотреть сообщение
По поводу проверки правильности - как минимум я могу вбить этот код и проверить на работоспособность))
Речь не о работоспособности. Вам напишут, будет она вполне работоспособна, но на каком-нибудь списке или векторе. Препод посмотрит и спросит "Что это ? Где тут дин. массив ?". Что будете отвечать ?

Добавлено через 3 минуты
PS: Вашу задачу чисто на дин. массиве (одном !) не реализовать. Прежде, чем выделить под него память, нужно знать его размер. А размер неизвестен, т.к. слова ещё никакие не вводили.
Получается, где то эти слова нужно хранить, чтобы потом в дин. массив засунуть. Но это уже будет противоречить Вашему заданию из первого поста.
0
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 7
07.12.2018, 19:51  [ТС]
Цитата Сообщение от alkl Посмотреть сообщение
Речь не о работоспособности. Вам напишут, будет она вполне работоспособна, но на каком-нибудь списке или векторе. Препод посмотрит и спросит "Что это ? Где тут дин. массив ?". Что будете отвечать ?
Использую Ваше экспертное мнение,указанное ниже, как аргумент) И объясню, по какой причине мое решение тоже уместно) Найду всю возможную информацию по всем тем командам в коде, что прописал
Цитата Сообщение от alkl Посмотреть сообщение
Если Ваш преподаватель хочет, чтобы Вы вводили слова в уже созданный динамический массив, то стоит у него уточнить один моментик - как он хочет, чтобы ему это реализовали, учитывая, что дин. массив создаётся с фиксированным размером, который ещё неизвестен заранее перед вводом слов ?
Можно, конечно, постоянно, с каждым словом, пересоздавать его и копировать туда-сюда все данные, но Вы же понимаете, что это некомильфо ?
0
 Аватар для alkl
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
07.12.2018, 21:36
Лучший ответ Сообщение было отмечено Puchlyak как решение

Решение

Перевёртыш слов. Используется список.
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
#include <iostream>
#include <windows.h>
#include <string>
#include <math.h>
#include <list>
 
using namespace std;
 
 
int main() {
    SetConsoleCP (1251);
    SetConsoleOutputCP (1251);
 
    list <string> words;
    
    int count=0;
    bool end;
    cout<<"Введите предложение (точка - конец предложения) :" << endl;
    string s;
    do{
        cin >> s;
        if(end = ((int)(s.find('.', 0))>=0)){       // Ищем точку в слове
            s = s.substr(0, s.find('.', 0));        // и обрезаем слово до неё.
        }
        words.push_front(s);
    }while(!end);
    
    copy(words.begin(), words.end(), ostream_iterator<string>(cout," "));   // Выводим список в cout
 
    cout << endl << endl << endl;
    system ("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 7
08.12.2018, 11:19  [ТС]
alkl, Огромное спасибо! Все работает, очень выручили!
Подскажите, пожалуйста, а чтобы сделать порядок слов в предложении на выходе СЛУЧАЙНЫМ, код нужно менять глобально или как?
0
 Аватар для alkl
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
08.12.2018, 12:02
Цитата Сообщение от Puchlyak Посмотреть сообщение
код нужно менять глобально или как?
Не особо. Нужно задействовать рандом и каким то образом, выдёргивая слова из списка, помечать их уже выведенными.
На ум пока приходит создание массива, в котором нужно хранить номера выведенных слов и с ними постоянно сравнивать рандомное значение. Кстати, можно заюзать динамический массив
Можно ещё ассоциированный массив прикрутить, но там вообще мозг закрутится в баранку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.12.2018, 12:02
Помогаю со студенческими работами здесь

Вывести слово с номером K заданного предложения, считая с конца предложения
Вывести слово с номером K заданного предложения, считая с конца предложения. Приблизительное решение есть.. Только вот не работает...

Напечатать все слова предложения, которые являются частью других слов предложения
Доброго времени суток! Суть вопроса в следующем: дан массив строк, в нём нужно найти слова, которые являются подсловами других слов....

Даны два предложения. Определить слова первого предложения, которые имеются во втором
///

Определить, имеется ли в заданном тексте слово первого предложения, которое входит в последующие предложения
НЕ работает Здача: Определить, есть ли слово первого предложения, которое входит в последующие предложения. Вывести это...

Удалить из предложения все числа, состоящие из одинаковых цифр; сформировать массив из чисел предложения
Дано предложение, состоящее из слов, разделенных запятой или пробелами, среди которых есть слова, составленные только из цифр, определяющие...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Агрегаты и сущности в DDD микросервисах
Javaican 10.04.2025
Разработка современных программных систем часто приводит на распутье: монолит или микросервисы? Даже при выборе микросервисной архитектуры многие команды сталкиваются с проблемой правильного. . .
Многопоточность в C#: Task и параллельное программирование
UnmanagedCoder 10.04.2025
Современные процессоры уже давно перестали наращивать тактовую частоту в пользу увеличения количества ядер. Это создало интересную ситуацию: разработчики, привыкшие к последовательному. . .
Линейное решение нелинейной задачи будет применено как метод обработки данных из double buffering. Формулы от LM конечно с ошибками.
Hrethgir 10.04.2025
В продолжение Эта LM дала ответ похожий на нормальный. В комментриях мой комментарий - похоже она ошиблась с выведением итоговой формулы, но остальные проверю. Assistant qwen2. 5-14b-instruct . . . .
Переменные в Python
py-thonny 10.04.2025
Переменная в программировании — это символическое имя, связанное с областью памяти, в которой хранится значение. Она позволяет получать доступ к данным через понятные человеку идентификаторы, а не. . .
Многопоточность в C#: Task и асинхронные операции
UnmanagedCoder 10.04.2025
Многопоточность позволяет выполнять несколько операций одновременно, что важно для решения двух основных задач: повышения скорости выполнения вычислительно-сложных операций и сохранения отзывчивости. . .
Линейное решение не линейной задачи (емкость вычислений в сравнении с традиционными решениями пока не определена).
Hrethgir 10.04.2025
В рамках предстоящих вычислений пришлось (да, я тоже знаю про корень числа, и про степеня, и прочие теоремы, но. . . ) найти способ нахождения отношения двух углов. . . .
Запуск контейнеров Docker на ARM64
Mr. Docker 09.04.2025
Появление таких решений, как Apple M1/ M2, AWS Graviton, Ampere Altra и Raspberry Pi, сделало использование ARM-систем обыденностью для многих разработчиков и DevOps-инженеров. При этом Docker,. . .
Vue SFC компонент на PHP с Fusion
Jason-Webb 09.04.2025
PHP на сервере и JavaScript на клиенте — классическое сочетание, которое, несмотря на свою эффективность, создает определенный когнитивный диссонанс при разработке. В этом контексте появляются. . .
TypeScript vs JavaScript: Отличия и когда что использовать
Reangularity 09.04.2025
JavaScript появился в 1995 году как творение Брендана Эйха и быстро стал основой интерактивности в вебе. За свою историю он прошел путь от простого языка для манипуляций с DOM до полноценной. . .
Подключение Kafka к Elasticsearch
Codd 09.04.2025
Apache Kafka и Elasticsearch — две мощные технологии, которые при совместном использовании создают эффективную платформу для обработки и анализа данных в реальном времени. Kafka, выступая в роли. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер