Como mostro meu código na Janela [C/C++; SDL]

26/09/2019

8

C C++

GALERA, TENHO O SEGUINTE CÓDIGO E QUERO QUE AS INFORMAÇÕES INTERAÇÃO COM O USUARIO APARECA NA JANELA DO SDL, COMO FAÇO ?




// g++ main.cpp -o main.exe -lSDLmain -lSDL -lGL

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<SDL/SDL.h>
#include "SDL/SDL_opengl.h"
#define TAM 10

int menu();
int sequencial(int elemento);
int arvoreBinaria(int elemento);
int insertion(int vetor[]);
int arvore(int vetor[],int elemento);

int main(){
	// TESTE COM SDL
	SDL_Init(SDL_INIT_EVERYTHING);
	SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
	SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
	SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
	SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
	SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE, 32);
	SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
	SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);

	//	NOME DA JANELA
	SDL_WM_SetCaption("ALGORITMOS DE BUSCA", NULL);
	//TAMANHO DA JANELA
	SDL_SetVideoMode(600, 400, 32, SDL_OPENGL);

	// COR 
	glClearColor(1, 1, 1, 1);

	//area exibida
	glViewport(0, 0, 600, 400);

	// sombra
	glShadeModel(GL_SMOOTH);

	//2d
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();

	glDisable(GL_DEPTH_TEST);

	//logica abaixo::::
	printf("eai meu chamego");
	SDL_Delay(10000);
	int vetor[TAM],i;
	FILE * arq = fopen("teste.txt","w");

	if(arq==NULL){
		printf("\nErro ao Abrir o Arquivo");
		return 1;
	}

	srand(time(NULL));
	
	for(i=0;i<TAM;i++){
		vetor[i]=rand()%TAM;
		fprintf(arq,"%d ",vetor[i]);
	}
	
	fclose(arq);
	menu();
	
	glClear(GL_COLOR_BUFFER_BIT);

	SDL_GL_SwapBuffers();

	//codigo SDL
	SDL_Quit();

	return -666;
}

void menu_principal(int &op){
	printf(
		" \n + -------------------------------- + "
		" \n | MENU                             | "
		" \n + -------------------------------- + "
		" \n | 1 | BUSCA SEQUENCIAL             | "
		" \n | 2 | BUSCA ARVORE BINARIA         | "
		" \n | 3 | SAIR                         | "
		" \n + -------------------------------- + "
		);
		
		printf("\n\nInsira o valor correspondente ao tipo de busca desejada:");
		scanf("%d",&op);
}


int menu(){
	int op,elemento,i;
	//clock_t tempo;
	menu_principal(op);
	while(op!=3){
		printf("\n\nInsira o elemento a ser procurado:");
		scanf("%d",&elemento);
		switch(op){
			case 1:
				//tempo = clock();
				sequencial(elemento);
				//tempo = clock() - tempo;
				//printf("TEMPO DE PROCESSAMENTO: %d milissegundos\n", tempo);
				//system("pause");
				//system("clear");
			break;
			case 2:
				//tempo = clock();
				arvoreBinaria(elemento);
				//tempo = clock() - tempo;
				//printf("TEMPO DE PROCESSAMENTO: %d milissegundos\n", tempo);
				//system("PAUSE");
				//system("clear");
			break;
			case 3:
			break;
			default:
				fflush(stdin);
				printf("\nOpcao Invalida\n\n");
				//system("pause");
				//system("cls");
			break;
		}
		menu_principal(op);
	}
	return 1;
}


int sequencial(int elemento){
	FILE * arq = fopen("teste.txt","r");
	int j;
	
	if(arq==NULL){
		printf("\nErro ao Abrir o Arquivo");
		return 1;
	}
	
	int k=0;
	while(!feof(arq)){
		fscanf(arq,"%d ",&j);
		if(j==elemento){
			printf("\n\nA posicao ocupada no arquivo eh %d\n\n",k);
			return 1;
		}
		k++;
	}

	printf("\nEste elemento nao esta incluso no arquivo\n");

	fclose(arq);
	return 0;
}

int arvoreBinaria(int elemento){
	FILE * arq = fopen("teste.txt","r");
	int vetor[TAM],k=0,i; //INICIA O CONTADOR =0 , QUE SE NAO VAI DAR ERRO DE RUN TIME MSM 
	
	if(arq==NULL){
		printf("\nErro ao Abrir o Arquivo");
		menu();
	}
	
	while(!feof(arq)){
		fscanf(arq,"%d ",&vetor[k]);
		k++;
	}
	
	vetor[TAM]=insertion(vetor);
	int pos;

	pos=arvore(vetor,elemento);
	
	if(pos!=-1){
		printf("\nPosicao:%d\n\n",pos);
		fclose(arq);
		return pos;
	}else{
		printf("\n\nElemento nao encontrado.\n\n");
		fclose(arq);
		return -99;
	}
	
	fclose(arq);
}

int insertion(int vetor[]){

	int i,j,esc;
	for(i=1;i<TAM;i++){
		j=i-1;
		esc=vetor[i];
		while((j>=0)&&(vetor[j]>esc)){
			vetor[j+1]=vetor[j];
			j--;
		}
		vetor[j+1]=esc;
	}
	return vetor[TAM];

}

int arvore(int vetor[],int elemento){
	int posini=0,posfim=TAM-1,posmeio;
		while (posini<=posfim){
			posmeio=(posini+posfim)/2;
			if(vetor[posmeio]==elemento)
				return posmeio;
			else if(vetor[posmeio]<elemento)
				posini=posmeio+1;
			else posfim=posmeio-1;
		}
	return -1;
}
 
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar