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.
//************************************************************************// // STATIST.C // // Funkcie pre statisticke zobrazenie vypoctu // 11.11.1997 // //************************************************************************// #include <dos.h> #include "mbooldif.h" #include "glob.h" #include "error.h" #include "util.h" #include "video.h" #include "okno.h" #include "menu.h" //************************************************************************// // ZARAD_STAT zaradi statisticke informacie do struktury // // ako=0 pre udalostou 1=po udalosti 12.11.1997 // //************************************************************************// void zarad_stat( char text[], int ako ) { struct time t; long cas; gettime(&t); cas = t.ti_hund + 100.0 * ( t.ti_sec + 60.0 * ( t.ti_min + ( 60.0 * t.ti_hour ) ) ); if( ako == 0 ) { strcpy( s_stat[p_stat].s_text, text ); s_stat[ p_stat ].cas = cas; min_mem = 0; } else { s_stat[ p_stat ].cas = cas - s_stat[ p_stat ].cas + 1; s_stat[ p_stat ].pamet = 10*( min_mem +1 ); // pocas prace nastavuje min_mem funkcia pamet() min_mem = 0; if( p_stat < max_stat ) p_stat++; } } //************************************************************************// // STATISTIKA zobrazi udaje o priebehu vypoctu // // 11.11.1997 // //************************************************************************// int statistika( void ) { int zx,zy; int i; // devka FILE *tmp,*fopen(); // ulozi slovnik long c_cas=0; zx=_stlpcov/2-38; zy=_riadkov/2-10; if( view_okno(zx,zy,zx+76,zy+20,atributy[42],atributy[43],3," tatistick Łdaje ")==FALSE) { chybove_okno( chyba[1] ); return(1); } // ideme zapisovat do suboru tmp=fopen( strspoj( temp,TmpSubor[7] ) ,"w+t" );// tmp subor STATIST.TMP if ( tmp == NULL ) { chybove_okno(chyba[17]); // disk chraneny proti zapisu, alebo tak neako return( FALSE ); } // zistime celkovy cas for( i=0; i < p_stat; i++ ) c_cas = c_cas + s_stat[i].cas; fprintf( tmp,"\n Doteraj¨Ą vpoet mal nasledovn n roky \n" ); fprintf( tmp," ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ\n\n" ); // vypiseme for( i=0; i < p_stat; i++ ) fprintf( tmp," %23s = %4lu ms [%4.1f%c] %8lu b [%5.1f%c]\n", s_stat[i].s_text, (unsigned long)s_stat[i].cas, (float)( 100.0 * s_stat[i].cas/c_cas), 37, (unsigned long)s_stat[i].pamet, (float)( 100.0 * s_stat[i].pamet/volne_mem), 37 ); fprintf( tmp," ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ\n" ); fprintf( tmp," Celkom as = %4lu ms Pam : %4lu byte", c_cas, volne_mem ); fprintf( tmp,"\n\n Celkov as vpotu je bez zdranĄ sa pri komunik cii s uĄvateom."); fprintf( tmp,"\n Celkov pam vyjadruje vonŁ pam pre programov k˘dom a z sobnĄk.\n"); fclose( tmp ); zapni_kurzor(); zobraz_tmp ( TmpSubor[7],0 ); vypni_kurzor(); zatvor_okno(); return(0); } /*---------------------------------END--------------------------------------*/