Escolar Documentos
Profissional Documentos
Cultura Documentos
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:
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:
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.
8. Escreva uma função que imprima todos os elementos de um array recebido por parâmetro.
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
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:
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.
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).
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’.
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:
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.
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.
73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
12540698747158523863050715693290963295227443043557
66896648950445244523161731856403098711121722383113
62229893423380308135336276614282806444486645238749
30358907296290491560440772390713810515859307960866
70172427121883998797908792274921901699720888093776
65727333001053367881220235421809751254540594752243
52584907711670556013604839586446706324415722155397
53697817977846174064955149290862569321978468622482
83972241375657056057490261407972968652414535100474
82166370484403199890008895243450658541227588666881
16427171479924442928230863465674813919123162824586
17866458359124566529476545682848912883142607690042
3
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
84580156166097919133875499200524063689912560717606
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450