Главная страница

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


Скачать 16.29 Kb.
НазваниеПрограмма моделирования написана на языке javascript. Программа состоит из 3х частей файла формата html,css,js
Дата15.04.2023
Размер16.29 Kb.
Формат файлаdocx
Имя файла1231213123121312313213.docx
ТипПрограмма
#1064084

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

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

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

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);

}


написать администратору сайта