diff --git "a/Arquivos/Fun\303\247\303\265es.h" "b/Arquivos/Fun\303\247\303\265es.h"
index c64b0a2750577223bab583a2813adec5b39a298c..718522364c1dd4acae64ce269ba86fe458e98940 100644
--- "a/Arquivos/Fun\303\247\303\265es.h"
+++ "b/Arquivos/Fun\303\247\303\265es.h"
@@ -3,5 +3,8 @@ void LerDados (int *Vetor);
 void GeraVetor (int *Vetor);
 void ImprimeVetor (int *Vetor);
 void SelectSort (int *Vetor);
+void BubbleSort (int *Vetor);
+void QuickSortRecursivo (int Vetor[], int Esquerda, int Direita);
+void QuickSortIterativo (int Vetor[], int Esquerda, int Direita);
 void VerificaNumero (int *Vetor, int *Escolhidos);
 void PesquisaBinaria (int *Vetor, int Elem);
diff --git a/Arquivos/Loteria b/Arquivos/Loteria
index de5997e00e653a3e13ffce9849ebf96a0c075f61..f5cdde9c48e3384aa9ecd0c9209422479f765abc 100755
Binary files a/Arquivos/Loteria and b/Arquivos/Loteria differ
diff --git a/Arquivos/Main.c b/Arquivos/Main.c
index 0f7aa867d3ce2784bad897cdbab95f3de8a2080f..a927373764d4520bb6225b5b079b77b0ae16eb73 100644
--- a/Arquivos/Main.c
+++ b/Arquivos/Main.c
@@ -1,6 +1,7 @@
 #include "Estruturas.h"
 #include "Funções.h"
 
