Лабораторная_7_Кафка
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА 44
|
ОЦЕНКА
ПРЕПОДАВАТЕЛЬ
Старший преподаватель |
|
|
|
Аксенов А. В. |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №7
|
Динамические массивы и строки на С++
|
по дисциплине: Информатика |
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
Z9411 |
|
|
|
Кафка Р. С. |
|
номер группы |
|
подпись, дата |
|
инициалы, фамилия |
Студенческий билет № |
2019/3603 |
|
|
|
Санкт-Петербург 2020
Цель работы:
Изучение принципов организации динамических массивов в стандартной библиотеке языка C++ и методов их обработки. Освоение приемов работы со строками средствами стандартной библиотеки языка C++. Совершенствование навыков декомпозиции программы на подпрограммы, разработки и отладки программ в IDE.
Порядок выполнения работы:
Разработать программу на C++, решающую поставленную задачу в соответствии с индивидуальным заданием.
Программа должна выполнять считывание строки со стандартного ввода полностью (с пробелами), разбивать ее на слова и формировать массив слов. После обработки массива слов, из него должна формироваться новая строка, после чего она должна выводиться в стандартный вывод.
Для представления динамического массива необходимо воспользоваться реализацией из библиотеки <vector>, для представления строк – реализацией из библиотеки <string>.
Программа должна содержать определение функции, осуществляющей обработку массива слов таким образом, чтобы выполнить условие индивидуального задания. Функция должна принимать в качестве параметров массив, а также другие параметры, если это необходимо, и иметь тип void.
Все операции ввода и вывода необходимо осуществлять в функции main().
Преобразование введенной строки в массив слов и обратно можно вынести в определение еще одной дополнительной функции (в этом случае в ней также должен осуществляться вызов функции обработки массива), а можно реализовать в функции main().
Вариант № 7:
Ввести строку. Вывести ее, заменив отдельно стоящие цифры на их словесное представление (0 - "zero", 1 - "one", ...).
Текст программы:
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
void zamena(vector<string> vhod_array)
{
vector <string> new_array;
for (int i = 0; i < vhod_array.size(); i++)
{
if (vhod_array[i] == "0")
new_array.push_back("zero");
else if (vhod_array[i] == "1")
new_array.push_back("one");
else if (vhod_array[i] == "2")
new_array.push_back("two");
else if (vhod_array[i] == "3")
new_array.push_back("three");
else if (vhod_array[i] == "4")
new_array.push_back("four");
else if (vhod_array[i] == "5")
new_array.push_back("five");
else if (vhod_array[i] == "6")
new_array.push_back("six");
else if (vhod_array[i] == "7")
new_array.push_back("seven");
else if (vhod_array[i] == "8")
new_array.push_back("eight");
else if (vhod_array[i] == "9")
new_array.push_back("nine");
else if (vhod_array[i] == "10")
new_array.push_back("ten");
else
new_array.push_back(vhod_array[i]);
}
cout << "Слов в тексте: " << new_array.size() << endl; //Для проверки, что программа работает нормально
cout << "\n Преобразованное предложение: " << endl;
for (int i = 0; i < new_array.size(); i++)
cout << new_array[i] << " ";
}
int main()
{
setlocale(LC_ALL, "Russian");
string word; //Будет содержать текущее слово из текста
string text; // Будет содержать текст
cout << "Введите предложение ЛАТИНСКИМИ БУКВАМИ, содержащее цифры (0-10): " << endl;
getline (cin, text);
stringstream ss(text); // Инициализация строкового потока
vector <string> array; // Пустой вектор
while (ss >> word) // Добавляем каждое слово их текста как элемент вектора
array.push_back(word);
zamena(array);
cin.get();
return 0;
}
Результат работы программы:
Вывод:
Я изучил принципы организации динамических массивов в стандартной библиотеке языка C++ и методы их обработки. Освоил приемы работы со строками средствами стандартной библиотеки языка C++. Усовершенствовал навыки декомпозиции программы на подпрограммы, разработки и отладки программ в IDE.