Файл: Программа моделирования написана на языке javascript. Программа состоит из 3х частей файла формата html,css,js.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.01.2024

Просмотров: 14

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Алгоритмы, описание и листинг программ имитационного

моделирования сигнатурного анализатора

Алгоритм программы многоканального сигнатурного анализатора следующий:

1.Ввод исходных данных (установление связей в регистре сдвига, указание длинны потока ).

2.Начало работы регистра сдвига (разбиение входящей строки (на элементы массива)).

3.Передача ее в функцию реализующую сдвиг.

4. Преобразование конечного состояния регистров из двоичной системы в свертку.

Описание программы

Программа моделирования написана на языке java-script .

Программа состоит из 3-х частей файла формата html ,css ,js.

Html-это файлы оболочки программы которые открываются через браузер.

Css-файл отвечает за установление стилей.

Js-основной файл выполняющий обработку данный (скрипт).

При запуске программы запускается скрипт .

Объявление переменных

var nomer=0;

var x1=false;X1,X2,X3-false потому что вначале программы связи не установдлены

var x2=false;

var x3=false;

function rand2(min,max){

return Math.floor(Math.random()*(max-min+1))+min;

}

function proverka(chB){//данная функция визуализирует связи в регистре в триггерами

if(chB==1){

if(x1){

$('#hide1,#summ3,#plusnext2').hide();

x1=false;

}

else{

$('#hide1,#summ3,#plusnext2').show();

x1=true;

}

}

else if(chB==2){

if(x2){

$("#hide2,#summ2,#plusnext1").hide();

x2=false;

}

else{

$("#hide2,#summ2,#plusnext1").show();

x2=true;

}

}

else if(chB==3){

if(x3){

$("#hide3,#summ1,#plusnext3").hide();

x3=false;

}

else{

$("#hide3,#summ1,#plusnext3").show();

x3=true;

}

}

}

function asd(){//эта функция отвечает за промежуток времени между тактами

var t=document.getElementById("vvod");

$("#kolvo").val(t.value.length);

var t=document.getElementById("vvod1");

$("#kolvo1").val(t.value.length);

var t=document.getElementById("vvod2");

$("#kolvo2").val(t.value.length);

var t=document.getElementById("vvod3");

$("#kolvo3").val(t.value.length);

ech();

}

function ech(){//данная функция отображает число битов последовательности

var one=$("#kolvo").val();

var two=$("#kolvo1").val();

var three=$("#kolvo2").val();

var four=$("#kolvo3").val();

if(one==two&&two==three&&three==four&&four==one){//если длинны равны то программа

$("#activity").attr("disabled", false); //разрешает выполнение

}

else{

$("#activity").attr("disabled","disabled");

}

}

function createArray(maxLength, aString){//при случайной генерации данная функция генерирует

var arr=[]; //массив случайных бит заданной последовательности

for(i=0; i<=maxLength; i++){

arr[i]=aString.slice(i,i+1);

}

return arr;

}

function add(){//эта функция берет с каждого массива по 1 му элементу формируя входящий

var one=$("#vvod").val();//вектор и подает на функцию свертки

var two=$("#vvod1").val();


var three=$("#vvod2").val();

var four=$("#vvod3").val();

var kolvo=$("#kolvo").val();

var kolvo1=$("#kolvo1").val();

var kolvo2=$("#kolvo2").val();

var kolvo3=$("#kolvo3").val();
var a=createArray(kolvo, one);

var b=createArray(kolvo1, two);

var c=createArray(kolvo2, three);

var d=createArray(kolvo3, four);
$("#element").val(a[nomer]+b[nomer]+c[nomer]+d[nomer]);
if(nomer==$("#kolvo").val()){

nomer=0;

}

$("#zero1").html(a[nomer]);

$("#zero2").html(b[nomer]);

$("#zero3").html(c[nomer]);

$("#zero4").html(d[nomer]);

changePlace();//вызывается функция светрки

nomer++;

}

function summ(arg1,arg2){//эта функция реализует деление по модулю два

if(arg1==arg2){

result=0;

}

else {

result=1;

}

return result;

}

//эта функция реализует один цикл работы программы для пошагового выполнения

function changePlace(){

var a=$("#summ4").html();

var s=$("#rez1").html();

var l=$("#rez2").html();

var i=$("#rez3").html();

var d=$("#rez4").html();

var n=$("#summnext1").html();

var m=$("#summnext2").html();

var t=$("#summnext3").html();
$("#summ4").html(s);

$("#summnext2").html(d);

$("#summnext1").html(i);

$("#summnext3").html(l);

$("#summ1").html(s);

$("#summ2").html(s);

$("#summ3").html(s);
start();

var s=$("#rez1").html();

var l=$("#rez2").html();

var i=$("#rez3").html();

var d=$("#rez4").html();

$("#sostoyanieTriggerov").val(d+i+l+s);

$("#NomerTakta").val(nomer+1+"Такт");

}

function start(){

var a=$("#summ4").html();

var d=$("#zero4").html();
var c=$("#summnext2").html();//для второго

var e=$("#zero3").html();//красный
var f=$("#zero2").html();//красный (третий триггер)

var g=$("#summnext1").html();//черный
var rn=$("#zero1").html();//для 4го (красный)

var o=$("#summnext3").html();//черный
var r=summ(a,d);
if(x1){

var r1=summ(c,a);

var rezultat1=summ(r1,e);

$("#rez3").html(rezultat1);

}

else{

var r1=summ(c,e)

$("#rez3").html(r1);

}

if(x2){

var r2=summ(a,g);

var rezultat2=summ(r2,f)

$("#rez2").html(rezultat2);

}

else{

var r2=summ(f,g);

$("#rez2").html(r2);

}

if(x3){

var r3=summ(a,o);

var rezultat3=summ(r3,rn);

$("#rez1").html(rezultat3);

}

else{

var r3=summ(rn,o);

$("#rez1").html(r3);

}

$("#rez4").html(r);

}

function generator(){//берет из генератора и визуализирует входящие последовательности

$("#vvod").val(generator2());

$("#vvod1").val(generator2());

$("#vvod2").val(generator2());

$("#vvod3").val(generator2());

asd();

}

function generator2(){

var cols=Number($("#number").val());

var r=rand2(cols-1,cols-1);

var str="1";

for(i=1;i<=r;i++){

str=str+rand2(0,1);

}

return str;

}

function count(){

var cols1=Number($("#number").val());

for(i2=1;i2<=cols1;i2++){

setTimeout(function(){

add();

},i2*300);
}

}

function initArray(){//данная функция переводит из двоичной системы в свертку

this.length = initArray.arguments.length;

for (var i = 0; i < this.length; i++)

this[i] = initArray.arguments[i];

}

function from10toradix(value,radix){

var retval = '';

var ConvArray = new initArray(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','H','P');

var i = 0;

intnum = parseInt(value,10);

while (intnum > 0.9){

i++;

tmpnum = intnum;

// связь возвращаемой строки с новым значением:



retval = ConvArray[tmpnum % radix] + retval;

intnum = Math.floor(tmpnum / radix);

}

return retval;

}

function compute(cform){// b2h Перевод из двоичной в шестнадцатиричную

tmpvar = parseInt(cform.sostoyanieTriggerov.value,2);

cform.signatura.value = " " + from10toradix(tmpvar,16);

}