Разработка программно-вычислительного комплекса, предназначенного для разработки эффективных форматов микрокоманд для различных способов микропрограммирования
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
анции (АЭС). / И.А. Придатко - Севастополь: Изд-во СевНТУ, 2011 - 24с.
.Раздобреева Г.А. Методические указания к выполнению курсовой работы Расчет экономической эффективности создания и использования программного продукта по дисциплинам Основы менеджмента и маркетинга, Менеджмент для студентов специальностей 7.091501, 7.091401, 7.080401 всех форм обучения / Сост. Г.А. Раздобреева, Е. В. Коваль, Т.В. Кулешова, С.В. Ключко.- Севастополь: Изд-во СевНТУ, 2009.- 24с.
.СН 4559-88 Временные санитарные нормы и правила для работников вычислительных центров.
.СНиП ІІ-4-79. Нормы проектирования. Естественное и искусственное освещение.
.Щепин Ю.Н. Методические указания к практическому занятию на тему Метод анализа иерархий по дисциплине Теория оптимальных решений / Ю.Н. Щепин - Севастополь: Изд-во СевНТУ, 2002 - 11с.
16.">Электронный ресурс / Свободная энциклопедия -
.">Электронный ресурс / Свободная энциклопедия
.">Электронный ресурс / Свободная энциклопедия
.Электронный ресурс / Свободная энциклопедия
ПРИЛОЖЕНИЕ А - ТЕКСТ ПРОГРАММЫ
using System;
using System.Collections.Generic;System.Linq;System.Windows.Forms;System.IO;System.Collections;Kodirovochki{Program
{static string path = "";static List();static int[] ObrabotanieStroki;static int[] ObrabotanieStrokiKoda;static int dlinKod;static bool errorMOcopy = false;static bool skleivaetsa;
[STAThread]void Main() {.EnableVisualStyles();.SetCompatibleTextRenderingDefault(false);.Run(new Form1()); }static string ReadFile(String path) {counter = 0;line;text = null;
>();((line = file.ReadLine()) != null && !(line.Equals("")) ){= text + line + Environment.NewLine;= new List();nomer = line.IndexOf("=");oper = line.Substring(nomer + 1);[] massiv = oper.Split(,);(int i = 0; i < massiv.Length; i++) {Nedubl = true;(int g = i + 1; g < massiv.Length; g++) { if (massiv[i].Equals(massiv[g])) { Nedubl = false; errorMOcopy = true; } }(Nedubl) { rowMK.Add(massiv[i]); } }.Add(rowMK);++; }.Close();text; }// окончание чтения файлаstatic int FindNumberOfOperation()
();(inti=0;i();(int i = 0; i < MasMK.Count; i++)
{(int j = 0; j < MasMK[i].Count; j++) {(NotDuplicate(MasMK[i][j])) { string num = MasMK[i][j].Substring(1); listOfMicOp.Add(Convert.ToInt32(num)); }
}
}.Sort();listOfMicOp.Count;
}static bool NotDuplicate(string p)
{NetDublei = true;(int i = 0; i < listOfMicOp.Count; i++) {(("y"+listOfMicOp[i]).Equals(p)) { NetDublei = false; } }NetDublei;
}static int[,] gorizont()
{a = FindNumberOfOperation();= a;[,] arr = new int[MasMK.Count, a];(int i = 0; i < MasMK.Count; i++)
{(int j = 0; j < a; j++)
{(FindOperation(("y"+listOfMicOp[j]), i)) { arr[i, j] = 1; }arr[i, j] = 0; } }arr;
}static bool FindOperation(string p, int stroka)
{poisk = false;(int i = 0; i < MasMK[stroka].Count; i++)
{(p.Equals(MasMK[stroka][i])) { poisk = true; }
}poisk; }static int[,] vertikal()
{[,] arr = gorizont();= new int[arr.GetLength(0)];
= (int)Math.Ceiling(Math.Log((double)(arr.GetLength(0)), 2.0));= new int[(int)Math.Pow(2.0, dlinKod)];[,] vertik = new int[arr.GetLength(0), dlinKod];shet = arr.GetLength(0);z; //формат вывода..добавляем нули в началоgen = new PermutationsWithRepetition(new int[] { 1, 0 }, dlinKod);[,] variations = gen.getVariations();((z = StrokaMaxRank(arr)) != -1) {strokaKoda = StrokaMaxRankFromKod(variations);(int k = 0; k < dlinKod; k++) { vertik[z, k] = variations[strokaKoda, k]; }}vertik;
}static int StrokaMaxRank(int[,] arr)
{maxRank = -1;numberOfLine = -1;(int i = 0; i < arr.GetLength(0); i++)
{(ObrabotanieStroki[i] != 1)
{sch = 0;(int j = 0; j < arr.GetLength(1); j++){sch = sch + arr[i, j];}(maxRank < sch)
{ maxRank = sch; numberOfLine = i; }
}
}(numberOfLine != -1) { ObrabotanieStroki[numberOfLine] = 1; }numberOfLine; }static int StrokaMaxRankFromKod(int[,] arr)
{maxRank = -1;numberOfLine = -1;(int i = 0; i < arr.GetLength(0); i++)
{(ObrabotanieStrokiKoda[i] != 1)
{sch = 0;(int j = 0; j < arr.GetLength(1); j++)
{= sch + arr[i, j];
}(maxRank < sch)
{ maxRank = sch; numberOfLine = i; }
}
}(numberOfLine != -1) { ObrabotanieStrokiKoda[numberOfLine] = 1; }numberOfLine;
}static string[] getBoolForGorizont()
{[] bulMassiv = new string[listOfMicOp.Count];(int i = 0; i < listOfMicOp.Count; i++)
{[i] = ("y" + listOfMicOp[i]) + " = m" + (bulMassiv.Length - (i + 1)) + Environment.NewLine;
}bulMassiv; }static string[] getBoolForVertical()
{[,] verKod = vertikal();[] bulMassiv = new string[listOfMicOp.Count];(verKod);(int i = 0; i < MasMO.Count; i++)
{text = "";(int j = 0; j < MasMO[i].Count; j++)
{insert = "";(int k = 0; k < MasMO[i][j].Length; k++)
{ string simbol = MasMO[i][j].Substring(k, 1);(simbol.Equals("0")) { insert = insert + "~"; }= insert + "m" + (MasMO[i][j].Length - k - 1);
}= text + " " + insert + " v";
}[i] = text.Substring(0, text.Length - 1);
}bulMassiv;
}static void getTableMicroOperation(int[,] verKod) // в каких микрокомандах встречается каждая микрооперация
>();(intz=0;z();(int z = 0; z < listOfMicOp.Count; z++)
();(inti=0;i();(int i = 0; i < MasMK.Count; i++)
{(int j = 0; j < MasMK[i].Count; j++)
{(MasMK[i][j].Equals(("y" + listOfMicOp[z])))
{row = "";(int ggg = 0; ggg < dlinKod; ggg++)
{= row + verKod[i, ggg] + "";
}.Add(row); } } }.Add(rowMO); } }static string[] optimisationBoolForVert()
{[] bulMassiv = new string[listOfMicOp.Count];(int i = 0; i < MasMO.Count; i++)
{= true;(skleivaetsa)
{= false;
conglutination(i);//номер строки (микрооперации) на склейку
}
}(int i = 0; i < MasMO.Count; i++)
{text = "";(int j = 0; j < MasMO[i].Count; j++)
{insert = "";(MasMO[i][j] != null)
{(int k = 0; k < MasMO[i][j].Length; k++)
{ string simbol = MasMO[i][j].Substring(k, 1);(simbol.Equals("0"))
{= insert + "~";= insert + "m" + (MasMO[i][j].Length - k - 1);
}{(simbol.Equals("1"))
{= insert + "m" + (MasMO[i][j].Length - k - 1); }
}
}= text + " " + insert + " v";
}
}[i] = text.Substring(0, text.Length - 1);
}bulMassiv;
}static void conglutination(int num)
{(int i = 0; i < MasMO[num].Count; i++)
{
//bool Nedubl = true;(int g = i + 1; g < MasMO[num].Count; g++)
{(klei( i, g,num)) { skleivaetsa = true; } } } }static bool klei(int