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

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

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

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

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

Міністерство освіти та науки України Національний університет «Львівська політехніка»  ЗВІТ З лабораторних робіт №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:03-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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