Você está na página 1de 41

Listas de Exercícios - Linguagem de Programação

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.1 Informações para classicação de acordo com a altura e peso. . . . . . . . . . . . 9

2.2 Classicação do veículo de acordo com o consumo. . . . . . . . . . . . . . . . . . 10

2.3 Classicação dos estudantes por conceito. . . . . . . . . . . . . . . . . . . . . . . 10

2.4 Cálculo da média de acordo coma opção escolhida. . . . . . . . . . . . . . . . . . 11

2.5 Informações para cálculo do reajuste de preços. . . . . . . . . . . . . . . . . . . 11

2.6 Classicação dos produtos após o reajuste. . . . . . . . . . . . . . . . . . . . . . 11

2
Capítulo 1

Comandos básicos

1. Efetuar a leitura de um numero real e apresentar o resultado do quadrado desse número.

2. Ler uma temperatura em graus Celsius e apresenta-la convertida em graus Fahrenheit. A

formula de conversão é: F = C ∗ (9.0/5.0) + 32.0, sendo F a temperatura em Fahrenheit

e C a temperatura em Celsius.

3. Ler um número e retorne seu antecessor e seu sucessor.

4. Ler o tamanho do lado de um quadrado e imprimir sua área.

5. Efetuar a leitura de três valores e apresentar como resultado nal a soma dos quadrados

dos três valores lidos.

6. Ler quatro notas e calcular a media aritmética obtida.

7. Receber o salario de um funcionário, calcular e mostrar seu novo salário, sabendo que ele

recebeu um aumento de 25%.

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

seu objetivo, sem se preocupar com a altura do usuário.

9. Ler o valor do raio de um círculo e calcular a área do círculo correspondente. A área do

círculo é π ∗ raio2 . Considere π = 3.141592.

10. A importância de R$ 780.000, 00 será dividida entre três ganhadores de um concurso.

Sendo que da quantia total:

• O primeiro ganhador receberá 46%;


• O segundo receberá 22%;
• O terceiro receberá o restante.

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

paga, sabendo-se que são descontados 8% para imposto de renda.

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.

13. Converta uma letra maiúscula em minúscula. Use a tabela ASCII

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 /

Número Gerado = 321.

15. Faça um programa para ler o horário (hora, minuto e segundo) de início e a duração,

em segundos, de uma experiência biológica. O programa deve informar o horário (hora,

minuto e segundo) do término da mesma.

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).

19. Leia um número inteiro de 4 dígitos e imprima 1 dígito por linha.

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

número em ponto utuante da seguinte forma: x.y , onde x corresponde ao resto da


divisão do primeiro inteiro recebido pelo segundo, e y corresponde aos dois dígitos menos

signicativos do quociente divisão do primeiro inteiro recebido pelo segundo.

4
23. Ler uma temperatura em graus Fahrenheit e apresentá-la convertida em graus Celsius.

A fórmula de conversão é: C = 5.0 ∗ (F − 32.0) /9.0, sendo C a temperatura em graus

Celsius e F a temperatura em Fahrenheit.

24. Ler uma temperatura em Kelvin e apresentá-la em graus Celsius. A fórmula de conversão

é C = K − 273.15, sendo C a temperatura em Celsius e K a temperatura em Kelvin.

25. Ler uma temperatura em graus Celsius e apresentá-la em graus Kelvin. A fórmula de

conversão é K = C + 273.15, sendo C a temperatura em graus Celsius e K a temperatura

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.

28. Ler um ângulo em graus e apresentá-lo convertido em radianos. A fórmula de conversão

é: R = G ∗ (π/180), sendo G o ângulo em graus e R em radianos, com π = 3.14.

29. Ler um ângulo em radianos e apresentá-lo convertido em graus. A fórmula de conversão

é: G = R ∗ (180/π), sendo G o ângulo em graus e R em radianos, com π = 3.14.

30. Ler uma distância em milhas e apresentá-la convertida em quilômetros. A fórmula de

conversão é: K = 1, 61 ∗ M , sendo K a distância em quilômetros e M em milhas.

31. Ler uma distância em quilômetros e apresentá-la convertida em milhas. A fórmula de

conversão é: M = K/1.61, sendo K a distância em quilômetros e M em milhas.

32. Ler um valor de comprimento em polegadas e apresentá-lo convertido em centímetros. A

fórmula de conversão é: C = P ∗ 2, 54, sendo C o comprimento em centímetros e P o

comprimento em polegadas.

33. Ler um valor de comprimento em centímetros e apresentá-lo convertido em polegadas.

A fórmula de conversão é: P = C/2.54, sendo C o comprimento em centímetros e P o

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.

