Program rieši problém generovania testov prostredníctvom Boolovskej diferencie
Delphi & Pascal (česká wiki)
Kategorija: Programy zos C, C++
Program: Prac_ndf.c, Booldif.zip
Subor exe: Booldif.exe
Mušiš mac: Adresar.c, Color.c, Derivac.c, Error.c, Funkcie.c, Help.c, Key.c, Line_edi.c, Main.c, Menu.c, Obsluha.c, Okno.c, Prac_ndf.c, Slovnik.c, Slov_fon.c, Statist.c, Util.c, Video.c, Vystupy.c, Adresar.h, Color.h, Define.h, Error.h, Funkcie.h, Glob.h, Key.h, Line_edi.h, Mbooldif.h, Menu.h, Okno.h, Slov_fon.h, Util.h, Video.h
Ukažka: Example.zip, Bin_10_o.ndf, Bin_10_o.ndf, Bin_1and.ndf, Bin_2rad.ndf, Bin_3rad.ndf, Bin_4rad.ndf, Hard.ndf, I_reg_lo.ndf, Reg_jk.ndf, Scitac_s.ndf, Scp_1rad.ndf, Scp_2rad.ndf, Scp_2r_1.ndf, Scp_3rad.ndf, Scp_4r_2.ndf, Scp_6r_3.ndf, Scp_8r_4.ndf, Sc_1r_pj.ndf, Sc_1r_sj.ndf, Sc_1_aoi.ndf, Sc_2r_4.ndf, Sc_3r_6.ndf, Sc_7400n.ndf, Sc_aon.ndf, Simp3_a.ndf, Simp3_b.ndf, Simp4_a.ndf, Simp4_b.ndf, Simp4_c.ndf, Simp6_a.ndf, Test_vod.ndf, Zle.ndf
Manual: Prirucky.zip
Program: Prac_ndf.c, Booldif.zip
Subor exe: Booldif.exe
Mušiš mac: Adresar.c, Color.c, Derivac.c, Error.c, Funkcie.c, Help.c, Key.c, Line_edi.c, Main.c, Menu.c, Obsluha.c, Okno.c, Prac_ndf.c, Slovnik.c, Slov_fon.c, Statist.c, Util.c, Video.c, Vystupy.c, Adresar.h, Color.h, Define.h, Error.h, Funkcie.h, Glob.h, Key.h, Line_edi.h, Mbooldif.h, Menu.h, Okno.h, Slov_fon.h, Util.h, Video.h
Ukažka: Example.zip, Bin_10_o.ndf, Bin_10_o.ndf, Bin_1and.ndf, Bin_2rad.ndf, Bin_3rad.ndf, Bin_4rad.ndf, Hard.ndf, I_reg_lo.ndf, Reg_jk.ndf, Scitac_s.ndf, Scp_1rad.ndf, Scp_2rad.ndf, Scp_2r_1.ndf, Scp_3rad.ndf, Scp_4r_2.ndf, Scp_6r_3.ndf, Scp_8r_4.ndf, Sc_1r_pj.ndf, Sc_1r_sj.ndf, Sc_1_aoi.ndf, Sc_2r_4.ndf, Sc_3r_6.ndf, Sc_7400n.ndf, Sc_aon.ndf, Simp3_a.ndf, Simp3_b.ndf, Simp4_a.ndf, Simp4_b.ndf, Simp4_c.ndf, Simp6_a.ndf, Test_vod.ndf, Zle.ndf
Manual: Prirucky.zip
Program rieši problém generovania testov prostredníctvom Boolovskej diferencie. Riešenie vyplýva z metódy matematicej derivácie logických zápisov funkcie v tvare Boolovského zápisu. Vytvára vektory porúch pre daný obvod, pričom zohľadňuje všetky vetviace sa vodiče. Výsledkom je úplný test.
Je implementovaný v programovacom jazyku C pre operačný systém MS-DOS, alebo iný s ním kompatibilným. Program je vhodný pre interaktívny spôsob komunikácie s užívateľom, čo umožňuje pohodlné pracovné prostredie podobné systémom Turbo Vision.
Ako príklad skúste nasledovné.
POZNÁMKA: Zdrojové kódy ktoré simulujú prostredie Turbo Vision niesu dielom autora.
Je implementovaný v programovacom jazyku C pre operačný systém MS-DOS, alebo iný s ním kompatibilným. Program je vhodný pre interaktívny spôsob komunikácie s užívateľom, čo umožňuje pohodlné pracovné prostredie podobné systémom Turbo Vision.
Ako príklad skúste nasledovné.
- Menu->Voľby->Vstup->Zo Súboru. Vyberte si niektorý z ukážkových súborov.
- Menu->Činnosť->Boolovské diferencie->Primárne vodiče
- Menu->Činnosť->Boolovské diferencie->Vnútorné vodiče
- Menu->Výsledky - môžete si pozrieť výsledky práce programu
POZNÁMKA: Zdrojové kódy ktoré simulujú prostredie Turbo Vision niesu dielom autora.
/***************************************************************************** * * * Subor VIDEO.C * * * *****************************************************************************/ #include <dos.h> #include "glob.h" #include "video.h" #include "slov_fon.h" //************************************************************************// // VYPLN_OKNO // // 30.10.1997 // //************************************************************************// void vypln_okno(int lavy,int horny,int pravy,int dolny,char znak,unsigned char attr) { asm push es _ES=VIDEOSEGMENT; _CH=dolny-horny+1; _BX=2*(_stlpcov*horny+lavy); _DX=2*(_stlpcov-pravy+lavy); n0: _CL=pravy-lavy; _AL=znak; _AH=attr; n1: asm { mov es:[bx],al inc bx mov es:[bx],ah inc bx dec cl jnz n1 add bx,dx dec ch jnz n0 pop es } } //************************************************************************// // TLAC_RETAZEC // // 30.10.1997 // //************************************************************************// int tlac_retazec(unsigned int stlpec,unsigned int riadok,unsigned int attr,char *ret) { if(stlpec>=_stlpcov || riadok>=_riadkov)return FALSE; asm push es; asm push ds; _ES=VIDEOSEGMENT; _BX=(_stlpcov*riadok+stlpec)*2; _CX=_stlpcov-stlpec; _DL=attr; _SI=FP_OFF(ret); _DS=FP_SEG(ret); n1: asm mov al,ds:[si] asm cmp al,0 asm jz n2 asm inc si asm mov es:[bx],al asm inc bx asm mov es:[bx],dl asm inc bx asm loop n1 asm pop ds asm pop es return FALSE; n2: asm pop ds asm pop es return TRUE; } //************************************************************************// // TLAC_ZNAK // // 30.10.1997 // //************************************************************************// int tlac_znak(unsigned int stlpec,unsigned int riadok,unsigned int attr,char znak) { unsigned int adr; if(stlpec>=_stlpcov || riadok>=_riadkov)return FALSE; adr=(_stlpcov*riadok+stlpec)*2; pokeb(VIDEOSEGMENT,adr,znak); adr++; pokeb(VIDEOSEGMENT,adr,attr); return TRUE; } //************************************************************************// // NASTAV_ATRIBUT // // 30.10.1997 // //************************************************************************// int nastav_atribut(unsigned int stlpec,unsigned int riadok,unsigned int attr) { unsigned int adr; if(stlpec>=_stlpcov || riadok>=_riadkov)return FALSE; adr=(_stlpcov*riadok+stlpec)*2+1; pokeb(VIDEOSEGMENT,adr,attr); return TRUE; } //************************************************************************// // TLAC_DO_KONCA_RIADKU // // 30.10.1997 // //************************************************************************// void tlac_do_konca_riadku(unsigned int stlpec,unsigned int riadok,unsigned int attr,char znak) //Tu sa da pouzit clroel() !!! { if(stlpec>=_stlpcov || riadok>=_riadkov)return; asm push es; _ES=VIDEOSEGMENT; _BX=(_stlpcov*riadok+stlpec)*2; _CX=_stlpcov-stlpec; _DL=attr; _DH=znak; n1: asm mov es:[bx],dh asm inc bx asm mov es:[bx],dl asm inc bx asm loop n1 n2: asm pop es return; } //************************************************************************// // VYPNI_KURZOR // // 30.10.1997 // //************************************************************************// void vypni_kurzor(void) { _CH=0x20; _AH=0x01; geninterrupt(VIDEOINTERRUPT); } //************************************************************************// // ZAPNI_KURZOR // // 30.10.1997 // //************************************************************************// void zapni_kurzor(void) { _CH=0x06; _CL=0x07; _AH=0x01; geninterrupt(VIDEOINTERRUPT); } //************************************************************************// // PRESUN_KURZOR // // 30.10.1997 // //************************************************************************// void presun_kurzor(int x,int y) { _BH=0; _DH=y; _DL=x; _AH=0x02; geninterrupt(VIDEOINTERRUPT); } int m8025( void ) // video mod 80 na 25 { Video_mod=M80x25; nastav_video_mod(Video_mod); // inic_obrazovku(); return(0); } //************************************************************************// // INIC_OBRAZOVKU // // 30.10.1997 // //************************************************************************// void inic_obrazovku(void) { nastav_video_mod(Video_mod); switch(Video_mod) { case M80x25: case M80x30: case M132x25: case M132x30: slov_font(); } vypln_okno(0,0,_stlpcov,1,' ',atributy[1]); vypln_okno(0,_riadkov-2,_stlpcov,_riadkov-1,' ',atributy[1]); vypln_okno(0,1,_stlpcov,_riadkov-2,'°',atributy[0]); } /*---------------------------------END--------------------------------------*/