Você está na página 1de 9

 

 
 
Disciplina:  Programação  Estruturada  e  Orientada  à  Objetos  
Lista  de  Exercícios  
Funções  (Strings  e  Arrays)  
 
1. Implemente   a   função   mostrada   abaixo.   Essa   função   deverá   ser   capaz   de   concatenar   3   Strings  
passadas   por   parâmetro   e   retornar   a   String   resultante.   Em   seguida,   crie   a   função   principal   (main)  
onde  deverá  solicitar  do  usuário  3  Strings  e  “passa-­‐las”  para  a  função  criada.  Ao  final,  seu  programa  
deverá  imprimir  o  resultado  da  concatenação  dessas  3  Strings.  

Função:    

public static String concatenar(String txtUm, String txtDois, String txtTres) {


// Todo seu código aqui.
}

Exemplos:  

Entrada   Saída  
“Lucas”,“  Mariano”,  “  Galdino”   “Lucas  Mariano  Galdino”  
“Ordem”,  “  e”,  “  Progresso”   “Ordem  e  Progresso”  
 
2. Escreva   um   programa   que   leia   uma   String   e   a   mostre   de   trás   para   frente.   Para   isso,   seu  
programa   deverá   fazer   uso   de   uma   função   que   você   criará,   chamada   inverterTexto.   Essa   função  
deverá  receber  como  parâmetro  uma  String  e  retorna-­‐la  invertida.  

Exemplos:  

Entrada   Saída  
“Roma”   “amoR”  
“Ordem  e  Progresso”   “ossergorP  e  medrO”  
 
3. Um  palíndromo  é   uma   palavra   ou   frase   que   tenha   a   propriedade   de   poder   ser   lida   tanto   da  
direita   para   a   esquerda   como   da   esquerda   para   a   direita.   Sabendo   disso,   escreva   um   programa  
que  utilizando  a  função  abaixo,  informa  ao  usuário  se  uma  determinada  palavra  ou  frase  é  ou  não  
um  palíndromo.    

Função:    

public static boolean ehPalindromo(String umaString) {


// Todo seu código aqui
}

Exemplos:  
Entrada   Saída  
“Osso”   É  palíndromo  
“Aço”   Não  é  palíndromo  
“Ame  a  Ema”   É  palíndromo  
“A mala nada na lama” É  palíndromo  
 
4. Escreva   um   programa   que   leia   uma   String   e   mostre   a   quantidade   de   vogais   existentes.   Para  
isso,   seu   programa   deverá   ter   uma   função   chamada   contarTodasVogais.   Essa   função   deverá  
receber   como   parâmetro   uma   String   e   retornar   a   quantidade   de   vogais   existentes   nela.   (Obs.:  
Contar  todas  as  ocorrências,  mesmo  que  haja  repetição).    

Exemplos:  

Entrada   Saída  
“Roma”   2  
“Ordem  e  Progresso”   6  
 
5. Desenvolva   uma   variação   da   função   criada   na   questão   anterior,   de   forma   que   agora   essa   nova  
função  conte  apenas  a  quantidade  de  vogais  distintas  (não  repetidas).  

Exemplos:  

Entrada   Saída  
“Roma”   2  
“Ordem  e  Progresso”   2  
 
6. Escreva  um  programa  que  leia  uma  String  e  conte  quantas  palavras  existem  nela.  Para  isso,  seu  
programa   deverá   fazer   uso   de   uma   função   que   você   criará,   chamada   contarPalavras.   Essa  
função   deverá   receber   como   parâmetro   um   texto   (String)   e   retornar   a   quantidade   de   palavras  
nela  contida.  

Exemplos:  

Entrada   Saída  
“Roma”   1  
“Ordem  e  Progresso”   3  
“A  mala  nada  na  lama”   5  
 
7. Escreva   uma   função   que   amplia   a   capacidade   de   armazenamento   de   um   array   recebido   por  
parâmetro,  com  base  em  um  fator  de  ampliação,  também  recebido  por  parâmetro,  como  pode  ser  
visto  na  função  abaixo.  

 p ublic static int[] ampliarArray(int[] umArray, float fator) {


// Todo seu código aqui
}  

8. Escreva  uma  função  que  imprima  todos  os  elementos  de  um  array  recebido  por  parâmetro.  

9. De   forma   simplória,   encriptar   é   a   técnica   de   transformar   um   texto   “legível”   em   outro   “não  


legível”,   afim   de   dificultar   sua   leitura   por   pessoas   não   autorizadas.   Se   uma   pessoa   autorizada  
deseja  “ler”  o  conteúdo  original  escondido  sob  o  código  encriptado,  esta  precisa  desencriptar  tal  
conteúdo.   Para   que   o   processo   de   encriptação   e   desencriptação   ocorra   com   sucesso,   ambas   as  
partes  envolvidas  precisam  conhecer  o  “mecanismo”  de  encriptação  utilizado.  