35. Ler um valor de volume em litros e apresentá-lo convertido em metros cúbicos m3 . A

fórmula de conversão é: M = L/1000, sendo L o volume em litros e M o volume em

metros cúbicos.

5
36. Ler um valor de massa em quilogramas e apresentá-lo convertido em libras. A fórmula de

conversão é: L = K/0, 45, sendo K a massa em quilogramas e L a massa em libras.

37. Ler um valor de massa em libras e apresentá-lo convertido em quilogramas. A fórmula de

conversão é: K = L ∗ 0, 45, sendo K a massa em quilogramas e L a massa em libras.

38. Ler um valor de comprimento em jardas e apresentá-lo convertido em metros. A fórmula

de conversão é: M = 0, 91 ∗ J , sendo J o comprimento em jardas e M o comprimento em

metros.

39. Ler um valor de comprimento em metros e apresentá-lo convertido em jardas. A fórmula

de conversão é: J = M/0, 91, sendo J o comprimento em jardas e M o comprimento em

metros.

40. Ler um valor de área em m2 e apresentá-lo convertido em acres. A fórmula de conversão

é: A = M ∗ 0, 000247, sendo M a área em metros quadrados e A a área em acres.

41. Ler um valor de área em acres e apresentá-lo convertido em m2 . A fórmula de conversão


é: M = A ∗ 4048, 58, sendo M a área em metros quadrados e A a área em acres.

42. Ler um valor de área em metros quadrados m2 e apresentá-lo convertido em hectares. A

fórmula de conversão é: H = M ∗ 0, 0001, sendo M a área em metros quadrados e H a

área em hectares.

43. Ler um valor de área em hectares e apresentá-lo convertido em metros quadrados m2 . A


fórmula de conversão é: M = H ∗ 10000, sendo M a área em metros quadrados e H a

área em hectares.

44. Peça ao usuário para digitar 3 valores inteiros e mostre sua soma.

45. Faça um programa que faça operações simples de números complexos:

• 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.

46. Faça um programa que converta em coordenadas polares para cartesianas:

• 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 θ.

Na sua função main(), mostre as coordenadas de ambos os pontos.

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

de um cilindro circular é calculado por meio da seguinte fórmula: V = πr2 h. Considere

π = 3.141592.

49. Receber o salário-base de um funcionário, calcular e mostrar o salário a receber, sabendo-

se que esse funcionário tem graticação de 5% sobre o salário-base, e paga imposto de 7%


sobre o salário-base.

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

valor total lido, mostrar:

• O total a pagar, com desconto de 10%;


• O valor de cada parcela, no parcelamento de 3 vezes sem juros;

• 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

o total de patas, e escreve quantos patos e quantos coelhos existem no cercado.

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.

56. Ler um número real e imprimir a quinta parte desse número.

57. Faça um programa que possa entrar com o valor de um produto e imprima o valor, tendo

em vista que o desconto foi de 12%.

58. Implemente um programa que calcule o ano de nascimento de uma pessoa a partir de sua

idade e ano atual.

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.

3. Determine se um determinado ano lido é bissexto. Um ano é considerado bissexto se for

divisível por 400 ou se for divisível por 4 e não for divisível por 100. Por exemplo: 1988,
1992, 1996.

4. Receber o salário de um trabalhador e o valor da prestação de um empréstimo. Se a

prestação for maior que 20% do salário, imprima: Empréstimo não concedido; caso

contrário, imprima: Empréstimo concedido.

5. Ler o ano de nascimento de uma pessoa e o ano atual. Retorne a idade da pessoa.

6. A nota nal de um estudante é calculada a partir de três notas atribuídas respectivamente

a um trabalho de laboratório, a uma avaliação semestral e a um exame nal. A média

das três notas mencionadas anteriormente obedece aos seguintes pesos:

• 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. Faça um programa que receba três números e mostre-os em ordem crescente.

8
9. Faça um programa que receba a altura e o peso de uma pessoa. De acordo com a tabela

a seguir, verique e mostre qual a classicação dessa pessoa:

Tabela 2.1: Informações para classicação de acordo com a altura e peso.

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

triângulo isósceles. Considere os seguintes conceitos:

• O comprimento de cada lado de um triângulo é menor que a soma dos outros dois

lados;

• Chama-se equilátero o triângulo que tem três lados iguais;

• Denomina-se isósceles o triângulo que tem o comprimento de dois lados iguais;

• Recebe o nome de escaleno o triângulo que tem os três lados diferentes.

11. Escreva um programa que leia um inteiro entre 1 e 7 e imprima o dia da semana corres-

