Содержание
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Цель лабораторной работы
Получить практические навыки разработки программ на языке C++ с использованием стандартного класса String.
Задание №1
Варианты заданий
➡ В программах не использовать find, erase, substr…
№ | Условие |
1 | Даны два слова (две переменные). Сколько раз во втором слове встречается первая буква первого слова. |
2 | Даны два текста (две переменные). Вычислить количество предложений в каждом из них. |
3 | Даны два слова по 8 символов (две переменные). Сколько раз во втором слове встречается последняя буква первого слова. |
4 | Дан текст. Определить, в каких позициях в нем встречается символ $;$. |
5 | Дан текст. Переставить в нем первую букву первого слова и первую букву последнего слова. (Сначала найти номер последнего пробела). |
6 | Дан текст. Определить, в каких позициях в нем начинается каждое новое предложение (сначала найти позиции точек). |
7 | Даны два слова (две переменные). Сколько раз во втором слове встречается третья буква первого слова. |
8 | Дан текст. Переставить в нем первую букву первого предложения и первую букву последнего предложения. (Сначала найти номер последней точки без учета точки в конце всего текста). |
9 | Даны два слова (две переменные). Сколько раз в первом слове встречается третья буква второго слова. |
10 | Дан текст. Переставить в нем первую букву первого предложения и первую букву второго предложения. (Сначала найти номер первой точки). |
11 | Дан текст. Сколько раз в нем встречается символ $=$. |
12 | Дан текст. Определить, в каких позициях в нем начинается каждое новое слово (сначала найти позиции пробелов). |
13 | Даны два текста (две переменные). В каком из них больше слов? При условии, что слова разделяются только одним пробелом. Сначала найти количество пробелов в каждом тексте. |
14 | Дан текст. Переставить в нем первую букву первого слова и первую букву второго слова. (Сначала найти номер первого пробела). |
15 | Даны два слова (две переменные). Сколько раз в первом слове встречается последняя буква второго слова. |
16 | Дан текст. Сколько раз в нем встречается символ $@$. |
17 | Дан текст. Вывести на экран номера позиций в которых встречается символ $@$. |
Образец выполнения (вариант №16)
Условие задачи
Дан текст. Сколько раз в нем встречается символ $@$.
Реализация задачи на языке С++
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 | #include <iostream> // для консольного ввода-вывода #include <string> // для переменных типа данных string #include <Windows.h> // для кодировок using namespace std; // главная функция программы (точка входа) int main(void) { // русификация всех диалогов программы setlocale(LC_ALL, ""); // отвечает за входную строку, введенную с клавиатуры string s; // предлагаем пользователю ввести строку и считываем ее полностью (игнорируя пробелы и другие разделители) cout << "Введите строку для обработки: "; SetConsoleCP(1251); // чтобы была возможность запомнить кириллицу getline(cin, s); SetConsoleCP(866); // хранит количество вхождений символа @ int k = 0; // опишем константу, отвечающую за символ '@' const char DOG = '@'; // просматриваем каждый символ входной строки s for(int i = 0; i < s.size(); i++) if(s[i] == DOG) // если текущий символ является "собакой", то k++; // увеличиваем количество вхождений искомого символа на +1 // выводим на экран количество вхождений во входной строке символа '@' cout << "Во входной строке символ \'" << DOG << "\' встречается: " << k << " раз." << endl; // задержка работы программы, чтобы у пользователя была возможность просмотреть результат cout << endl << "Для завершения работы программы нажмите ENTER..."; cin.get(); // завершение выполнение программы и передача управления в ОС (код 0 - все прошло успешно!) return 0; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Задание №2
Варианты заданий
➡ В программах не использовать find, erase, substr…
№ | Условие |
1 | Даны $3$ слова — ваши Имя, Отчество, Фамилия в $3$-х разных переменных. Образовать новую символьную переменную, хранящую только ваши инициалы (через точку и пробел). (использовать склейку $+$). |
2 | Даны $3$ слова в $3$-х разных переменных. Образовать новую последовательность символов, состоящую из последних букв каждого слово (слитно без пробелов). (использовать склейку $+$). |
3 | Даны $3$ слова в $3$-х разных переменных. Образовать новую последовательность символов, состоящую из первых букв каждого слова (слитно без пробелов). (использовать склейку $+$). |
4 | Даны $3$ слова — ваши Имя, Отчество, Фамилия в $3$-х разных переменных. Образовать новую символьную переменную, хранящую полностью «имя отчество фамилия». (использовать склейку $+$). |
5 | Даны $2$ слова. Образовать новую символьную переменную, в которой должны чередоваться буквы первого и второго слова. (использовать склейку $+$). |
6 | Вводится $3$ строки — фамилия, имя и отчество учащегося. Образовать новую последовательность, оставить только фамилию и инициалы через пробел и точку. |
7 | Даны $4$ слова в $4$-х разных переменных. Образовать новую последовательность символов, состоящую из вторых букв каждого слова (слитно). (использовать склейку $+$). |
8 | Даны $3$ слова в $3$-х разных переменных. Образовать новую последовательность символов, состоящую из первых букв каждого слова через пробел. (использовать склейку $+$). |
9 | Даны $3$ слова в $3$-х разных переменных. Образовать новую последовательность символов, состоящую из последних букв каждого слова (через пробел). (использовать склейку $+$). |
10 | Даны $3$ слова в $3$-х разных переменных. Образовать новую последовательность символов, состоящую из первых букв каждого слова (через пробел). (использовать склейку $+$). |
11 | Даны $3$ слова в $3$-х разных переменных. Образовать новую символьную переменную, хранящую все три слова через пробел (использовать склейку $+$). |
12 | Даны $3$ слова в $3$-х разных переменных. Образовать новую символьную переменную, хранящую все три слова через запятую (использовать склейку $+$). |
13 | Даны $3$ слова в $3$-х разных переменных. Образовать новую символьную переменную, хранящую все три слова через запятую и пробел (использовать склейку $+$). |
14 | Даны $3$ слова — ваши Имя, Отчество, Фамилия в $3$-х разных переменных. Образовать новую символьную переменную, хранящую только ваши инициалы (через точку и пробел). (использовать склейку $+$). |
Образец выполнения (вариант №3)
Условие задачи
Даны $3$ слова в $3$-х разных переменных. Образовать новую последовательность символов, состоящую из первых букв каждого слова (слитно без пробелов). (использовать склейку $+$).
Реализация задачи на языке С++
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 | #include <iostream> // для консольного ввода-вывода #include <string> // для переменных типа данных string using namespace std; // главная функция программы (точка входа) int main(void) { // русификация всех диалогов программы setlocale(LC_ALL, ""); // хранят 3 слова, введенных с клавиатуры string word_1, word_2, word_3; // предлагаем пользователю ввести с клавиатуры последовательно 3 слова cout << "Введите слово №1: "; cin >> word_1; cout << "Введите слово №2: "; cin >> word_2; cout << "Введите слово №3: "; cin >> word_3; // результирущая последовательность, состоящая из первых букв каждого слова (слитно) string word_result; word_result = word_result + word_1[0]; word_result = word_result + word_2[0]; word_result = word_result + word_3[0]; // выводим результат на экран cout << endl << "Последовательность, состоящая из первых букв каждого входного слова: " << word_result; // задержка работы программы, чтобы у пользователя была возможность просмотреть результат fflush(stdin); cout << endl << endl << "Для завершения работы программы нажмите ENTER..."; cin.get(); // завершение выполнение программы и передача управления в ОС (код 0 - все прошло успешно!) return 0; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Задание №3
Варианты заданий
➡ При обработке строк использовать склейку $+$
➡ В программах не использовать find, erase, substr…
№ | Условие |
1 | Имеется некоторая последовательность символов. Образовать новую последовательность, включив в нее символы исходной, кроме символов $<g>$ и $<v>$. |
2 | Имеется некоторая последовательность символов. Образовать новую последовательность, включив в нее символы исходной, кроме символов пробелов, точек и запятых. |
3 | Имеется некоторая последовательность символов. Образовать новую последовательность, включив в нее символы исходной, кроме символов пробелов. |
4 | Образовать последовательность символов, включив в нее символы данной последовательности, расположенные на четных позициях (не использовать if). |
5 | Дан текст. Переписать в другую переменную только буквы латинского алфавита и пробелы. |
6 | Дан текст. Переписать в другую переменную только цифры и символы арифметических операций. |
7 | Дан текст. Переписать в другую переменную только цифры. |
8 | Образовать последовательность символов, включив в нее символы данной последовательности, расположенные на нечетных позициях. |
9 | Имеется некоторая последовательность символов. Образовать новую последовательность, удвоив каждый символ $=$ и пропустив пробелы. |
10 | Имеется некоторая последовательность символов. Образовать новую последовательность, пропустив пробелы. |
11 | Дан текст. Переписать в другую переменную все символы за исключением цифр и символов арифметических операций. |
12 | Дан текст. Переписать в другую переменную только все символы за исключением цифр. |
13 | Имеется некоторая последовательность символов. Образовать новую последовательность, включив в нее символы исходной, кроме точек. |
14 | Имеется некоторая последовательность символов. Образовать новую последовательность, включив в нее символы исходной, кроме запятых. |
Образец выполнения (вариант №7)
Условие задачи
Дан текст. Переписать в другую переменную только цифры.
Реализация задачи на языке С++
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 | #include <iostream> // для консольного ввода-вывода #include <string> // для переменных типа данных string using namespace std; // главная функция программы (точка входа) int main(void) { // русификация всех диалогов программы setlocale(LC_ALL, ""); // хранит текст, введенный с клавиатуры string text; // предлагаем пользователю ввести с клавиатуры текст cout << "Введите входной текст для обработки: "; getline(cin, text); // результирующая строка, состоящая только из арабских цифр от 0 до 9 string digit_text; for( int i = 0; i < text.size(); i++ ) if( ( text[ i ] >= '0' ) && ( text[ i ] <= '9' ) ) digit_text = digit_text + text[ i ]; // выводим результат на экран cout << endl << "Последовательность, состоящая только из цифр входного текста: " << digit_text; // задержка работы программы, чтобы у пользователя была возможность просмотреть результат fflush(stdin); cout << endl << endl << "Для завершения работы программы нажмите ENTER..."; cin.get(); // завершение выполнение программы и передача управления в ОС (код 0 - все прошло успешно!) return 0; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Задание №4
Варианты заданий
➡ В программах не использовать find
№ | Условие |
1 | Имеется некоторый текст. Образовать из него новый, в который включить информацию, заключенную между пробелом и запятой. |
2 | Вводится строка — фамилия, имя и отчество учащегося. Вывести на экран преобразованную строку: оставить только фамилию и инициалы. |
3 | Имеется некоторая последовательность символов. Образовать новую последовательность, включив в нее символы исходной в обратном порядке. |
4 | Задан текст из символов латинского алфавита, содержащий букву $<a>$. Напечатать все символы, расположенные за первой буквой $<a>$ до ее второго вхождения или до конца текста. |
5 | В предложении, вводимом с клавиатуры в одну переменную, поменять местами первое и последнее слово. |
6 | С клавиатуры вводится число. Определить, является ли оно «перевертышем», т.е. читается одинаково слева направо и справа налево (сначала записать его в обратном порядке). |
7 | Имеется некоторый текст. Образовать из него новый, в который включить информацию, заключенную между единственным пробелом и первой точкой. |
8 | Задан текст, содержащий пару квадратных скобок. Создать новый текст, включив в него текст заключенный в квадратные скобки. |
9 | Вводится строка — фамилия, имя и отчество учащегося. Вывести на экран преобразованную строку: оставить только фамилию и имя. |
10 | Даны $2$ слова в $2$-х разных переменных одинаковой длины. Образовать новую последовательность в которой должны чередоваться буквы первого, второго слова, в обратном порядке. |
11 | Задан текст, содержащий символ $=$. Напечатать все символы, расположенные за первым вхождением $=$ до его второго вхождения или до конца текста. |
12 | В предложении, вводимом с клавиатуры в одну переменную, поменять местами первое и последнее слова (использование функции substr()). |
13 | Задан текст, содержащий пару фигурных скобок. Создать новый текст, включив в него текст заключенный в фигурные скобки. |
14 | Задан текст, содержащий скобки. Поменять местами первое и последнее слово заключенное в скобки (использование функции substr()). |
Образец выполнения (вариант №8)
Условие задачи
Задан текст, содержащий пару квадратных скобок. Создать новый текст, включив в него текст заключенный в квадратные скобки.
Реализация задачи на языке С++
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 | #include <iostream> // для консольного ввода-вывода #include <string> // для переменных типа данных string using namespace std; // главная функция программы (точка входа) int main(void) { // русификация всех диалогов программы setlocale(LC_ALL, ""); // хранит текст, введенный с клавиатуры string input_text; // предлагаем пользователю ввести с клавиатуры текст cout << "Введите входной текст для обработки: "; getline(cin, input_text); // результирующий текст, в который попали символы, заключенные в квадратные скобки string output_text; // константы, определяющие квадратные скобки const char LEFT_SQUARE_BRACKET = '['; const char RIGHT_SQUARE_BRACKET = ']'; // так как в исходном тексте однозначно есть скобки, то найдем открывающуюся квадратную скобку int i = 0; while( input_text[ i ] != LEFT_SQUARE_BRACKET ) i++; i++; // пропускаем открывающуюся квадратную скобку // переносим текст до закрывающейся квадратной скобки в результирующую строку while( input_text[ i ] != RIGHT_SQUARE_BRACKET ) { output_text = output_text + input_text[ i ]; i++; } // выводим результат на экран cout << "Текст, заключенный в квадратные скобки: " << output_text; // задержка работы программы, чтобы у пользователя была возможность просмотреть результат fflush(stdin); cout << endl << endl << "Для завершения работы программы нажмите ENTER..."; cin.get(); // завершение выполнение программы и передача управления в ОС (код 0 - все прошло успешно!) return 0; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Добавить комментарий