Escreva  um  programa  que  leia  uma  String  e  modifique  todas  as  vogais  por  números,  conforme  o  
quadro  abaixo.  Por  fim,  exiba  a  String  encriptada  e  desencriptada:  

Letra   a   e   i   o   u  
Modificar  por   4   3   1   0   8  
 
Dicas:    

• Crie   uma   função   que   irá   encriptar   essa   String   e   uma   outra   função   para   desencriptar   a  
String;  
• Pesquise  sobre  os  métodos  charAt,  indexOf,  replace  e  replaceAll,  da  classe  String.  

Exemplos:  

Entrada   Saída  
“Roma”   “R0m4”  
“Ordem  e  Progresso”   “0rd3m  3  Pr0gr3ss0”  
“A  mala  nada  na  lama”   “4  m4l4  n4d4  n4  l4m4”  
 

10. Desenvolva   um   programa   responsável   por   verificar   que   um   usuário   está   autenticado.   Para  
isso,   implemente   uma   função   chamada   autenticar,   que   recebe   duas   Strings   como   parâmetro,  
que  representam  o  login  e  a  senha  de  um  usuário,  respectivamente.  Essa  função  deverá  retornar  
se  o  usuário  autenticou-­‐se  com  sucesso  ou  não.  Um  usuário  deverá  ser  considerado  autenticado  
quando   a   senha   informada   for   exatamente   igual   ao   login,   com   as   vogais   substituídas   por  
números.  

Dica:    

• utilize  a  função  desenvolvida  na  questão  anterior  para  gerar  a  senha  esperada.  

Exemplos:  

Entrada   Saída  
Login=“admin”,  senha=“4dm1n”   Usuário  Autenticado  
Login=“admin”,  senha=“admin”   Usuário  não  Autenticado  
 

 
Lista de exercícios – Vetores e strings

1) Fazer um programa de “criptografia” (codificação de dados visando a privacidade


de acesso as informações), onde dada uma string (vetor de caracteres) este programa
codifique os dados através de um processo de substituição de letras. Você pode definir
o seu próprio método de criptografia, desde que depois seja possível reverter este
processo, ou seja, um código criptografado deve poder ser convertido novamente ao
valor inicial.

Exemplo:
>> Criptografador – Codifica uma String <<
Entre como texto (string) a ser criptografado: LinguagemC
Texto criptografado: MjohvbhfnD

Dicas:
Strings são vetores de caracteres, por exemplo, char Texto[80]; /* texto de até 79
letras */
Strings são vetores com sequências de caracteres terminados por um ‘\0’
Caracteres também permitem operações numéricas como por exemplo: Letra = Letra
+ 1;
Somar 1 ao código de uma letra, implica em transformar esta no caracter seguinte
(http://pt.wikipedia.org/wiki/ASCII).

2) Fazer um segundo programa, complementar a este anterior, que deve ser capaz de
descriptografar a string, ou seja, deve pegar uma string codificada e retornar ao texto
original.

Exemplo:
>> Descriptografador – Decodifica uma String <<
Entre como texto a ser descriptografado: MjohvbhfnD
Texto descriptografado: LinguagemC

Dicas:
Subtrair um do código de uma caracter implica em transformar no caracter anterior.
Exemplo:
Letra = ‘A’; Letra = Letra + 1;

3) Fazer um programa que leia uma string e converta todos os caracteres desta string
para maiúsculo. Depois de convertida a string, exibir o resultado na tela.
Dicas: (1) Uma string de caracteres é um vetor do tipo char, terminado pelo caractere
‘\0’; (2) O código ASCII da letra ‘a’ (minúsculo) é 97 e o código da letra ‘A’
(maiúsculo) é 65, o código da letra ‘z’ é 122 e o código da letra ‘Z’ é 90; (3) Cuidado
para não acabar convertendo aquilo que não é nem texto e nem está em minúsculas!
Exemplo:

>> Converte Texto: Minusculas para Maiusculas <<


Entre um texto : Prezados Alunos da USP de Sao Carlos (2009)
Texto convertido: PREZADOS ALUNOS DA USP DE SAO CARLOS (2009)
4) Faça um programa que leia duas strings (de tamanho máximo 40). Após isso, o
programa deve concatenar as informações lidas e mostrar o resultado para o usuário.
Exemplo: Se a primeira string digitada for "Bom dia, " e a segunda "moçada !", então
o resultado deverá ficar: "Bom dia, moçada !".

5) Escreva uma função para ler 10 elementos inteiros, colocá-los num vetor e retornar
um outro vetor contendo todos os números primos do vetor inicial. Na função,
imprima os valores dos dois vetores.

6) Implemente um programa que receba um nome completo e apresente apenas o


último nome e o 1º nome na seguinte forma:
último, 1º nome
Exemplo:
Rafael Paes Olivera

saída: Oliveira, Rafael

7) São dadas as coordenadas reais x e y de um ponto, um número natural n, e as


coordenadas reais de n pontos (1 < n < 100). Deseja-se calcular e imprimir sem
repetição os raios das circunferências centradas no ponto (x,y) que passam por pelo
menos um dos n pontos dados.

Exemplo : (x,y) = (1.0, 1.0) ; n = 5


pontos : (-1.0, 1.2) , (1.5, 2.0) , (0.0, -2.0) , (0.0, 0.5) , (4.0, 2.0)
Nesse caso há três circunferências de raios: 1.12, 2.01 e 3.162.
Informações:
Distância entre os pontos (a,b) e (c,d) é
Dois pontos estão na mesma circunferência se estão à mesma distância do centro.
Universidade Federal de Uberlândia - UFU
Faculdade de Computação - FACOM
Lista de exercı́cios de programação em linguagem C

Exercı́cios: Strings
1. Faça um programa que então leia uma string e a imprima.

2. Crie um programa que calcula o comprimento de uma string (não use a função strlen).

3. Entre com um nome e imprima o nome somente se a primeira letra do nome for ‘a’
(maiúscula ou minúscula).

4. faça um programa que leia um nome e imprima as 4 primeiras letras do nome.

5. Digite um nome, calcule e retorne quantas letras tem esse nome.

6. Ler nome, sexo e idade. Se sexo for feminino e idade menor que 25, imprime o nome da
pessoa e a palavra “ACEITA”, caso contrário imprimir “NÃO ACEITA”.

7. Crie um programa que compara duas strings (não use a função strcmp).

8. Faça um programa que conte o número de 1’s que aparecem em um string. Exemplo:
“0011001” -> 3

9. Escreva um programa que substitui as ocorrências de um caractere ‘0’ em uma string por
outro caractere ‘1’.

10. Faça um programa que receba uma palavra e a imprima de trás-para-frente.

11. Faça um programa que receba do usuário uma string. O programa imprime a string sem
suas vogais.

12. Faça um programa que receba uma palavra e calcule quantas vogais (a, e, i, o, u) possui
essa palavra. Entre com um caractere (vogal ou consoante) e substitua todas as vogais
da palavra dada por esse caractere.

13. Ler uma frase e contar quantos caracteres são espaços em brancos. Lembre-se que
uma frase é um conjunto de caracteres (vetor).

14. Faça um programa que leia uma palavra (máximo de 50 letras) e some 1 no valor ASCII
de cada caractere da palavra. Imprima a string resultante.

15. Escreva um programa para converter uma cadeia de caracteres de letras maiúsculas em
letras minúsculas. Dica: some 32 dos caracteres cujo código ASCII está entre 65 e 90.

16. Leia uma cadeia de caracteres e converta todos os caracteres para maiúscula. Dica:
subtraia 32 dos caracteres cujo código ASCII está entre 97 e 122.

17. Leia um vetor contendo letras de uma frase inclusive os espaços em branco. Retirar os
espaços em branco do vetor e depois escrever o vetor resultante.

18. Faça um programa em que troque todas as ocorrências de uma letra L1 pela letra L2 em
uma string. A string e as letras L1 e L2 devem ser fornecidas pelo usuário.

1
19. Escreva um programa que leia a idade e o primeiro nome de 10 pessoas. Seu programa
deve terminar quando uma idade negativa for digitada. Ao terminar, seu programa deve
escrever o nome e a idade das pessoas mais jovens e mais velhas.
20. Faça um programa que preencha uma matriz de string com os modelos de cinco carros
(exemplos de modelos: Fusca, Gol, Vectra, etc.). Em seguida, preencha um vetor com o
consumo desses carros, isto é, quantos quilômetros cada um deles faz com um litro de
combustı́vel. Calcule e mostre:
(a) O modelo de carro mais econômico;
(b) Quantos litros de combustı́vel cada um dos carros cadastrados consome para per-
correr uma distância de 1.000 quilômetros.
21. Faça um programa que receba duas frases distintas e imprima de maneira invertida,
trocando as letras A por *.
22. Ler o nome e o valor de uma determinada mercadoria de uma loja. Sabendo que o
desconto para pagamento à vista é de 10% sobre o valor total, calcular o valor a ser
pago à vista. Escrever o nome da mercadoria, o valor total, o valor do desconto e o valor
a ser pago à vista.
23. Escreva um programa que recebe uma string S e inteiros não-negativos I e J e imprima
o segmento S[I..J].
24. Escreva um programa que recebe do usuário uma string S, um caractere C, e uma
posição I e devolve o ı́ndice da primeira posição da string onde foi encontrado o caractere
C. A procura deve começar a partir da posição I.
25. Escreva um programa que leia duas palavras e diga qual deles vem primeiro na ordem
alfabética. Dica: ‘a’ é menor do que ‘b’.
26. O código de César é uma das mais simples e conhecidas técnicas de criptografia. É um
tipo de substituição na qual cada letra do texto é substituı́da por outra, que se apresenta
no alfabeto abaixo dela um número fixo de vezes. Por exemplo, com uma troca de três
posições, ‘A’ seria substituı́do por ‘D’, ‘B’ se tornaria ‘E’, e assim por diante. Implemente
um programa que faça uso desse Código de César (3 posições), entre com uma string e
retorne a string codificada. Exemplo:

String: a ligeira raposa marrom saltou sobre o cachorro cansado


Nova string: D OLJHLUD UDSRVD PDUURP VDOWRX VREUH R FDFKRUUR FDQVDGR

27. Faça um programa que, dada uma string, diga se ela é um palı́ndromo ou não. Lem-
brando que um palı́ndromo é uma palavra que tenha a propriedade de poder ser lida
tanto da direita para a esquerda como da esquerda para a direita. Exemplo:

ovo
arara
Socorram-me, subi no ^
onibus em Marrocos.
Anotaram a data da maratona

28. Construa um programa que leia duas strings fornecidas pelo usuário e verifique se a se-
gunda string lida esta contida no final da primeira, retornando o resultado da verificação.
29. Implemente um programa que leia duas strings, str1 e str2, e um valor inteiro positivo
N. Concatene não mais que N caracteres da string str2 à string str1 e termine str1 com
‘\0’.

2
30. Leia duas cadeias de caracteres A e B. Determine quantas vezes a cadeia A ocorre na
cadeia B.

31. Faça um programa que contenha um menu com as seguintes opções:

(a) Ler uma string S1 (tamanho máximo 20 caracteres);


(b) Imprimir o tamanho da string S1;
(c) Comparar a string S1 com uma nova string S2 fornecida pelo usuário e imprimir o
resultado da comparação;
(d) Concatenar a string S1 com uma nova string S2 e imprimir na tela o resultado da
concatenação;
(e) Imprimir a string S1 de forma reversa;
(f) Contar quantas vezes um dado caractere aparece na string S1. Esse caractere
desse ser informado pelo usuário;
(g) Substituir a primeira ocorrência do caractere C1 da string S1 pelo caractere C2. Os
caracteres C1 e C2 serão lidos pelo usuário;
(h) Verificar se uma string S2 é substring de S1. A string S2 deve ser informada pelo
usuário;
(i) Retornar uma substring da string S1. Para isso o usuário deve informar a partir de
qual posição deve ser criada a substring e qual é o tamanho da substring.

32. Leia uma cadeia de caracteres no formato “DD/MM/AAAA” e copie o dia, mês e ano para
3 variáveis inteiras. Antes disso, verifique se as barras estão no lugar certo, e se DD, MM
e AAAA são numéricos.

33. Faça um programa para ler uma tabela contendo os nomes dos alunos de uma turma de
5 alunos. O programa deve solicitar ao usuário os nomes do aluno, sempre perguntando
se ele deseja inserir mais um nome na lista. Uma vez lidos todos os alunos, o usuário
irá indicar um nome que ele deseja verificar se está presente na lista, onde o programa
deve procurar pelo nome (ou parte deste nome) e se encontrar deve exibir na tela o nome
completo e o ı́ndice do vetor onde está guardado este nome.

34. Faça um programa que encontre o conjunto de 5 dı́gitos consecutivos na sequência


abaixo que gere o maior produto:

73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
12540698747158523863050715693290963295227443043557
66896648950445244523161731856403098711121722383113
62229893423380308135336276614282806444486645238749
30358907296290491560440772390713810515859307960866
70172427121883998797908792274921901699720888093776
65727333001053367881220235421809751254540594752243
52584907711670556013604839586446706324415722155397
53697817977846174064955149290862569321978468622482
83972241375657056057490261407972968652414535100474
82166370484403199890008895243450658541227588666881
16427171479924442928230863465674813919123162824586
17866458359124566529476545682848912883142607690042

3
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
84580156166097919133875499200524063689912560717606
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450

Você também pode gostar