В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История

Кто нибудь шарит в C++? 1. 1.Составить алгоритм, вычеркивающий из данного слова все буквы “ а”. (так, чтобы, например, из слова “заноза” получилось слово “зноз”).

2. Дано предложение. Найти длину его самого короткого слова

Показать ответ
Ответ:
tematal
tematal
16.01.2024 14:03
Привет! Конечно, я помогу тебе разобраться с этим заданием на языке C++. Давай начнем с первого вопроса.

1. Чтобы составить алгоритм, вычеркивающий из слова все буквы "а", нам понадобятся следующие шаги:

- Сначала мы должны объявить строку, в которой будет храниться исходное слово.
- Затем мы попросим пользователя ввести это слово с помощью функции `cin`.
- Далее, мы создадим новую строку, в которой будет храниться измененное слово (без букв "а").
- Нам нужно перебрать все символы в исходном слове один за другим.
- Если символ не является буквой "а", мы добавим его в новую строку.
- В конце, мы выведем новую строку на экран с помощью функции `cout`.

Вот код, который решает эту задачу:

```cpp
#include
#include

using namespace std;

int main() {
string word;
cout << "Введите слово: ";
cin >> word;

string updatedWord;
for (int i = 0; i < word.length(); i++) {
if (word[i] != 'а' && word[i] != 'А') {
updatedWord += word[i];
}
}

cout << "Измененное слово: " << updatedWord << endl;

return 0;
}
```

Давай разберем каждую строчку кода:

- `#include ` - подключаем библиотеку для работы с вводом и выводом.
- `#include ` - подключаем библиотеку для работы со строками.
- `using namespace std;` - задаем пространство имен для упрощения использования стандартных функций.
- `int main() {` - начало функции `main`, точки входа в программу.
- `string word;` - объявляем переменную `word`, в которой будет храниться исходное слово.
- `cout << "Введите слово: ";` - выводим на экран приглашение для пользователя.
- `cin >> word;` - считываем слово, которое ввел пользователь.
- `string updatedWord;` - объявляем переменную `updatedWord`, в которой будет храниться измененное слово.
- `for (int i = 0; i < word.length(); i++) {` - начало цикла, который перебирает все символы в исходном слове.
- `if (word[i] != 'а' && word[i] != 'А') {` - проверяем, не является ли текущий символ буквой "а" (как в нижнем, так и в верхнем регистре).
- `updatedWord += word[i];` - добавляем текущий символ в новую строку.
- `cout << "Измененное слово: " << updatedWord << endl;` - выводим на экран измененное слово.
- `return 0;` - выход из функции `main` и завершение программы.

Когда ты запустить эту программу, она попросит тебя ввести слово, а затем выведет измененное слово без букв "а".

2. Теперь перейдем ко второму вопросу, где нам нужно найти длину самого короткого слова в предложении. Вот шаги, которые мы должны выполнить:

- Сначала мы должны объявить строку, в которой будет храниться предложение.
- Затем мы попросим пользователя ввести это предложение с помощью функции `getline`.
- Мы будем искать слова в предложении, поэтому нам понадобится переменная, которая будет хранить длину самого короткого слова (пусть изначально она будет равна максимально возможной длине слова).
- Нам нужно разделить предложение на отдельные слова.
- Перебираем все слова в предложении и для каждого слова проверяем, является ли его длина меньше текущей длины самого короткого слова.
- Если да, то обновляем значение переменной, которая хранит длину самого короткого слова.
- В конце, мы выводим длину самого короткого слова на экран с помощью функции `cout`.

Вот код, который решает эту задачу:

```cpp
#include
#include

using namespace std;

int main() {
string sentence;
cout << "Введите предложение: ";
getline(cin, sentence);

int shortestLength = sentence.length(); // изначально самое короткое слово будет иметь максимально возможную длину
int start = 0;
int end = 0;

while (end < sentence.length()) {
if (sentence[end] == ' ' || end == sentence.length() - 1) {
int wordLength = end - start;
if (sentence[end] != ' ' && end == sentence.length() - 1) {
wordLength++;
}
if (wordLength < shortestLength) {
shortestLength = wordLength;
}
start = end + 1;
}
end++;
}

cout << "Длина самого короткого слова: " << shortestLength << endl;

return 0;
}
```

Давай разберем каждую строчку кода:

- `#include ` и `#include ` - подключаем библиотеки для работы с вводом-выводом и строками соответственно.
- `using namespace std;` - задаем пространство имен для упрощения использования стандартных функций.
- `int main() {` - начало функции `main`.
- `string sentence;` - объявляем переменную `sentence`, в которой будет храниться предложение.
- `cout << "Введите предложение: ";` - выводим на экран приглашение для пользователя.
- `getline(cin, sentence);` - считываем предложение, которое ввел пользователь.
- `int shortestLength = sentence.length();` - объявляем переменную `shortestLength` и присваиваем ей максимально возможную длину слова в предложении.
- `int start = 0;` и `int end = 0;` - объявляем переменные `start` и `end`, которые будут хранить индексы начала и конца каждого слова в предложении.
- `while (end < sentence.length()) {` - начало цикла, который будет перебирать все символы в предложении.
- `if (sentence[end] == ' ' || end == sentence.length() - 1) {` - проверяем, является ли текущий символ пробелом (то есть, символом, разделяющим слова) или является последним символом предложения.
- `int wordLength = end - start;` - вычисляем длину текущего слова.
- `if (sentence[end] != ' ' && end == sentence.length() - 1) {` - если текущий символ не является пробелом и он равен последнему символу предложения, мы увеличиваем длину текущего слова на 1 (это нужно для последнего слова, которое не заканчивается пробелом или знаком пунктуации).
- `if (wordLength < shortestLength) {` - проверяем, является ли длина текущего слова меньше текущей самой короткой длины слова.
- `shortestLength = wordLength;` - обновляем значение переменной, которая хранит длину самого короткого слова.
- `start = end + 1;` - обновляем значение переменной `start`, чтобы следующее слово начиналось после текущего.
- `end++;` - переходим к следующему символу в предложении.
- `cout << "Длина самого короткого слова: " << shortestLength << endl;` - выводим на экран длину самого короткого слова.
- `return 0;` - выход из функции `main` и завершение программы.

Когда ты запустишь эту программу, она попросит тебя ввести предложение, а затем выведет длину самого короткого слова в этом предложении.

Надеюсь, это поможет тебе с задачей! Если у тебя возникнут вопросы, не стесняйся задавать их. Удачи!
0,0(0 оценок)
Популярные вопросы: Другие предметы
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота