Содержание
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Цель лабораторной работы
Разработка программ на языке С++ с использованием массива строк.
Задание №1
Варианты заданий
№ | Условие |
1 | Задан список из десяти слов (массив [.] string). Подсчитать количество названий, которые оканчиваются буквой $<В>$. |
2 | Задан список из десяти городов (массив [.] string). Найти порядковые номера городов, в названии которых вторая буква $<о>$. |
3 | Задан список из десяти городов (массив [.] string). Поменять местами название последнего города таблицы и последнего города, начинающегося с буквы $<к>$. |
4 | Задан список из десяти городов (массив [.] string). Найти количество городов, название которых заканчивается сочетанием букв «град» или “grad”. |
5 | Задан список из десяти городов (массив [.] string). Найти порядковые номера городов, начинающихся с буквы $<Н>$. |
6 | Задан список из десяти городов (массив [.] string). Подсчитать количество названий, которые начинаются на букву $<А>$. |
7 | Задан список из десяти городов (массив [.] string). Найти порядковые номера городов, которые оканчиваются буквой $<к>$. |
8 | Задан список из десяти городов (массив [.] string). Поменять местами названия любых двух городов, заканчивающихся буквой $<а>$. |
9 | Задан список из десяти городов (массив [.] string). Поменять местами названия любых двух городов, начинающихся с буквы $<а>$. |
10 | Задан список из десяти городов (массив [.] string). Поменять местами название первого города таблицы и последнего города, начинающегося с буквы $<К>$. |
11 | Задан список из десяти городов (массив [.] string). Подсчитать количество названий, городов, которое содержит более $4$—х букв. |
12 | Задан список из десяти городов (массив [.] string). Найти порядковые номера городов, в названии которых по $7$ букв. |
13 | Задан список из десяти городов (массив [.] string). Присвоить переменной st название последнего из городов, которое содержит более $4$—х букв. |
14 | Задан список из десяти городов (массив [.] string) Поменять местами названия первого города и любого другого, которое содержит более семи букв. |
15 | Задан список из десяти городов (массив [.] string). Найти все порядковые номера городов, название которых заканчивается сочетанием букв «бург» или “burg”. |
16 | Задан список из десяти городов (массив [.] string). Поменять местами названия двух городов, названия которых оканчиваются сочетанием букв «ск» или «sk». |
Образец выполнения (вариант №12)
Условие задачи
Задан список из десяти городов (массив [.] string). Найти порядковые номера городов, в названии которых по $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 37 38 39 40 41 42 43 | #include <iostream> // для консольного ввода-вывода #include <string> // для переменных типа данных string #include <algorithm> // для сортировки символов в рамках строки sort using namespace std; // главная функция программы (точка входа) int main ( void ) { // русификация всех диалогов программы setlocale( LC_ALL, "" ); // отвечает за количество анализируемых городов const size_t TOWNS_COUNT = 10; // хранит названия 10 городов string towns[ TOWNS_COUNT ]; // запрашиваем от пользователя ввод названий 10 городов (допустимы сложные названия городов, например "Нижний Тагил") cout << "Вам предстоит ввести названия " << TOWNS_COUNT << " городов." << endl; for( int i = 0; i < TOWNS_COUNT; i++ ) { cout << "\t - введите город №" << ( i + 1 ) << ": "; getline( cin, towns[ i ] ); } // определяем искомую длину городов const size_t LEN_TOWN = 7; // анализируем названия городов и выводим на экран порядковые номера (счет от 1) тех городов, чья длина ровно 7 букв cout << endl << "Порядковые номера тех городов, в названии которых ровно " << LEN_TOWN << " букв: "; for( int i = 0; i < TOWNS_COUNT; i++ ) if( towns[ i ].length() == LEN_TOWN ) // если в названии города ровно 7 букв, то выводим его порядковый номер на экран cout << "\t" << ( i + 1 ); // задержка работы программы, чтобы у пользователя была возможность просмотреть результат fflush( stdin ); cout << endl << endl << "Для завершения работы программы нажмите ENTER..."; cin.get(); // завершение выполнение программы и передача управления в ОС (код 0 - все прошло успешно!) return 0; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Задание №2
Варианты заданий
№ | Условие |
1 | Задан список из $5$ имен девочек (массив [.] string). Присвоить переменной $d$ имя с наименьшим числом букв. |
2 | Задан список из десяти городов (массив [.] string). Найти порядковый номер города, в названии которого минимальное число букв. |
3 | Задан список из десяти городов (массив [.] string). Присвоить переменной $g$ название города с максимальным числом букв. |
4 | Задан список из десяти городов (массив [.] string). Поменять местами названия самого длинного и самого короткого слова. |
5 | Задан список из $10$ имен (массив [.] string). Найти количество букв в самом длинном имени. |
6 | Задан список из $20$ названий горных вершин (массив [.] string). Присвоить переменной st самое короткое название. |
7 | Задан список из десяти городов (массив [.] string). Найти порядковый номер города, в названии которого максимальное число букв. |
8 | Задан список из $20$ названий горных вершин (массив [.] string). Поменять местами названия самого длинного и самого короткого слова. |
9 | Задан список из $10$ имен (массив [.] string). Найти порядковый номер имени, в названии которого максимальное число букв. |
10 | Задан список из $20$ названий горных вершин (массив [.] string). Найти порядковый номер вершины, в названии которой максимальное число букв. |
11 | Задан список из $20$ фамилий (массив [.] string). Присвоить переменной st самую длинную фамилию. |
12 | Задан список из $20$ фамилий (массив [.] string). Найти порядковый номер фамилии, в которой минимальное число букв. |
13 | Задан список из $20$ фамилий (массив [.] string). Найти количество букв в самой длиной фамилии. |
14 | Задан список из $20$ фамилий (массив [.] string). Поменять местами названия самого длинного и самого короткого слова. |
15 | Задан список из $20$ названий горных вершин (массив [.] string). Найти количество букв в самом коротком названии. |
Образец выполнения (вариант №1)
Условие задачи
Задан список из $5$ имен девочек (массив [.] string). Присвоить переменной $d$ имя с наименьшим числом букв.
Реализация задачи на языке С++
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 | #include <iostream> // для консольного ввода-вывода #include <string> // для переменных типа данных string #include <Windows.h> // для вывода строк (кирилица) using namespace std; // главная функция программы (точка входа) int main ( void ) { // русификация всех диалогов программы setlocale( LC_ALL, "" ); // отвечает за количество анализируемых девочек const size_t GIRLS_COUNT = 5; // хранит имена 5 девочек string girls[ GIRLS_COUNT ]; // запрашиваем от пользователя ввод имен 5 девочек cout << "Вам предстоит ввести имена " << GIRLS_COUNT << " девочек." << endl; for( int i = 0; i < GIRLS_COUNT; i++ ) { cout << "\t - введите имя девочки №" << ( i + 1 ) << ": "; getline( cin, girls[ i ] ); } // хранит имя девочки с наименьшим числом букв (по умолчанию берем имя самой первой девочки в коллекции) string d = girls[ 0 ]; // перебираем имена девочек и находим самое короткое имя for( int i = 1; i < GIRLS_COUNT; i++ ) // если имя текущей девочки меньше минимального по длине имени из проверенных, то if( girls[ i ].length() < d.length() ) d = girls[ i ]; // запоминаем имя текущей девочки // выводим на экран имя с наименьшим числом букв cout << endl << "Имя девочки с наименьшим числом букв: "; SetConsoleCP( 1251 ); cout << d; SetConsoleCP( 866 ); // задержка работы программы, чтобы у пользователя была возможность просмотреть результат fflush( stdin ); cout << endl << endl << "Для завершения работы программы нажмите ENTER..."; cin.get(); // завершение выполнение программы и передача управления в ОС (код 0 - все прошло успешно!) return 0; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Задание №3
Варианты заданий
№ | Условие |
1 | Задан список из десяти городов (массив [.] string). Подсчитать количество названий, в которых есть буква $<D>$ (не использовать find). |
2 | Задан список из десяти городов (массив [.] string). Подсчитать количество названий, в которых есть по две буквы $<a>$. |
3 | Задан список из десяти городов (массив [.] string) . Найти номера городов, в названии которых есть по две буквы $<c>$. |
4 | Задан список из десяти городов (массив [.] string). Найти название города с максимальным количеством букв $<g>$. |
5 | Задан список из десяти городов (массив [.] string). Подсчитать количество названий, в которых есть ровно по $3$ буквы $<o>$. |
6 | Задан список из десяти городов (массив [.] string). Подсчитать количество названий, в которых нет буквы $<p>$ (не использовать find). |
7 | Задан список из $10$ имен девочек (массив [.] string). Подсчитать количество имен, в которых есть хотя бы $1$ буква $<p>$ (не использовать find). |
8 | Задан список из $10$ имен девочек (массив [.] string). Подсчитать количество имен, в которых есть ровно $1$ буква $<a>$. |
9 | Задан список из $10$ имен девочек (массив [.] string). Найти номера имен в названии которых, есть по две буквы $<a>$. |
10 | Задан список из $10$ имен девочек (массив [.] string). Найти имя с максимальным количеством букв $<a>$. |
11 | Задан список из десяти городов (массив [.] string). Найти номер последнего города в списке, в названии которого есть хотя бы одна буква $<t>$ (не использовать find). |
12 | Задан список из $10$ имен девочек (массив [.] string). Найти номера имен, в названии которых есть не менее двух букв $<H>$. |
13 | Задан список из десяти городов (массив [.] string) . Найти номера городов, в названии которых есть не менее $3$—х букв $<o>$. |
14 | Задан список из десяти городов (массив [.] string). Найти номер последнего города в списке, в названии которого есть более одной буквы $<н>$ (не использовать find). |
15 | Задан список из $20$ названий горных вершин (массив [.] string). Найти название с максимальным количеством букв $<k>$. |
Образец выполнения (вариант №4)
Условие задачи
Задан список из десяти городов (массив [.] string). Найти название города с максимальным количеством букв $<g>$.
Реализация задачи на языке С++
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | #include <iostream> // для консольного ввода-вывода #include <string> // для переменных типа данных string using namespace std; // главная функция программы (точка входа) int main ( void ) { // русификация всех диалогов программы setlocale( LC_ALL, "" ); // отвечает за количество анализируемых городов const size_t TOWNS_COUNT = 10; // хранит названия 10 городов string towns[ TOWNS_COUNT ]; // запрашиваем от пользователя ввод названий 10 городов (допустимы сложные названия городов, например "Нижний Тагил") cout << "Вам предстоит ввести названия " << TOWNS_COUNT << " городов на латинице." << endl; for( int i = 0; i < TOWNS_COUNT; i++ ) { cout << "\t - введите город №" << ( i + 1 ) << ": "; getline( cin, towns[ i ] ); } const char G = 'g'; // для поиска в названии городов буквы 'g' int index = 0; // индекс города, в названии которого встречается максимальное количество букв 'g' int current_g_count; // количество букв 'g' в текущем городе int max_g_count = 0; // максимальное количество букв 'g' // перебираем названия всех городов for ( int i = 0; i < TOWNS_COUNT; i++ ) { // считаем количество букв 'g' в названии текущего города current_g_count = 0; for ( int j = 0; j < towns[ i ].size(); j++ ) if ( towns[ i ] [ j ] == G ) // если текущая буква - это буква 'g' current_g_count++; // если количество букв 'g' в названии текущего города больше, чем максимальное количество букв 'g', то if ( current_g_count > max_g_count ) { // запоминаем текущее количество букв 'g' в качестве максимального max_g_count = current_g_count; // запоминаем номер текущего города index = i; } } // выводим название города с максимальным количеством букв 'g' if ( max_g_count == 0 ) cout << endl << "Ни одно название города не содержит буквы \'" << G << "\'!"; else cout << endl << "Название города, с максимальным количеством букв \'" << G << "\': " << towns[ index ] << endl; // задержка работы программы, чтобы у пользователя была возможность просмотреть результат fflush( stdin ); cout << endl << endl << "Для завершения работы программы нажмите ENTER..."; cin.get(); // завершение выполнение программы и передача управления в ОС (код 0 - все прошло успешно!) return 0; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Задание №4
Варианты заданий
№ | Условие |
1 | Дан список фамилий сотрудников (массив [.] string). Переписать в другой список только фамилии, чья длина больше 7 букв. Затем упорядочить по алфавиту второй список. |
2 | Дан список фамилий сотрудников (массив [.] string). Переписать в другой список только те фамилии, которые заканчиваются на $<a>$. Затем упорядочить по алфавиту второй список. |
3 | Дан список фамилий сотрудников (массив [.] string). Переписать в другой список только те фамилии, которые заканчиваются на $<в>$. Затем упорядочить по алфавиту второй список методом «пузырька». |
4 | Дан список фамилий сотрудников. Переписать в другой список только те фамилии, в которых вторая буква $<л>$. Затем упорядочить по алфавиту второй список методом «пузырька». |
5 | Дан список из $10$ городов (массив [.] string). Переписать в другой список только те города, в которых третья буква $<к>$. Затем упорядочить по алфавиту второй список методом «пузырька». |
6 | Дан список из $10$ городов (массив [.] string). Переписать в другой список только те города, которые заканчиваются на $<в>$. Затем упорядочить по алфавиту второй список. |
7 | Дан список из $10$ городов. Переписать в другой список только те города, чье название длиннее $7$ букв. Затем упорядочить по алфавиту второй список. |
8 | Задан список из $20$ названий горных вершин (массив [.] string). Переписать в другой список только те вершины, чье название длиннее $7$ букв. Затем упорядочить по алфавиту второй список. |
9 | Задан список из $20$ названий горных вершин (массив [.] string). Переписать в другой список только те вершины, название которых оканчивается на «тау» или “tau” . Затем упорядочить по алфавиту второй список. |
10 | Задан список из $20$ названий горных вершин (массив [.] string). Переписать в другой список только те вершины, название которых оканчивается на «рок» или ‘rok’. Затем упорядочить по алфавиту второй список. |
11 | Задан список из $20$ названий горных вершин (массив [.] string). Переписать в другой список только те вершины, название которых вторая буква $<М>$. Затем упорядочить по алфавиту второй список. |
12 | Задан список из $10$ имен девочек (массив [.] string). Переписать в другой список только те имена, в которых есть ровно $1$ буква $<Р>$. Затем упорядочить по алфавиту второй список. |
13 | Задан список из $10$ имен девочек (массив [.] string). Переписать в другой список только те имена, в которых нет буквы $<Р>$. Затем упорядочить по алфавиту второй список. |
14 | Дан список фамилий сотрудников (массив [.] string). Переписать в другой список только те фамилии, которые заканчиваются на ‘ова’ или ‘ova’. Затем упорядочить по алфавиту второй список. |
Образец выполнения (вариант №7)
Условие задачи
Дан список из $10$ городов. Переписать в другой список только те города, чье название длиннее $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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #include <iostream> // для консольного ввода-вывода #include <string> // для переменных типа данных string #include <algorithm> // для сортировки строк (sort) #include <vector> // динамически-расширяемая коллекция using namespace std; // главная функция программы (точка входа) int main ( void ) { // отвечает за количество анализируемых городов const size_t TOWNS_COUNT = 10; // хранит названия 10 городов string towns[ TOWNS_COUNT ]; // запрашиваем от пользователя ввод названий 10 городов (допустимы сложные названия городов, например "Нижний Тагил") cout << "Вам предстоит ввести названия " << TOWNS_COUNT << " городов на латинице." << endl; for( int i = 0; i < TOWNS_COUNT; i++ ) { cout << "\t - введите город №" << ( i + 1 ) << ": "; getline( cin, towns[ i ] ); } // нас интересуют города, чьи названия длиннее 7 букв const int LENGHT = 7; // коллекция городов, чьи названия длиннее 7 букв (изначально коллекция городов пуста) vector < string > output_town; // перебираем все исходные названия городов for ( int i = 0; i < TOWNS_COUNT; i++ ) // если длина названия текущего города длиннее 7 букв, то if ( towns[ i ].size() > LENGHT ) // добавляем его в выходную коллекцию output_town.push_back( towns[ i ] ); // сортируем по алфавиту (от А до Я) коллекцию городов, чьи названия длиннее 7 букв sort( output_town.begin(), output_town.end() ); // выводим результат на экран // если нет ни одного города, чье название длиннее 7 букв, то if ( output_town.size() == 0 ) cout << endl << "В исходном списке нет ни одного города, чье название длиннее " << LENGHT << " букв!" << endl; else { cout << endl << "Отсортированный список городов (по алфавиту), чьи названия длиннее " << LENGHT << " букв:" << endl; for ( int i = 0; i < output_town.size(); i++ ) cout << "\t" << output_town[ i ] << endl; } // задержка работы программы, чтобы у пользователя была возможность просмотреть результат fflush( stdin ); cout << endl << endl << "Для завершения работы программы нажмите ENTER..."; cin.get(); // завершение выполнение программы и передача управления в ОС (код 0 - все прошло успешно!) return 0; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Добавить комментарий