pondente a esse número. Ou seja, se o número é 1, o dia é domingo; se o número é 2, o

dia é segunda-feira, e assim por diante.

12. Faça um programa para vericar se um determinado número inteiro é divisível por 3 ou

por 5, mas não simultaneamente pelos dois.

13. Escreva o menu de opções abaixo, leia a opção do usuário e execute a operação escolhida.

Escreva uma mensagem de erro se a opção for inválida.

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:

Tabela 2.2: Classicação do veículo de acordo com o consumo.

CONSUMO Km/L MENSAGEM


Menor que 8 Venda o carro!
Entre 8 e 12 Econômico!
Maior que 12 Super Econômico!

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.

Tabela 2.3: Classicação dos estudantes por conceito.

NOTA CONCEITO (ATÉ 20 FALTAS) CONCEITO (MAIS DE 20 FALTAS)


9.0 até 10.0 A B
7.5 até 8,9 B C
5.0 até 7.4 C D
4.0 até 4.9 D E
0.0 até 3.9 E E

17. Leia a idade e o tempo de serviço de um trabalhador e escreva se ele pode ou não se

aposentar. As condições para a aposentadoria são:

• Ter pelo menos 65 anos

• Ou ter trabalhado pelo menos 30 anos

• Ou ter pelo menos 60 anos e ter trabalhado pelo menos 25 anos.

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.

Tabela 2.4: Cálculo da média de acordo coma opção escolhida.

NÚMERO DIGITADO MÉDIA EXPRESSÃO



3 xyz
1 Geométrica

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

com a Tabela 2.6):

Tabela 2.5: Informações para cálculo do reajuste de preços.

PREÇO ANTIGO PERCENTUAL DE AUMENTO


até R$ 50 5%
entre R$ 50 e R$ 100 10%
acima de R$100 15%

Tabela 2.6: Classicação dos produtos após o reajuste.

PREÇO NOVO MENSAGEM


até R$ 80 Barato
entre R$ 80 e R$ 120 (inclusive) Normal
entre R$ 120 e R$ 200 (inclusive) Caro
acima de R$ 200 Muito caro

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

5 vezes consecutivas, escrever a mensagem  Suas chances acabaram e terminar o pro-

grama. Se o número for positivo, calcular o logaritmo deste número.

11
22. Considere a tabela abaixo:

VENDA MENSAL COMISSÃO


Maior ou igual a R$ 100.000,00 R$ 700,00 + 16% nas vendas
Menor que R$ 100.000,00 e maior ou igual a R$ 80.000,00 R$ 650,00 + 14% nas vendas
Menor que R$ 80.000,00 e maior ou igual a R$ 60.000,00 R$ 600,00 + 14% nas vendas
Menor que R$ 60.000,00 e maior ou igual a R$ 40.000,00 R$ 550,00 + 14% nas vendas
Menor que R$ 40.000,00 e maior ou igual a R$ 20.000,00 R$ 500,00 + 14% nas vendas
Menor que R$ 20.000,00 R$ 450,00 + 14% nas vendas

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

deles, assim como a diferença existente entre ambos.

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,

o programa terminará sem apresentar qualquer resultado na tela.

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

da lanchonete segue o padrão abaixo:

ESPECIFICAÇÃO CÓDIGO PREÇO


Cachorro quente 100 1,20
Bauru Simples 101 1,30
Bauru com Ovo 102 1,50
Hamburguer 103 1,20
Cheeseburguer 104 1,70
Suco 105 2,20
Refrigerante 106 1,00

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

27. As tarifas de um certo parque de estacionamento são as seguintes:

12
• 1a e 2a hora - R$ 1, 00 cada

• 3a e 4a hora - R$ 1, 40 cada

• 5a hora e seguintes - R$ 2, 00 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

se estivesse permanecido por 120 minutos. Os momentos de chegada ao parque e partida

deste são apresentados na forma de pares de inteiros, representando horas e minutos. Por

exemplo, o par 12 50 representará dez para uma da tarde. Pretende-se elaborar um

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

a partida ocorreu no dia seguinte ao da chegada.

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

pergunta: qual é a soma de a + b, onde a e b são os números aleatórios. Peça a

resposta. Faça cinco perguntas ao aluno e mostre para ele as perguntas e as respostas

corretas, além de quantas vezes o aluno acertou.

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

ideal, utilizando as seguintes fórmulas:

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

números forem iguais, imprima a mensagem Números iguais.

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:

• O número digitado ao quadrado

• A raiz quadrada do número digitado.

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-

crescente. Utilize variáveis auxiliares para armazenar o maior, o menor e o número do

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

