Você está na página 1de 3

INF01202 - ALGORITMOS E PROGRAMAO

EXERCCIOS COM STRINGS


1.
Faa um procedimento que recebe um texto de at 40 caracteres e devolve, em um vetor, a
distribuio de freqncia de comprimento de palavras. Considere que no texto podem aparecer
palavras de at 10 caracteres. As palavras podem estar separadas por espaos em branco ou pelos
caracteres vrgula e ponto.
2.
Dado um texto, identificar cada palavra deste texto e verificar se palndroma. Uma palavra
palndroma aquela que apresenta a mesma grafia quando lida a partir do incio ou de trs para
diante; exemplo: RIR, SOLOS, ASA, RALAR, AMA. O programa deve utilizar uma funo booleana
para verificar se uma palavra identificada no texto palndroma. A sada do programa deve ser uma
tabela listando as palavras identificadas e, para cada uma, a mensagem dizendo se ou no
palndroma.

3.

Escreva um procedimento que receba um texto, em uma string ENTRADA, e devolva, em


outra string SAIDA, este mesmo texto tendo sido eliminado todos os espaos brancos. O comprimento
da string SAIDA dever estar atualizado (isto , a funo length aplicada a este string dever dar o seu
valor correto).
4.
Um texto composto de palavras de 10 ou menos caracteres. Escreva um programa que l
um texto de at 100 palavras e depois as imprime em ordem alfabtica.
5.
Escreva uma funo que recebe uma palavra de at 20 caracteres e devolve quantas letras
diferentes esta palavra contm.

6.

Escreva uma funo que recebe um string de at 80 caracteres e um determinado caracter e


devolve a localizao da ltima ocorrncia deste caracter na string. Se o caracter no aparecer na
string, devolver um valor negativo.

7.

Escreva uma funo que verifica se um determinada string um substring de outro. A funo
deve receber os dois strings como parmetros e devolver um valor lgico. Escreva programas que
testem esta funo.
8.
Faa um procedimento que recebe um texto de at 80 caracteres. O procedimento dever
identificar os 'tokens' (unidades lxicas) de uma determinada linguagem de programao. O
procedimento dever listar os tokens sob forma de uma tabela, identificando qual o seu tipo
correspondente.
Devem ser consideradas as seguintes unidades lxicas (tipos):
- identificadores - iniciam por uma letra, seguida por letras e/ou dgitos;
- inteiros - formados de dgitos;
- palavras reservadas - BEGIN, END, IF, THEN, ELSE, READ, WRITE, WHILE, DO;
- smbolos especiais - qualquer caracter diferente de letra, dgito e branco.
Escreva tambm um programa C que utiliza este procedimento na anlise de um texto dado.

9.
Escreva um programa que armazene os dados relativos a 20 funcionrios de uma empresa em
dois arranjos: os nomes dos funcionrios so armazenados em um arranjo de strings, e seus salrios
em um arranjo de valores reais. ndices iguais nos dois arranjos indicam informaes relativas ao
mesmo funcionrio. Depois de lidos e armazenados os dados dos funcionrios, o programa deve:
a - escrever os dados lidos (nome e salrio correspondente);
b - escrever o sobrenome (ltimo nome) de todos os funcionrios que apresentam salrio inferior
metade do maior salrio pago na empresa;
c - escrever os salrios de todos os funcionrios cujo primeiro nome Maria.

10.

Escreva um procedimento que recebe uma frase e verifica se um determinada string


(fornecido como parmetro) aparece neste texto e a partir de que posio.
11.
Escreva um procedimento que recebe um texto e devolve o mesmo texto, duplicando cada
uma das letras deste texto. Exemplo:
texto recebido: INSTITUTO DE INFORMATICA
texto devolvido:
IINNSSTTIITTUUTTOO DDEE IINNFFOORRMMAATTIICCAA
12.
Faa um programa que leia um texto e o decodifique, utilizando a tabela de substituio de
caracteres abaixo. Imprima o texto original e o texto decodificado.
CARACTERE
EXISTENTE
z
y
w
k
K
b
d
f

CARACTEREASER
SUBSTITUDO
A
E
O
T
T
M
N
P

Teste seu programa com as linhas a seguir:


Kydhz kybfw fzrz w quy y bzis ibfwrkzdky fzrz
vw c y.
Kydhz kybfw fzrz yskzr cwb zquylys z quyb
vwcy zbz.
Kydhz kybfw fzrz swdhzr.
Kydhz kybfw fzrz vivyr ub swdhw...

13.

[PASCAL for Students - R. Kemp] Escreva um programa para representar uma palavra
cruzada, com procedimentos para ler um modelo, verificar se uma palavra pode ser colocada em
uma posio dada, inserir uma palavra, eliminar uma palavra, e imprimir o resultado final da
palavra cruzada.

14.

[PASCAL for Students - R. Kemp] comum em editores de texto a facilidade que permite a
um usurio encontrar todas as ocorrncias de uma particular seqncia de caracteres em um texto.
Escreva um procedimento que examine um programa C e liste todos os nmeros de linha onde
uma dada seqncia de caracteres ocorre (assumir que o comprimento mximo da seqncia
igual ao tamanho mximo da linha do programa).

15.

[Thorie et Pratique du Langage PASCAL - Nebut] Seja uma tabela T de palavras na qual as
palavras esto classificadas por comprimento (primeiro todas as palavras de uma letra, depois as
de 2 letras, e assim por diante). Uma segunda tabela, CLE, contm para um ndice I o ndice em T
da primeira palavra de comprimento I. O que contm CLE[J] se em T no existem palavras de
comprimento J? Escreva um fragmento de programa que procura em T uma palavra MOT de
comprimento LONG.

16.

[Algoritmos - D. D. Salvetti & L. M. Barbosa] Dadas duas palavras, verificar se uma a


permutao circular da outra. Observao: uma palavra uma cadeia de caracteres. Para se obter a
permutao circular dessa cadeia transfere-se o primeiro caracter do incio para o fim da mesma:
AROMA ROMAA

17.

[Algoritmos - D. D. Salvetti & L. M. Barbosa] Dado o nome completo de uma pessoa (com
um s branco separando cada nome do prenome) imprimir o nome desta pessoa noseguinte
formato: ltimo sobrenome seguido por vrgula e pelas iniciais dos primeiros nomes ou
sobrenomes seguidos de ponto. Por exemplo, Edgar Alan Poe dever ser abreviado para Poe, E.A.

18.

[Algoritmos - D. D. Salvetti & L. M. Barbosa] A entrada de dados de um algoritmo consiste


na data atual e esta fornecida por um string em que dia, ms e ano so dados nesta ordem e
separados por barra. Deseja-se transformar esta cadeia modificando a ordem para ms / dia / ano e
padronizando o formato para XX/XX/XXXX, isto , com dois dgitos para ms e dia e quatro para
ano.

19.

[Algoritmos - D. D. Salvetti & L. M. Barbosa] Dado um string A e um nmero N, definir e


imprimir um string B que consiste na reproduo da cadeia A, N vezes. Exemplo: Seja A = Ah! e
N=3. A sada deve ser B = Ah!Ah!Ah!

20.

[Algoritmos - D. D. Salvetti & L. M. Barbosa] Eliminar, de uma cadeia de caracteres, todas


as ocorrncias de excesso de brancos. Entende-se por excesso de brancos a ocorrncia de mais de
um branco entre duas palavras ou a ocorrncia de pelo menos um branco no incio ou no fim da
cadeia.