Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Вінницький національний технічний університет
Факультет інформаційних технологій та комп’ютерної інженерії
Кафедра комп’ютерних наук
Лабораторна робота № 1
З дисципліни: “Теорія алгоритмів”
Мета роботи: “Реалізувати dequeue, стек, очередь.
Завдання для виконання
Вариант 1
Реализовать dequeue с помощью массива
Реализовать стек с помощью массива
Реализовать очередь с помощью массива
Стрелки часов движутся с постоянными угловыми скоростями и показывают h часов m минут. Требуется написать программу, которая найдет число полных минут до ближайшего момента, в который стрелки совпадут. Входные данные числа h и m (на клавиатуре). Выходные данные Единственное целое число — найденное число полных минут.
Хід роботи
Завдання 1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Deque
{
public class Deque
{
public int[] deque=new int[0];
public void Write_deque()
{
for(int i=0;i<deque.Count();i++)
{
Console.Write(deque[i] + " ");
}
}
public void Push_front(int value)
{
int[] res = new int[deque.Count() + 1];
for (int i = 1; i < deque.Count() + 1; i++)
{
res[i] = deque[i - 1];
}
res[0] = value;
deque = res;
}
public void Push_back(int value)
{
int[] res = new int[deque.Count() + 1];
for (int i = 0; i < deque.Count(); i++)
{
res[i] = deque[i];
}
res[deque.Count()] = value;
deque = res;
}
public void Pop_back()
{
int[] res = new int[deque.Count() - 1];
for (int i = 0; i < deque.Count() - 1; i++)
{
res[i] = deque[i];
}
deque=res;
}
public void Pop_front()
{
int[] res = new int[deque.Count() - 1];
for (int i = 1; i < deque.Count(); i++)
{
res[i - 1] = deque[i];
}
deque = res;
}
}
class Program
{
static void Main(string[] args)
{
Deque maam = new Deque();
maam.Push_front(5);
maam.Push_back(2);
maam.Write_deque();
Console.ReadKey();
}
}
}
}
Завдання 2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Stack
{
class Stack
{
public int[] stack = new int[0];
public void Write()
{
for (int i = 0; i < stack.Count(); i++)
{
Console.Write(stack[i] + " ");
}
}
public void Push(int value)
{
int[] res = new int[stack.Count() + 1];
for (int i = 1; i < stack.Count() + 1; i++)
{
res[i] = stack[i - 1];
}
res[0] = value;
stack = res;
}
public void Pop()
{
int[] res = new int[stack.Count() - 1];
for (int i = 1; i < stack.Count(); i++)
{
res[i - 1] = stack[i];
}
stack = res;
}
public void Clear()
{
int[] res=new int[0];
stack = res;
}
public bool Contain(int value)
{
bool res=new bool();
for (int i = 0; i < stack.Count(); i++)
{
if (stack[i] == value)
{
res = true;
break;
}
else res = false;
}
return res;
}
}
class Program
{
static void Main(string[] args)
{
Stack Group = new Stack();
Group.Push(4);
}
}
}
Завдання 3
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Queue
{
class Queue
{
public int [] queue = new int[0];
public void Write()
{
for (int i = 0; i < queue.Count(); i++)
{
Console.WriteLine(queue[i]);
}
}
public void Enqueue (int value)
{
int[] res = new int[queue.Count() + 1];
for (int i = 0; i < queue.Count(); i++)
{
res[i] = queue[i];
}
res[queue.Count()] = value;
queue = res;
}
public int Dequeue()
{
int[] res = new int[queue.Count() - 1];
int return_value = queue[0];
for (int i = 1; i < queue.Count(); i++)
{
res[i - 1] = queue[i];
}
queue = res;
return return_value;
}
public int Peek()
{
int return_value = queue[0];
return return_value;
}
}
class Program
{
static void Main(string[] args)
{
Queue group = new Queue();
group.Enqueue(4);
group.Enqueue(1);
group.Enqueue(3);
group.Enqueue(6);
group.Enqueue(7);
int ret_val = group.Peek();
Console.WriteLine("ret_val:" + group.Dequeue());
group.Write();
Console.ReadKey();
}
}
Завдання 4
#include<iostream>
using namespace std;
int main()
{
int m, n, x,T;
cout << "VVedite godunu ";
cin >> m;
cout << endl;
cout << "Vvedite hvelunu ";
cin >> n;
cout << endl;
if (0 <= m <= 11 || 0 <= n <= 59)
{
T = m * 60 + n;
n = T / (720 / 11);
x = ((720 / 11) * (n + 1)) - T;
cout << x;
}
else
{
cout << "you make mistake";
}
system("pause");
return 0;
}
Висновок
Під час виконання лабораторної роботи було реалізовано dequeue, стек, очередь за допомогою масива в середовищі Visual Studio 2013 мовою C++ та мовою С#.