que considera o salário atual e o tempo de serviço de cada funcionário. Os funcionários

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

um bônus adicional de salário. Faça um programa que leia:

• O valor do salário atual do funcionário;

• O tempo de serviço deste funcionário na empresa (número de anos de trabalho na

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.

SALÁRIO ATUAL REAJUSTE TEMPO DE SERVIÇO BÔNUS


Até 500,00 25% Abaixo de 1 ano Sem bônus
Até 1000,00 20% De 1 a 3 anos 100,00
Até 1500,00 15% De 4 a 6 anos 200,00
Até 2000,00 10% De 7 a 10 anos 300,00
Acima de 2000,00 Sem reajuste Mais de 10 anos 500,00

41. O custo ao consumidor de um carro novo é a soma do custo de fábrica, da comissão do

distribuidor e dos impostos. A comissão e os impostos são calculados sobre o custo de

fábrica, de acordo com a tabela abaixo. Leia o custo de fábrica e escreva o custo ao

consumidor.

CUSTO DE FÁBRICA % DO DISTRIBUIDOR % DOS IMPOSTOS


Até R$ 12.000,00 5 Isento
Entre R$ 12.000,00 e R$ 25.000,00 10 15
Acima de R$ 25.000,00 15 20

42. Faça um algoritmo que calcule o IMC de uma pessoa e mostre sua classicação de acordo

com a tabela abaixo:

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.

2. Escreva um programa que leia o número de habitantes de uma determinada cidade, o

valor do kWh, e para cada habitante, entre com os seguintes dados: consumo do mês e o

código do consumidor (1 - Residencial, 2 - Comercial, 3 - Industrial). No nal, imprima

o maior, o menor e a média do consumo dos habitantes e, por m, o total do consumo de

cada categoria de consumidor.

3. Leia um número positivo do usuário e então calcule e imprima a sequência de Fibonacci

até o primeiro número superior ao número lido. Exemplo: se o usuário informou o número

30, a sequência a ser impressa será 0 1 1 2 3 5 8 13 21 34.

4. Faça um programa que determine e mostre os cinco primeiros múltiplos de 3, considerando


números maiores que zero.

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

fornecido é primo ou não.

8. Faça um programa que receba vários números, calcule e mostre:

a) A soma dos números digitados;

b) A quantidade de números digitados;

c) A média dos números digitados;

d) O maior número digitado;

16
e) O menor número digitado;

f ) A média dos números pares;

Finalize a entrada de dados caso o usuário informe o valor 0.

9. Escreva um programa que escreva na tela de 1 em 1, de 1 até 100 usando distintas

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

uma string. Exemplo: 0011001 → 3.

12. Usando o comando while, escreva um programa que substitui as ocorrências de um

caracter 0 em uma string por outro caracter 1.

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

valores não ultrapassem 4 milhões.

18. Faça um programa que calcule o maior número palíndromo feito a partir do produto de

dois números de 3 dígitos. Exemplo: o maior palíindromo feito a partir do produto de

dois números de dois dígitos é 9009 = 91 ∗ 99.

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

de 1 a 10, sem sobrar resto.

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:

(a) A soma dos quadrados dos 10 primeiros números naturais é:

12 + 22 + . . . + 102 = 385

(b) O quadrado da soma dos dez primeiros números naturais é:

(1 + 2 + . . . + 10)2 = 552 = 3025

(c) A diferença entre a soma dos quadrados dos dez primeiros números naturais e o

quadrado da soma é 3025 − 385 = 2640.

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

conte espaços ou hífens.

26. Faça um programa que leia um número inteiro positivo N e imprima todos os números

naturais de 0 até N em ordem crescente.

27. Faça um programa que leia um número inteiro positivo N e imprima todos os números

naturais de 0 até N em ordem decrescente.

28. Faça um programa que leia um número inteiro positivo N e imprima todos os números

pares de 0 até N em ordem crescente.

29. Faça um programa que leia um número inteiro positivo N e imprima todos os números

pares de 0 até N em ordem decrescente.

30. Faça um programa que leia um número inteiro positivo N e imprima todos os números

ímpares de 1 até N em ordem crescente.

31. Faça um programa que leia um número inteiro positivo N e imprima todos os números

ímpares de 1 até N em ordem decrescente.

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

Apresente um programa que calcule o valor de qualquer Hn

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!

34. Faça um programa que calcula a associação de N resistores dispostos em paralelo em um

circuito elétrico. O programa ca pedindo esses valores e calculando até que o usuário

entre com um valor de resistência igual a zero.

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.

(OBS: Neste caso, n representa a quantidade de elementos a serem lidos e somados).

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 é,

