Fiz algumas alterações, entrada como carácter para buscar cód. ASC II, tentei preservar a ideia do código !
Algoritmo "semnome"
// Disciplina : Linguagem e Lógica de Programação
// Professor : Eduardo Gouveia
// Descrição : Aqui você descreve o que o programa faz! (função)
// Autor(a) : Nome do(a) aluno(a)
// Data atual : 06/05/2023
Var
ferr : real
cav,x,p : inteiro
ent:caractere
Inicio
escreval("Descubra a quantidade de ferraduras de um haras inserindo")
escreval("a quantidade de cavalos existente nesse haras .")
repita
escreval
escreval("Digite a quantidade de cavalos do háras, no mínimo hum cavalo : ")
leia(ent) //Entrada como caractere para pegar o cod ASC II
x :=asc(ent)
//cav := abs(cav)
//x := asc(carac(cav))////se digitar letras ou carac especiais ele retorna zero
se (x <= 49) E (x >= 57) ENTÃO
escreval("Valor inválido. Digite um valor inteiro maior que zero .")
cav <- 0
senao
cav <- Caracpnum (ent)
fimse
ate cav > 0
ferr <- (cav * 4)
escreval
escreval ("____________________________________________________________")
escreval ("Esse háras contém",ferr," ferraduras.")
escreva ("_____________________________________________________________")
Fimalgoritmo