Лабораторная работа №3 «Flow-формы и диаграммы Насси-Шнейдермана»


«ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»



бет4/4
Дата20.05.2022
өлшемі0.74 Mb.
#458038
түріЛабораторная работа
1   2   3   4
Voronova Maria Vladimirovna IKTb-1301-0400 Otchet LR3

«ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Факультет автоматики и вычислительной техники


Кафедра радиоэлектронных средств
Утвержден:
ТПЖА.18124-01 12 01-1-ЛУ

Flow-формы и диаграммы Насси-Шнейдермана


Программа по дисциплине
«Языки программирования»

Текст программы


ТПЖА.18124-01 12 01-1


Листов 2

1. Формы и диаграммы.cpp


//Вводится строка, содержащая буквы, целые неотрицательные числа и иные символы.
//Требуется все числа, которые встречаются в строке, поместить в отдельный целочисленный массив.
//Например, если дана строка "data 48 call 9 read13 blank0a", то в массиве должны оказаться числа 48, 9, 13 и 0.

//Воронова Мария-2021.ИКТб-1301


#include
#include
#include //isdigit
#include //atoi
#include

using namespace std;


int main()


{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int yn = 0;
do {

string str;


int* ar = nullptr;
int sizeAr = 0;

cout << "Введите строку:" << endl;


getline(cin, str);

for (int i = 0; i < str.length(); i++)


{
if (isdigit(str[i]))
for (int j{ i }; j < str.length(); j++)
if (!isdigit(str[j]) || j + 1 == str.length())
{
/* Извлекаем число из строки */
int nElement = atoi(str.substr(i, j).c_str());
cout << nElement << endl;
/* Инициализация буфера */
int* nBuffer = new int[sizeAr];
for (int k = 0; k < sizeAr; k++)
nBuffer[k] = ar[k];
/* Увеличиваем размер массива int */
sizeAr++;
/* Осовбождаем память под новый массив */
if (ar) delete[] ar;
/* Резервируем память под новый массив */
ar = new int[sizeAr];
/* Инициализация нового массива */
for (int k = 0; k < sizeAr; k++)
ar[k] = nBuffer[k];
ar[sizeAr - 1] = nElement;
/* Освобождаем буфер */
delete[] nBuffer;
i = j;
j = str.length() + 1;

}
}
cout << "Полученный массив:" << endl;


for (int i = 0; i < sizeAr; i++)
cout << ar[i] << ((i + 1 < sizeAr) ? " " : "");
delete[] ar;

cout << endl << "Хотите продолжить?ДА-1;Нет-0" << endl;


cin >> yn;
cin.ignore();
} while (yn == 1);

return 0;


}


Достарыңызбен бөлісу:
1   2   3   4




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет