Escolar Documentos
Profissional Documentos
Cultura Documentos
Clóvis Júnior
10 de Agosto de 2019
Sumário
1 Comandos básicos 3
2 Estruturas de condição 8
3 Estruturas de repetição 16
4 Vetores e Matrizes 25
4.1 Vetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2 Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5 Strings 36
1
Lista de Tabelas
2
Capítulo 1
Comandos básicos
e C a temperatura em Celsius.
5. Efetuar a leitura de três valores e apresentar como resultado nal a soma dos quadrados
7. Receber o salario de um funcionário, calcular e mostrar seu novo salário, sabendo que ele
8. Receber a altura do degrau de uma escada e a altura que o usuário deseja alcançar
subindo a escada. Calcular e mostrar quantos degraus o usuário deverá subir para atingir
3
Calcule e imprima a quantia ganha por cada um dos ganhadores.
11. Uma empresa contrata um encanador a R$30, 00 por dia. Crie um programa que solicite
o número de dias trabalhados pelo encanador e imprima a quantia líquida que deverá ser
12. Sejama e b os catetos de um triângulo retângulo, onde a hipotenusa é obtida pela equação
√
hipotenusa = a2 + b2 . Faça um programa que entre com os valores de a e b, e ache o
valor da hipotenusa através da fórmula. Imprima o resultado.
14. Faça um programa para ler um número inteiro, positivo de três dígitos, e gerar outro
número formado pelos dígitos invertidos do número lido. Exemplo: Número lido = 123 /
15. Faça um programa para ler o horário (hora, minuto e segundo) de início e a duração,
16. Faça um algoritmo que calcule a média ponderada das notas de 3 provas. A primeira e
a segunda prova têm peso 1 e a terceira tem peso 2. Antes de o usuário entrar com as
notas do aluno, ele deve entrar com o número de matrícula do aluno. Ao nal, mostrar
a matrícula do aluno, juntamente com a sua média e indicar se o aluno foi aprovado ou
reprovado.
17. Faça um programa que leia o valor da hora de trabalho (em reais) e número de horas
trabalhadas no mês, e exiba na tela o valor a ser pago ao funcionário, adicionando 10%
sobre o valor calculado.
18. Escreva um programa que leia as coordenadas (x, y) de pontos no R2 e calcule sua distância
da origem (0, 0).
20. Leia um valor inteiro em segundos e depois mostrá-lo em horas, minutos e segundos.
21. Três amigos jogam na loteria. Caso eles ganhem, o prêmio deve ser repartido proporci-
onalmente ao valor que cada um deu para a realização da aposta. Faça um programa
que leia quanto cada apostador investiu, leia o valor do prêmio e escreve quanto cada um
ganharia.
22. Faça um programa que receba dois inteiros, através da entrada-padrão, e construa um
4
23. Ler uma temperatura em graus Fahrenheit e apresentá-la convertida em graus Celsius.
24. Ler uma temperatura em Kelvin e apresentá-la em graus Celsius. A fórmula de conversão
25. Ler uma temperatura em graus Celsius e apresentá-la em graus Kelvin. A fórmula de
em Kelvin.
26. Ler uma velocidade em km/h (quilômetros por hora) e apresentá-la convertida em m/s
(metros por segundo). A fórmula de conversão é: M = K/3.6, sendo K a velocidade em
km/h e M em m/s.
27. Ler uma velocidade em m/s (metros por segundo) e apresentá-la convertida para km/h
(quilômteros por hora). A fórmula de conversão é: K = M ∗ 3.6, sendo K a velocidade
em km/h e M em m/s.
comprimento em polegadas.
comprimento em polegadas.
34. Ler um valor de volume em metros cúbicos (m3 ) e apresentá-lo convertido em litros. A
fórmula de conversão é: L = 1000 ∗ M , sendo L o volume em litros e M o volume em
metros cúbicos.
metros cúbicos.
5
36. Ler um valor de massa em quilogramas e apresentá-lo convertido em libras. A fórmula de
metros.
metros.
área em hectares.
área em hectares.
44. Peça ao usuário para digitar 3 valores inteiros e mostre sua soma.
• Crie e leia dois números complexos z e w, compostos por parte real e imaginária;
• Apresente a soma, subtração e produto entre z e w, nessa ordem, bem como o módulo
de ambos.
• Crie e leia um ponto em coordenada polar, composto por raio (r) e argumento (θ)
em radianos;
• Crie outro ponto, agora em coordenada cartesiana, composto por x e y , sabendo que
x = r cos θ e y = r sin θ.
47. Faça um programa para calcular a corrente em um circuito elétrico resistivo simples:
6
• Crie e leia os dados de uma fonte de tensão real composta por força eletromotriz E
e resistência interna ri;
• Crie e leia os dados de um resistor composto por resistência interna ri e consumo
0
E ;
• Calcule e mostre a corrente que passa no circuito composto pela fonte e pelo receptor
0
lidos, sabendo que E = E + Ri, onde R é a soma das resistências internas.
48. Ler a altura e o raio de um cilindro circular e imprimir o volume do cilindro. O volume
π = 3.141592.
50. Faça um programa que leia um inteiro e o imprima. Em seguida, leia um real e o imprima.
51. Leia um valor em reais e a cotação do dólar. Em seguida, imprima o valor correspondente
em dólares.
52. Escreva um algoritmo para criar um programa de ajuda para vendedores. A partir de um
• A comissão do vendedor, no caso da venda ser à vista (5% sobre o valor do desconto);
• A comissão do vendedor, no caso da venda ser parcelada (5% sobre o valor total).
53. Um cercado contém patos e coelhos. Faça um programa que solicita o total de cabeças e
54. Ler um número inteiro e imprimir a soma do sucessor de seu triplo com o antecessor de
seu dobro.
55. Faça um programa para ler as dimensões de um terreno (comprimento c e largura l), bem
como o preço do metro de arame p, então fornecer como saída o custo para cercar este
mesmo terreno.
57. Faça um programa que possa entrar com o valor de um produto e imprima o valor, tendo
58. Implemente um programa que calcule o ano de nascimento de uma pessoa a partir de sua
7
Capítulo 2
Estruturas de condição
1. Faça um programa que receba dois números e mostre qual deles é o maior.
2. Ler um número real, se o número for positivo, imprima a raiz quadrada; senão, imprima
o número ao quadrado.
divisível por 400 ou se for divisível por 4 e não for divisível por 100. Por exemplo: 1988,
1992, 1996.
prestação for maior que 20% do salário, imprima: Empréstimo não concedido; caso
5. Ler o ano de nascimento de uma pessoa e o ano atual. Retorne a idade da pessoa.
• Trabalho de Laboratório: 2
• Avaliação Semestral: 3
• Exame Final: 5
Faça um programa que receba as três notas, calcule e mostre a média obtida. E, de
acordo com o resultado, mostre na tela se o aluno está reprovado (média entre 0 e 2, 9),
de recuperação (entre 3 e 4, 9) ou se foi aprovado. Faça todas as vericações necessárias.
7. Faça um programa que receba um número inteiro e verique se este número é par ou
ímpar.
8
9. Faça um programa que receba a altura e o peso de uma pessoa. De acordo com a tabela
Peso
Altura
Até 60 Entre 60 e 90 (Inclusive) Acima de 90
Menor que 1,20 A D G
De 1,20 a 1,70 B E H
Maior que 1,70 C F I
10. Dados três valores, A, B, C , vericar se eles podem ser valores dos lados de um triângulo
e, se forem, verique também se é um triângulo escaleno, um triângulo equilátero ou um
• O comprimento de cada lado de um triângulo é menor que a soma dos outros dois
lados;
11. Escreva um programa que leia um inteiro entre 1 e 7 e imprima o dia da semana corres-
12. Faça um programa para vericar se um determinado número inteiro é divisível por 3 ou
13. Escreva o menu de opções abaixo, leia a opção do usuário e execute a operação escolhida.
Escolha a opção:
1 - Soma de 2 números
2 - Diferença entre dois números (maior pelo menor)
3 - Produto entre 2 números
4 - Divisão entre 2 números (o denominador não pode ser zero).
Opção
14. Uma empresa vende o mesmo produto para quatro diferentes estados. Cada estado possui
uma taxa diferente de imposto sobre o produto (MG 7%, SP 12%, RJ 15%, MS 8%).
Faça um programa em que o usuário entre com o valor e o estado destino do produto, e
o programa retorne o preço nal do produto acrescido do imposto do estado em que ele
será vendido. Se o estado digitado não for válido, mostrar uma mensagem de erro.
9
15. Leia a distância em km e a quantidade de litros de gasolina consumidos por um carro em
um percurso, calcule o consumo em km/L e escreva uma mensagem de acordo com a tela
abaixo:
16. Leia a nota e o número de faltas de um aluno, e escreva seu conceito. De acordo com a
tabela abaixo, quando o aluno tem mais de 20 faltas, ocorre uma redução de conceito.
17. Leia a idade e o tempo de serviço de um trabalhador e escreva se ele pode ou não se
10
18. Faça um programa que leia três números inteiros positivos e efetue o cálculo de uma das
seguinte médias de acordo com um valor numérico digitado pelo usuário mostrado na
tabela a seguir.
x+2y+3z
2 Ponderada
6
1
3 Harmônica 1
x
+ y1 + z1
x+y+z
4 Aritmética
3
19. Leia uma data e determine se ela é válida. Ou seja, verique se o mês está entre 1 e 12, e
se o dia existe naquele mês. Note que Fevereiro tem 29 dias em anos bissextos, e 28 dias
em anos não-bissextos.
20. Um produto vai sofrer aumento de acordo com a tabela abaixo. Leia o preço antigo,
calcule e escreva o preço novo, e escreva a mensagem em função do preço novo (De acordo
21. Ler um número inteiro. Enquanto o número lido for negativo, escreva a mensagem
Número inválido e solicite nova leitura. Se for fornecido um número inválido por
11
22. Considere a tabela abaixo:
Escreva um programa que, dado o valor da venda, imprima a comissão que deverá ser
paga ao vendedor.
23. Escreva um programa completo que, dados dois números inteiros, mostre na tela o maior
24. Escreva um programa completo que aceite, pelo terminal, um número inteiro maior que
zero e devolva, na tela, a soma de todos os seus algarismos. Por exemplo, ao número 251
corresponderá o valor 8. Se o número introduzido pelo utilizador não for maior que zero,
25. Escrever um programa que leia o código do produto escolhido do cardápio de uma lan-
chonete e a quantidade. Assim, o programa deve calcular o valor a ser pago por aquele
lanche. Considere que a cada execução, somente será calculado um pedido. O cardápio
26. Escreva um programa que, dada a idade de um nadador, classique-o em uma das seguin-
tes categorias:
CATEGORIA IDADE
Infantil A 5 a 7
Infantil B 8 a 10
Juvenil A 11 a 13
Juvenil B 14 a 17
Sênior maiores de 18 anos
12
• 1a e 2a hora - R$ 1, 00 cada
• 3a e 4a hora - R$ 1, 40 cada
O número de horas a pagar é sempre inteiro e arredondado por excesso. Deste modo,
quem estacionar durante 61 minutos, pagará por duas horas, que é o mesmo que pagaria
deste são apresentados na forma de pares de inteiros, representando horas e minutos. Por
programa que, lidos pelo teclado os momentos de chegada e de partida, escreva na tela
o preço cobrado pelo estacionamento. Deverá haver validação de dados. Admite-se que
a chegada e a partida se dão com intervalo não superior a 24 horas (mas cujo controle
de vericação não passa pelo programa aqui em causa). Portanto, se uma dada hora de
chegada for superior à da partida, isso não é uma situação de erro, antes signicará que
28. Faça uma prova de matemática para crianças que estão aprendendo a somar números
inteiros menores que 100. Escolha números aleatórios entre 1 e 100, e mostre na tela a
resposta. Faça cinco perguntas ao aluno e mostre para ele as perguntas e as respostas
29. Faça um programa que mostre ao usuário um menu com 4 opções de operações mate-
máticas (as básicas, por exemplo). O usuário escolhe uma das opções e o seu programa
então pede dois valores numéricos e realiza a operação, mostrando o resultado e saindo.
30. Calcule as raízes de uma equação do 2◦ grau. Lembrando que as expressões matemáticas
envolvidas são:
ax2 + bx + c = 0
∆ = b2 − 4ac
√
−b ± ∆
x=
2a
31. Faça um programa que receba a altura e o sexo de uma pessoa e calcule e mostre seu peso
H = (72, 7 ∗ h) − 58
M = (62, 1 ∗ h) − 44, 7
onde:
13
• H - Homens
• M - Mulheres
• h - Altura
32. Faça um programa que receba dois números e mostre o maior. Se por acaso, os dois
33. Faça um programa que calcule e mostre a área de um trapézio. Sabe-se que:
(B + b) h
A=
2
Lembre-se que a base maior e a base menor devem ser números maiores que zero.
34. Faça um programa que leia um número e, caso ele seja positivo, calcule e mostre:
35. Faça um programa que informe o mês de acordo com o número informado pelo usuário.
Exemplo:
Entrada: 4
Saída: Abril.
36. Faça um programa que leia duas notas de um aluno, verique se as notas são válidas e
exiba na tela a média destas notas. Uma nota válida deve ser obrigatoriamente um valor
entre 0.0 e 10.0, onde caso a nota não possua um valor válido, este fato deve ser informado
ao usuário e o programa termina.
37. Ler um número fornecido pelo usuário, e se este número for positivo, calcular a raiz
quadrada do número. Se o número for negativo, exibir uma mensagem dizendo que o
número é inválido.
38. Ler três números inteiros e exibir na tela valores dispostos em ordem crescente e de-
meio.
39. Ler uma data de nascimento de uma pessoa fornecida através de três dados inteiros: dia,
mês, ano. Testar a validade desta data para saber se esta é uma válida. Testar se o
dia fornecido é um dia válido: dia > 0, dia ≤ 28 para o mês de fevereiro (29 se o ano
for bissexto), dia ≤ 30 em abril, junho, setembro e novembro, dia ≤ 31 nos outros
meses. Testar a validade do mês: mês > 0 e mês < 13. Testar a validade do ano: ano
< ano atual (use uma constante denida com o valor igual a 2008). Imprimir data
válida ou data inválida no nal da execução do programa.
14
40. Uma empresa decide dar um aumento aos seus funcionários de acordo com uma tabela
com menor salário terão um aumento proporcionalmente maior que os funcionários com
um salário maior, e conforme o tempo de serviço na empresa, cada funcionário irá receber
empresa).
Use a tabela abaixo para calcular o salário reajustado deste funcionário e imprima o valor
do salário nal reajustado, ou uma mensagem caso o funcionário não tenha direito a
nenhum aumento.
fábrica, de acordo com a tabela abaixo. Leia o custo de fábrica e escreva o custo ao
consumidor.
42. Faça um algoritmo que calcule o IMC de uma pessoa e mostre sua classicação de acordo
IMC CLASSIFICAÇÃO
< 18,5 Abaixo do peso
18,6 - 24,9 Saudável
25,0 - 29,9 Peso em excesso
30,0 - 34,9 Obesidade Grau I
35,0 - 39,9 Obesidade Grau II (severa)
≥ 40,0 Obesidade Grau III (mórbida)
15
Capítulo 3
Estruturas de repetição
1. Elabore um programa que faça a leitura de vários números inteiros até que se digite um
número negativo. O programa tem que retornar o maior e o menor número lido.
valor do kWh, e para cada habitante, entre com os seguintes dados: consumo do mês e o
o maior, o menor e a média do consumo dos habitantes e, por m, o total do consumo de
até o primeiro número superior ao número lido. Exemplo: se o usuário informou o número
5. Faça um programa que leia um número inteiro N e depois imprima os N primeiros números
naturais ímpares.
6. Faça um programa que calcule e mostre a soma dos 50 primeiros números pares.
7. Faça um programa que receba um número inteiro maior que 1 e verique se o número
16
e) O menor número digitado;
estruturas de repetição.
10. Escreva um programa que leia um número inteiro positivo n e em seguida imprima n
linhas do Triângulo de Floyd:
Exemplo: para n = 6,
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
11. Usando o comando for, faça um algoritmo que conte o número de 1's que aparecem em
13. Faça um algoritmo que leia os números positivo e imprima seus divisores.
14. Faça um algoritmo utilizando o comando while que mostra uma contagem regressiva
na tela, iniciando em 10 e terminando em 0. Mostrar uma mensagem FIM! após a
contagem.
15. Faça um programa que peça ao usuário para digitar 10 valores e some-os.
16. Faça um programa que some todos os números naturais abaixo de 1000 que são múltiplos
de 3 ou 5.
17. Faça um programa que some os termos de valor par da sequência de Fibonacci, cujos
18. Faça um programa que calcule o maior número palíndromo feito a partir do produto de
19. Faça um programa que calcule o menor número divisível por cada um dos números de 1
a 20. Exemplo: 2520 é o menor número que pode ser dividido por cada um dos números
17
20. Faça um programa que calcule a diferença entre a soma dos quadrados dos primeiros 100
números naturais e o quadrado da soma. Exemplo:
12 + 22 + . . . + 102 = 385
(c) A diferença entre a soma dos quadrados dos dez primeiros números naturais e o
21. 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
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
84580156166097919133875499200524063689912560717606
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450
22. Faça um programa que calcule o terno pitagórico a, b, c para o qual a + b + c = 1000. Um
2 2 2
terno pitagórico é um conjunto de três números naturais a, b, c para o qual a + b = c .
Por exemplo, 32 + 42 = 25 = 52 .
23. Faça um programa que calcule a soma de todos os números primos abaixo de dois milhões.
18
24. Escreva um programa que leia um número inteiro e calcule a soma de todos os divisores
desse número, com exceção dele próprio. Exemplo: A soma dos divisores do número 66 é
1 + 2 + 3 + 6 + 11 + 22 + 33 = 78.
25. Se os números de 1 a 5 são escritos em palavras: um, dois, três, quatro, cinco, então há
3 + 4 + 4 + 6 + 5 = 22 letras usadas no total. Faça um programa que conte quantas letras
seriam utilizadas se todos os números de 1 a 1000 forem escritos em palavras. OBS: Não
26. Faça um programa que leia um número inteiro positivo N e imprima todos os números
27. Faça um programa que leia um número inteiro positivo N e imprima todos os números
28. Faça um programa que leia um número inteiro positivo N e imprima todos os números
29. Faça um programa que leia um número inteiro positivo N e imprima todos os números
30. Faça um programa que leia um número inteiro positivo N e imprima todos os números
31. Faça um programa que leia um número inteiro positivo N e imprima todos os números
32. Em Matemática, o número harmônico designado por Hn se dene como sendo o n−ésimo
termo da série harmônica. Ou seja,
1 1 1 1
Hn = 1 + + + + ... +
2 3 4 n
33. Faça um programa que leia um valor N inteiro e positivo, calcule e mostre o valor E,
conforme a fórmula a seguir:
1 1 1 1
E =1+ + + + ... +
1! 2! 3! N!
circuito elétrico. O programa ca pedindo esses valores e calculando até que o usuário
1 1 1 1
= + + ... +
Req R1 R2 RN
19
35. Escreva um programa que leia 10 números e escreva o menor valor lido e o maior valor
lido.
36. Dado um número inteiro positivo n, calcular a soma dos n primeiros números naturais.
37. Faça um programa que calcule a área de um triângulo, cuja base a altura são fornecidos
pelo usuário. Esse programa não pode permitir a entrada de dados inválidos, isto é,
38. Faça um programa que leia um número indeterminado de linhas contendo cada uma a
idade de um indivíduo (pare quando for informada a idade 0), e calcule a idade média
39. Faça um programa que leia um conjunto não determinado de valores, um de cada vez, e
escreva, para cada um dos valores lidos, o quadrado, o cubo e a raiz quadrada. Finalize
40. Faça um programa para ler o código, o sexo (M - masculino, F - feminino) e o número
cada hora-aula vale R$30, 00. Emita uma listagem contendo o código, o salário bruto
os professores. Mostre também a média dos salários líquidos dos professores dos sexos
41. O funcionário chamado Carlos tem um colega chamado João, que recebe salário que
equivale a um terço do seu salário. Carlos, que gosta de fazer aplicações na caderneta
de poupança, vai aplicar seu salário integralmente nela, pois está rendendo 2% ao mês,
e João aplicará seu salário integralmente no fundo de renda xa, que está rendendo 5%
ao mês. Construa um programa que deverá calcular e mostrar a quantidade de meses
necessários para que o valor pertencente a João iguale ou ultrapasse o valor pertencente
suas notas na primeira prova, determinar a maior e a menor nota obtidas por esse turma.
44. Faça um programa que leia 10 inteiros positivos, ignorando não-positivos, e imprima sua
média.
20
45. Faça um programa que simula o lançamento de dois dados d1 e d2 , n vezes, e tem como
saída o número de cada dado, bem como a relação entre eles (>, <, =) de cada lançamento.
46. Escreva um programa que leia um número inteiro não-negativo n e imprima a soma dos
48. Faça um programa que gera um número aleatório de 1 a 1000. O usuário deve tentar
acertar qual o número foi gerado; a cada tentativa, o programa deverá informar se o
chute é menor ou maior que o número gerado. O programa acaba quando o usuário
acerta o número gerado. O programa deve informar em quantas tentativas o número foi
descoberto.
49. Escreva um programa que declare um inteiro, inicialize-o com 0 e incremente-o de 1000
em 1000, imprimindo seu valor na tela até que o valor seja 100.000 (cem mil).
50. Um funcionário recebe aumento anual. Em 1995, foi contratado com 2000 reais. Em
51. Escreva um programa que receba como entrada o valor do saque realizado pelo cli-
ente de um banco e retorne quantas notas de cada valor serão necessárias para aten-
der ao saque com a menor quantidade de notas possível. Serão utilizadas notas de
1 2 3
S =0+ + + + ...
2! 4! 6!
53. Escreva um algoritmo que leia certa quantidade de números e imprima o maior deles e
quantas vezes o maior número foi lido. A quantidade de números a serem lidos deve ser
54. Escreva um algoritmo que leia uma certa quantidade de números inteiros entre 100 e 999
e imprima na saída cada um dos algarismos que compõem os números.
55. Uma empresa paga R$ 10, 00 por hora normal trabalhada e R$ 15, 00 por hora extra. Es-
creva um programa que leia o total de horas normais e o total de horas extras trabalhadas
56. Faça um programa que conte quantos números primos existem entre a e b.
21
58. Faça um programa que calcule e escreva o valor de S:
1 3 5 7 99
S= + + + + ... +
1 2 3 4 50
59. Escreva um programa que leia um número inteiro positivo n e, em seguida, imprima n
linhas do chamado Triângulo de Pascal:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
60. Escreva um programa que verique quais números entre 1000 e 9999 (incluindo este)
possuem a seguinte propriedade: a soma dos dois dígitos de mais baixa ordem com os
dois dígitos de mais alta ordem elevada ao quadrado é igual ao próprio número. Exemplo:
A = 1 + 2 + 3 + 4 + 5 + ... + n
B = 1 − 2 + 3 − 4 + 5 − 6 + 7 − ...
C = 1 + 3 + 5 + 7 + 9 + . . . + (2n + 1)
62. Faça um programa que seja semelhante ao jogo de forca, mas com uma única letra. A
letra que o usuário deve adivinhar deve ser denida no código do programa. O usuário
tem 5 chances de acertar a letra. O programa naliza sua execução quando o usuário
63. Faça um algoritmo que converta uma velocidade expressa em km/h para m/s e vice-
versa. Você deve criar um menu com as duas opções de conversão e com uma opção para
nalizar o programa. O usuário poderá fazer quantas conversões desejar, sendo que o
programa só será nalizado quando a opção de nalizar for escolhida (no caso, caso ele
64. Chico tem 1, 50 m e cresce 2 cm por ano, enquanto Zé tem 1, 10 m e cresce 3 cm por ano.
Construa um algoritmo que calcule e imprima quantos anos serão necessários para que
65. Em uma eleição presidencial, existem quatro candidatos. Os votos são informados atra-
vés de códigos. Os dados utilizados para a contagem dos votos obedecem à seguinte
codicação:
22
• 1, 2, 3, 4 - votos para os respectivos candidatos;
• 5 - votos nulos;
• 6 - votos em branco.
66. Faça um algoritmo que encontre o primeiro múltiplo de 11, 13 ou 17 após um número
dado.
67. Faça um programa que receba dois valores. O primeiro representa uma conta a ser paga
e o segundo, com que valor ela foi paga. Mostre como resposta a quantidade mínima de
cada tipo de moeda/nota de troco. Imprima uma mensagem de erro caso o valor pago
68. Faça um programa que apresente um menu de opções para o cálculo das seguintes ope-
• Adição: opção 1
• Subtração: opção 2
• Multiplicação: opção 3
• Divisão: opção 4
• Saída: opção 5
69. Ler uma sequência de números inteiros e determinar se eles são pares ou não. Deverá ser
70. Construa um programa que permita introduzir pelo terminal uma sequência de números
encontrados deverão ser escritos na tela. Chama-se perfeito o número inteiro não-negativo
que seja igual à soma dos seus divisores próprios, exceto ele mesmo (Exemplo: o número
23
71. Faça um programa que receba dois números. Calcule e mostre:
• A soma dos números pares desse intervalo de números, incluindo os números digita-
dos;
72. Escreva um programa completo que permita a qualquer aluno introduzir, pelo teclado,
uma sequência arbitrária de notas (válidas no intervalo de 10 a 20) e que mostre na tela,
como resultado, a correspondente média aritmética simples. O número de notas com que
o aluno pretenda efetuar não será fornecido ao programa, o qual temrinará quando for
73. Numa votação, destinada a selecionar um entre três candidatos,optou-se pela coleta e
processamento dos votos por computador. Supondo que os candidatos são designados
pelas três primeiras letras do alfabeto, em minúsculas, faça um programa que obedeça
`$' indica o nal dessa sequência. Pretende-se a axação, na tela, dos seguintes dados
estatísticos:
• A votação obtida pelos diversos candidatos, quer em valor absoluto, quer em por-
O usuário digita uma senha numérica e o programa reconhece a senha como verdadeira
74. Faça um programa que some os números ímpares contidos em um intervalo denido pelo
usuário. O usuário dene o valor inicial do intervalo e o valor nal desse intervalo, e o
programa deve somar todos os números ímpares contidos neste intervalo. Caso o usuário
digite um intervalo inválido (começando por um valor maior que o valor nal), deve ser
24
Capítulo 4
Vetores e Matrizes
4.1 Vetores
2. Escreva um programa que leia n números inteiros no intervalo [0, 50] e os armazene em
um vetor estaticamente alocado com 100 posições. Preencha um segundo vetor, também
3. Leia um vetor de 10 posições. Contar e escrever quantos valores pares ele possui.
4. Leia um vetor de 10 posições e atribua valor 0 para todos os elementos que possuírem
valores negativos.
5. Faça um programa para ler a nota da prova de 15 alunos, calcule e imprima a média
geral. Tente fazer o programa usando funções, usando uma função para ler as notas e
6. Considere um vetor A com 11 elementos, onde A1 < A2 < . . . < A6 > A7 > A8 >
. . . > A11 , ou seja, está ordenado em ordem crescente até o sexto elemento e, a partir
deste elemento, está ordenado em ordem decrescente. Dado o vetor da questão anterior,
7. Faça um programa que receba do usuário dois arrays, A e B, com 10 números inteiros
8. Faça um programa que leia um vetor de 10 posições e verique se existem valores iguais
e os escreva.
25
9. Faça um programa que leia um vetor de 5 posições para números reais e, depois, um
código inteiro. Se o código for zero, nalize o programa; se for 1, mostre o vetor na ordem
10. Ler uma sequência de números reais e determinar o maior elemento desta sequência. A
11. Leia 10 números inteiros e armazene em um vetor. Em seguida, escreva os elementos que
12. Leia 10 números inteiros e armazene em um vetor V. Crie dois novos vetores V1 e V2 .
Copie os valores ímpares de V para V1 e os valores pares de V para V2 . Note que nem
13. Leia dois vetores X e Y, cada um como 5 elementos (assuma que o usuário não informa
em Y
mesma posição em Y
estão em X
14. Leia um vetor de 10 números de ponto utuante, ordene os elementos deste vetor e no
15. Leia um vetor com 20 números inteiros. Escreva os elementos do vetor eliminando ele-
mentos repetidos.
vetor. Os dados deverão ser armazenados no vetor na ordem que forem sendo lidos, sendo
que, caso o usuário digite um número que já foi digitado anteriormente, o programa deverá
pedir para ele digitar outro número. Note que, cada valor digitado pelo usuário deve ser
pesquisado no vetor, vericando se ele existe entre os números que já foram fornecidos.
17. Peça ao usuário para digitar 10 valores numéricos e ordene por ordem crescente esses
valores, guaradando-os em um vetor. Ordene o valor assim que ele for digitado. Mostre
26
18. Faça um programa que leia 10 conjuntos de dois valores, onde o primeiro representa o
número do aluno e o segundo, a sua altura em metros. Encontre o aluno mais baixo e o
mais alto. Mostre o número do aluno mais baixo e do mais alto, juntamente com suas
alturas.
19. Ler dois conjuntos de números reais, armazenando-os em vetores e calcular o produto
escalar entre eles. Os conjunto têm no máximo 20 elementos. Imprimir os dois conjuntos
20. Ler uma sequência de números inteiros (com números positivos e negativos) do teclado,
sequência esta que termina com o número zero e armazene-os em um vetor. Escrever o
23. Faça um programa que leia dois números inteiros a e b (positivos menores que 10000) e:
• Crie um vetor que seja a soma de a e b, mas faça-o usando apenas os vetores cons-
truídos anteriormente.
• Elabore um vetor de inteiros que seja a intersecção entre os dois vetores anteriores,
ou seja, que contém apenas os números que estão em ambos os vetores. Não deve
27
25. Faça um programa que leia dois números m e n e:
• Elabore um vetor de inteiros que seja a união entre os dois vetores anteriores, ou
26. Faça um programa que possua um array de nome A que armazene 6 números inteiros. O
27. Faça um programa que leia um vetor de 8 posições e, em seguida, leia também dois valores
28. Crie um programa que leia 6 valores inteiros e, em seguida, mostre na tela os valores lidos.
29. Faça um programa que receba do usuário um vetor X com 10 posições. Em seguida,
30. Faça um programa que leia dois vetores de 10 posições e calcule outro vetor contendo,
nas posições pares, os valores do primeiro vetor; e nas posições ímpares, os valores do
segundo vetor.
31. Faça um programa que leia um vetor de 10 posições e verique se existem valores e
escreva-os na tela.
32. Faça um programa que leia um vetor de 15 posições e compacte-os, isto é, elimine as
posições com valor zero. Para isto, todos os elementos à frente do valor zero devem ser
33. Faça um programa que preencha um primeiro vetor com dez números inteiros e um se-
gundo vetor com cinco números inteiros. O programa deverá mostrar uma lista de núme-
ros do primeiro vetor com seus respectivos divisores armazenados no segundo vetor, bem
entrada = [5 12 4 7 10 3 2 6 23 16]
saida = [3 11 5 8 2]
28
• Os números pares digitados
35. Faça um programa que preencha um vetor com dez números reais, calcule e mostre a
36. Faça um programa que receba o nome de oito clientes e armazene-os em um vetor. Em
um segundo vetor, armazene a quantidade de DVDs locados em 2009 por cada um dos
clientes. Sabe-se que, para cada dez locações, o cliente tem direito a uma locação grátis.
Faça um programa que mostre o nome de todos os clientes, com a quantidade de locações
37. Faça um programa que preencha três vetores com dez posições cada um: o primeiro vetor
com os nomes dos dez produtos; o segundo vetor com os códigos dos dez produtos e o
terceiro vetor com os preços dos produtos. Mostre um relatório apenas com o nome,
código, preço e o novo preço dos produtos que sofrerão aumento. Sabe-se que os produtos
que sofrerão aumento são aqueles que possuem código par ou preço superior a R$ 1000, 00.
Sabe-se ainda que, para os produtos satisfazerem as duas condições anteriores, código e
preço, o aumento será de 20%; para aqueles que satisfazerem apenas a condição de código,
o aumento será de 15%; e aqueles que satisfazerem apenas a condição do preço, o aumento
será de 10%.
38. Faça um vetor de tamanho 50 preenchido com o seguinte valor: (i + 5i) %i, sendo i a
39. Faça um programa que preencha um vetor de tamanho 100 com os 100 primeiros naturais
40. Faça um programa que calcule o desvio-padrão de um vetor v contendo n números, onde
m é a média do vetor:
v
u n
1 X
(v [i] − m)2
u
σ=t
n − 1 i=0
41. Crie um programa que leia 6 valores inteiros e, em seguida, mostre na tela os valores lidos
na ordem inversa.
42. Crie um programa que leia 6 valores inteiros pares e, em seguida, mostre na tela os valores
43. Faça um programa que leia 5 valores e, em seguida, mostre todos os valores lidos junta-
29
44. Faça um programa que leia 5 valores e, em seguida, mostre a posição onde se encontram
4.2 Matrizes
1. Leia uma matriz 4x4, imprima a matriz e retorne a localização (linha e coluna) do maior
valor.
2. Declare uma matriz 5x5. Preencha com 1 a diagonal principal e com 0 os demais elemen-
3. Leia uma matriz 4x4, conte e escreva quantos valores maiores que 10 ela possui.
4. Faça um programa que preenche uma matriz com o produto do valor da linha e da coluna
5. Gere uma matriz 4x4 com valores no intervalo [1,20]. Escreva um programa que trans-
forme a matriz gerada numa matriz triangular inferior, ou seja, atribuindo zero a todos
mada.
6. Leia uma matriz 5x5. Leia também um valor X. O programa deverá fazer uma busca
desse valor na matriz e, ao nal, escrever a localização (linha e coluna) ou uma mensagem
de NÃO ENCONTRADO.
7. Leia uma matriz 5x10 que se refere a 10 questões de múltipla escolha, referentes a 5
alunos. Leia também um vetor de 10 posições contendo o gabarito de respostas que pode
9. Faça um programa em que seja possível realizar as operações básicas com matrizes.
Dispõe-se inicialmente um menu ao usuário que é nalizado apenas se for digitado -1. A
30
----------------------------------------------
------------OPERAÇÕES COM MATRIZES------------
----------------------------------------------
1 - Adição/ Subtração de duas matrizes
2 - Produto de uma constante por uma matriz
3 - Multiplicação de matrizes
4 - Cálculo da Matriz Transposta
5 - Sair
----------------------------------------------
Digite a opção desejada:
10. Crie uma função para somar duas matrizes. Esta função deve receber duas matrizes e
retornar a soma em uma terceira matriz. Caso o tamanho da primeira e segunda matriz
seja diferente, a função retornará um erro. Caso a função seja concluída com sucesso, a
mesma deve retornar um valor zero. Utilize aritmética de ponteiros para manipulação
31
11. Os incas caram conhecidos pela grande civilização que reinou na região dos Andes du-
rante vários séculos. O que pouca gente sabe é que os incas construíram pirâmides de
base quadrada em que a única forma de se atingir o topo era seguir em espiral pela borda,
que acabava formando uma escada em espiral. Estas pirâmides ainda se encontram es-
condidas na Floresta Amazônica, e sua descoberta trará uma aplicação para este exercício.
Neste problema, você deverá fazer um programa para vericar se uma matriz é inca.
Seu programa deve ter uma função que recebe como parâmetro uma matriz quadrada A
ordem é o inteiro consecutivo da posição anterior. Caso a matriz seja inca, deve retornar
10 9 8 7
11 16 15 6
12 13 14 5
1 2 3 4
12. Faça um programa que permita ao usuário entrar com uma matriz 3 x 3 de números
inteiros. Em seguida, utilize uma função para gerar um array unidimensional formado
pela soma dos números de cada coluna da matriz e mostrar na tela esse array. Exemplo:
ENTRADA:
5 -8 10
1 25 15
25 10 7
SAÍDA:
31 4 32
onde:
31 = 5 + 1 + 25
4 = -8 + 2 + 10
32 = 10 + 15 + 7
13. Faça um programa que leia uma matriz de 5 linhas e 4 colunas e contém as seguintes
informações sobre alunos de uma disciplina, sendo todas as informações do tipo inteiro:
32
• Quarta coluna - nota nal
b) Calcule a nota nal como sendo a soma da média das provas e da média dos trabalhos
c) Imprima a matrícula do aluno que obteve a maior nota nal (assuma que só existe
14. Leia uma matriz 10 x 3 com as notas de 10 alunos em 3 provas. Em seguida, escreva
o numero de alunos cuja pior nota foi na prova 1, o número de alunos cuja pior nota
foi na prova 2, e o número de alunos cuja pior nota foi na prova 3. Em caso de empate
das piores notas de um aluno, o criterio de desempate é arbitrário, mas o aluno deve ser
15. Faça um programa para corrigir uma prova com 10 questões de múltipla escolha (a, b, c,
d ou e), em uma turma com 3 alunos. Cada questão vale 1 ponto. Leia o gabarito, e para
cada aluno leia sua matricula (numero inteiro) e suas respostas. Calcule e escreva: para
cada aluno, escreva sua matrícula, suas respostas, e sua nota. Por m, imprima também
16. Escrever uma função (e um programa em C que utiliza tal função) que determina se
matriz-permutação se seus elementos são apenas 0's e 1's, e se em cada linha e coluna
da matriz existe apenas um único valor 1. Exemplo: a matriz a seguir é uma matriz-
permutação.
1 0 0
0 0 1
0 1 0
17. Na teoria dos sistemas, dene-se como elemento minimax de uma matriz o menor elemento
de uma linha onde se encontra o maior elemento da matriz. Faca uma função que recebe,
por parâmetro, uma matriz A(10,10) e retorna o seu elemento minimax, juntamente com
a sua posição.
18. Faça um programa para gerar automaticamente números, entre 0 e 99, de uma cartela de
bingo. Sabendo que cada cartela deverá conter 5 linhas de 5 números, gere estes dados
de modo a não ter números repetidos dentro das cartelas. Lembre-se que é importante
armazenar os números sorteados em uma tabela com 5 linhas e 5 colunas, pois no sorteio
do bingo, vale pontos quem completar primeiro uma linha ou uma coluna. O programa
deve gerar a cartela e depois exibir na tela a cartela gerada, linha a linha, coluna por
coluna.
33
19. Na matriz 20 x 20 abaixo, quatro números ao longo de uma linha diagonal foram marca-
produto de quatro números adjacentes em qualquer direção (cima, baixo, esquerda, di-
08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48
• Leia dois inteiros m e n, crie e leia uma estrutura de dados que é uma matriz de
está. Repita esse processo até ler um número menor que zero.
21. Faça um programa que leia quatro números a, b, c, d, que serão as dimensões de duas
matrizes e:
• Crie e construa uma matriz que seja o produto de duas matrizes. Na sua função
22. Faça um programa que leia duas matrizes 3x3 com valores reais. Ofereça ao usuário
um menu de opções: somar as duas matrizes, subtrair as duas matrizes, adicionar uma
34
constante às duas matrizes, imprimir as matrizes. Nas duas primeiras opções, uma terceira
matriz 3x3 deve ser criada. Na terceira opção, o valor da constante deve ser lido e o
23. Faça um programa que leia uma matriz 3x6 de valores reais
c) Substitua os valores da sexta coluna pela soma dos valores das colunas 1 e 2
que o tabuleiro é representado por uma matriz 3x3, onde cada variável representa uma
das casas do tabuleiro. A matriz pode conter os seguintes valores: -1, 0 e 1, representando
respectivamente uma casa contendo uma peça minha (-1), uma casa vazia do tabuleiro
EXEMPLO:
-1 1 1
-1 -1 0
0 1 0
25. Gerar e imprimir uma matriz de tamanho 10x10, onde seus elementos são da forma:
26. Calcule a soma dos elementos de uma matriz numérica quadrada qualquer, que estão
27. Calcule a soma dos elementos de uma matriz numérica quadrada qualquer, que estão
28. Obtenha e imprima um vetor que seja a soma dos elementos de cada coluna de uma
35
Capítulo 5
Strings
2. Ler nome, sexo e idade de uma pessoa. Se o sexo for femenino e a idade for menor que
25, imprima o nome da pessoa e a palavra ACEITA; caso contrário, imprimir NÃO ACEITA.
4. Entre com um nome e imprima somente se a primeira letra for a (maiúscula ou minús-
cula).
6. Receba uma palavra, calcule quantas vogais possui essa palavra. Entre com um caracter
(vogal ou consoante) e substitua todas as vogais da palavra dada por esse caracter.
tipo de substituição na qual cada letra do texto é substituída por outra, que se apresenta
no alfabeto abaixo dela um número xo de vezes. Por exemplo, com uma troca de três
programa que faça uso desse Código de César (3 posições), entre com uma string e retorne
a string modicada.
8. Faça um programa que dado uma string, retorne 1 se ela for palíndromo e 0 se ela não
for palíndromo. Um palíndromo é uma palavra que tenha a propriedade de poder ser lida
36
9. Crie um programa que calcula o comprimento de uma string.
11. Construa um programa que leia duas strings fornecidas pelo usuário através da entrada-
padrão e verique se a segunda string lida está contida no nal na primeira, retornando
o resultado da vericação.
12. Implemente um programa que leia duas strings str1, str2 e um inteiro positivo N. Con-
catene não mais que N caracteres da string str2 à string str1 e termina str1 com NULL.
13. Faça um programa que receba do usuário um string e imprima-o sem suas vogais.
14. Faça um programa que troque todas as ocorrências de uma letra L1 pela letra L2 em um
resultado da comparação;
concatenação;
f ) Contar quantas vezes um dado caracter aparece na string S1. Esse caracter deve ser
h) Vericar se uma string S2 é substring de S1. A string S2 deve ser informada pelo
usuário;
i) Retornar uma substring de S1. Para isso, o usuário deve informar a partir da qual
16. Ler uma frase e contar quantos caracteres são brancos. Lembre-se de que uma frase é um
conjunto de caracteres.
37
19. Leia uma cadeia de caracteres no formato DD/MM/AAAA e copie o dia, mês e ano para
três variáveis inteiras. Antes disso, verique se as barras estão no lugar certo, bem como
20. Leia duas cadeias de caracteres A, B. Determine quantas vezes a cadeia A ocorre na cadeia
B.
21. Leia uma cadeia de caracteres e converta todos os caracteres para maiúscula. Dica:
22. Leia um vetor contendo letras de uma frase, inclusive os espaços em branco. Retire os
23. Faça um programa para ler uma tabela contendo os nomes dos alunos de uma turma de até
40 alunos. O programa deve solicitar ao usuário o nome dos alunos, 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 vericar 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
24. Faça um programa que leia uma palavra (máximo de 50 letras) e some 1 ao valor ASCII
Ao nal do programa, deve-se ter duas palavras: a original (str) e a string invertida. Na
sua main(), imprima-as e mostre uma mensagem indicando se ela é palíndromo ou não
• Concatene essas duas palavras em uma única frase, com um espaço entre elas. Não
• Leia um caracter e crie uma palavra que é cópia da anterior, mas excluindo todas as
38
Na sua função main(), imprima a palavra original e o resultado da operação.
28. Faça um programa que leia palavras (até 10 letras) até que o usuário digite um ponto
nal, apenas. Seu programa deverá concatenar todas as palavras formando uma frase
no sentido inverso, com um espaço entre elas. Não use funções nativas. Na sua função
atirei
o
pau
no
gato
.
• Crie e construa uma nova palavra que seja a intercalação letra a letra da primeira
30. 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.
31. Escreva um programa que recebe do usuário uma string s, um caracter c e uma posição
32. Escreva um programa que recebe uma string s e inteiros não-negativos i e j e devolve o
segmento s[i...j].
39
34. Escreva um programa que leia duas palavras e diga qual deles vem primeiro na ordem
35. Escreva um programa para converter uma cadeia de caracteres de letras maiúsculas em
letras minúsculas.
36. Ler os seguintes dados de uma pessoa: nome, sexo (M ou F), idade (0 a 150) e naciona-
sexo, a idade e a nacionalidade são válidos ou inválidos. Se um dos dados fornecidos for
inválido, indicar ao usuário. Se todos os dados forem válidos, exibir uma mensagem como
37. Escreva um programa que leia a idade e o primeiro nome de várias pessoas. Seu programa
deve terminar quando uma idade negativa for digitada. Ao terminar, seu programa deve
38. Faça um programa que preencha um vetor com os modelos de cinco carros. Carregue
outro vetor com o consumo desses carros, isto é, quantos quilômetros cada um deles faz
b) Quantos litros de combustível cada um dos carros cadastrados consomem para percor-
39. Faça um programa que realize a leitura dos seguintes dados relativos a um conjunto de
turma de até 10 alunos. Após ler todos os dados digitados, e depois de armazená-los em
vetores, exibir na tela a listagem nal dos alunos com as suas respectivas médias nais.
Use uma média ponderada, onde Nota 1 tem peso 1 e Nota 2 tem peso 2. Dica: use
múltiplos vetores, um para cada dado, com o mesmo índice para os dados de um mesmo
aluno.
40