This thesis contains program coding module for generation logics test by Boolean gap

Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
Category: Programs in C, C++

Program: Prac_ndf.cBooldif.zip
File exe: Booldif.exe
need: Adresar.cColor.cDerivac.cError.cFunkcie.cHelp.cKey.cLine_edi.cMain.cMenu.cObsluha.cOkno.cPrac_ndf.cSlovnik.cSlov_fon.cStatist.cUtil.cVideo.cVystupy.cAdresar.hColor.hDefine.hError.hFunkcie.hGlob.hKey.hLine_edi.hMbooldif.hMenu.hOkno.hSlov_fon.hUtil.hVideo.h
Example: Example.zipBin_10_o.ndfBin_10_o.ndfBin_1and.ndfBin_2rad.ndfBin_3rad.ndfBin_4rad.ndfHard.ndfI_reg_lo.ndfReg_jk.ndfScitac_s.ndfScp_1rad.ndfScp_2rad.ndfScp_2r_1.ndfScp_3rad.ndfScp_4r_2.ndfScp_6r_3.ndfScp_8r_4.ndfSc_1r_pj.ndfSc_1r_sj.ndfSc_1_aoi.ndfSc_2r_4.ndfSc_3r_6.ndfSc_7400n.ndfSc_aon.ndfSimp3_a.ndfSimp3_b.ndfSimp4_a.ndfSimp4_b.ndfSimp4_c.ndfSimp6_a.ndfTest_vod.ndfZle.ndf
Manual: Prirucky.zip

This thesis contains program coding module for generation logics test by Boolean gap. Compile vector of fault for existent circuit, forth about all boughs herself chauffeur. Results is absolute gauge. Program application enables four modes It is implemented in the C programming language for the operating system MS-DOS, or another compatible with it. The program is suitable for an interactive way to communicate with the user, allowing a comfortable working environment are similar to Turbo Vision.
/*****************************************************************************
*								             *
*                               Subor LINE_EDI.C                             *
*								             *
*****************************************************************************/
 
 
#include <string.h>
 
#include "glob.h"
#include "video.h"
#include "key.h"
#include "line_edi.h"
 
 
//************************************************************************//
// RIADKOVY_EDITOR							  //
//                                                            30.10.1997  //
//************************************************************************//
 
