Ejemplo n.º 1
1
Archivo: parse.c Proyecto: yogmk/prog
int 
factor()
{
	int value = 0;

	switch (token)
	{
		case lparen:	gettok();
						value = expression();
						if (token != rparen)
							puts("missing ')'");
						else
							gettok();
						break;

		case number:	--pos;
						value = getnumber();
						gettok();
						break;
	
		default:		puts("error: expecting number or '('");
						break;
	}
	return value;
}
//setup the Servo PWM
void bpServo(void)
{
        unsigned int PWM_period, PWM_dutycycle;
		unsigned char entryloop=0;
        float PWM_pd;

        // Clear timers 
        T2CON = 0;              // clear settings
        T4CON = 0;
        OC5CON = 0;
        
        if(AUXmode == AUX_PWM){         //PWM is on, stop it
                if(cmdbuf[((cmdstart + 1)& CMDLENMSK)] == 0x00){//no extra data, stop servo
	                AUXPIN_RPOUT = 0;       //remove output from AUX pin
	                BPMSG1028;
	                AUXmode = AUX_IO;
	                return; // return if no arguments to function
				}
        }

        cmdstart=(cmdstart+1)&CMDLENMSK;

        // Get servo position from command line or prompt for value
        consumewhitechars();
        PWM_pd = getint();
        if (cmderror || (PWM_pd > 180)) {
                cmderror = 0;
                BPMSG1254;
                PWM_pd = getnumber(90, 0, 180, 0);
				entryloop=1;
        }


        // Setup multiplier for 50 Hz
servoset:   T2CONbits.TCKPS1 = 1;
        T2CONbits.TCKPS0 = 1;
        PWM_period = 1250;;
        PWM_pd /= 3500;
        PWM_dutycycle = (PWM_period * PWM_pd) + 62;

        //assign pin with PPS
        AUXPIN_RPOUT = OC5_IO;
        OC5R = PWM_dutycycle;
        OC5RS = PWM_dutycycle;
        OC5CON = 0x6;                   
        PR2     = PWM_period;   
        T2CONbits.TON = 1;      
        BPMSG1255;
        AUXmode=AUX_PWM;

		if(entryloop==1){
	       PWM_pd = getnumber(-1, 0, 180, 1);
			if(PWM_pd<0){
				bpWBR;
				return;
			}
			goto servoset;
		}

}
Ejemplo n.º 3
0
//align
LinkList AlignList(LinkList L, long long n)
{

    Node *p, *q;
    long long i;
    p = L->next;
    q = p->next;
    while (p->next)
    {
        if (n)
        {
            for (i = 0; i < n; i++)
                //p->data[5 - 1 - n + i] = p->data[i];
                p->data[9 - 1 - 1 - i] = p->data[n - 1 - i];
            for (i = 0; i < 9 - 1 - n; i++)
                p->data[i] = q->data[n + i];
        }
        p->num = getnumber(p->data);
        p = p->next;
        q = q->next;
    }
    if (n)
    {
        for (i = n; i < 9 - 1; i++)
            p->data[i] = '\0';
    }
    p->num = getnumber(p->data);
    return L;
}
Ejemplo n.º 4
0
/*
 * Read filter information data. The format is an ascii string:
 * filter-data		filter-format
 * vlan			1
 * vlan-mac		2
 * vlan--group		3
 * vlan-mac-group	4
 */
