Exemple #1
0
void assembler(FILE *getin, int *stack_a, stack_t *stack,struct inf *textin){
    int k, i = 0;
    while (fscanf (getin, "%s%d", textin -> operation, &(textin -> sd)) != EOF) {
            if (strcmp(textin -> operation, "push") == 0){
                stack_a[i++] = 1;
                push(stack, textin -> sd);
                stack_a[i++] = textin -> sd;
            }
            if (strcmp(textin -> operation, "pop") == 0){
                stack_a[i++] = 2;
                k = pop(stack);
            }
            if (strcmp(textin -> operation, "add") == 0){
                stack_a[i++] = 3;
                add(stack);
            }
            if (strcmp(textin -> operation, "sub") == 0){
                stack_a[i++] = 4;
                sub(stack);
            }
            if (strcmp(textin -> operation, "mul") == 0){
                stack_a[i++] = 5;
                mul(stack);
            }
            if (strcmp(textin -> operation, "divi") == 0){
                stack_a[i++] = 6;
                divi(stack);
            }
	}
}
int main(int argc, char *argv[]){
	int result, i, sum;

	printf("Name of file : %s\n", argv[0]);
	if(argc < 3){
		printf("error");
		return 0;
		//exit(1);
	}
	if(*argv[1] == '+'){
		add(argv);
	}
	else if(*argv[1] == '-'){
		deduction(argv);
	}
	else if(*argv[1] == 'm'){
		multi(argv);
	}
	else if(*argv[1] == '/'){
		divi(argv);
	}
	else{
		return 0;
	}
	return 0;

}
void preprosessor(int *stack_a, stack_t *stack)
{
    int t,i = 0;
    //int t = 1;
    for (i = 0; i < maxsize; i++){
        if (stack_a[i] == push_num){
            i++;
            t = stack_a[i];
            push(stack, t);
           // printf("%d", stack_a[i]);
          //  printf("%d", stack -> mas[0]);
            }
        else {
        if (stack_a[i] == pop_num)
            pop(stack);
         if (stack_a[i] == add_num)
            add(stack);
         if (stack_a[i] == sub_num)
            sub(stack);
         if (stack_a[i] == mul_num)
            mul(stack);
         if (stack_a[i] == divi_num)
            divi(stack);

    }
    }

}
Exemple #4
0
void main(void) {
    int x, y, i, r;
    char keisan[4][4] = {"+","-","×","÷"};

    printf("1つ目の値を入力してください:");	/* 値を入力 */
    scanf("%d", &x);
    printf("2つ目の値を入力してください:");
    scanf("%d", &y);

    while (1) {			/* 1~4のときは処理を抜け出す */
        printf("番号を指定してください:(1.加算 2.減算 3.乗算 4.除算)");
        scanf("%d", &i);
        if (i == 1) {
            r = add(x, y);	/* 加算処理へ */
            break;
        } else if (i == 2) {
            r = sub(x, y);	/* 減算処理へ */
            break;
        } else if (i == 3) {
            r = mult(x, y);	/* 乗算処理へ */
            break;
        } else if (i == 4) {
            r = divi(x, y);  /* 除算処理へ */
            break;
        } else {
            printf("エラー:指定された値が間違っています もう一度入力して下さい\n");	/* エラー:1~4以外が入力された */
        }																			/* もう一度入力をさせる */
    }
    printf("\n");
    printf("処理結果:\n");			/* 結果出力 */
    printf("%d %s %d = %dです\n", x, keisan[i-1], y, r);
}
int main(int argc, char* argv[]) {
	if( argc > 2) {
		int x = atoi(argv[1]);
		int y = atoi(argv[2]);
		printf("%i\n", divi(x,y));	
	}
	exit(0);
}
int main(int argc, const char **argv){

    printf(" 2 + 3 = %i\n", suma(2, 3));
    printf(" 6 - 3 = %i\n", rest(6, 3));
    printf(" 2 * 3 = %i\n", mult(2, 3));
    printf(" 7 / 3 = %i\n", divi(7, 3));

    return EXIT_SUCCESS;
}
Exemple #7
0
int main()
{
    printf("Program begins here!\n");
    printParent();

    pid_t pid1, pid2, pid3;
    int a = 2, b = 2, c = 2, d = 2, e = 2, f = 2;
    int result, rtval1, rtval2, rtval3;

    pid1 = fork();

    if(pid1 == 0)
    {
        printChild();
        return add(a, b);
    }
    else
    {
        printf("I just finished forking pid1.\n");
        waitpid(-1, &rtval1, 0);
        rtval1 = WEXITSTATUS(rtval1);
        printParent();

        pid2 = fork();
        if(pid2 == 0)
        {
            printChild();
            return add(c, b);    
        }
        else
        {
            printf("I just finished forking pid2.\n");
            waitpid(-1, &rtval2, 0);
            rtval2 = WEXITSTATUS(rtval2);
            printParent();

            pid3 = fork();
            if(pid3 == 0)
            {
                printChild();
                return divi(e, f);
            }
            else
            {
                printf("I just finished forking pid3.\n");
                waitpid(-1, &rtval3, 0);
                rtval3 = WEXITSTATUS(rtval3);
                printParent();
            }
        }
    }
    result = (rtval1 * rtval2) - rtval3;
    //printf("%d, %d, %d\n", rtval1, rtval2, rtval3);  // debug
    printf("The result of doing (%d + %d) * (%d + %d) - (%d / %d) is: %d\n", a, b, c, d, e, f, result);
    return 0;
}
Exemple #8
0
int main() {
    
    int t, i, length, counter, kongzhi = 0, first_pos, j;
    scanf("%d", &t);
    
    for (i = 1; i <= t; i++) {
        
        if (kongzhi)//输出的格式
            printf("\n");
        kongzhi = 1;
        
        memset(char_a, '\0', sizeof(char_a));
        scanf("%s", char_a);
        length = strlen(char_a);
        is_ok = true;
        
        if ((char_a[length - 1] - '0') % 2 == 1) {//假如是单数直接判断
            printf("Case %d: 1\n", i, 1);
            continue;
        }
        
        counter = 0;
        
        if (length <= 20) {//假如小于unsigned long long的最大值18446744073709551615直接判断
            char judge[] = "18446744073709551615";
            if (strcmp(char_a, judge) <= 0 || length <= 19) {
                unsigned long long sum = 0;
                for (j = 0; j < length; j++) {
                    sum = sum * 10 + char_a[j] - '0' ;
                }
                while (sum % 2 == 0) {
                    counter++;
                    sum /= 2;
                }
                printf("Case %d: %d\n", i, counter + 1);
                continue;
            }
        }
        
        int unit_length = ready(length);
        first_pos = 0;
        
        while (1) {
            first_pos = divi(first_pos, unit_length - 1);//不断高精度除以2
            if (is_ok) {
                counter++;
            } else {
                break;
            }
        }
        
        printf("Case %d: %d\n", i, counter + 1);
        
    }
    return 0;
}                                 
Exemple #9
0
TVP vdmRem(TVP a,TVP b)
{	ASSERT_CHECK_NUMERIC(a);
ASSERT_CHECK_NUMERIC(b);

//See https://github.com/overturetool/overture/blob/development/core/interpreter/src/main/java/org/overture/interpreter/eval/BinaryExpressionEvaluator.java#L628
ASSERT_CHECK_INT(a);
ASSERT_CHECK_INT(b);

int av = toDouble(a);
int bv = toDouble(b);

return newInt(av-bv*divi(av,bv));
}
int main(){
    int n,ans, s = 10; //according to question,  s = 10
    printf("enter the number to check : ");
    scanf("%d", &n);
    ans = divi(s,n);

    if(ans==1){
        printf("1\n");
    }
    else{
        printf("0\n");
    }

}
Exemple #11
0
int calculator() {
    int a;
    int b;
    int c;
    float d;
    printf("Please input two numbers. ");
    scanf("%d %d", &a, &b);
    c = add(a, b);
    printf("%d \n", c);
    c = multi(a, b);
    printf("%d \n", c);
    c = sub(a, b);
    printf("%d \n", c);
    d = divi(a, b);
    printf("%f \n", d);
    getch();
    return 0;
}
void test1() {
  int quotient, remainder, sign;
  char errmsg[MAX_ERRMSG_LEN];
  res_t r1, r2, r3, r4, r5, r6, r7, r8;

  r1 = divi(60, 3, &quotient, &remainder, &sign, 41, errmsg);

  r2 = divi(1, 3, &quotient, &remainder, &sign, 43, errmsg);

  r3 = divi(-2, -5, &quotient, &remainder, &sign, 41, errmsg);

  r4 = divi(1, 0, &quotient, &remainder, &sign, 43, errmsg);

  r5 = divi(1, 1, NULL, &remainder, &sign, 0, errmsg);

  r6 = divi(1, 1, &quotient, NULL, &sign, 0, errmsg);

  r7 = divi(1, 1, &quotient, &remainder, NULL, 0, errmsg);

  r8 = divi(nondet, nondet, &quotient, &remainder, &sign, 0, errmsg);

}
Exemple #13
0
int main()
{
	
	int res;
	int a,b;
	scanf("%d",&a);
	scanf("%d",&b);
	res=suma(a,b);
	printf("%d\n",res);
	res = resta(a,b);
	printf("%d\n",res);
	res=mult(a,b);
	printf("%d\n",res);
	
	res=divi(a,b);
	if(res>=0)
	{
		printf("%d\n",res);
	}
	else{
		printf("el numero es menor a cero y no se muestra");
	}
	
}
Exemple #14
0
int main(int argc, char *argv[])
{
	int counter = 1;
	int mem[MAX_SIZE];
	int control = -1;
	initialize(mem, MAX_SIZE-1);

	while(counter < argc - 1) {

		if (strcasecmp(argv[counter],"store") == 0) {
			control = 1;
		} else if (strcasecmp(argv[counter],"print") == 0) {
			control = 2;
		} else if (strcasecmp(argv[counter],"copy") == 0) {
			control = 3;
		} else if (strcasecmp(argv[counter],"add") == 0) {
			control = 4;
		} else if (strcasecmp(argv[counter],"sub") == 0) {
			control = 5;
		} else if (strcasecmp(argv[counter],"mul") == 0) {
			control = 6;
		} else if (strcasecmp(argv[counter],"div") == 0) {
			control = 7;
		} else if (strcasecmp(argv[counter],"mod") == 0) {
			control = 8;
		} else if (strcasecmp(argv[counter],"fact") == 0) {
			control = 9;
		} else if (strcasecmp(argv[counter],"equals") == 0) {
			control = 10;
		}



		switch(control) {
			case 1 : store(atoi(argv[counter+1]),atoi(argv[counter+2]), mem);
				break;
			case 2 : print(atoi(argv[counter+1]), mem); 
					 counter--;
				break;
			case 3 : copy(atoi(argv[counter+1]),atoi(argv[counter+2]), mem);
				break;
			case 4 : add(atoi(argv[counter+1]),atoi(argv[counter+2]), mem);
				break;
			case 5 : sub(atoi(argv[counter+1]),atoi(argv[counter+2]), mem);
				break;
			case 6 : mul(atoi(argv[counter+1]),atoi(argv[counter+2]), mem);
				break;
			case 7 : divi(atoi(argv[counter+1]),atoi(argv[counter+2]), mem);
				break;
			case 8 : mod(atoi(argv[counter+1]),atoi(argv[counter+2]), mem);
				break;
			case 9 : fact(atoi(argv[counter+1]),atoi(argv[counter+2]), mem);
				break;
			case 10 : equal(atoi(argv[counter+1]),atoi(argv[counter+2]), mem);
				break;
		}

		counter = counter + 3;
	}


	return 0;
}
Exemple #15
0
static int three_register_execute(UM_machine machine,
                                  Um_instruction instruction)
{
        unsigned op = Bitpack_getu(instruction, BITS_PER_OP_CODE, 28);
        unsigned A = Bitpack_getu(instruction, BITS_PER_REG_NUM, 6);
        unsigned B = Bitpack_getu(instruction, BITS_PER_REG_NUM, 3);
        unsigned C = Bitpack_getu(instruction, BITS_PER_REG_NUM, 0);

        switch(op){
                case 0: //
                        movc(machine, A, B, C);
                        return 1;

                case 1:
                        segl(machine, A, B, C);
                        return 1;
                        
                case 2:
                        segs(machine, A, B, C);
                        return 1;

                case 3:
                        add(machine, A, B, C); 
                        return 1;

                case 4:
                        mult(machine, A, B, C);
                        return 1;

                case 5:
                        divi(machine, A, B, C);
                        return 1;

                case 6:
                        nand(machine, A, B, C);
                        return 1;

                case 7:
                        return 0;

                case 8:
                        map(machine, B, C);
                        return 1;

                case 9: 
                        unmap(machine, C);
                        return 1;

                case 10:
                        out(machine, C);
                        return 1;

                case 11:
                        in(machine, C);
                        return 1;

                case 12:
                        loadp(machine, B, C);
                        return 1;
                default:
                        return 0;
        }
}
main()
{
    initwindow(300,370);
    int remark,i,j,k,dp;
    float num[100]={0},number[100]= {0},ans;
    char task;
    task='\0';
    i=0;
    j=0;
    ans=0;
    dp=-1;
    layout();
    setviewport(3,8,290,50,1);
getclick:
    clearmouseclick(513);
    setbkcolor(WHITE);
    clearviewport();
    setcolor(RED);
    settextstyle(2,1,10);
    char c[100];
    if((number[j]==0||number[j]==1)&&j!=0&&i!=1)
    {
        k=j-1;
    }
    else
    {
        k=j;
    }
    if(number[k]-(int)number[k]==0)
    {
        sprintf(c,"%.0f",number[k]);
    }
    else
    {
        sprintf(c,"%.4f",number[k]);
    }
    outtextxy(280,45,c);
    if(task!='S'&&task!='^')
    {
        settextstyle(2,1,6);
        sprintf(c,"%c",task);
        outtextxy(10,25,c);
    }
    delay(500);
    if(ismouseclick(513)==1)
    {
getclick1:
        remark=click();
        if(remark==-1000)
        {
            number[j]=numgen(num,i,dp);
            goto getclick;
        }
        else if(remark==-100)
        {
            return 0;
        }
        else if(remark>=0&&remark<=9)
        {
            if(task=='S')
            {
                j++;
                i=0;
                task='\0';
            }
            num[i]=remark;
            i++;
            number[j]=numgen(num,i,dp);
            clearviewport();
            delay(25);
            goto getclick;
        }
        else if(remark==-1)
        {
            if(i==dp)
            {
                dp=-1;
            }
            i--;
            if(i<0)
            {
                i=0;
            }
            number[j]=numgen(num,i,dp);
            clearviewport();
            delay(25);
            goto getclick;
        }
        else if(remark==-2)
        {
            dp=i;
            //number[j]=numgen(num,i,dp);
            clearviewport();
            delay(25);
            goto getclick;
        }
        //calculate =
        else if(remark==12)
        {
            if(num[0]-(int)num[0]==0)
            {
                number[j]=numgen(num,i,dp);
            }
            else
            {
                number[j]=num[0];
            }
            if(task=='+')
            {
                number[j]=add(number[j-1],number[j]);
            }
            else if(task=='-')
            {
                number[j]=sub(number[j-1],number[j]);
            }
            else if(task=='x')
            {
                number[j]=mul(number[j-1],number[j]);
            }
            else if(task=='/')
            {
                number[j]=divi(number[j-1],number[j]);
            }
              else if(task=='^')
            {
                number[j]=pow(number[j-1],number[j]);
            }
            clearviewport();
            ans=number[j];
            while(1)
            {
                delay(50);
                setbkcolor(WHITE);
                settextstyle(2,1,10);
                if(task=='/'&&number[j]==-1)
                {
                    settextstyle(2,1,8);
                    outtextxy(285,35,"MATH ERROR");
                }
                else if(number[j]-(int)number[j]==0)
                {
                    sprintf(c,"%.0f",number[j]);
                    outtextxy(280,45,c);
                }
                else
                {
                    sprintf(c,"%.4f",number[j]);
                    outtextxy(285,45,c);
                }
                delay(500);
                if(ismouseclick(513))
                {
                    i=0;
                    j=0;
                    number[j]=0;
                    dp=-1;
                    task='\0';
                    clearviewport();
                    delay(50);
                    goto getclick1;

                }
            }
        }
        else if(remark==11)
        {
            if(num[0]-(int)num[0]==0)
            {
                number[j]=numgen(num,i,dp);
            }
            else
            {
                number[j]=num[0];
            }
            if(task=='+')
            {
                number[j]=add(number[j-1],number[j]);
            }
            else if(task=='-')
            {
                number[j]=sub(number[j-1],number[j]);
            }
            else if(task=='x')
            {
                number[j]=mul(number[j-1],number[j]);
            }
            else if(task=='/')
            {
                number[j]=divi(number[j-1],number[j]);
            }
              else if(task=='^')
            {
                number[j]=pow(number[j-1],number[j]);
            }
            j++;
            i=0;
            number[j]=0;
            dp=-1;
            task='+';
            clearviewport();
            delay(25);
            goto getclick;
        }
        else if(remark==13)
        {
            i=0;
            j=0;
            number[j]=0;
            task='\0';
            goto getclick;
        }
        else if(remark==14)
        {
            if(num[0]-(int)num[0]==0)
            {
                number[j]=numgen(num,i,dp);
            }
            else
            {
                number[j]=num[0];
            }
            if(task=='+')
            {
                number[j]=add(number[j-1],number[j]);
            }
            else if(task=='-')
            {
                number[j]=sub(number[j-1],number[j]);
            }
            else if(task=='x')
            {
                number[j]=mul(number[j-1],number[j]);
            }
            else if(task=='/')
            {
                number[j]=divi(number[j-1],number[j]);
            }
              else if(task=='^')
            {
                number[j]=pow(number[j-1],number[j]);
            }
            j++;
            i=0;
            number[j]=0;
            dp=-1;
            task='-';
            clearviewport();
            delay(25);
            goto getclick;
        }
        else if(remark==15)
        {
            if(num[0]-(int)num[0]==0)
            {
                number[j]=numgen(num,i,dp);
            }
            else
            {
                number[j]=num[0];
            }
            if(task=='+')
            {
                number[j]=add(number[j-1],number[j]);
            }
            else if(task=='-')
            {
                number[j]=sub(number[j-1],number[j]);
            }
            else if(task=='x')
            {
                number[j]=mul(number[j-1],number[j]);
            }
            else if(task=='/')
            {
                number[j]=divi(number[j-1],number[j]);
            }
              else if(task=='^')
            {
                number[j]=pow(number[j-1],number[j]);
            }
            j++;
            i=0;
            number[j]=0;
            dp=-1;
            num[i]=0;
            task='x';
            clearviewport();
            delay(25);
            goto getclick;
        }
        else if(remark==16)
        {
            if(num[0]-(int)num[0]==0)
            {
                number[j]=numgen(num,i,dp);
            }
            else
            {
                number[j]=num[0];
            }
            if(task=='+')
            {
                number[j]=add(number[j-1],number[j]);
            }
            else if(task=='-')
            {
                number[j]=sub(number[j-1],number[j]);
            }
            else if(task=='x')
            {
                number[j]=mul(number[j-1],number[j]);
            }
            else if(task=='/')
            {
                number[j]=divi(number[j-1],number[j]);
            }
            else if(task=='^')
            {
                number[j]=pow(number[j-1],number[j]);
            }
            j++;
            i=0;
            number[j]=0;
            dp=-1;
            num[i]=0;
            task='/';
            clearviewport();
            delay(25);
            goto getclick;
        }
        else if(remark==-3)
        {
            number[j]=sqrt(number[j]);
            num[0]=number[j];
            i=1;
            task='S';
            ans=number[j];
            clearviewport();
            delay(50);
            clearmouseclick(513);
            goto getclick;
        }
        else if(remark==-4)
        {
            number[j]=(number[j]/100)*number[j-1];
            if(number[j-1]==0)
            {
                number[j]=0;
            }
            num[0]=number[j];
            i=1;
            task='S';
            ans=number[j];
            clearviewport();
            delay(50);
            clearmouseclick(513);
            goto getclick;
        }
        else if(remark==-5)
        {
            if(num[0]-(int)num[0]==0)
            {
                number[j]=numgen(num,i,dp);
            }
            else
            {
                number[j]=num[0];
            }
            if(task=='+')
            {
                number[j]=add(number[j-1],number[j]);
            }
            else if(task=='-')
            {
                number[j]=sub(number[j-1],number[j]);
            }
            else if(task=='x')
            {
                number[j]=mul(number[j-1],number[j]);
            }
            else if(task=='/')
            {
                number[j]=divi(number[j-1],number[j]);
            }
              else if(task=='^')
            {
                number[j]=pow(number[j-1],number[j]);
            }
            j++;
            i=0;
            number[j]=0;
            dp=-1;
            num[i]=0;
            task='^';
            clearviewport();
            delay(25);
            goto getclick;
        }
        else if(remark==-6)
        {
            number[j]=ans;
            num[0]=ans;
            i=1;
            clearviewport();
            delay(25);
            goto getclick;
        }
        else
        {
            clearmouseclick(513);
            goto getclick;
        }
    }
    clearmouseclick(513);
    goto getclick;
}
Exemple #17
0
int main( int argc , char * argv[] )  {
    std::cout << "算术" << std::endl;
    int a = 10 , b = 20;
    int ret;

    std::plus<int>add;
    ret = add(a,b);
    std::cout << ret << std::endl;

    std::minus<int> min;
    ret = min(b,a);
    std::cout << ret << std::endl;

    std::multiplies<int> mp;
    ret = mp(a,b);
    std::cout << ret << std::endl;

    std::divides<int> divi;
    ret = divi(a,b);
    std::cout << ret << std::endl;

    std::modulus<int> mod;
    ret = mod(a,b);
    std::cout << ret << std::endl;

    std::negate<int> neg;
    ret = neg(a);
    std::cout << ret << std::endl;


    std::cout << "关系" <<std::endl;
    int a2 = 10 , b2 = 20;
    int ret2;
    std::equal_to<int> et;
    ret2 = et(a,b);
    std::cout << ret2 <<std::endl;

    std::not_equal_to<int> net;
    ret2 = net(a,b);
    std::cout << ret2 << std::endl;

    std::greater<int>gt;
    ret2 = gt(b,a);
    std::cout << ret2 << std::endl;

    std::greater_equal<int> gte;
    ret2 = gte(a,b);
    std::cout << ret2 <<std::endl;

    std::less<int> ls;
    ret2 = ls(a,b);
    std::cout << ret2 << std::endl;

    std::less_equal<int> lel;
    ret2 = lel(a,b);
    std::cout << ret2 << std::endl;

    std::cout << "逻辑" << std::endl;
    int ret3;
    std::logical_and<int> la;
    ret3 = la(a,b);
    std::cout << ret3 <<std::endl;

    std::logical_or<int> lo;
    ret3 = lo(a,b);
    std::cout << ret3 << std::endl;

    std::logical_not<int>ln;
    ret3 = ln(b);
    std::cout << ret3 <<std::endl;

    return EXIT_SUCCESS;
}