예제 #1
0
파일: kalc.cpp 프로젝트: AndersonQ/Code-Set
//===================================escolhe
void escolhe(string input)
{
	float num;

	stringstream sst;

	if (input == "+")
		sum();

	else if (input == "-")
		subtraction();

	else if (input == "*")
		multiplication();

	else if (input ==  "/")
		split(); 
	
	else
	{
		sst << input << endl;
		sst >> num;
		p.empilha(num);
	}
}
예제 #2
0
int main(int argc, char** argv)
{
    PONTO2D pt2D,semente,vizDir,vizEsq,vizUp,vizDown;
    char ponto;
    PilhaEnc<PONTO2D> *p;
    p  = new PilhaEnc<PONTO2D>;
    char Matriz[10][10] = {	'X','X','X','X','X','X','X','X','X','X',
                            '.','X','.','.','.','.','.','.','.','.',
                            '.','X','.','.','.','.','.','.','.','.',
                            '.','X','.','.','.','.','.','.','.','.',
                            '.','X','.','.','.','.','.','.','.','.',
                            'X','X','X','X','.','.','X','.','X','X',
                            'X','X','X','X','.','.','.','.','X','X',
                            '.','X','X','X','.','.','X','.','.','X',
                            '.','.','.','X','.','.','.','.','.','.',
                            'X','X','X','X','X','.','X','X','X','X' };

    cout << " *** Implementacao do algoritmo PaintBucket (FloodFill) *** " << endl;
    cout <<""<< endl;
    cout << "Dada  a Matriz abaixo e um ponto Semente de coordenadas (3,3)" << endl;
    cout << "";
    semente.xi=3;
    semente.yi=3;
    for(int i=0; i<10; i++){
        cout <<""<< endl;
        for(int j=0; j<10; j++){
        cout << Matriz[i][j]<<" ";
        }
    }
    p->empilha(semente); // Empilhando o ponto inicial semente (3,3) que contem " . "
    while(!p->vazia()){
	pt2D = p->desempilha();
		if((pt2D.xi < 10)&&(pt2D.yi < 10)){
		    if(Matriz[pt2D.xi][pt2D.yi] == '.'){
		        Matriz[pt2D.xi][pt2D.yi] = 'X';
                vizDir.xi = pt2D.xi+1 ;
                vizDir.yi = pt2D.yi;
                vizEsq.xi = pt2D.xi-1;
                vizEsq.yi = pt2D.yi;
                vizUp.xi = pt2D.xi;
                vizUp.yi = pt2D.yi+1;
                vizDown.xi = pt2D.xi;
                vizDown.yi = pt2D.yi-1;

		        p->empilha(vizDir);
                p->empilha(vizEsq);
            	p->empilha(vizUp);
            	p->empilha(vizDown);
		    }
		}else{
		  }
	}
cout <<""<< endl;
cout <<""<< endl;
cout << " *** Apos aplicarmos o algoritmo PaintBucket *** " << endl;
cout << " *** obtemos a matriz de resultado abaixo *** " << endl;

 for(int i=0; i<10; i++){
        cout <<""<< endl;
        for(int j=0; j<10; j++){
        cout << Matriz[i][j]<<" ";
        }
    }
    return 0;
}
예제 #3
0
파일: kalc.cpp 프로젝트: AndersonQ/Code-Set
//===========================================split
void split()
{
	Mdesempila//Macro
	p.empilha(a / b);
	cout << a / b << endl;
}
예제 #4
0
파일: kalc.cpp 프로젝트: AndersonQ/Code-Set
//============================================subtraction
void subtraction()
{
	Mdesempila//Macro
	p.empilha (a - b);
	cout << a - b << endl;
}
예제 #5
0
파일: kalc.cpp 프로젝트: AndersonQ/Code-Set
//=============================================sum
void sum()
{
	Mdesempila//Macro
	p.empilha(a + b);
	cout << a + b << endl;
}
예제 #6
0
파일: kalc.cpp 프로젝트: AndersonQ/Code-Set
//===========================================multiplication
void multiplication()
{
	Mdesempila//Macro
	p.empilha(a * b);
	cout << a * b << endl;
}