Program rieši problém generovania testov prostredníctvom Boolovskej diferencie
Delphi & Pascal (česká wiki)
Kategórie: Programy v C, C++
Program: Prac_ndf.c, Booldif.zip
Soubor exe: Booldif.exe
Potřebné: 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
Příklady: 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
Soubor exe: Booldif.exe
Potřebné: 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
Příklady: 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 HELP.C * * * *****************************************************************************/ #include <stdlib.h> #include "glob.h" #include "key.h" #include "menu.h" #include "video.h" #include "okno.h" //************************************************************************// // HELP // // 30.10.1997 // //************************************************************************// void help(char *help) { register int i,j; char ret1[]={' ',24,' ',' ','\0'}; char ret2[]={' ',24,25,' ','\0'}; char ret3[]={' ',' ',25,' ','\0'}; char *p; int rx,ry; int zx,zy; int koniec=0; int zaciatok=0; int pocet_riadkov=0; int max; if(help==NULL) return; p=help; rx=0; while(1) { max=0; while(*p!='\n' && *p!='\0') { p++; max++; } if(rx<max) rx=max; pocet_riadkov++; if(*p=='\0') break; else p++; } pocet_riadkov++; rx+=2; if(rx>=_stlpcov-3) rx=_stlpcov-3; if(pocet_riadkov>=_riadkov-5) ry=_riadkov-5; else ry=pocet_riadkov; zx=(_stlpcov-rx)/2; zy=(_riadkov-ry)/2; vypni_kurzor(); if(otvor_okno(zx,zy,zx+rx,zy+ry,atributy[20],atributy[21],1)!=TRUE) return; tlac_retazec(_stlpcov/2-4,zy,atributy[21]," POMOC "); rx-=2; ry-=2; pocet_riadkov-=2; tlac_riadok_help(" ~PgUp strana hore ~PgDn strana dole ~ posun ~ESC,ENTER n vrat",atributy[4],atributy[5]); while(!koniec) { if(ry<pocet_riadkov) { if(zaciatok==0) tlac_retazec(zx+rx-6,zy+ry+1,atributy[21],ret3); else { if(zaciatok+ry>=pocet_riadkov) tlac_retazec(zx+rx-6,zy+ry+1,atributy[21],ret1); else tlac_retazec(zx+rx-6,zy+ry+1,atributy[21],ret2); } } i=0; p=help; for(i=0;i<zaciatok;i++) while(*p++!='\n'); i=0; while(i<ry) { if(zaciatok+i>=pocet_riadkov) break; j=0; while(*p!='\n' && *p!='\0') if(j>=rx) break; else { tlac_znak(zx+1+j,zy+1+i,atributy[20],*p); p++; j++; } while(j<rx)tlac_znak(zx+1+j++,zy+1+i,atributy[20],' '); i++; p++; } while(i<ry) { j=0; while(j<rx)tlac_znak(zx+1+j++,zy+1+i,atributy[20],' '); i++; } switch(key()) { case ESC: case ENTER: zatvor_okno1(); return; case UP: if(zaciatok>0) zaciatok--; break; case DOWN: if(zaciatok+ry<pocet_riadkov) zaciatok++; break; case PGUP: if(zaciatok>ry) zaciatok-=ry; else zaciatok=0; break; case PGDOWN: if(zaciatok+ry<pocet_riadkov) zaciatok+=ry; break; case HOME: zaciatok=0; break; case END: zaciatok=pocet_riadkov-ry; break; } } } /*---------------------------------END--------------------------------------*/