Разработка программно-вычислительного комплекса, предназначенного для разработки эффективных форматов микрокоманд для различных способов микропрограммирования

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

анции (АЭС). / И.А. Придатко - Севастополь: Изд-во СевНТУ, 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