Algoritmo em Portugol no Portugol Studio

Simplesmente não consigo achar solução para os outros tópicos, o 2 já consegui.

Desenvolver um algoritmo que processe uma frase digitada pelo usuário e forneça as seguintes saídas:

  1. Converter a primeira letra de cada palavra para maiúscula e exibir o resultado;

  2. Exibir a quantidade de vogais, consoantes e números presentes na frase;

  3. Exibir a maior palavra da frase (a “primeira maior” encontrada, em caso de empate);

  4. Exibir as palavras de tamanho par;

  5. Identificar se a frase é um palíndromo, ou seja, se ela pode ser lida de trás para frente mantendo o significado original (desprezando as diferenças entre maiúscula, minúsculas e espaços em branco). Exemplos: “Mega bobagem”, “A sacada da casa”, “O caso da droga da gorda do saco”.

Exemplos de execução (não é obrigatório seguir esse formato):

Digite uma frase: aula de algoritmo

  1. Aula De Algoritmo
  2. 8 vogais, 7 consoantes, 0 números
  3. algoritmos
  4. aula de
  5. Não é um palíndromo

Meu código fonte até agora:

programa
{
inclua biblioteca Texto --> tx
inclua biblioteca Tipos --> tp

funcao inicio()
{	
	cadeia frase
	inteiro cont_vogais, tamanho_frase, cont_num, cont_consoantes
	inteiro vogais,consoantes,numeros
	
	escreva("Informe a frase desejada: ")
	leia(frase)

	tamanho_frase = tx.numero_caracteres(frase)

      para(inteiro i = 0; i > tamanho_frase; i++){ --> tentativa de resolver o tópico 1, mas não acho solução em frase com espaço e não consigo preencher apenas a primeira letra sem que ela se repita minuscula
      	caracter letra1 = tx.obter_caracter(frase, 0)
      	cadeia converte, maiuscula

      	converte = tp.caracter_para_cadeia(letra1)
      	maiuscula = tx.caixa_alta(converte)
      }
      
      frase = tx.caixa_baixa(frase)
      
      cont_vogais = 0
      cont_consoantes = 0
      cont_num = 0

      vogais =  0 
      consoantes = 0
      numeros = 0
                
      enquanto (cont_vogais < tamanho_frase) {

		caracter letra = tx.obter_caracter(frase, cont_vogais) --> solução topico 2
		escolha (letra) {
			caso 'a':
			caso 'e':
			caso 'i':
			caso 'o':
			caso 'u': vogais++
		}
		cont_vogais++
	}

	se (vogais > 0) {
		escreva(" \n A quantidade de vogais desta frase é: " , vogais)          
	} senao {
		escreva(" \n A frase não possui vogais! ")
	}

	enquanto (cont_consoantes < tamanho_frase) {

		caracter letra = tx.obter_caracter(frase, cont_consoantes)
		escolha (letra) {
			caso 'b':
			caso 'c':
			caso 'd':
			caso 'f':
			caso 'g': 
			caso 'h':
			caso 'j':
			caso 'k':
			caso 'l':
			caso 'm':
			caso 'n':
			caso 'p':
			caso 'q':
			caso 'r':
			caso 's':
			caso 't':
			caso 'v':
			caso 'w':
			caso 'x':
			caso 'y':
			caso 'z': consoantes++
		}
		cont_consoantes++
	}

	se (consoantes > 0) {
		escreva(" \n A quantidade de consoantes desta frase é: " , consoantes)          
	} senao {
		escreva(" \n A frase não possui consoantes! ")
	}

	enquanto (cont_num < tamanho_frase) {

		caracter letra = tx.obter_caracter(frase, cont_num)
		escolha (letra) {
			caso '0':
			caso '1':
			caso '2':
			caso '3':
			caso '4': 
			caso '5':
			caso '6':
			caso '7':
			caso '8':
			caso '9': numeros++
		}
		cont_num++
	}

	se (numeros > 0) {
		escreva(" \n A quantidade de números desta frase é: " , numeros)          
	} senao {
		escreva(" \n A frase não possui numeros! ")
	}

	se (tamanho_frase % 2 == 0){ --> tentativa de resolver o tópico 4, mas nem todo resto da divisão de um par por 2 vai dar 0
		escreva("\n", frase)
	}
}

}