medidas menores ou iguais a 0.

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

desse grupo de indivíduos.

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

a entrada de dados com u valor negativo ou zero.

40. Faça um programa para ler o código, o sexo (M - masculino, F - feminino) e o número

de horas-aula dada mensalmente pelos professores de uma universidade, sabendo-se que

cada hora-aula vale R$30, 00. Emita uma listagem contendo o código, o salário bruto

e o salário líquido (levando em consideração os descontos explicados a seguir) de todos

os professores. Mostre também a média dos salários líquidos dos professores dos sexos

masculino e feminino. Considere:

• Desconto para homens = 10% ; Desconto para mulheres = 5%;


• As informações terminarão quando for lido o código = 99999.

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

a Carlos. Teste com outros valores para as taxas.

42. Dados o número n de alunos de uma turma de Métodos e Técnicas de Programação e

suas notas na primeira prova, determinar a maior e a menor nota obtidas por esse turma.

Considere a nota máxima = 100 e nota mínima = 0.

43. Faça um programa que leia 10 inteiros e imprima sua média.

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

n primeiros números primos.

47. Dados n e dois números inteiros positivos i e j diferentes de 0, imprimir em ordem

crescente os n primeiros naturais que são múltiplos de i, de j ou de ambos. Exemplo:

para n = 6, i = 2 e j = 3, a saída deve ser: 0, 2, 3, 4, 6, 8.

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

1996, recebeu aumento de 1, 5%. A partir de 1997, os aumentos correspondem ao dobro

do ano anterior. Faça um programa que determine o salário atual do funcionário.

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

100, 50, 20, 10, 5, 2 e 1 real.

52. Escreva um programa para calcular o valor da série, para 5 termos:

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

fornecida pelo usuário.

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

por um empregado em um ano e calcule o salário anual deste trabalhador.

56. Faça um programa que conte quantos números primos existem entre a e b.

57. Faça um programa que some os números primos existentes 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:

para o inteiro 3025, temos que 30 + 25 = 55 → 552 = 3025.

61. Faça programas para calcular as seguintes fórmulas:

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

acerta a letra ou quando acabam suas chances.

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

escolha a opção `q').

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

Zé seja maior que Chico.

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.

Elabore um algoritmo que leia o código do candidato em um voto. Calcule e escreva:

a) O total de votos para cada candidato;

b) O total de votos nulos;

c) O total de votos em branco.

Como nalizador do conjunto de votos, tem-se valor 0.

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

seja menor que a conta.

68. Faça um programa que apresente um menu de opções para o cálculo das seguintes ope-

rações entre dois números:

• 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

O programa deve possibilitar ao usuário a escolha da operação desejada, a exibição do

resultado e a volta ao menu de opções. O programa só termina quando for escolhida a

opção de 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

informado o número de dados lidos e a quantidade de números pares. O processo termina

quando for digitado o número 1000.

70. Construa um programa que permita introduzir pelo terminal uma sequência de números

inteiros e determine se cada um deles é ou não perfeito. Todos os números perfeitos

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

6 possui divisores 1, 2, 3 e 6; portanto 1 + 2 + 3 = 6; 6 é um número perfeito - o número

8 possui divisores 1, 2, 4, 8; portanto 1 + 2 + 4 = 7; 8 não é quadrado perfeito).

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;

• A multiplicação dos números ímpares desse intervalo, incluindo os digitados.

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

introduzido um valor que não seja válido como nota de aprovação.

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

à seguinte especicação: Os votos são recebidos a partir do teclado, numa sequência

arbitrária de caracteres. O caracter zero signica voto em branco e um caractere especial

`$' indica o nal dessa sequência. Pretende-se a axação, na tela, dos seguintes dados

estatísticos:

• O número total de votantes;

• O número de votos nulos;

• O número de votos em branco;

• A votação obtida pelos diversos candidatos, quer em valor absoluto, quer em por-

centagem dos votos expressos;

• A indicação do candidato vencedor ou, no caso de empate, quais os candidatos que

partilham o primeiro lugar;

• Indicação de ocorrência de maioria absoluta, se for o caso disso.

O usuário digita uma senha numérica e o programa reconhece a senha como verdadeira

ou falsa, mostrando essa informação.

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

escrito uma mensagem de erro na tela, Intervalo de valores inválido e o programa


é terminado. Exemplo de tela de saída:

Digite o valor inicial e valor final: 5 10


Soma dos ímpares neste intervalo: 21

24
Capítulo 4

Vetores e Matrizes

4.1 Vetores

1. Escreva um programa que leia 10 números inteiros e os armazene em um vetor. Imprima

