Alguém pode me ajudar a resolver esse raciocínio lógico que eu não estou conseguindo resolver, que é a implantação de um menu onde eu cadastro, listo, busco e excluo o usuário. 
 
	e além de excluir o usuário, os posteriores tem que assumir a posição do que foi apagado.
 
	 
 
	Algoritmo "Remover usuário da estrutura de arrays bidimensionais" 
	 
 
	procedimento menu () 
	var 
	   op : caractere  // Opções do menu 
	   fimproc : inteiro // Opção de sair do menu 
	Inicio
 
	   repita 
	      limpatela 
	      escreval ("********** Menu **********") 
	      escreval ("Digite o numero da opção desejada.") 
	      escreval ("") 
	      escreval ("1 - Cadastrar usuário") 
	      escreval ("2 - Listar") 
	      escreval ("3 - Buscar") 
	      escreval ("4 - Excluir") 
	      escreval ("5 - Sair") 
	      escreval ("") 
	      escreva ("Digite uma opção: ") 
	      leia(op) 
	      limpatela 
	      escolha(op) 
	      caso "1" 
	         cadastro() 
	      caso "2" 
	         listar() 
	      caso "3" 
	         buscar() 
	      caso "4" 
	         excluir() 
	      caso "5" 
	         fimproc <- 5 
	         interrompa 
	      outrocaso 
	         Menu() 
	      fimescolha 
	   ate(fimproc = 5) 
	fimprocedimento
 
	procedimento cadastro() 
	var 
	   op: inteiro
 
	inicio 
	   limpatela 
	   escreval ("--------- Menu de cadastro ---------") 
	   escreva ("Nome: ") 
	   Leia (usuario[cont,contd]) 
	   contd := contd + 1 
	   escreva ("Idade: ") 
	   leia (usuario[cont,contd]) 
	   cont := cont + 1 
	   contd := contd - 1 
	fimprocedimento
 
	procedimento listar() 
	var
 
	inicio 
	   para cont de 0 ate 4 faca 
	      escreva ("|Nome: ",Usuario[cont,0]) 
	      escreval (" - Idade: ",usuario[cont,1],"|") 
	   fimpara 
	   escreval("----------------------") 
	   escreva ("Digite qualquer tecla para sair.") 
	   leia (sr) 
	fimprocedimento
 
	procedimento buscar(): caractere 
	var 
	   nome : caractere 
	   encontrou : inteiro 
	   contador : inteiro 
	inicio 
	   limpatela 
	   escreval ("----- Buscar Cadastrados -----") 
	   escreva ("Digite o nome para a busca: ") 
	   leia(nome) 
	   limpatela 
	   encontrou <- 0
 
	   para contador de 0 ate 4 faca 
	      se (usuario[contador]) = nome então
 
	         escreval ("Nome: ", usuario[contador,0], "| Idade ", usuario[contador,1]) 
	         encontrou <-1 
	      fimse 
	   fimpara
 
	   se encontrou = 0 então 
	      escreval ("Usuário não encontrado") 
	   fimse 
	   leia (sr)
 
	fimprocedimento
 
	procedimento excluir() 
	var 
	   nome : caractere 
	   encontra : inteiro 
	   contador : inteiro 
	   scont : inteiro 
	   scontd : inteiro 
	   aux : caracter 
	inicio 
	   limpatela 
	   escreval ("----- Excluir Cadastrado -----") 
	   escreva ("Digite o nome para a Excluir; ") 
	   leia(nome) 
	   limpatela 
	   encontra <- 0
 
	   para contador de 0 ate 4 faca 
	      se (usuario[contador]) = nome então 
	         usuario[contador,0]:= "" 
	         usuario[contador,1]:= "" 
	         encontra <-1 
	         escreval ("       Usuario Excluido!") 
	         escreval ("Aperte qualquer tecla para voltar.") 
	         leia(sr)
 
	 // A Reorganização acontece aqui     
 
	   se usuario[contador] = "" então 
	            para scont de contador+0 ate 4 faca 
	               para scontd de contador+0 ate 1 faca 
	                  aux <- usuario[cont,contd] 
	                  usuario[scont,scontd] <- usuario[scont+1,scontd+1] 
	                  usuario[cont,contd+1] <- usuario[scont,scontd+1] 
	                  usuario[cont+1,contd+1] <- aux 
	               fimpara 
	            fimpara 
	         fimse 
	      fimse 
	   fimpara