- •Журнал лабороторних робіт з дисципліни: Алгоритми і структури данних
- •Лабораторна робота №1
- •Питання до захисту :
- •Лабораторна робота №2 «Робота з чергою та стеком»
- •Лабораторна робота №3 «Розробка програми створення зв'язаного списку»
- •Лабораторна робота №4
- •Питання до захисту :
- •Лабораторна робота №5 «Побудова рекурсивних функцій»
- •Питання до захисту :
- •Лабораторна робота №6 «Бінарне дерево пошуку»
- •Питання до захисту :
- •Лабораторна робота №7 «Реалізація алгоритмів обмінних сортувань»
Журнал лабороторних робіт з дисципліни: Алгоритми і структури данних
Виконав студент гр.РПЗ-314 Перевірив викладач:
Богословський Віктор Манєва Р. І.
2016
Лабораторна робота №1
Завдання: 8. Задано рядок S, що складається з латинських букв і пробілів. Визначити кількість слів у даному рядку.
Код програми:
#include <iostream>
#include <conio.h>
void main() {
char str[255];
std::cout << "Enter a string: ";
std::cin.getline(str, 255);
int words = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == ' ') {
words++;
};
};
std::cout << "The number of words = " << words + 1 << std::endl;
_getch()
}
Вивід:
Питання до захисту :
Як задати кількість символів в рядковій змінній?
Відповідь: За допомогою одновимірного масиву (вектору) з типом елементів char.
Як можна звернутися в програмі до першого символу рядкової змінної s?
Відповідь: «Ім’я рядкової змінної»[0];
Поясніть призначення і формат оператора Length.
Відповідь: оператор length повертає кількість символів рядка
Як додати кілька символів в строкову змінну?
Відповідь: За допомогою функцій конкатенації:
strcpy( char dest, const char src) – копіює строку src у кінець строки dest, зберігаючи src.
strcat( char dest, const char src) - приєднує строку src у кінець строки dest та повертає змінену dest.
Роботу виконав Роботу перевірив
Богословський В. Манєва Р. І.
Задніпровський В.
Лабораторна робота №2 «Робота з чергою та стеком»
Завдання: : Вміст заданого текстового файлу F, розділеного на рядки, переписати в текстовий файл G, переносячи при цьому в кінець кожного рядка всі вхідні в неї цифри (зі збереженням вихідного взаємного порядку як серед цифр, так і серед решти букв рядка).
Код программи:
#include <iostream>
#include <fstream>
#include <string>
#include <locale>
#include <cstdlib>
using namespace std;
typedef unsigned int unint;
void main(void)
{
unint i = 0, menu = 0;
cout << "***************************MENU*****************************\n----------------Created by Zadneprovskyi Vlad---------------\nATTENTION!!! This programm works with strings to 256 symbols\n------------------------------------------------------------\nSelect operation:\n1.Download the string from .txt file\n2.Write the string in the program\n3.Exit\n------------------------------------------------------------\nEnter menu item: ";
cin >> menu;
switch (menu) {
case 1:
{
system("cls");
ifstream fin("sourceOfText.txt");
char buff1[256] = { " " };
cout << "BUFF: ";
while (!fin.eof())
{
fin >> buff1;
cout << buff1;
}
fin.close();
cout << endl;
for (i = 0; i < 256; i++)
{
if (buff1[i] > 47 && buff1[i] < 58)
{
cout << buff1[i];
}
}
for (i = 0; i < 256; i++)
{
if (buff1[i] <= 47 || buff1[i] >= 58)
{
cout << buff1[i];
}
}
system("pause");
break;
}
case 2:
{
unint count = 0;
system("cls");
cout << "Enter number of symbols your string: ";
cin >> count;
char buff2[256] = { " " };
cout << "\nEnter your string: ";
for (i = 0; i < count; i++)
{
cin >> buff2[i];
}
cout << endl;
for (i = 0; i < 256; i++)
{
if (buff2[i] > 47 && buff2[i] < 58)
{
cout << buff2[i];
}
}
for (i = 0; i < 256; i++)
{
if (buff2[i] <= 47 || buff2[i] >= 58)
{
cout << buff2[i];
}
}
system("pause");
break;
}
case 3:
{
system("pause");
break;
}
default:
{
cout << "Error! Wrong number!";
system("pause");
break;
}
}
}
Вивід:
С текстового файлу:
В программі:
Питання до захисту
У чому переваги і недоліки організації структур у вигляді стека?
Відповідь:Плюс стека:
Простота стека.
Мінуси стека:
Неможливість звернення до потрібної структури безпосередньо, Лише за LIFO.
Відсутність навігації.
У чому переваги і недоліки організації структур у вигляді черги?
Відповідь:Плюси черги:
Дуже легко знайти той чи інший елемент.
Мінуси черги:
Чим більше елеменів в черзі тим більше пам’яті потребує .
Для моделювання яких реальних завдань зручно використовувати стек? А для яких чергу?
Відповідь: Черга використовуеться, коли треба щоб зберегти послідовність елементів у массиві.
З якою метою в програмах виконується перевірка на порожнечу стека і черги?
Відповідь:перевірка на порожнечу стека і черги використовується для перевірки массиву, порожій массив чи ні.
Роботу виконав Роботу перевірив
Богословський В. Манєва Р. І.
Задніпровський В.