static bool getfid(struct vdpnl_vsi *p, char *value, long idx)
{
	char *delim2 = 0, *delim = strchr(value, '-');
	unsigned int vlan, gpid = 0;
	int fif, i, have_mac = 1, have_gpid = 1;
	unsigned char x[ETH_ALEN];

	memset(x, 0, sizeof(x));
	if (!delim)		/* No dash --> no mac, no group */
		have_gpid = have_mac = 0;
	else {
		*delim = '\0';
		delim2 = strchr(delim + 1, '-');
		if (!delim2)	/* No 2nd dash --> have mac but no group */
			have_gpid = 0;
		else {		/* 2 dashes --> check for mac */
			*delim2 = '\0';
			if (delim + 1 == delim2)
				/* -- means vlan and group without mac */
				have_mac = 0;
		}
	}
	if (!getnumber(value, 0, 0xffff, &vlan))
		return false;
	fif = VDP22_FFMT_VID;
	if (have_mac) {
		i = sscanf(delim + 1,
			   "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
			   &x[0], &x[1], &x[2], &x[3], &x[4], &x[5]);
		if (i != ETH_ALEN)
			return false;
		fif = VDP22_FFMT_MACVID;
	}

	/* Check for optional group identifier */
	if (have_gpid && *(delim2 + 1)) {
		if (!getnumber(delim2 + 1, 1, ~0U, &gpid))
			return false;
		fif += 2;
	}

	/* We already have filter information data, filter format must match */
	if (p->filter_fmt && p->filter_fmt != fif)
		return false;
	p->filter_fmt = fif;

	/* Check if this mac is already in our list */
	for (i = 0; have_mac && i < p->macsz; ++i) {
		if (!memcmp(x, p->maclist[i].mac, sizeof(p->maclist[i].mac)))
			return false;
	}

	/* Append to end of list */
	p->maclist[idx].vlan = vdp22_get_vlanid(vlan);
	p->maclist[idx].qos = vdp22_get_qos(vlan);
	p->maclist[idx].gpid = gpid;
	memcpy(p->maclist[idx].mac, x, sizeof(p->maclist[0].mac));
	return true;
}
void picinit(void)
{	int mode, delay;
	int interactive;

	consumewhitechars();
	mode=getint();
	consumewhitechars();
	delay=getint();
	interactive=0;

	if(!((mode>0)&&(mode<=2)))
	{	interactive=1;
	}

	if((delay>0)&&(delay<=2))
	{	piccmddelay=delay;
	}
	else
	{	interactive=1;
	}

	if(interactive)
	{	cmderror=0;

		//bpWline("Commandmode");
		//bpWline("1. 6b/14b");
		//bpWline("2. 4b/16b");
		BPMSG1072;
	
		mode=getnumber(1,1,2,0); 

		//bpWline("Delay");
		BPMSG1073;
		delay=getnumber(1,1,2,0);
	}

	switch(mode)
	{	case 1:	picmode=PICMODE6;
				break;
		case 2: picmode=PICMODE4;
				break;
		default: break;
	}
	piccmddelay=delay;

	if(!interactive)
	{	//bpWstring("PIC(mod dly)=(");
		BPMSG1074;
		bpWdec(picmode); bpSP;
		bpWdec(piccmddelay);
		bpWline(")");
	}

	modeConfig.HiZ=1;				// to allow different Vcc 
	modeConfig.int16=1;
	bbL(MOSI|CLK, PICSPEED);		// pull both pins to 0 before applying Vcc and Vpp
}
Ejemplo n.º 6
0
static void fm_init(lua_State *lstate, GEN *gen) {
	GEN_FM *data;
	gen->data = (void *)malloc(sizeof(GEN_FM));
	data = (GEN_FM *)gen->data;
	getnumber(lstate, "freq", &(data->freq));
	getnumber(lstate, "mod", &(data->modf));
	getnumber(lstate, "beta", &(data->beta));
	data->step = data->freq / jack_sr * TWO_PI;
	data->modstep = data->modf / jack_sr * TWO_PI;
	data->modphase = 0.0;
	gen->phase = 0.0;
	}