+//Calcula o Tempo da Execução do SelectSort
 void TempoSelectSort (int *Vetor) {
  	struct timeval inicio, final;
 	int tmili, i;
@@ -15,6 +16,7 @@ void TempoSelectSort (int *Vetor) {
 	printf ("O SelectSort Demorou %d Centesimos\n", tmili);
 }
 
+//Calcula o Tempo da Execução do BubbleSort
 void TempoBubbleSort (int *Vetor) {
  	struct timeval inicio, final;
 	int tmili, i;
@@ -29,6 +31,7 @@ void TempoBubbleSort (int *Vetor) {
 	printf ("O BubbleSort Demorou %d Centesimos\n", tmili);
 }
 
+//Calcula o Tempo da Execução do QuickSort Recursivo
 void TempoQuickSortRecursivo (int *Vetor) {
  	struct timeval inicio, final;
 	int tmili, i;
@@ -43,6 +46,7 @@ void TempoQuickSortRecursivo (int *Vetor) {
 	printf ("O QuickSort Recursivo Demorou %d Centesimos\n", tmili);
 }
 
+//Calcula o Tempo da Execução do QuickSort Iterativo
 void TempoQuickSortIterativo (int *Vetor) {
  	struct timeval inicio, final;
 	int tmili, i;
@@ -61,36 +65,45 @@ int main () {
         int Vetor[TAM], Escolhidos[4];
 	int comando, Ordena;	
 	
-	printf ("1 Para Jogar e 2 Para Comparar Algoritmos\n");
+	printf ("1 - Jogar\n2 - Comparar Algortimos\n");
 	scanf ("%d", &comando);
 	switch (comando) {
-	case 1:
+		case 1:
 		LerDados (Escolhidos);
 		GeraVetor (Vetor);
+		//Sorteia o Algoritmo para Ordenar o Vetor
 		srand (time (NULL));
-		Ordena = rand() % 3;
+		Ordena = rand() % 4;
+		
 		switch (Ordena) {
-		case 0:
-		printf ("O Vetor Foi Ordenado Pelo SelectSort\n");
-		SelectSort (Vetor);
-		break;
-		case 1:
-		printf ("O Vetor Foi Ordenado Pelo BubbleSort\n");
-		BubbleSort (Vetor);
-		break;
-		case 2:
-		printf ("O Vetor Foi Ordenado Pelo QuickSort Recursivo\n");
-		QuickSortRecursivo (Vetor, 0, TAM);
-		break;
-		case 3:
-		printf ("O Vetor Foi Ordenado Pelo QuickSort Iterativo\n");
-		QuickSortIterativo (Vetor, 0, TAM);
-		break;
+		
+			case 0:
+			printf ("O Vetor Foi Ordenado Pelo SelectSort\n");
+			SelectSort (Vetor);
+			break;
+			
+			case 1:
+			printf ("O Vetor Foi Ordenado Pelo BubbleSort\n");
+			BubbleSort (Vetor);
+			break;
+		
+			case 2:
+			printf ("O Vetor Foi Ordenado Pelo QuickSort Recursivo\n");
+			QuickSortRecursivo (Vetor, 0, TAM);
+			break;
+		
+			case 3:
+			printf ("O Vetor Foi Ordenado Pelo QuickSort Iterativo\n");
+			QuickSortIterativo (Vetor, 0, TAM);
+			break;
 		}
+		//Chama a Pesquisa 
 		VerificaNumero (Vetor, Escolhidos);
 		ImprimeVetor (Vetor);
 		break;
-	case 2:
+	
+		//Tempo de Execução dos programas
+		case 2:
 		TempoSelectSort (Vetor);
 		TempoBubbleSort (Vetor);
 		TempoQuickSortRecursivo (Vetor);
diff --git "a/Arquivos/Ordena\303\247\303\243o.c" "b/Arquivos/Ordena\303\247\303\243o.c"
index 515df4b64415c10fdcc84fc86df205a102896a00..88a03280e9c029e9b9a00f54d334b711316e0ee6 100644
--- "a/Arquivos/Ordena\303\247\303\243o.c"
+++ "b/Arquivos/Ordena\303\247\303\243o.c"
@@ -1,7 +1,7 @@
 //Arquivo com os Algoritmos de Ordenação
 
 #include "Estruturas.h"
-
+//Função para trocar valores
 void Troca (int *Vetor, int i, int j) {
 	int aux;
 
@@ -10,6 +10,7 @@ void Troca (int *Vetor, int i, int j) {
 	Vetor [j] = aux;
 }
 
+//Algoritmo de Ordenação do SelectSort
 void SelectSort (int *Vetor) {
 	int i, j, menor;
 
@@ -22,6 +23,7 @@ void SelectSort (int *Vetor) {
 	}
 }
 
+//Algoritmo de Ordenação do BubbleSort
 void BubbleSort (int *Vetor) {
 	bool trocou;
 	int i;
@@ -38,6 +40,7 @@ void BubbleSort (int *Vetor) {
 	}
 }
 
+//Acha a posicao da Mediana
 int Mediana(int *Vetor, int esq, int dir) {
 	int aux;
 	aux = (dir+esq)/2; // elem. do meio do vetor
@@ -64,6 +67,7 @@ int Mediana(int *Vetor, int esq, int dir) {
 
 }
 
+//Particiona o QuickSort
 int Particao (int *Vetor, int esq, int dir) {
 	int i,j,pivo,aux;
 	aux = Mediana(Vetor,esq,dir);
@@ -87,6 +91,7 @@ int Particao (int *Vetor, int esq, int dir) {
   	return j;
 }
 
+//Algoritmo de Ordenação do QuickSort com Recursão
 void QuickSortRecursivo (int Vetor[], int Esquerda, int Direita) {
 	int pospivo;
 	   if (Esquerda < Direita) {
@@ -95,32 +100,33 @@ void QuickSortRecursivo (int Vetor[], int Esquerda, int Direita) {
 		QuickSortRecursivo(Vetor,pospivo+1,Direita);
 	}
 }
+
+//Algoritmo de Ordenação do QuickSort Iterativo
 void QuickSortIterativo (int Vetor[], int Esquerda, int Direita) {
-    int Posicao;
-    int Pilha[ Direita - Esquerda + 1 ];
-    int top;
- 
-    top = -1;
-    Pilha[ ++top ] = Esquerda;
-    Pilha[ ++top ] = Direita;
- 
-    while ( top >= 0 )
-    {
-        Direita = Pilha[ top-- ];
-        Esquerda = Pilha[ top-- ];
- 
-        Posicao = Particao( Vetor, Esquerda, Direita );
- 
-        if ( Posicao-1 > Esquerda )
-        {
-            Pilha[ ++top ] = Esquerda;
-            Pilha[ ++top ] = Posicao - 1;
-        }
- 
-        if ( Posicao+1 < Direita )
-        {
-            Pilha[ ++top ] = Posicao + 1;
-            Pilha[ ++top ] = Direita;
-        }
+	int Posicao;
+	int Pilha[TAM];
+	int top;
+
+	top = -1;
+	//Empilha os Indices
+	Pilha[++top] = Esquerda;
+	Pilha[++top] = Direita;
+	while (top >= 0) {
+		//Desempilha os Indices
+		Direita = Pilha[top--];
+		Esquerda = Pilha[top--];
+
+		Posicao = Particao(Vetor, Esquerda, Direita);
+
+		if (Posicao-1 > Esquerda) {
+			//Empilha os Indices
+			Pilha[++top] = Esquerda;
+			Pilha[++top] = Posicao - 1;
+        	}
+       		 if (Posicao+1 < Direita) {
+			//Empilha os Indices
+        		Pilha[++top] = Posicao + 1;
+        	    	Pilha[++top] = Direita;
+        	}
     }
 }
diff --git a/Arquivos/Pesquisa.c b/Arquivos/Pesquisa.c
index 9e33b412a86a8809e8694bcfc713ef810afd68cf..c6f88e80387fc225536d7bba587c586de22537e5 100644
--- a/Arquivos/Pesquisa.c
+++ b/Arquivos/Pesquisa.c
@@ -1,6 +1,7 @@
 //Arquivo com os  algoritmos de busca
 #include "Estruturas.h"
 
+//Algoritmo de Pesquisa Binaria
 int PesquisaBinaria (int *Vetor, int Elem) {
 	int meio, esquerda, direita;
 
@@ -20,6 +21,7 @@ int PesquisaBinaria (int *Vetor, int Elem) {
 		return -1; //return = -1 pq o se o elemento estiver na primeira posição irá retornar 0 (posição que ele se encontra no vetor)
 }
 
+//Algoritmo de Pesquisa Sequencial
 int PesquisaSequencial(int *Vetor, int Elem) {
 	int i;
 
@@ -30,7 +32,7 @@ int PesquisaSequencial(int *Vetor, int Elem) {
 	return -1; //-1 pq o elemento pode estar na posição zero 
 }
 
-
+//Chama as funções de Pesqusia para procurar o número no vetor
 void VerificaNumero (int *Vetor, int *Escolhidos) {
 	int i, acertos;
 	
diff --git a/Arquivos/Vetor.c b/Arquivos/Vetor.c
index 30c6fb824e63f3606e53560ab3bc561f1879b41d..365ff3952bbf04efd07c0c177ac4566e288d3744 100644
--- a/Arquivos/Vetor.c
+++ b/Arquivos/Vetor.c
@@ -1,5 +1,6 @@
 #include "Estruturas.h"
 
+//Lê os 4 números que o usuario entra
 void LerDados (int *Vetor) {
 	int i;
 	printf ("Digite 4 números: ");