
lab7
.docx+ГУАП
КАФЕДРА № 44
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
Старший преподаватель |
|
|
|
А.В.Аксенов |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №7 |
ДИНАМИЧЕСКИЕ МАССИВЫ И СТРОКИ НА С++ |
по курсу: ИНФОРМАТИКА |
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
|
|
|
|
|
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2021
Цель работы: изучение принципов организации динамических массивов в стандартной библиотеке языка C++ и методов их обработки. Освоение приемов работы со строками средствами стандартной библиотеки языка C++. Совершенствование навыков декомпозиции программы на подпрограммы, разработки и отладки программ в IDE.
Задание: разработать программу на C++, решающую поставленную задачу в соответствии с индивидуальным заданием. (вариант 23)
Индивидуальное задание: ввести строку и букву. Вывести слова, содержащие введенную букву более одного раза.
Текст программы:
#include <iostream>
#include <string>
#include<vector>
#include <sstream>
using namespace std;
void funct(vector<string>& words, char k)
{
for (int i = 0; i < words.size(); i++) {
int p = 0;
for(int j=0; j<words[i].size();j++){
if (words[i][j] == k) {
p++;
}
}
if (p > 1) {
words[i] = words[i];
}
else {
words.erase(words.begin()+i);
}
p = 0;
}
}
void func(string s, vector<string>& words)
{
stringstream vi(s);
string word;
while (vi >> word)
{
words.push_back(word);
}
}
int main()
{
string s, res, res1; char k; vector<string> words; int j;
cout << "Enter your sentence\n";
getline(cin, s);
cout << "Enter the char\n";
cin >> k;
func(s, words);
funct(words, k);
j = size(words);
for (int i = 0; i < size(words); i++) {
if (i < j)
{
res += words[i] + ' ';
}
else {
res1 += words[i];
}
}
cout << res;
cout << res1;
return 0;
}
Снимки результатов работы программы:
Вывод: я изучила принципы организации динамических массивов в стандартной библиотеке языка С++ и методов их обработки. Освоила приёмы работы со строками средствами стандартной библиотеки языка С++.