Ejemplo n.º 7
0
int onImport_Tiles()
{
    int ret=getnumber("Import Start Page",0);
    
    if(cancelgetnum)
    {
        return D_O_K;
    }
    
    bound(ret,0,TILE_PAGES-1);
    
    if(!getname("Import Tiles (.til)","til",NULL,datapath,false))
        return D_O_K;
        
    saved=false;
    
    // usetiles=true;
    if(!load_tiles(temppath, ret*TILES_PER_PAGE))
    {
        char buf[80],name[13];
        extract_name(temppath,name,FILENAME8_3);
        sprintf(buf,"Unable to load %s",name);
        jwin_alert("Error",buf,NULL,NULL,"O&K",NULL,'k',0,lfont);
    }
    
    refresh(rALL);
    return D_O_K;
}
Ejemplo n.º 8
0
int onImport_Combos()
{
    int ret=getnumber("Import Start Page",0);
    
    if(cancelgetnum)
    {
        return D_O_K;
    }
    
    bound(ret,0,COMBO_PAGES-1);
    
    if(!getname("Import Combo Table (.cmb)","cmb",NULL,datapath,false))
        return D_O_K;
        
    if(!load_combos(temppath, ret*COMBOS_PER_PAGE))
    {
        // if(!load_combos(temppath)) {
        char buf[80],name[13];
        extract_name(temppath,name,FILENAME8_3);
        sprintf(buf,"Unable to load %s",name);
        jwin_alert("Error",buf,NULL,NULL,"O&K",NULL,'k',0,lfont);
    }
    else
        saved=false;
        
    refresh(rALL);
    return D_O_K;
}
Ejemplo n.º 9
0
unsigned long getarg(void) {
    int state = rand() % 5;
    static char b[128];

    switch(state) {
    /* userland addr */
    case 0:
        return 0x0804fd00;
        break;
    /* unmapped addr */
    case 1:
        return 0x0000a000;
        break;
    /* kernel addr, this is a guess ... should actually get a real one ...  */
    case 2:
        return 0xc01fa0b6;
        break;
    /* some number */
    case 3:
        return getnumber();
        break;
    case 4:
        getrand(b);
        return &b;
        break;
    }
}
Ejemplo n.º 10
0
Archivo: se.c Proyecto: Surya361/ds-lab
void main()
{
	char *a;
	a = malloc(7*sizeof(char));
	printf("enter the file name : \n");
	scanf("%s",a);
	FILE *p;
	p = fopen(a,"r+");
	if(p == NULL)
	{
		printf("invalid file name\n");
		exit(1);
	}
	int sm = getnumber(p);
	printf("%d\n",sm);
	char **zo;
	zo = read(p);
	int n = **zo;
	printf("%d\n",n);
	*zo++;
//	selection_sort(zo,n,sm);
	char *ans;
	ans = malloc(10*sizeof(char));
	ans = randomized(zo,0,n-1,sm);
	printf("%s\n",ans);
	
}
Ejemplo n.º 11
0
int main()
{
	while(scanf("%d", &n) == 1 && n)
	{
		char op[10]; scanf("%s", op);
		if(op[0] == 'S')
		{
			scanf("%s", tmp);
			memset(a, '.', sizeof(a));
			for(int i = 0; i < n; i++) getans(tmp[i] - '0', i*2);
			for(int i = 1; i <= 3; i++)
			{
				for(int j = 0; j < 2*n; j++)
				{
					printf("%c", a[i][j]);
					if((j&1) && j != 2*n-1) putchar(' ');
				}
				puts("");
			}
		}
		else if(op[0] == 'B')
		{
			for(int i = 1; i <= 3; i++)
				for(int j = 0; j < 2 * n; j++)
				{
					scanf(" %c", &a[i][j]);
				}
			for(int j = 0; j < n; j++) printf("%d", getnumber(j*2));
			puts("");
		}
	}
	return 0;
}
Ejemplo n.º 12
0
void rxgetnumber(struct RexxMsg *mess)
{
	int minvarde, maxvarde, defaultvarde, returvarde;
	char retstr[15];
	char *pek1 = NULL, *pek2 = NULL, *pek3 = NULL;

	pek1=hittaefter(mess->rm_Args[0]);
	if(pek1)
		pek2=hittaefter(pek1);
	if(pek2)
		pek3=hittaefter(pek2);

	if(pek1[0] && !pek2[0])
	{
		defaultvarde = atoi(pek1);
		returvarde = getnumber(0, 0, &defaultvarde);
	}
	else if(pek1[0] && pek2[0])
	{
		minvarde = atoi(pek1);
		maxvarde = atoi(pek2);
		if(pek3[0])
		{
			defaultvarde = atoi(pek3);
			returvarde = getnumber(&minvarde, &maxvarde, &defaultvarde);
		}
		else
		{
			returvarde = getnumber(&minvarde, &maxvarde, 0);
		}

	}
	else
	{
		returvarde = getnumber(0, 0, 0);
	}

	sprintf(retstr,"%d",returvarde);
	if(mess->rm_Action & 1L<<RXFB_RESULT)
	{
		if(!(mess->rm_Result2=(long)CreateArgstring(retstr,strlen(retstr))))
			puttekn("\r\n\nKunde inte allokera en Argstring!\r\n\n",-1);
	}
	mess->rm_Result1=0;

}
Ejemplo n.º 13
0
static void sine_init(lua_State *lstate, GEN *gen) {
	GEN_SINE *data;
	gen->data = (void *)malloc(sizeof(GEN_SINE));
	data = (GEN_SINE *)gen->data;
	getnumber(lstate, "freq", &(data->freq));
	data->step = data->freq / jack_sr * TWO_PI;
	gen->phase = 0.0;
	return;
	}
Ejemplo n.º 14
0
double GDosoptions::getthreshold()const{
    double value=getnumber(thresholdedit->text())/100.0;
    if (value<0){
        value=0.0;
    }
    if (value>1.0){
        value=1.0;
    }
  return value; //return not in percent but as fraction
}
Ejemplo n.º 15
0
Archivo: line.c Proyecto: erukiti/ma
SHELL	void	line_last(uint i)
{
	if (i==0)
		{
		 msgout("メッセージを読み直します。何ライン前から読み直しますか?");
		 i=getnumber();
		}
	msgout("  ▼伝言板▽");
	disp_last(ed.fpe,i);
	clearerr(ed.fpe);
}
Ejemplo n.º 16
0
static int new_obj(lua_State *lstate) {
	GEN *gen;
	lua_Number duration, gain;
	char gentype[64];
	duration = -1.0;
	gain = 1.0;
	strcpy(gentype, lua_tostring(lstate, -2));
	lua_remove(lstate, -2);
	getnumber(lstate, "duration", &duration);
	getnumber(lstate, "gain", &gain);
	gen = (GEN *)malloc(sizeof(GEN));
	gen->data = NULL;
	gen->init = NULL;
	gen->generate = NULL;
	gen->phase = 0.0;
	if (strcmp(gentype, "fm") == 0) {
		fm_init(lstate, gen);
		gen->generate = fm_generate;
		}
	else if (strcmp(gentype, "sine") == 0) {
		sine_init(lstate, gen);
		gen->generate = sine_generate;
		}
	else if (strcmp(gentype, "white") == 0) {
		gen->generate = white_generate;
		}
	lua_pop(lstate, 1);
	lua_newtable(lstate);
	init_fader(&(gen->unit.fader), gain);
	gen->running = 0;
	lua_pushstring(lstate, "intern");
	lua_pushlightuserdata(lstate, (void *)gen);
	lua_settable(lstate, -3);
	add_method(lstate, "play", gen_play);
	add_fader_methods(lstate);
	add_method(lstate, "stop", gen_stop);
	gen->final_frame = duration * jack_sr;
	gen->pos = 0;
	return 1;
	}
Ejemplo n.º 17
0
int main(int argc, char **argv) {
	int i, fork_result;
	char *client_number = NULL;
	int total_cleints;
	int file_id, dimension;

	umask (0);	
	
	if (argc<2)
		my_error ("You should enter a number of clients!\n\0");	

	total_cleints = getnumber (argv[1]);

	file_check();

	if ((file_id=open (TMPFILE,O_RDONLY))<0)
		my_error ("Error when open file!\n\0");

	if (read(file_id,&dimension,sizeof(int))!=sizeof(int))
		my_error ("error when reading from file!\n\0");
	
	if ( total_cleints > dimension * dimension )
		total_cleints = dimension * dimension;

	if (close(file_id) < 0)
		my_error ("Error when closing file!\n\0");


	printf (" total %i clients \n",total_cleints);

	for (i=0; i<total_cleints; ++i) {
		fork_result=fork();
		if (fork_result < 0)
			my_error ("Can not run fork!\n\0");
		else if (fork_result == 0) {
			client_number = (char*) malloc (sizeof(char)*(get_number_symbols (i+1) + 1));
			snprintf (client_number, get_number_symbols (i+1)+1, "%i", i + 1);
			execl ("./client.out","./client.out" , client_number , NULL);
			my_error ("Can not run client application!\n\0");
		}
	}
		
	

	free_all_pointers();
	
	execl ("./server.out","./server.out", argv [1], NULL);

	my_error ("Can not run server!\n\0");
	
	return -1;
}
Ejemplo n.º 18
0
void term(){
	if(look == '*'){
		match("*");
		term();
		emitln("xor ebx, ebx");
		settype(reduceptr(current_type));
		STRSWITCH(current_type)
			STRCASE("short")
				emitln("mov bx, word [eax]");
			STRCASE("char")
				emitln("mov bl, byte [eax]");
			STRDEFAULT
				emitln("mov ebx, dword [eax]");
		STRSWITCHEND
		emitln("xchg eax, ebx");
	} else if(look == '('){
		match("(");
		emitln("push eax");
		expression();
		match(")");
	}

	else if(look == '"'){
		emitln("mov eax, %s", add_string(getstring('"')));
		current_type = "char*";
	}
	
	else if(look == '\''){
		match("'");
		emitln("mov eax, %d", look);
		getcharacter();
		match("'");
		current_type = "char";
	}

	else if(is_in(dynstring("%c", look), "+", "-", NULL)){
		emitln("push dword 0");
		operator();
	}

	else if(isalpha(look)){
		identifier();
	}

	else if(isdigit(look)){
		emitln("mov eax, %s", getnumber());
	}

	else
		expected("Number or variable");
}
Ejemplo n.º 19
0
int
POL::gettok (TOKEN *tok)
{
  int c, toktype;
  int inum;
  double fnum;
  int toksiz = MAXTOK;          /* maximum length of token string */

  while ((c = inchar()) == BLANK || c == TAB)
    ;
  ungetch (c);

  c = lookchar();
  toktype = type(c);

  fnum = 0.0;
  inum = 0;

  if (c == BLANK || c == TAB) {                 /* skip white space */
    getblank(tok->tokstr, toksiz);
    toktype = TT_BLANK;
  } else if (toktype == LETTER) {
    toktype = getalpha (tok->tokstr, toksiz);
  } else if (c == meta.str) {                   /* quoted string */
    getquote (tok->tokstr, toksiz);
    toktype = TT_STRING;
  } else if (type(c) == DIGIT || c == PLUS || c == HYPHEN || c == PERIOD) {
    toktype = getnumber (tok->tokstr, toksiz, &fnum, &inum);
  } else if (c == EOF) {
    tok->tokstr[0] = EOS;
    toktype = TT_EOF;
  } else {
    c = inchar();
    tok->tokstr[0] = c;
    tok->tokstr[1] = EOS;
    toktype = TT_SPECLCHAR;
  }

  tok->type = toktype;
  tok->ready = true;
  if (tok->type == TT_REAL || tok->type == TT_INT) {
    tok->fnum = fnum;
    tok->inum = inum;
  } else {
    tok->fnum = 0.0;
    tok->inum = 0;
  }

  return (toktype);
}
Ejemplo n.º 20
0
void history(char command[100])
{
	int num,i,j,k;
	if(strstr(command,"hist")!=NULL && strlen(command)==4) {
		for(i=0;i<histlen-1;i++)
			printf("%d %s\n",i+1,hist[i]);
	}
	else if(strstr(command,"!")==NULL) {
		num=getnumber(command);
		k=histlen-num-1;
		if(k < 0) k=0;
		else if(num > histlen)  k=0; 
		for(i=k;i<histlen-1;i++) printf("%d %s\n",i-(k-1),hist[i]); 
	}
	else {
		histlen--;
		num=getnumber(command);
		char com[100];
		if(num > histlen) num=histlen;
		strcpy(com,hist[num-1]);
		strcpy(hst,com);
	}
}
Ejemplo n.º 21
0
BOOL getword_switch(){
  static char ch = ' ';
  if(EOF == ch){
    return FALSE;
  }
  getblank(&ch);
  if(getnumber(&ch)){
    return TRUE;
  }
  if(getidentify(&ch)){
    return TRUE;
  }
  getdouble_or_single_token(&ch);
  return TRUE;
}
Ejemplo n.º 22
0
// Parse a float in 'token'.
// Report an error if it's an integer or not a string of digits or empty
float getfloat(int linenr, int pos, char * token, char * wholeline)
{
    int intval = 0;
    float fltval = 0.0;
    int ntype;

    ntype  = getnumber(token, &intval, &fltval);
    if(ntype == -2) { // Found rubbish
        tokenerr("Float", linenr, pos, token, 1, wholeline);
    } else if (ntype == -1) {   // Found nothing
        tokenerr("Float", linenr, pos, "nothing", 0, wholeline);
    } else if (ntype == 1) {    // Found integer
        tokenerr("Float", linenr, pos, "integer", 0, wholeline);
    }
    return fltval;
}
Ejemplo n.º 23
0
void getevents(){
	int file;	TString name;
	for(int dataset=0;dataset<3;dataset++){
	int totevent=0;	
	if(dataset==0){	file = 221; name = "pPbReReco";}
	else if(dataset==1){ file = 556; name = "pPb";}
	else{	file = 703; name = "Pbp";}

	for(int i=0;i<file;i++){
		TFile *f = TFile::Open(Form("/lio/lfs/cms/store/user/qixu/flow/PACorrHM/skim/PFcandi/pbs/M300260/FlowHM%s/pPbskimAnaTree_%d.root",name.Data(),i));
		TTree *tr = (TTree*)f->Get("demo/PFTree");
		int nevent=tr->GetEntries();
		totevent+=nevent;
		f->Close();
		delete f;
	}

	TFile *fskim = TFile::Open(Form("/cms/store/user/qixu/flow/PACorrHM/skim/tracknormcpt03to6/multiM300260/FlowLYZHM%s/mergedTree.root",name.Data()));
	TTree *tree = (TTree*)fskim->Get("demo/TrackTree");
	int neventfromtrack = tree->GetEntries();
	fskim->Close();		

	int totevent1=0;
	for(int i=0;i<getnumber(Form("/home/xuq7/HI/flow/LYZ/v2/PFcandpt01to10/M300260/filelistcrab%s.dat",name.Data()));i++){
		string crabfilename = readline(Form("/home/xuq7/HI/flow/LYZ/v2/PFcandpt01to10/M300260/filelistcrab%s.dat",name.Data()),i);
		TFile *fcrab = TFile::Open(crabfilename.c_str());
		TTree *tr1 = (TTree*)fcrab->Get("demo/PFTree");
		int nevent1 = tr1->GetEntries();
		totevent1+=nevent1;
		fcrab->Close();
		delete fcrab;
	}

	cout<<"Pbs result for "<<name<<" = "<<totevent<<";Crab result = "<<totevent1<<"; track result = "<<neventfromtrack<<endl;
	}

	TFile *ftot = TFile::Open("/home/xuq7/HI/flow/LYZ/v2/tracknormcpt03to6/M300260/mergedV_Sum.root");
	TVectorD* Nevent = (TVectorD*)ftot->Get("Nevent");
	cout<<"totevent = "<<(*Nevent)[0]<<endl;
	ftot->Close();
}
Ejemplo n.º 24
0
uint8 DreamGenContext::printslow(const uint8 *string, uint16 x, uint16 y, uint8 maxWidth, bool centered) {
	data.byte(kPointerframe) = 1;
	data.byte(kPointermode) = 3;
	const Frame* charSet = (const Frame *)segRef(data.word(kCharset1)).ptr(0, 0);
	do {
		uint16 offset = x;
		uint16 charCount = getnumber(charSet, string, maxWidth, centered, &offset);
		do {
			uint8 c0 = string[0];
			uint8 c1 = string[1];
			uint8 c2 = string[2];
			c0 = engine->modifyChar(c0);
			printboth(charSet, &offset, y, c0, c1);
			if ((c1 == 0) || (c1 == ':')) {
				return 0;
			}
			if (charCount != 1) {
				c1 = engine->modifyChar(c1);
				data.word(kCharshift) = 91;
				uint16 offset2 = offset;
				printboth(charSet, &offset2, y, c1, c2);
				data.word(kCharshift) = 0;
				for (int i=0; i<2; ++i) {
					uint16 mouseState = waitframes();
					if (mouseState == 0)
						continue;
					if (mouseState != data.word(kOldbutton)) {
						return 1;
					}
				}
			}

			++string;
			--charCount;
		} while (charCount);
		y += 10;
	} while (true);
}
Ejemplo n.º 25
0
void DreamGenContext::printdirect(const uint8** string, uint16 x, uint16 *y, uint8 maxWidth, bool centered) {
	data.word(kLastxpos) = x;
	const Frame *charSet = (const Frame *)segRef(data.word(kCurrentset)).ptr(0, 0);
	while (true) {
		uint16 offset = x;
		uint8 charCount = getnumber(charSet, *string, maxWidth, centered, &offset);
		uint16 i = offset;
		do {
			uint8 c = (*string)[0];
			uint8 nextChar = (*string)[1];
			++(*string);
			if ((c == 0) || (c == ':')) {
				return;
			}
			c = engine->modifyChar(c);
			uint8 width, height;
			printchar(charSet, &i, *y, c, nextChar, &width, &height);
			data.word(kLastxpos) = i;
			--charCount;
		} while(charCount);
		*y += data.word(kLinespacing);
	}
}
Ejemplo n.º 26
0
void main()
{
	char *a;
	a = malloc(7*sizeof(char));
	printf("enter the file name : \n");
	scanf("%s",a);
	FILE *p;
	p = fopen(a,"r+");
	if(p == NULL)
	{
		printf("invalid file name\n");
		exit(1);
	}
	int n = getnumber(p);
	char **zo;
	zo = read(p,n);
	clock_t start = clock();
	selection_sort(zo,n);
	clock_t end = clock();
	double time = (end-start)/CLOCKS_PER_SEC;
	print(zo,n);
	printf("running time is: %f",time);
	
}
Ejemplo n.º 27
0
int main()
{
	while(scanf("%s",number)!=EOF){
		int i,num;
		t=1;
		len=strlen(number);
		for(i=0;i<len;i++){
			int xx;
			if(number[i]<='9')
				xx=number[i]-'0';
			else if(number[i]>='a')
				xx=number[i]-'a'+36;
			else 
				xx=number[i]-'A'+10;
			if(t<xx)t=xx;
		}
		num=getnumber();
		for(i=t+1;i<=62;i++){
			if(!(num%(i-1)))break;
		}
		printf("%d\n",i);
	}
	return 0;
}
Ejemplo n.º 28
0
Interval getbounds(int *cnt, size_t hasuform, char *uform, Miscellaneous *miscell, int *tl_yychar)
{	
	char cc;
	Interval time;

	/* remove spaces */
	do 
	{	cc = tl_Getchar(cnt, hasuform, uform);
	} while (cc == ' ');
	
	if (cc!='[' && cc!='(')
	{
		tl_UnGetchar(cnt);
		tl_yyerror("expected '(' or '[' after _", cnt, uform, tl_yychar, miscell);
		tl_exit(0);
	}

	/* is interval closed? */
	if (cc=='[')
		time.l_closed = 1;
	else
		time.l_closed = 0;

	/* remove spaces */
	do 
	{	cc = tl_Getchar(cnt, hasuform, uform);
	} while (cc == ' ');
	
	/* get lower bound */
	/* Peer reviewed on 2013.11.08 by Dokhanchi, Adel */
	miscell->TimeCon.l_par=0;
	miscell->TimeCon.u_par=0;
	miscell->lbd = true;
	time.lbd = getnumber(cc, cnt, hasuform, uform, tl_yychar, miscell);
	/* Peer reviewed on 2013.11.08 by Dokhanchi, Adel */
	time.l_par = miscell->TimeCon.l_par;
	/*time.u_par = miscell->TimeCon.u_par;*/

	if (e_le(time.lbd,miscell->zero,&(miscell->dp_taliro_param)))
	{
		tl_UnGetchar(cnt);
		tl_yyerror("past time operators are not allowed - only future time intervals.", cnt, uform, tl_yychar, miscell);
		tl_exit(0);
	}

	/* remove spaces */
	do 
	{	cc = tl_Getchar(cnt, hasuform, uform);
	} while (cc == ' ');

	if (cc!=',')
	{	
		tl_UnGetchar(cnt);
		tl_yyerror("timing constraints must have the format <num1,num2>.", cnt, uform, tl_yychar, miscell);
		tl_exit(0);
	}

	/* remove spaces */
	do 
	{	cc = tl_Getchar(cnt, hasuform, uform);
	} while (cc == ' ');

	/* get upper bound */
	miscell->lbd = false;
	time.ubd = getnumber(cc, cnt, hasuform, uform, tl_yychar, miscell);
	/* Peer reviewed on 2013.11.08 by Dokhanchi, Adel 
	time.l_par = miscell->TimeCon.l_par;*/
	time.u_par = miscell->TimeCon.u_par;

	if (e_ge(time.lbd,time.ubd,&(miscell->dp_taliro_param)))
	{	tl_UnGetchar(cnt);
		tl_yyerror("timing constraints must have the format <num1,num2> with num1 <= num2.", cnt, uform, tl_yychar, miscell);
		tl_exit(0);
	}

	/* remove spaces */
	do 
	{	cc = tl_Getchar(cnt, hasuform, uform);
	} while (cc == ' ');

	if (cc!=']' && cc!=')')
	{
		tl_UnGetchar(cnt);
		tl_yyerror("timing constraints must have the format <num1,num2>, where > is from the set {),]}", cnt, uform, tl_yychar, miscell);
		tl_exit(0);
	}

	/* is interval closed? */
	if (cc==']')
		time.u_closed = 1;
	else
		time.u_closed = 0;

	return(time);

}
Ejemplo n.º 29
0
INT32 GisLexAwkt::GetToken()
{
    // Save start position of the previous symbol
    m_cprev = m_cc;

    // Save previous token
    m_lastToken = m_token;

    // Get next not blank character
    m_ch = find_nonblank();

    // Stream is over
    if (m_ch == '\0')
    {
        m_token = GisToken_End;
        m_prevToken = m_token;
        return m_token;
    }

    // Is it keyword ?
    if (iswalpha(m_ch))
    {
        wchar_t     word[maxCharLength];

        // Get keyword
        getword(word, sizeof(word)/sizeof(wchar_t));

        // Is it a valid keyword for this grammar?
        INT32   tktmp;
        if ((tktmp = FindKeyWord(word, g_aAwktWords, AWKTKEYWORDCOUNT)) != GisToken_Undefined)
        {
            m_token = tktmp;
        }
        else
        {
            m_token = GisToken_Undefined;
        }
    }

    // Is it a numeric constant?
    else if (iswdigit(m_ch))
    {
        // m_token is real or integer number
        getnumber(false);
    }

    // negative values
    else if (m_ch == '-')
    {
        m_ch = if_getch();
        m_ch = find_nonblank();
        getnumber(true);
    }

    // comma
    else if (m_ch == ',')
    {
        m_token = GisToken_Comma;
        m_ch = if_getch();

    }
    // left parenthesis
    else if (m_ch == '(')
    {
        m_token = GisToken_LeftParenthesis;
        m_ch = if_getch();

    }
    // right parenthesis
    else if (m_ch == ')')
    {
        m_token = GisToken_RightParenthesis;
        m_ch = if_getch();
    }

    // something bad
    else
    {
        m_token = GisToken_Error;
        m_ch = if_getch();
    }

    m_prevToken = m_token;
    return m_token;
}
Ejemplo n.º 30
0
int main() {
	FILE* fp=fopen("input.txt", "rb");
	if(!fp) {
		fprintf(stderr, "[ERROR] Can not open file 'input.txt' for reading (%d).\n", __LINE__);
		return 1;
	}
	FILE* fp2=fopen("output2.txt", "wb");
	if(!fp2) {
		fprintf(stderr, "[ERROR] Can not open file 'output.txt' for writing (%d).\n", __LINE__);
		return 2;
	}
	char buf[5];//2 digits, \r\n, \0
	int res=0;
	int size=1;
	int number=0;
	while(size>0) {
		res=getnumber(buf, 5, ' ', fp);
		assert(buf[0]>='0');
		assert(buf[0]<='9');
		int size=(buf[0]-'0');
		if(buf[1]>='0'&&buf[1]<='9') {
			size*=10;
			size+=(buf[1]-'0');
		}
		memset(buf, '\0', 5);
		printf("[INFO] size=%d\n", size);
		if(size==0) {
			fprintf(stderr, "[INFO] end of file (%d).\n", __LINE__);
			break;
		}
		char* tableau=(char*)calloc(size, sizeof(char));
		int index=0;
		for(int i=0;i<size;++i) {
			res=getnumber(buf, 5, ' ', fp);
			number=(buf[0]-'0');
			if(res==2) {
				number*=10;
				number+=(buf[1]-'0');
			}
			memset(buf, '\0', 5);
			assert( res==1 || res==2 );
			tableau[index]=number;
			++index;
		}
		//tableau read
		int sum=0;
		for(int i=0;i<size;++i) {
			sum+=tableau[i];
		}
		printf("[INFO] sum=%d\n", sum);
		if(sum/size*size==sum) {
			printf("[INFO] équilibrage possible.\n");
			int avg=sum/size;
			printf("[INFO] valeur moyenne: %d\n", avg);
			res=0;
			for(int i=0;i<size;++i) {
				if(tableau[i]!=avg) res=1;
			}
			/*équilibrage start*/
			if(res==0) {
				printf("tableau déjà équilibré.\n");
			}
			int iter=0;
			fprintf(fp2, "%d : ", iter);
			show(fp2, tableau, size);
			while(res!=0) {
				res=0;
				for(int i=0;i<size;++i) {
					if(tableau[i]!=avg) res=1;
				}
				if(res==0) break;
				/*équilibrage start*/
				for(int i=0;i<size-1;++i) {
					if( tableau[i]>avg && tableau[i+1]<=avg ) {
							--tableau[i];
							++tableau[i+1];
					}
					/*else if( tableau[i]<avg && tableau[i+1]>=avg ) {
							++tableau[i];
							--tableau[i+1];
					}//*/
					else if( tableau[i]>avg && tableau[i+1]>=avg && tableau[i]>(tableau[i+1]+1) ) {
							--tableau[i];
							++tableau[i+1];
					}
					/*else if( tableau[i]<avg && tableau[i+1]<=avg && tableau[i]<(tableau[i+1]-1) ) {
							++tableau[i];
							--tableau[i+1];
					}//*/
					else if( i>0) {
						if( tableau[i]>avg && tableau[i-1]<=avg ) {
								--tableau[i];
								++tableau[i-1];
						}
						/*else if( tableau[i]<avg && tableau[i-1]>=avg ) {
								++tableau[i];
								--tableau[i-1];
						}//*/
						else if( tableau[i]>avg && tableau[i-1]>=avg && tableau[i]>(tableau[i-1]+1) ) {
								--tableau[i];
								++tableau[i-1];
						}
						/*else if( tableau[i]<avg && tableau[i-1]<=avg && tableau[i]<(tableau[i-1]-1) ) {
								++tableau[i];
								--tableau[i-1];
						}//*/
					}
				}
				{
					int i=size-1;
					//repeat start
					if( tableau[i]>avg && tableau[i-1]<=avg ) {
							--tableau[i];
							++tableau[i-1];
					}
					/*else if( tableau[i]<avg && tableau[i-1]>=avg ) {
							++tableau[i];
							--tableau[i-1];
					}//*/
					else if( tableau[i]>avg && tableau[i-1]>=avg && tableau[i]>(tableau[i-1]+1) ) {
							--tableau[i];
							++tableau[i-1];
					}
					/*else if( tableau[i]<avg && tableau[i-1]<=avg && tableau[i]<(tableau[i-1]-1) ) {
							++tableau[i];
							--tableau[i-1];
					}//*/
				}
				//repeat stop
				++iter;
				fprintf(fp2, "%d : ", iter);
				show(fp2, tableau, size);
				if(iter==15000) {
					printf("[INFO] probably error\n");
					break;
				}
			}
			/*équilibrage stop*/
		}
		else {
			printf("[INFO] équilibrage PAS possible.\n");
			fprintf(fp2, "-1\n");
		}
		res=getnumber(buf, 5, ' ', fp);
		assert(res==0);//empty line
		assert(buf[0]=='\0'||buf[0]=='\r'||buf[0]=='\n');
	}
	fclose(fp2);
	fp2=fopen("output2.txt", "rb");
	FILE* fp3=fopen("output.txt", "wb");
	long pos=0;//début iter
	long pos2=0;//fin iter
	long pos3=0;//temp
	char* buffer=(char*)calloc(6400, sizeof(char));
	number=-1;
	int number2=-2;
	int number3=-2;
	number=0;
	pos=ftell(fp2);
	while(!feof(fp2)) {
		memset(buffer, '\0', 6400);
		if(fgets(buffer, 6400, fp2)==NULL) {//lire ligne
			if(feof(fp2)) {
				/*printf("(%d) ", __LINE__);
				printf("End-Of-File.\n");//*/
			}
		}
		sscanf(buffer, "%d ", &number);//récupérer numéro iter
		if(number==-2) break;
		if(number>number2) {
			number2=number;
			pos3=ftell(fp2);//position dernière iter (après)
		}
		else {//plus petit = new tableau
			pos2=pos3;//set fin iter
			fprintf(fp3, "%d\n", number2);//dernière iter
			fseek(fp2, pos, SEEK_SET);//go début iter
			while(ftell(fp2)<pos2) {
				if(fgets(buffer, 6400, fp2)==NULL) {//lire ligne
					if(feof(fp2)) {
						/*printf("(%d) ", __LINE__);
						printf("End-Of-File.\n");//*/
					}
					break;
				}
				fprintf(fp3, "%s", buffer);
			}
			fprintf(fp3, "\n");
			pos=pos2;
			number=-1;
			number2=-2;
			number3=-2;
		}
		if(strcmp(buffer, "-1")==0||strcmp(buffer, "-1\r")==0||strcmp(buffer, "-1\n")==0||strcmp(buffer, "-1\r\n")==0||strcmp(buffer, "-1\n\r")==0) {
			fprintf(fp3, "-1\n\n");
			res=getnumber(buf, 5, ' ', fp);
			assert(res==0);
			if(feof(fp2)) break;
			res=getnumber(buf, 5, ' ', fp);
			assert(res==0);
			if(feof(fp2)) break;
			number=-1;
			number2=-2;
			number3=-2;
			pos=ftell(fp2);
			pos2=pos;
			pos3=pos;
			continue;
		}
	}
	free(tableau);
	fclose(fp3);
	fclose(fp2);
	fclose(fp);
	return 0;
}