Отчет по лабораторной работе №1 по Технологиям и методам программирования



бет4/7
Дата18.04.2022
өлшемі21,02 Kb.
#139870
түріОтчет
1   2   3   4   5   6   7
Байланысты:
№1 Лабораторная работа (2)
лаб раб
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
namespace programming_technologies_labwork1
{
classProgram
{
static void Main(string[] args)
{
Interface userInterface = new Interface();
userInterface.Run();
}
}
}

Содержимое файлаVirtualMemory.cs

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
namespace programming_technologies_labwork1
{
public class VirtualMemory
{
const string name = "Page";
Page page;
long arraySize;
long countPage;
public VirtualMemory(long arraySize)
{
if (arraySize <= 0)
throw new Exception("Размер массива не может быть отрицательным или равным 0!");
this.arraySize = arraySize;
this.countPage = arraySize / Page.size;
Page[] pages = new Page[countPage + 1];
for (int i = 0; i <= this.countPage; i++)
{
pages[i] = new Page(i);
BinarySerializble(name + i.ToString() + ".dat" , pages[i]);
}
}
~VirtualMemory()
{
for (int i = 0; i <= countPage; i++)
{
File.Delete(name + i.ToString() + ".dat");
}
}
public void writeValue(int index, int value)
{
if (index >= arraySize)
throw new Exception("Индекс за пределами массива!\n");
int numberPage = index/Page.size;
page = BinaryDeserializble(name + numberPage.ToString() + ".dat");
if (page.bitmap[index % Page.size] == true)
{
throw new Exception("В ячейку уже записанно значение!\n");
}
else
{
page.data[index % Page.size] = value;
page.bitmap[index % Page.size] = true;
}
BinarySerializble(name + numberPage.ToString() + ".dat", page);
}


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




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

    Басты бет