o vetor, o maior elemento e a posição que ele se encontra.

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

alocado estaticamente, apenas com os números ímpares do primeiro vetor. Imprima os

dois vetores com 10 elementos por linha.

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

outra para calcular a média.

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,

proponha um algoritmo para ordenar os elementos.

7. Faça um programa que receba do usuário dois arrays, A e B, com 10 números inteiros

cada. Crie um novo array C, onde C = A − B. Mostre na tela os dados do array C.

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

direta; se for 2, mostre o vetor na ordem inversa. Se o código for diferente de 1 e 2,

escreva uma mensagem falando que o código é inválido.

10. Ler uma sequência de números reais e determinar o maior elemento desta sequência. A

sequência termina quando for digitado o número zero.

11. Leia 10 números inteiros e armazene em um vetor. Em seguida, escreva os elementos que

são primos e suas respectivas posições no vetor.

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

todos elementos são utilizados. No nal, escreva os elementos UTILIZADOS de V1 e V2 .

13. Leia dois vetores X e Y, cada um como 5 elementos (assuma que o usuário não informa

elementos repetidos). Calcule e mostre os vetores resultantes em cada caso abaixo:

• Soma entre X e Y - soma de cada elemento de X com o elemento da mesma posição

em Y

• Produto entre X e Y - multiplicação de cada elemento de X com o elemento da

mesma posição em Y

• Diferença entre X e Y - Todos os elementos de X que não existam em Y

• Intersecção entre X e Y - apenas os elementos de X que aparecem nos dois vetores

• União entre X e Y - todos os elementos de X, e todos os elementos de Y que não

estão em X

14. Leia um vetor de 10 números de ponto utuante, ordene os elementos deste vetor e no

nal escreva os elementos do vetor ordenado.

15. Leia um vetor com 20 números inteiros. Escreva os elementos do vetor eliminando ele-

mentos repetidos.

16. Faça um programa para ler 10 números DIFERENTES a serem armazenados em um

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.

Exibir na tela o vetor nal que foi digitado.

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

ao nal os valores em ordem.

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

e o produto escalar, sendo que o produto escalar é dado por P = x1 y1 + x2 y2 + . . . + xn yn.

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

número de elementos positivos e o número de elementos negativos presentes na sequência.

21. Ler um conjunto de números reais, armazenando-os em um vetor e calcular o quadrado

dos componentes do vetor, armazenando-os em outro vetor. Os conjuntos têm no máximo

20 elementos. Imprimir todos os conjuntos.

22. Faça um programa que leia um número n e:

• Crie e leia um vetor inteiro de n posições

• Conte os múltiplos de um número inteiro x num vetor e mostre-os na tela.

Na função main(), mostre quantos múltiplos foram encontrados.

23. Faça um programa que leia dois números inteiros a e b (positivos menores que 10000) e:

• Crie um vetor onde cada posição é um algarismo do número. A primeira posição é

o algarismo menos signicativo

• Crie um vetor que seja a soma de a e b, mas faça-o usando apenas os vetores cons-

truídos anteriormente.

Dica: Some as posições correspondentes. Se a soma ultrapassar 10, subtraia 10 do resul-

tado e some 1 à próxima posição.

24. Faça um programa que leia dois números m e n e:

• Crie e leia um vetor de inteiros de m posições

• Crie e leia um vetor de inteiros de n posições

• 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

conter números repetidos.

Na sua função main(), imprima os três vetores criados.

27
25. Faça um programa que leia dois números m e n e:

• Crie e leia um vetor de inteiros de m posições

• Crie e leia um vetor de inteiros de n posições

• Elabore um vetor de inteiros que seja a união entre os dois vetores anteriores, ou

seja, que contém os elementos dos dois vetores (inclusive repetidos).

26. Faça um programa que possua um array de nome A que armazene 6 números inteiros. O

programa deve executar os seguintes passos:

a) Atribua os seguintes valores a este array: 1, 0, 5, −2, −5, 7


b) Armazene em uma variável inteira (simples) a soma entre os valores das posições

A[0], A[1], A[5] do array e mostre na tela esta soma.

c) Modique o array na posição 4, atribuindo a esta posição o valor 100

d) Mostre na tela cada valor do array A, um em cada linha.

27. Faça um programa que leia um vetor de 8 posições e, em seguida, leia também dois valores

X e Y quaisquer correspondentes a duas posições no vetor. Ao nal, seu programa deve

escrever a soma dos valores encontrados nas respectivas posições X e Y.

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,

deverá ser impresso o maior e o menor elemento do vetor.

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

movidos uma posição para trás no vetor.

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

