Добавил:
t.me Установите расширение 'SyncShare' для решения тестов в LMS (Moodle): https://syncshare.naloaty.me/ . На всякий лучше отключить блокировщик рекламы с ним. || Как пользоваться ChatGPT в России: https://habr.com/ru/articles/704600/ || Также можно с VPNом заходить в bing.com через Edge браузер и общаться с Microsoft Bing Chat, но в последнее время они форсят Copilot и он мне меньше нравится. || Студент-заочник ГУАП, группа Z9411. Ещё учусь на 5-ом курсе 'Прикладной информатики' (09.03.03). || Если мой материал вам помог - можете написать мне 'Спасибо', мне будет очень приятно :) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная_7_Кафка

.docx
Скачиваний:
4
Добавлен:
18.05.2022
Размер:
29.92 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

КАФЕДРА 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.