int riadkovy_editor(int zacx,int zacy,int sirka,int maxdlzka,unsigned char attr1,
		    unsigned char attr2,char *retazec)
{
   register int i;               //pomocna
   int zaciatocny=0;             //
   int aktualny=0;               //
   int koniec=0;                 //koniec cyklu
   int kl;                       //klaves
   int dlzka;                    //aktualna dlzka retazca
 
   dlzka=strlen(retazec);
   if(dlzka<sirka-2)
      {
      zaciatocny=0;
      aktualny=dlzka;
      }
   else
      {
      aktualny=sirka-2;
      zaciatocny=dlzka-aktualny;
      }
   tlac_riadkovy_editor(zacx,zacy,sirka,zaciatocny,attr1,attr2,retazec);
   presun_kurzor(zacx+1+aktualny,zacy);
   zapni_kurzor();
   switch(kl=key())
      {
      case ESC:vypni_kurzor();return FALSE;
      case ENTER:koniec=1;
      default:if(kl>=' ' && kl<=255)
		 {
		 *retazec='\0';
		 zaciatocny=0;
		 aktualny=0;
		 dlzka=0;
		 }
      }
   tlac_riadkovy_editor(zacx,zacy,sirka,zaciatocny,attr2,attr2,retazec);
   while(!koniec)
      {
      switch(kl)
	 {
	 case ESC:vypni_kurzor();return FALSE;
	 case ENTER:vypni_kurzor();return TRUE;
	 case BKSPC:if(aktualny+zaciatocny>0)
		       {
		       if(aktualny+zaciatocny<dlzka)
			  for(i=zaciatocny+aktualny;i<dlzka;i++)
			     retazec[i-1]=retazec[i];
		       retazec[--dlzka]='\0';
		       goto vlavo;
		       }
		    break;
vpravo:	 case RIGHT:aktualny++;
		       if(aktualny+zaciatocny>dlzka)
			  aktualny--;
		       else if(aktualny>sirka-2)
			       {
			       aktualny--;
			       zaciatocny++;
			       }
		    break;
vlavo:	 case LEFT: if(--aktualny<0)
		       {
		       aktualny++;
		       if(--zaciatocny<0)
			  zaciatocny++;
		       }
		    break;
	 case HOME: aktualny=0;
		    zaciatocny=0;
		    break;
	 case END:  if(dlzka<sirka-2)
		       {
		       zaciatocny=0;
		       aktualny=dlzka;
		       }
		    else
		       {
		       aktualny=sirka-2;
		       zaciatocny=dlzka-aktualny;
		       }
		    break;
	 case DEL:  if(aktualny+zaciatocny<dlzka)
		       {
		       for(i=zaciatocny+aktualny;i<dlzka;i++)
			  retazec[i]=retazec[i+1];
		       dlzka--;
		       }
		    break;
	 default:if(kl>=' ' && kl<=255 && dlzka<maxdlzka)
		    {
		    if(zaciatocny+aktualny>=dlzka)
		       {
		       if ( (kl>='A') && (kl<='Z') ) kl=kl + (224-'A');
		       retazec[dlzka++]=kl;
		       retazec[dlzka]='\0';
		       }
		    else
		       {
		       for(i=dlzka;i>zaciatocny+aktualny;i--)
			  retazec[i]=retazec[i-1];
		       if(dlzka<maxdlzka)
			  dlzka++;
		       retazec[dlzka]='\0';
		       retazec[zaciatocny+aktualny]=kl;
		       }
		    goto vpravo;
		    }
 
	 }
      tlac_riadkovy_editor(zacx,zacy,sirka,zaciatocny,attr2,attr2,retazec);
      presun_kurzor(zacx+1+aktualny,zacy);
      kl=key();
      }
   vypni_kurzor();
   return TRUE;
}
 
 
//************************************************************************//
// RIADKOVY_EDITOR1							  //
//                                                            30.10.1997  //
//************************************************************************//
 