como suas posições.

entrada = [5 12 4 7 10 3 2 6 23 16]
saida = [3 11 5 8 2]

34. Faça um programa que receba seis números inteiros e mostre:

28
• Os números pares digitados

• A soma dos números pares digitados

• Os números ímpares digitados

• A quantidade de números ímpares digitados

35. Faça um programa que preencha um vetor com dez números reais, calcule e mostre a

quantidade de números negativos e a soma dos números positivos desse vetor.

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

grátis a que ele tem direito.

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

posição do elemento no vetor. Em seguida, imprima o vetor na tela.

39. Faça um programa que preencha um vetor de tamanho 100 com os 100 primeiros naturais

que não são múltiplos de 7 ou que terminam em 7.

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

lidos na ordem inversa.

43. Faça um programa que leia 5 valores e, em seguida, mostre todos os valores lidos junta-

mente com o maior, menor e a média dos valores.

29
44. Faça um programa que leia 5 valores e, em seguida, mostre a posição onde se encontram

o maior e o menor valor.

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-

tos. Escreva ao nal a matriz obtida.

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

de cada elemento, depois imprime na tela.

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

os elementos acima da diagonal principal. Imprimir a matriz original e a matriz transfor-

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

ser a, b, c, d. Seu programa deverá comparar as respostas de cada candidato com o

gabarito e emitir o vetor RESULTADO, contendo a pontuação correspondente a cada aluno.

8. Faça um programa que leia uma matriz A 5x5, calcule e imprima B = A2 .

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

seguir, apresenta-se um modelo de menu:

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

das matrizes. Mostre o uso dessa função em um programa feito em C.

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

(n x n) de números inteiros para vericar se a matriz é inca, ou seja, se partindo de um

canto superior esquerdo da matriz, no sentido horário e em espiral, a posição seguinte na

ordem é o inteiro consecutivo da posição anterior. Caso a matriz seja inca, deve retornar

1; senão, 0. Exemplo de matriz inca:

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:

• Primeira coluna - número de matrícula (use um inteiro)

• Segunda coluna - média nas provas

• Terceira coluna - média dos trabalhos

32
• Quarta coluna - nota nal

Elabore um programa que:

a) Leia as três primeiras informações de cada aluno

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

uma maior nota)

d) Imprima a média aritmética das notas nais

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

contabilizado apenas uma vez.

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

o percentual de aprovação, assumindo média 7.0.

16. Escrever uma função (e um programa em C que utiliza tal função) que determina se

uma matriz quadrada n é uma matriz-permutação. Uma matriz quadrada é chamada de

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-

das em negrito. O produto desses números é 25 ∗ 63 ∗ 78 ∗ 14 = 1788696. Qual o maior

produto de quatro números adjacentes em qualquer direção (cima, baixo, esquerda, di-

reita ou diagonal) na matriz 20x20 ?

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

20. Faça um programa que:

• Leia dois inteiros m e n, crie e leia uma estrutura de dados que é uma matriz de

inteiros positivos, contendo suas dimensões m e n, bem como seus elementos

• Leia um inteiro x e procure na matriz, mostrando na tela a linha e a coluna em que

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 leia uma matriz, dadas as dimensões dela;

• Crie e construa uma matriz que seja o produto de duas matrizes. Na sua função

main(), imprima as duas matrizes e o produto entre elas, se existir.

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

resultado da adição da constante deve ser armazenado na própria matriz.

23. Faça um programa que leia uma matriz 3x6 de valores reais

a) Imprima a soma de todos os elementos ímpares

b) Imprima a média aritmética dos elementos da segunda e quarta colunas

c) Substitua os valores da sexta coluna pela soma dos valores das colunas 1 e 2

d) Imprima a matriz modicada.

24. Faça um programa para determinar a próxima jogada em um Jogo-da-Velha. Assumir

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

(0) e uma casa contendo uma peça do meu oponente (1).

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:

A[i][j] = 2i + 7j^2 se i < j


A[i][j] = 3i^2 se i = j
A[i][j] = 4i^3 + 5j^2 se i > j

26. Calcule a soma dos elementos de uma matriz numérica quadrada qualquer, que estão

acima da diagonal principal

27. Calcule a soma dos elementos de uma matriz numérica quadrada qualquer, que estão

abaixo da diagonal principal

28. Obtenha e imprima um vetor que seja a soma dos elementos de cada coluna de uma

matriz numérica qualquer dada.

35
Capítulo 5

Strings

1. Receber um nome e imprimir as 4 primeiras letras do nome

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.

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

4. Entre com um nome e imprima somente se a primeira letra for a (maiúscula ou minús-
cula).

