DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт
Предмет:
Програмування

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет «Львівська політехніка»  ЗВІТ З лабораторних робіт №6-10 З дисципліни: «Програмування ч.4» Мета: 6) Ввести рядок тексту, якщо там є коментарі заключенні в {} видалити їх і замість них вставити пробіл 7) Демонструвати роботу пам’яті, передбачити наступні наступні функції: Очистити пам’ять Перевірити чи пам'ять порожня Перевірити чи в пам'ять присутній елемент Додати в пам'ять Видалити з пам'яті Знайти мінімальний елемент 8) Вивести всі перестановки множини К[1..n] 9). Перевірити чи в заданому графі присутній від'ємний цикл 10) Перевірити чи в заданому рядку присутній слово “abcd”. Блок-схеми: 6)  7)  8)  9)  10)  Лістінги програм: case 6: cout << "Object-oriented method" << endl; cout << "Завдання: Ввести рядок з коментарями {} видалити коментарi i замiсть них вставити пробiл." << endl; cout << "Enter text with coments:" << endl; cin >> szText; text = new CText(szText); text->Delete_coments(); system("PAUSE"); system("cls"); cout << "Procedure-oriented method" << endl; cout << "Enter text with coments:" << endl; cin >> szText; Del_comn(szText); system("PAUSE"); break; case 7: cout << "Object-oriented method" << endl; cout << "Завдання: Демонстрацiя роботи пам'ятi" << endl; cout << "Enter text with coments:" << endl; cout << "n = "; cin >> iN; memory = new CMemory(iN); memory->demo_memory(); system("PAUSE"); system("cls"); cout << "Procedure-oriented method" << endl; cout << "n = "; cin >> iN; Memory(iN); system("PAUSE"); break; case 8: cout << "Object-oriented method" << endl; cout << "Завдання: вивести всi перестановки послідовностi 1..N" << endl; cout << "n = "; cin >> iN; seq = new CSeq(iN); seq->Gen(0); system("PAUSE"); system("cls"); cout << "Procedure-oriented method" << endl; cout << "n = "; cin >> iN; iArr = new int[iN]; for (int i=0;i<iN;i++) iArr[i] = i+1; Gen(0, iN, iArr); cout << endl; system("PAUSE"); break; case 9: cout << "Object-oriented method" << endl; cout << "Завдання: перевiрити чи в графовi є цикл з вiдємною вагою" << endl; cout << "n = "; cin >> iN; graf = new CGraf(iN); graf->Seek(); system("PAUSE"); system("cls"); cout << "Procedure-oriented method" << endl; cout << "n = "; cin >> iN; Graf(iN); system("PAUSE"); break; case 0: cout << "Object-oriented method" << endl; cout << "Завдання: перевiрити чи в рядку присутнiй пiдрядок abcd" << endl; cout << "Enter text:" << endl; cin >> szText; text = new CText(szText); if (text->Seek_sub()) { cout << "Is \"abcd\"" << endl; } else { cout << "Isn't \"abcd\"" << endl; } system("PAUSE"); system("cls"); cout << "Procedure-oriented method" << endl; cout << "Enter text:" << endl; cin >> szText; if (Seek_sub(szText)) { cout << "Is \"abcd\"" << endl; } else { cout << "Isn't \"abcd\"" << endl; } system("PAUSE"); break; default: //system("pause"); return 0; } /****************************************************************\ METHOD........: CText DESCRIPTION...: Initializing variables ATTRIBUTES....: Public ARGUMENTS.....: czText - text string with coments RETURNS.......: None \****************************************************************/ CText::CText(string szText) { m_szText = szText; m_iStart = m_szText.find('{'); m_iFinish = m_szText.find('}'); } /****************************************************************\ METHOD........: Delete_coments DESCRIPTION...: Delete coments ATTRIBUTES....: Public ARGUMENTS.....: none RETURNS.......: void \****************************************************************/ void CText::Delete_coments() { while (m_szText.find('{')!=-1) { m_iStart = m_szText.find('{'); m_iFinish = m_szText.find('}'); m_szText[m_iStart]=' '; m_szText.erase(m_iStart+1,m_iFinish-m_iStart); } cout << m_szText << endl; } /****************************************************************\ FUNCTION......: Del_comn DESCRIPTION...: Delete coments ATTRIBUTES....: Public ARGUMENTS.....: czText - text string with coments RETURNS.......: void \****************************************************************/ void Del_comn(string szText) { int iStart, iFinish; while (szText.find('{')!=-1) { iStart = szText.find('{'); iFinish = szText.find('}'); szText[iStart]=' '; szText.erase(iStart+1,iFinish-iStart); } cout << szText << endl; } /****************************************************************\ METHOD........: CMemory DESCRIPTION...: Initializing variables ATTRIBUTES....: Public ARGUMENTS.....: iN - size of memory RETURNS.......: None \****************************************************************/ CMemory::CMemory(int iN) { m_piMem = new int[iN]; m_iN = iN; srand((unsigned)time(0)); for(int i=0;i<iN;i++) { m_piMem[i] = rand()%10; } } /****************************************************************\ METHOD........: demo_memory DESCRIPTION...: Demo memory ATTRIBUTES....: Public ARGUMENTS.....: none RETURNS.......: void \****************************************************************/ void CMemory::demo_memory() { bool bFlExit = true; bool bTest = false; int iTemp, iMin; while(bFlExit) { cout << endl; for(int i=0;i<m_iN;i++) { cout << m_piMem[i] << " "; } cout << endl << endl; cout << endl; cout << "1 - Clear memory" << endl; cout << "2 - Is emtry?" << endl; cout << "3 - Is member" << endl; cout << "4 - Add to memory" << endl; cout << "5 - Remove with memory" << endl; cout << "6 - Minimal element" << endl; cout << "Other - Exit" << endl; switch(_getch()-48) { case 1: for(int i=0;i<m_iN;i++) { m_piMem[i] = 0; } break; case 2: for(int i=0;i<m_iN;i++) { if(m_piMem[i] != 0) { bTest = true; break; } } if(bTest) { cout << "Memory is not empty" << endl; bTest = false; } else { cout << "Memory is empty" << endl; } break; case 3: cout << "elm = "; cin >> iTemp; for(int i=0;i<m_iN;i++) { if(m_piMem[i] == iTemp) { bTest = true; break; } } if(bTest) { cout << "This element is member of memory date" << endl; bTest = false; } else { cout << "This element isn't member of memory date" << endl; } break; case 4: cout << "elm = "; cin >> iTemp; for(int i=0;i<m_iN;i++) { if(m_piMem[i] == 0) { m_piMem[i] = iTemp; break; } } break; case 5: for(int i=m_iN-1;i>=0;i--) { if(m_piMem[i] != 0) { m_piMem[i] = 0; break; } } break; case 6: iMin = m_piMem[0]; for(int i=0;i<m_iN;i++) { if(m_piMem[i] < iMin&&m_piMem[i]!=0) { iMin = m_piMem[i]; } } cout << "min = " << iMin << endl; break; default: bFlExit = false; } } } /****************************************************************\ FUNCTION......: Memory DESCRIPTION...: Demo memory ATTRIBUTES....: Public ARGUMENTS.....: iN - size of memory RETURNS.......: void \****************************************************************/ void Memory(int iN) { bool bFlExit = true; bool bTest = false; int iTemp, iMin; int* piMem = new int[iN]; srand((unsigned)time(0)); for(int i=0;i<iN;i++) { piMem[i] = rand()%10; } while(bFlExit) { cout << endl; for(int i=0;i<iN;i++) { cout << piMem[i] << " "; } cout << endl << endl; cout << endl; cout << "1 - Clear memory" << endl; cout << "2 - Is emtry?" << endl; cout << "3 - Is member" << endl; cout << "4 - Add to memory" << endl; cout << "5 - Remove with memory" << endl; cout << "6 - Minimal element" << endl; cout << "Other - Exit" << endl; switch(_getch()-48) { case 1: for(int i=0;i<iN;i++) { piMem[i] = 0; } break; case 2: for(int i=0;i<iN;i++) { if(piMem[i] != 0) { bTest = true; break; } } if(bTest) { cout << "Memory is not empty" << endl; bTest = false; } else { cout << "Memory is empty" << endl; } break; case 3: cout << "elm = "; cin >> iTemp; for(int i=0;i<iN;i++) { if(piMem[i] == iTemp) { bTest = true; break; } } if(bTest) { cout << "This element is member of memory date" << endl; bTest = false; } else { cout << "This element isn't member of memory date" << endl; } break; case 4: cout << "elm = "; cin >> iTemp; for(int i=0;i<iN;i++) { if(piMem[i] == 0) { piMem[i] = iTemp; break; } } break; case 5: for(int i=iN-1;i>=0;i--) { if(piMem[i] != 0) { piMem[i] = 0; break; } } break; case 6: iMin = piMem[0]; for(int i=0;i<iN;i++) { if(piMem[i] < iMin&&piMem[i]!=0) { iMin = piMem[i]; } } cout << "min = " << iMin << endl; break; default: bFlExit = false; } } } void Swap(int* a,int* b) { int c; c=*a; *a=*b; *b=c; } /****************************************************************\ FUNCTION......: Gen DESCRIPTION...: Generate Sequence ATTRIBUTES....: Public ARGUMENTS.....: k - next Sequence RETURNS.......: void \****************************************************************/ void Gen(int k, int iN, int* piX) { if (k==iN) { for (int i=0;i<iN;i++) { cout << piX[i]; } cout << " "; } else { for (int j=k;j<iN;j++) { Swap(&piX[k],&piX[j]); Gen(k+1,iN,piX); Swap(&piX[k],&piX[j]); } } } /****************************************************************\ METHOD........: CSeq DESCRIPTION...: Initializing variables ATTRIBUTES....: Public ARGUMENTS.....: iN - Max numbers of Sequence RETURNS.......: void \****************************************************************/ CSeq::CSeq(int iN) { m_iN = iN; m_piX = new int[iN]; for (int i=0;i<iN;i++) m_piX[i] = i+1; } /****************************************************************\ METHOD........: Gen DESCRIPTION...: Generate Sequence ATTRIBUTES....: Public ARGUMENTS.....: k - next Sequence RETURNS.......: void \****************************************************************/ void CSeq::Gen(int k) { if (k==m_iN) { for (int i=0;i<m_iN;i++) { cout << m_piX[i]; } cout << " "; } else { for (int j=k;j<m_iN;j++) { Swap(&m_piX[k],&m_piX[j]); Gen(k+1); Swap(&m_piX[k],&m_piX[j]); } } } /****************************************************************\ METHOD........: CGraf DESCRIPTION...: Initializing variables ATTRIBUTES....: Public ARGUMENTS.....: iN - size of graf RETURNS.......: None \****************************************************************/ CGraf::CGraf(int iN) { m_iN = iN; } /****************************************************************\ METOD.........: Seek DESCRIPTION...: Seek Negative way ATTRIBUTES....: Public ARGUMENTS.....: none RETURNS.......: bool \****************************************************************/ bool CGraf::Seek() { int iIndex=0; vector < vector<int> > G (m_iN, vector<int> (m_iN)); for (int i=0; i<m_iN; i++) for (int j=0; j<m_iN; j++) { int iTemp; cout << i+1 << " -> " <<j+1 <<" = "; cin >> iTemp; G[i][j] = iTemp ? iTemp : g_iINF; } vector<vector<int> > D (m_iN), D2; D2 = G; for (int i=0; i<m_iN; i++) D[i].resize (m_iN+1); for (int k=0; k<m_iN; k++) { for (int i=0; i<m_iN; i++) for (int j=0; j<m_iN; j++) D[i][j] = min (D2[i][j], D2[i][k]+D2[k][j]); D.swap (D2); } D.swap (D2); bool bExit = false; for (int i=0;i<m_iN;i++) { if(D[i][i]<0) { bExit = true; iIndex = i; break; } } if (bExit) { cout << "Є вiд'ємний цикл з вершини " << iIndex+1 << " з вагою "<< D[iIndex][iIndex] << endl; } else { cout << "Немає вiд'ємного циклу" << endl; } return false; } /****************************************************************\ FUNCTION......: Graf DESCRIPTION...: Seek Negative way ATTRIBUTES....: Public ARGUMENTS.....: iN - size of graf RETURNS.......: bool \****************************************************************/ bool Graf (int iN) { vector < vector<int> > G (iN, vector<int> (iN)); for (int i=0; i<iN; i++) for (int j=0; j<iN; j++) { int iTemp; cout << i+1 << " -> " <<j+1 <<" = "; cin >> iTemp; G[i][j] = iTemp ? iTemp : g_iINF; } vector<vector<int> > D (iN), D2; D2 = G; for (int i=0; i<iN; i++) D[i].resize (iN+1); for (int k=0; k<iN; k++) { for (int i=0; i<iN; i++) for (int j=0; j<iN; j++) D[i][j] = min (D2[i][j], D2[i][k]+D2[k][j]); D.swap (D2); } D.swap (D2); int iIndex; bool bExit = false; for (int i=0;i<iN;i++) { if(D[i][i]<0) { bExit = true; iIndex = i; break; } } if (bExit) { cout << "Є вiд'ємний цикл з вершини " << iIndex+1 << " з вагою "<< D[iIndex][iIndex] << endl; } else { cout << "Немає вiд'ємного циклу" << endl; } return false; return false; } /****************************************************************\ METHOD........: Seek_sub DESCRIPTION...: seek substring in the string ATTRIBUTES....: Public ARGUMENTS.....: none RETURNS.......: bool \****************************************************************/ bool CText::Seek_sub() { int iNum; iNum = m_szText.find("abcd"); if (iNum==-1) return false; else return true; } /****************************************************************\ FUNCTION......: Seek_sub DESCRIPTION...: seek substring in the string ATTRIBUTES....: Public ARGUMENTS.....: szText - text string RETURNS.......: bool \****************************************************************/ bool Seek_sub(string szText) { int iNum; iNum = szText.find("abcd"); if (iNum==-1) return false; else return true; } /** (END OF FILE : main.cpp)*********************************/ Висновки і результати роботи програм:     
Антиботан аватар за замовчуванням

06.03.2013 23:53

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!