int riadkovy_editor1(int zacx,int zacy,int sirka,int maxdlzka,unsigned char attr1,
		    unsigned char attr2,char *retazec)
{
   register int i;               //pomocna
   int zaciatocny=0;             //
   int aktualny=0;               //
   int koniec=0;                 //koniec cyklu
   int kl;                       //klaves
   int dlzka;                    //aktualna dlzka retazca
 
   dlzka=strlen(retazec);
   if(dlzka<sirka-2)
      {
      zaciatocny=0;
      aktualny=dlzka;
      }
   else
      {
      aktualny=sirka-2;
      zaciatocny=dlzka-aktualny;
      }
   tlac_riadkovy_editor(zacx,zacy,sirka,zaciatocny,attr1,attr2,retazec);
   presun_kurzor(zacx+1+aktualny,zacy);
   zapni_kurzor();
   switch(kl=key())
      {
      case ESC:  koniec=ESC;break;
      case ENTER:koniec=ENTER;break;
      case TAB:  koniec=TAB;break;
      case UP:   koniec=UP;break;
      case DOWN: koniec=DOWN;break;
      case F1 :  koniec=F1;break;
      case F6:   koniec=F6;break;
      default:if(kl>=' ' && kl<=255)
		 {
		 *retazec='\0';
		 zaciatocny=0;
		 aktualny=0;
		 dlzka=0;
		 }
      }
   tlac_riadkovy_editor(zacx,zacy,sirka,zaciatocny,attr2,attr2,retazec);
   while(!koniec)
      {
      switch(kl)
	 {
	 case ESC:  vypni_kurzor();return ESC;
	 case ENTER:vypni_kurzor();return ENTER;
	 case TAB:  vypni_kurzor();return TAB;
	 case UP:   vypni_kurzor();return UP;
	 case DOWN: vypni_kurzor();return DOWN;
	 case F1  : vypni_kurzor();return F1;
	 case F6  : vypni_kurzor();return F6;
	 case BKSPC:if(aktualny+zaciatocny>0)
		       {
		       if(aktualny+zaciatocny<dlzka)
			  for(i=zaciatocny+aktualny;i<dlzka;i++)
			     retazec[i-1]=retazec[i];
		       retazec[--dlzka]='\0';
		       goto vlavo;
		       }
		    break;
vpravo:	 case RIGHT:aktualny++;
		       if(aktualny+zaciatocny>dlzka)
			  aktualny--;
		       else if(aktualny>sirka-2)
			       {
			       aktualny--;
			       zaciatocny++;
			       }
		    break;
vlavo:	 case LEFT: if(--aktualny<0)
		       {
		       aktualny++;
		       if(--zaciatocny<0)
			  zaciatocny++;
		       }
		    break;
	 case HOME: aktualny=0;
		    zaciatocny=0;
		    break;
	 case END:  if(dlzka<sirka-2)
		       {
		       zaciatocny=0;
		       aktualny=dlzka;
		       }
		    else
		       {
		       aktualny=sirka-2;
		       zaciatocny=dlzka-aktualny;
		       }
		    break;
	 case DEL:  if(aktualny+zaciatocny<dlzka)
		       {
		       for(i=zaciatocny+aktualny;i<dlzka;i++)
			  retazec[i]=retazec[i+1];
		       dlzka--;
		       }
		    break;
	 default:if(kl>=' ' && kl<=255 && dlzka<maxdlzka)
		    {
		    if(zaciatocny+aktualny>=dlzka)
		       {
		       retazec[dlzka++]=kl;
		       retazec[dlzka]='\0';
		       }
		    else
		       {
		       for(i=dlzka;i>zaciatocny+aktualny;i--)
			  retazec[i]=retazec[i-1];
		       if(dlzka<maxdlzka)
			  dlzka++;
		       retazec[dlzka]='\0';
		       retazec[zaciatocny+aktualny]=kl;
		       }
		    goto vpravo;
		    }
 
	 }
      tlac_riadkovy_editor(zacx,zacy,sirka,zaciatocny,attr2,attr2,retazec);
      presun_kurzor(zacx+1+aktualny,zacy);
      kl=key();
      }
   vypni_kurzor();
   return koniec;
}
 
 
//************************************************************************//
// TLAC_RIADKOVY_EDITOR							  //
//                                                            30.10.1997  //
//************************************************************************//
 
int tlac_riadkovy_editor(int zacx,int zacy,int sirka,int zaciatocny,unsigned char attr1,
			  unsigned char attr2,char *ret)
{
   register int i=0;
   register int j=0;
 
   if(zaciatocny>0)
      tlac_znak(zacx,zacy,attr2,17);
   else tlac_znak(zacx,zacy,attr2,' ');
   while(zaciatocny-->0)ret++;
   for(i=0;i<sirka;i++)
      if(*ret=='\0')
	 {
	 for(j=i;j<sirka;j++)
	    tlac_znak(zacx+j+1,zacy,attr2,' ');
	 break;
	 }
      else
	 tlac_znak(zacx+i+1,zacy,attr1,*ret++);
   if(*ret!='\0')
      tlac_znak(zacx+sirka,zacy,attr2,16);
   else tlac_znak(zacx+sirka,zacy,attr2,' ');
   return i;
}
 
 
//************************************************************************//
// TLAC_OBMEDZENY_RETAZEC						  //
//                                                            30.10.1997  //
//************************************************************************//
 
void tlac_obmedzeny_retazec(int zacx,int zacy,int sirka,unsigned char attr,char *ret)
{
   register int i;
 
   if((i=strlen(ret))<sirka-2)
      tlac_riadkovy_editor(zacx,zacy,sirka,0,attr,attr,ret);
   else
      tlac_riadkovy_editor(zacx,zacy,sirka,i-sirka-2,attr,attr,ret);
}
 
 
/*---------------------------------END--------------------------------------*/