5. Receba uma palavra e imprima de trás para frente

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.

7. O Código de César é uma das mais simples e conhecidas técnicas de criptograa. É 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 xo 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 modicada.

String: a ligeira raposa marrom saltou sobre o cachorro cansado


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

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

tanto da direita para a esquerda quanto da esquerda para a direita. Exemplos:

Socorram-me, subi no ônibus em Marrocos


Anotaram a data da maratona

36
9. Crie um programa que calcula o comprimento de uma string.

10. Crie um programa que compara duas strings.

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

string. A string e as letras L1, L2 devem ser fornecidas pelo usuário.

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

a) Ler uma string S1, com tamanho máximo de 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 caracter aparece na string S1. Esse caracter deve ser

informado pelo usuário;

g) Substituir a primeira ocorrência do caracter C1 da string S1 pelo caracter C2. Os

caracteres C1 e C2 serão lidos pelo usuário;

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

posição deve ser criada a substring e qual é o tamanho da substring.

16. Ler uma frase e contar quantos caracteres são brancos. Lembre-se de que uma frase é um

conjunto de caracteres.

seg, ter, qua, qui,


17. Ler uma string de 3 caracteres que pode assumir um valor entre

sex, sab, dom e imprimir as seguintes mensagens, respectivamente: segunda-feira,


terça-feira, quarta-feira, quinta-feira, sexta-feira, sábado, domingo.

18. Leia duas cadeias de caracteres e escreva a menor na ordem alfabética.

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

observe se D, M, A são numéricos.

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:

subtraia 32 dos caracteres cujo código ASCII está entre 65 e 90.

22. Leia um vetor contendo letras de uma frase, inclusive os espaços em branco. Retire os

espaços em branco do vetor e depois escreva o vetor resultante.

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

completo e o índice do vetor onde está guardado este nome.

24. Faça um programa que leia uma palavra (máximo de 50 letras) e some 1 ao valor ASCII

de cada caracter da palavra. Na função main(), imprima a string resultante.

25. Faça um programa que:

• Crie e leia uma palavra str (máximo de 15 letras);

• Inverta esta palavra, sem modicar a original

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

(ou seja, se a palavra invertida é igual à original).

26. Faça um programa que:

• Crie e leia duas palavras s1 e s2 (máximo de 15 letras);

• Concatene essas duas palavras em uma única frase, com um espaço entre elas. Não

use funções nativas.

Na sua função main(), imprima o resultado da concatenação.

27. Faça uma função que:

• Crie e leia uma palavra (máximo de 30 letras);

• Leia um caracter e crie uma palavra que é cópia da anterior, mas excluindo todas as

ocorrências desse caracter.

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

main(), imprima a frase resultante. Exemplos:

atirei
o
pau
no
gato
.

gato no pau o atirei

Dica: não leia todas as palavras de uma vez e só depois concatená-las.

29. Faça um programa que:

• Crie e leia duas palavras (máximo de 10 letras);

• Crie e construa uma nova palavra que seja a intercalação letra a letra da primeira

com a segunda palavra.

Na sua função main(), imprima as duas palavras e o resultado da intercalação. Exemplos:

Palavra 1: abcde marcelo ai waeer


Palavra 2: ABCDE hossomi trei htv
Saída: aAbBcCdDeE mhaorscseolmoi atirei whatever

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

i, e devolve o índice da primeira posição da string onde foi encontrado o caracter c. A

procura deve começar a partir da posição i.

32. Escreva um programa que recebe uma string s e inteiros não-negativos i e j e devolve o

segmento s[i...j].

33. Faça um programa que leia uma string e a imprima.

39
34. Escreva um programa que leia duas palavras e diga qual deles vem primeiro na ordem

alfabética. Dica: 'a' é menor que 'b'.

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-

lidade (brasileira ou estrangeira). Testar a validade dos dados fornecidos, indicando se o

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

segue, onde aparecem os dados fornecidos. Exemplos:

''José da Silva, brasileiro do sexo masculino e maior de idade,


está habilitado a dirigir''

''Maria Silva, brasileira do sexo feminino e maior de idade,


está habilitada a dirigir''

''Junior Silva, brasileiro do sexo masculino e menor de idade,


não está habilitado a dirigir''

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

escrever o nome e a idade das pessoas mais jovens e mais velhas.

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

om 1 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 consomem para percor-

rer uma distância de 1000 quilômetros.

39. Faça um programa que realize a leitura dos seguintes dados relativos a um conjunto de

alunos: Matrícula, Nome, Código da Disciplina, Nota 1 e Nota 2. Considere uma

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

Você também pode gostar