Início » Lógica de Programação » Lógica de Programação – Funções de Manipulação de Strings (Literais)
A maioria das linguagens de programação possui funções que permitem a Manipulação de Strings (caracteres / literais). Podemos estudar algumas delas em Lógica de Programação usando o VisualG.
Vamos aprender a utilizar algumas dessas funções para efetuar tratamento de strings.
Funções de manipulação de strings (caracteres) no VisualG
A tabela a seguir mostra as funções de manipulação de caracteres disponíveis no VisualG:
Função | Significado |
Asc(x : caractere) | Retorna um número inteiro com o código ASCII do primeiro caractere da expressão. |
Carac(x : inteiro) | Retorna o caractere cujo código ASCII corresponda à expressão |
Caracpnum(x : caractere) | Retorna o inteiro ou real representado pela expressão matemática (ou valor numérico no formato literal) – converte caractere em numérico |
Compr(x : caractere) | Retorna um inteiro contendo o comprimento (quantidade de caracteres) da string |
Copia(x : caractere; p, n : inteiro) | Retorna uma string contendo uma cópia parcial da expressão, a partir do caractere p, contendo n caracteres. Os caracteres são numerados da esquerda para a direita, começando em 1 |
Maiusc(x : caractere) | Retorna uma string contendo a expressão em maiúsculas |
Minusc(x : caractere) | Retorna uma string contendo a expressão em minúsculas |
Numpcarac(x : inteiro ou real) | Retorna a representação de x como uma cadeia de caracteres (converte um tipo numérico para caractere) |
Pos(seq, x : caractere) | Retorna um inteiro que indica a posição em que a cadeia de caracteres (seq) se encontra dentro da cadeia x, ou zero se seq não estiver contida em x |
Vamos ao exemplos de uso de algumas dessas funções no VisualG:
Convertendo para caixa-alta
Obtendo o código ASCII do caractere inicial
var palavra : caractere valor : inteiro inicio escreval("Digite uma palavra:") leia(palavra) valor <- Asc(palavra) escreval ("O código ASCII da primeira letra de ", palavra, " é ", valor) fimalgoritmoContando os caracteres da string
var palavra : caractere comprimento : inteiro inicio escreval("Digite uma palavra:") leia(palavra) comprimento <- Compr(palavra) escreval ("A palavra ", palavra, " possui ", comprimento, " caracteres") fimalgoritmoSeparando partes de uma string
var x, y, z : real data, dia, mes, ano: caractere inicio escreval("Digite uma data:") leia (data) dia <- copia(data;1;2) mes <- copia(data;4;2) ano <- copia(data;7;4) escreval("Dia: " + dia) escreval("Mês: " + mes) escreval("Ano: " + ano) fimalgoritmoLocalizando sequências de caracteres
var palavra : caractere sequencia : caractere posicao : inteiro inicio escreval("Digite uma palavra:") leia(palavra) escreval("Digite uma letra ou sequência de caracteres:") leia(sequencia) posicao <- Pos(sequencia, palavra) escreval("O caractere foi encontado na posição ", posicao) fimalgoritmoConvertendo número em caractere
var numero : inteiro convertido : caractere inicio escreval("Digite um número:") leia(numero) convertido <- NumpCarac(numero) escreval("O número convertido para caractere é ", convertido) fimalgoritmoVeja também: Variáveis e Tipos de Dados em Lógica de Programação
Você pode também assistir ao vídeo abaixo, do canal da Bóson Treinamentos no YouTube, onde explico os procedimentos descritos no artigo:
17 Comentários em Lógica de Programação – Funções de Manipulação de Strings (Literais)
Prazer para todos.
Fiz este exercício para calcular as calorias gastas em uma refeição. Entra com prato, bebida e sobremesa. O problema está em comparar as strings. O VisualG não aceita a comparação. Por exemplo, entro com a string carne, o programa diz: esperava encontrar então na linha se (prato = carne) então. Não há explicação possível para esse problema. Não sei onde está o erro, para mim, a lógica está correta. Obrigado.
Algoritmo "semnome" // Disciplina : [Linguagem e Lógica de Programação] // Professor : // Descrição : Aqui você descreve o que o programa faz! (função) // Autor(a) : Nome do(a) aluno(a) // Data atual : 02/10/2017 Var // Seção de Declarações das variáveis cal1,cal2,cal3,p1,p2,p3,caltotal:inteiro
prato,bebida,sobremesa:caractere
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreval("Entre com o prato") leia (prato) escreval(prato) se (prato = carne) então cal1 <- 350 senão se (prato = peixe) então cal1 <- 230 senão se (prato = frango) então cal1 <- 250 senão cal <- 180 fimse fimse fimse escreval("Entre com a bebida") leia (bebida) se (bebida = cha) então cal2 <- 20 senão se (bebida = suco de laranja) então cal2 <- 100 senão se (bebida = suco de melao) então cal2 <- 100 senão se (bebida = refrigerante diet) então cal <- 65 fimse fimse fimse fimse escreval("Entre com a sobremesa") leia (sobremesa) se (sobremesa = abacaxi) então cal3<- 75 senão se (sobremesa = sorvete diet) então cal <- 110 senão se (sobremesa = mouse diet) então cal3 <- 170 senão se (sobremesa = mouse chocolate) então cal <- 200 fimse fimse fimse fimse senão escreval ("Opção inválida.") caltotal <- cal1 + cal2 + cal3 escreval("O prato escolhido foi: ",prato) escreval("A bebida escolhida foi: ",bebida) escreval("A sobremesa escolhida foi: ",sobremesa) escreval("O total de calorias é de: ",caltotal)
Fimalgoritmo