Você está na página 1de 73

Lista de Exerccios - Linguagem C

Walter Alexandre Alencar de Oliveira 22 de fevereiro de 2013

Sumrio
1 Introduo 2 Variveis, Expresses e Funes Bsicas 3 Estruturas Condicionais e de Seleo 4 Estruturas de Repetio 5 Vetores e Matrizes 6 Tipos Abstratos de Dados 7 Funes 8 Arquivos 9 Ponteiros 10 Outros Recursos da Linguagem 11 Estruturas de Dados 12 Desaos A Base Matemtica
A.1 A.2 A.3 A.4 A.5 A.6 A.7 Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Escalas termomtricas ngulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 7 17 29 41 53 55 57 59 61 63 65 67
67 67 67 68 69 70 70

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Polgonos e outros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Plano e Espao Medidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Nmeros Complexos

SUMRIO

A.8

Outros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

A.9

Fsica

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

A.10 Datas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

A.11 Vetores e Matrizes

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

A.12

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

Captulo 1 Introduo
Para ser um bom programador necessrio programar. Como professor da disciplina Programao de computadores (e outras disciplinas que envolvam programao), no difcil acreditar nesta armao. Assim, essa lista de exerccios tem a nalidade de fornecer ao

aluno a oportunidade de praticar os conhecimentos aprendidos em sala de aula. Embora seja objetivo criar uma lista exaustiva de exerccios, possvel que algum contedo relacionado que de fora. Tambm possvel, devido a grande quantidade de exerccios,

haver exerccios repetidos ou em captulo errado. Neste caso, peo pacincia aos alunos e, se possvel, a colaborao com os mesmo em me noticar tais falhas neste trabalho. Cada captulo ir focar em um conjunto de recursos da linguagem C. recomendado que o aluno resolva os exerccios na ordem em que se encontram na lista (tendo os exerccios mais fceis no incio e aumentando-se o grau de diculdade aos poucos). Uma vez que o contedo estudado em um curso de linguagem C considerado acumulativo, a lista de exerccio, de maneira similar, ir incluir recursos cobrados em captulos anterios. No Captulo 2 so encontrados exerccios que exploram os recursos bsicos da linguagem C, entre eles, declarao de variveis, atribuio, expresses aritmticas com valores e variveis, funes de entrada e sada de dados, funes matemticas e algunas funes auxiliares de simples uso. Este captulo recomendado para os alunos que esto comeando a aprender a linguagem. O Captulo 3 inclui exerccios que exploram o uso de estruturas de deciso (if e

if-else )

e de

seleo (switch ). Este captulo recomendado para alunos que j esto familiarizados com os conceitos explorados na captulo anterior. No Captulo 4 explorado o uso de estruturas de repetio (for,

while

do-while ).

Embora

qualquer uma das trs estruturas disponveis seja capaz de resolver qualquer problema que envolva repeties, h sempre uma que a mais adequada para o problema em questo. Recomenda-se que, nos primeiros exerccios, o aluno devenvolva trs verses de cada exerccio,

CAPTULO 1.

INTRODUO

cada uma utilizando uma estrutura de repetio diferente. Essa prtica ajudar o aluno a escolher a estrutra mais adequada nos prximos exerccios. Os conceitos de vetores e matrizes so explorados no Captulo 5. Estruturas (struct ), unies (union ) e tipos enumerados (enum ) so os recursos abordados no Captulo 6. O Captulo 7 explora os recursos de criao e uso de funes na linguagem C. O uso de funes favorece o reuso de cdigo e a base da programao modular. O aluno pode, opcionalmente, criar as funes em arquivos separados. Neste caso costume criar o prottipo das funes num arquvo com extenso .h e a implementao das funes em um arquivo com extenso .c (o arquivo .h deve adicionar, no nal, o comando #include para incluir o arquivo .c contendo a implementao das funes). Assim possvel que o usurio inclua as funes em quaisquer programas que for necessrio, fazendo uso apenas do comando #include. Os exerccios includos at este ponto consideram que a entrada de dados feita pelo usurio, ao digitar valores pelo teclado e que os resultados so sempre exibidos na tela. Porm, isso no precisa ser sempre assim. O Captulo 8 ir incluir exerccios que exploram o uso de

arquivos, tanto de texto quanto binrios. No Captulo 9 so explorados os recursos de ponteiros da linguagem C. Nos Captulos 6 e 7 evitou-se a incluso de exerccios que zessem uso de ponteitos e, dessa forma, limitando um pouco o contedo abordado nestes Captulos. Assim, este captulo serve tambm como um captulo complementar dos anteriores citados. Diversos outros recuros existentes na linguagem C (que no chegaram a se tornar um captulo nesta lista de exerccios) so explorados no Captulo 10. Este captulo recomendado para desenvolver um domnimo mais completo da linguagem. O Captulo 11 inclui exerccios que exploram conceitos estudados nas disciplinas de Estruturas de Dados e Anlise e Projeto de Algoritmos. Este captulo recomendado tanto a alunos que estejam fazendo estas disciplinas quanto a alunos que apenas queiram ter uma melhor prtica no desenvolvimento de programas em linguagem C. O Captulo 12 prope exerccios um pouco mais avanados, onde a diculdade pode tanto ser na construo do programa quanto na matemtica envolvida no problema. Por m, o Apncide A rene uma coleo de valores de constantes e frmulas matemticas necessrias para a construo de diversos solicitados nesta lista.

Captulo 2 Variveis, Expresses e Funes Bsicas


1. Faa um programa que exiba a mensagem Ol Mundo! para o usurio.

2. Faa um programa que declare uma varivel inteira e mostre seu contedo para o usurio. Execute o programa algumas vezes. Qual o signicado do valor que est sendo impresso pelo programa?

3. Faa um programa que declare uma varivel real com preciso simples, atribua a essa varivel o valor do nmero varivel.

(3.1415) e mostre, para o usurio, o contedo dessa

4. Faa um programa que declare uma varivel capaz de armazenar um caractere, atribua a letra a a essa varivel e mostre na tela o contedo da varivel.

5. Faa um programa que declare uma varivel inteira, atribua a essa varivel o valor 2.97 e mostre na tela o contedo da varivel. Que valor mostrado na tela? Por que isso acontece? Como pode ser evitado esse tipo de problema?

6. Faa um programa que declare uma varivel real com preciso dupla, atribua a essa varivel a expresso

123/456

e mostre o resultado que est armazenado na varivel?

Que valor mostrado na tela? Por que isso acontece? Como pode ser evitado esse tipo de problema?

7. Faa um programa capaz de ler um carectere, informado pelo usurio, e mostrar o caractere escolhido pelo usurio.

8. Faa um programa que leia um nmero inteiro e um nmero real de preciso simples. Mostre na tela ambos os valores.

CAPTULO 2.

V ARI VEIS, EXPRESSES E FUNES BSICAS

9. Faa um program que leia um valor inteiro e mostre este mesmo valor nas bases hexadecimal e octal. Dica: a funo

printf

possui opes de formatao que fazem isso.

10. Ler um valor real e exibir este valor com a preciso de duas cadas decimais (nem mais nem menos). 11. Ler um valor inteiro e exibir este valor com pelo menos trs dgitos. Exemplo:

valor lido:7 -> valor exibido:007 valor lido:17 -> valor exibido: 017 valor lido:1024 -> valor exibido: 1024

Dica: a funo

printf

possui opes de formatao que fazem isso.

12. Faa um programa que leia uma data no formato (dd/mm/aaaa) e mostre a data fornecida no formato (aaaa/mm/dd). Dica: possvel especicar as barras no formato de entrada dentro da funo

scanf.

13. Faa um programa que leia um nmero inteiro, calcule o seu quadrado e exiba o resultado. 14. Faa um programa que leia um nmero inteiro, calcule a dcima parte deste nmero e exiba o resultado. 15. Faa um programa que leia dois nmeros, some estes nmeros e exiba o resultado. 16. Faa um programa capaz de multiplicar dois nmeros fornecidos pelo usurio. 17. Faa um programa que leia dois nmeros inteiros e calcule sua soma, subtrao, multiplicao e diviso. 18. Faa um programa para calcular a soma de trs valores informados pelo usurio. 19. Faa um programa para ler uma temperatura em graus Celsius e mostrar seu valor convertido para graus Fahrenheit. 20. Faa um programa para ler uma temperatura em graus Fahrenheit e apresentar seu valor convertido para graus Celsius. 21. Faa um programa que ler uma temperatura em graus Celsius e convert-la para Kelvin.

22. Faa um programa que converta uma temperatura em Kelvin para Celsius.

23. Faa um programa para converter de graus Fahrenheit para Kelvin.

24. Faa um programa para converter de Kelvin para graus Fahrenheit.

25. Faa um programa que leia uma temperatura em graus Celsius e mostre seu valor em graus Fahrenheit e Kelvin.

26. Faa um programa para ler um ngulo em graus e convert-lo em radianos.

27. Faa um programa para ler um ngulo em radianos e convert-lo em graus.

28. Faa um programa que leia um nmero e exiba o seu antecessor e sucessor.

29. Faa um programa para calcular a rea de um quadrado. O tamanho do lado deve ser informado pelo usurio.

30. Faa um programa para calcular a rea de um retngulo. O tamanho dos lados devem ser informados pelo usurio.

31. Faa um programa para calcular a rea de um tringulo retngulo. O tamanho da base e altura do tringulo devem ser informados pelo usurio.

32. Faa um programa para calcular a rea de um tringulo qualquer. lados devem ser informados pelo usurio.

O tamanho dos

33. Faa um program que leia trs valores e apresente, como resultado nal, a soma dos quadrados dos trs valores lidos.

34. Faa um programa que leia quatro notas de um aluno e calcule a sua mdia obtida.

35. Faa um programa que leia o valor do salrio de um funcionrio, calcule e mostre seu novo salrio, sabendo que o mesmo recebeu um aumento de 21,3%.

36. Faa um programa que receba a altura do degrau de uma escada e a altura que o usurio deseja alcanar subindo a escada. Calcular e mostrar quantos degraus o usurio dever subir para atingir seu objetivo, sem se preocupar com a altura do usurio.

37. Leia o valor do raio de um crculo e calcule a rea deste crculo.

38. Leia o valor do raio de um crculo e calcule a sua circunferncia.

10

CAPTULO 2.

V ARI VEIS, EXPRESSES E FUNES BSICAS

39. Leia o valor do raio de uma esfera e calcule a rea de sua superfcie e o volume da esfera.

40. A importncia de R$ 780.000,00 ser dividida entre trs ganhadores de um concurso. Sendo que da quantia total:

O primeiro ganhador receber 46%; O segundo receber 32%; O terceiro receber o restante.

Calcule e imprima a quantia ganha por cada um dos ganhadores.

41. Uma empresa contrata um encanador a R$ 30,00 por dia.

Crie um programa que

solicite o nmero de dias trabalhados pelo encanador e imprima a quantia lquida que dever ser paga, sabendo-se que so descontados 8% para pagamento de impostos e taxas devidas.

42. Leia os valores de dois catetos de um tringulo e calcule e mostre o valor da hipotenusa.

43. Faa um programa que leia um caractere e imprima esse caractere como se fosse um nmero inteiro. Que nmero esse que foi exibido pelo programa?

44. Faa um programa que converta uma letra maiscula em letra minscula. Dica: use a tabela ASCII.

45. Faa um programa que leia um nmero inteiro, positivo e de trs dgitos, calcule o nmero formado pelos dgitos invertidos do nmero lido. Exemplo: Nmero lido: 123 Nmero Obtido: 321

46. Faa um programa para ler um horrio (hora:minuto:segundo) de incio e a durao, em segundos, de uma experincia biolgica. (hora:minuto:segundo) de trmino da mesma. O programa deve informar o horrio

47. Faa um programa que calcule a mdia ponderada das notas de trs provas. A primeira e a segunda prova tm peso 1 e a terceira prova tem peso 2. O programa deve a mdia obtida pelo aluno.

11

48. Faa um programa que leia o valor da hora de trabalho (em reais), o nmero de dias trabalhados no ms de janeiro deste ano, e mostre na tela o valor a ser pago ao funcionrio, adicionando 10% sobre o valor calculado. Considere que a carga de trabalho de segunda a sexta-feira, das 08:00 s 12:00 e as 14:00 s 18:00; aos sbados, das 08:00 s 12:00. Considere que o funcionrio teve folga em dias de feriados. 49. Escreva um programa que leia as coordenadas x e y de um ponto no plano cartesiano e calcule a sua distncia ao ponto de origem. 50. Escreva um programa que leia as coordenadas x e y de dois pontos no plano e calcule a distncia entre eles. 51. Escreva um programa que leia as coordenadas x e y dos vrtices de um tringulo e calcule a sua rea. 52. Faa um programa capaz de ler um nmero de quatro dgitos e escrever cada dgito em uma linha na tela. 53. Faa um programa que leia o valor de horas, minutos e segundos gastos em um experimentos e converta esse tempo em segundos. 54. Faa um programa que leia um valor inteiro em segundos e exiba a quantidade de horas, minutos e segundos correspondente ao valor lido. 55. Trs amigos zeram um bolo e jogaram na loteria. Caso eles ganhem, o prmio deve ser repartido proporcionalmente ao valor que cada um contribuiu para a realizao das apostas. Faa um programa que l quanto cada apostador investiu, l o valor do prmio e escreve quanto cada um ganharia. 56. Faa um programa que receba dois valores inteiros, e construa um nmero real cuja parte inteira corresponde ao resto da diviso do primeiro pelo segundo valor e a parte fracionrio composta pelos dois dgitos menos signicativos do quociente da diviso do primeiro pelo segundo valor recebido. 57. Leia um valor de velocidade em quilmetros por hora e apresent-la em metros por segundo. 58. Leia um valor de velocidade em metros por segundo e apreset-la em quilmetros por hora. 59. Leia uma distncia em milhas e converta para quilmetros.

12

CAPTULO 2.

V ARI VEIS, EXPRESSES E FUNES BSICAS

60. Leia uma distncia em quilmetros e converta para milhas. 61. Leia um valor de comprimento em polegadas e convert-lo em centmetros. 62. Converter de centmetros para polegadas. 63. Ler um valor de volume em metros cbicos e converter para litros. 64. Ler um valor de quantidade de litros e calcular o valor correspondente em metros cbicos. 65. Ler um valor de quantidade de litros e calcular o valor correspondente em centmetros cbicos. 66. Ler um valor de massa em quilogramas e converter para libras. 67. Ler um valor de massa em libras e converter para quilogramas. 68. Ler um comprimento em jardas e converter para metros. 69. Ler um comprimento em metros e converter para jardas. 70. Ler uma rea em metros quadrados e converter para acres. 71. Ler uma rea em acres e converter para metros quadrados. 72. Ler uma rea em hectares e converter para metros quadrados. 73. Ler uma rea em metros quadrados e converter para hectares. 74. Ler uma rea em hectares e converter para quilmetros quadrados. 75. Ler uma rea em quilmetros quadrados e converter para hectares. 76. Faa um programa que realize operaes simples de nmeros complexos:

Crie e leia dois nmeros complexos, ambos compostos por parte real e parter imaginria.

Apresente a soma, subtrao e produto entre estes dois nmeros complexos. Apresente o mdulo dos dois nmeros complexos.

77. Faa um programa que leia dois pontos correspondentes a dois vetores no plano cartesiano e calcule o ngulo entre esses dois vetores.

13

78. Crie um programa que converte coordenadas cartesianas em coordenadas polares. O programa deve ler um ponto em um coordenada polar, composto por raio e ngulo em radianos.

79. Calcular a corrente em um circuito eltrico resistivo simples:

Leia os dados de uma fonte de tenso real composta por fora eletromotriz (E) e resistncia interna (ri).

Leia os dados de uma fonte de um receptor composto por resistncia interna (ri) e consumo (E').

Calcular e exibir a corrente que passa no circuito composto pela fonte e receptor, sabendo que E=E'+R*i, onde R a soma das resistncias internas.

80. Calcular a fora gravitacional de um objeto de massa solo.

a uma distncia

acima do

81. Um determinado satlite est a uma altitude

com relao a Terra.

Escreva um

programa que leia a altitude desse satlite e determine sua velocidade orbital e seu perodo de movimento orbital. Dica: utilize as frmulas e constantes localizadas no Apndice A.

82. Ler a altura e o raio de um cilindro circular e imprimir o volume do cilindro.

83. Ler o salriobase de um funcionrio, calcular e mostrar o salrio a receber, sabendo-se que esse funcionrio tem graticao de 5% sobre o salrio-base, e paga imposto de 7% sobre o salrio-base.

84. Faa um programa para converso monetria de reais (R$) para dlares (US$). usurio deve fornecer o valor da cotao do dlar.

85. Um cercado contm patos e coelhos. Faa um programa que solicita o total de cabeas e o total de patas, e escreve quantos patos e quantos coelhos existem no cercado.

86. Ler um nmero inteiro e imprimir a soma do sucessor de seu triplo com o antecessor de seu dobro.

87. Faa um programa para ler as dimenses de um terreno (comprimento e largura), o preo do metro de arame e calcular o custo total para cercar o terreno. O programa tambm deve informar quantos metros de cerca devem ser comprados.

14

CAPTULO 2.

V ARI VEIS, EXPRESSES E FUNES BSICAS

88. Faa um programa que calcule o ano de nascimento de uma pessoa a partir da idade que a pessoa tinha no dia primeiro de janeiro do ano atual. 89. Faa um programa que calcule e mostre a mdia geomtrica entre quatro valores. 90. Faa um programa que calcule e mostre a mdia harmnica entre quatro valores. 91. Ler um ngulo

em graus, calcular e mostrar o valor de

seno(x), cossseno(x)

tangente(x).
Obs.: antes de usar as funes trignomtricas da biblioteca verter a medida do ngulo para radianos. 92. Ler um valor

math.h,

necessrio con-

e calcular o

arcoseno(x), arcocosseno(x),

e o

arcotangente(x).

Os

ngulos obtidos nos resultados devem ser apresentados em graus. 93. Ler o valor de um ngulo hiperblico de

x,

em graus, e calcular o seno hiperblico de

x,

o cosseno

e a tangente hiperblica de

x.

Obs:

o valor do ngulo deve ser

convertido para radianos antes de se usar as funes da biblioteca 94. Faa um programa que gere trs valores aleatrios inteiros. Dica: use as funes

math.h.

rand

srand,

ambas denidas na biblioteca

stdlib.h.

95. Faa um programa que gere trs valores aleatrios inteiros e maiores ou iguais que um limite inferior fornecido pelo usurio. 96. Faa um programa que gere trs valores aleatrios inteiros e menores ou iguais que um limite superior fornecido pelo usurio. 97. Faa um programa que gere trs valores aletrios inteiros que estejam dentro do intervalo fechado

[ a; b ] . x

Os limites inferior (a) e superior (b) so fornecidos pelo usurio. e calcular seu logaritmo na base

98. Ler um valor de

e na base 10. Que valor obtido

se o usurio fornecer o valor zero para 99. Ler um valor de

x?

Qual o signicado desse nmero?

e um valor de

e calcular o logaritmo de

na base

b.

Dica: use

a frmula de mudana de base logartmica para poder usar as funes da biblioteca

math.h.
100. Faa um programa capaz de ler um valor real inteira e parte fracionria. Dica: use a funo

e decompor esse nmero em parte

modf

da biblioteca

math.h.

15

101. Faa um programa que calcule a n-sima raiz de um valor Obs.: o usurio deve fornecer o ndice da raz. Dica: use a funo

fornecido pelo usurio.

pow

da biblioteca

math.h.

102. Ler um nmero real

e decompor ele o decompor em nmero signicante e em um

expoente binrio de modo que a seja verdadeira a equao Dica: use a funo

x = signif icante 2expoente .

frexp

da biblioteca

math.h.

103. Ler um nmero real e arredondar para o nmero mais prximo. Obs.: no necessrio o uso de estruturas condicionais neste programa. Dica: use a funo

ceil

ou

oor

da biblioteca

math.h.

104. Faa um programa que informe qual o menor e maior valor que podem ser armazenados em uma varivel inteira. Dica: pesquise a respeito na biblioteca 105. Faa um programa que:

limits.h.

Gere dois nmeros aleatrios

inteiros, positivos e no intervalo de [1;100];

Escolher aleatoriamente uma das operaes artimticas bsicas (soma, subtrao, diviso ou multiplicao) para ser executada entre os operandos

b;

Pedir ao usurio que fornea o resultado da operao aritmtica gerada no tem anterior; Monitorar o tempo de resposta do usurio (tempo entre a momento em que o programa exibe a operao aritmtica gerada e o momento em que fornecida a resposta);

Exibir o resultado entrado pelo usurio; o resultado correto; e o tempo, em segundos, que o usurio levou para responder.

Dica: use a funo

time

da biblioteca

time.h.

106. Faa um programa que converta uma data no formato gregoriano (dd/mm/aaaa) para o formato juliano. 107. Faa um programa que converta uma data no formato juliano para o formato gregoriano (dd/mm/aaaa). 108. Faa um programa que leia duas datas, ambas no formato dd/mm/aaaa, e calcule a quantidade de dias entre essas duas datas. Dica: a converso entre formatos de datas pode ser til construo deste programa.

16

CAPTULO 2.

V ARI VEIS, EXPRESSES E FUNES BSICAS

109. Em uma loja, o cliente, ao fazer uma compra a prazo, pode estabelescer o um prazo de 10 a 90 dias para pagar a compra. Faa um programa que leia uma data no formato dd/mm/aaaa e uma quantidade de dias

n,

adicione os

n dias data fornecida e mostre

a data limite para pagamento, no formato dd/mm/aaaa. Dica: a converso entre formatos de datas pode ser til construo deste programa. 110. Uma empresa paga R$ 10,00 por hora normal trabalhada e R$ 15,00 por hora extra. Escreva 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 salrio anual deste trabalhador. 111. Assuma que o trabalhador do exerccio anterior deve pagar 10% de imposto se o seu salrio anual for menor ou igual a R$ 12.000,00. Caso o salrio seja maior que este

valor o imposto devido igual a 10% sobre R$ 12.000,00 mais 25% sobre o que passar de R$ 12.000,00. Escreva um programa que calcule o imposto devido pelo trabalhador.

Captulo 3 Estruturas Condicionais e de Seleo


1. Considere um cdigo que, em uma de suas estruturas condicionais, utilize o seguinte teste:

if(x=0).

Qual o comportamento do comando

o comportamento desse programa se o teste fosse

if neste programa? if(x=1) ou if(x=-10) ?

E como seria

2. Faa um programa que leia um valor de uma varivel inteira

e imprima dois valores,

formatados como inteiros, sendo o primeiro deles o resultado da expresso lgica e o segundo o resultado da expresso lgica

x <= 0

x < 0.

Quais so os valores exibidos como

resultado na tela? O que signicam esses valores? 3. Faa um programa que receba dois nmeros e mostre qual o maior deles. 4. Ler um nmero real, se o nmero for positivo imprima sua raiz quadrada, seno imprima o nmero ao quadrado. 5. Vericar se um determinado ano, fornecido pelo usurio, bissexto. Um ano bissexto se for divisvel por 400 ou se for divisvel por 4 e no for divisvel por 100. Exemplos: 1988, 1992, 1996, 2000. Repare que 1900 no bissexto. 6. Receber o salrio de um trabalhador e o valor de um emprstimo. Se a prestao for maior que 20% do salrio imprima Emprstimo no concedido, caso contrrio imprima Emprstimo autorizado. 7. Ler o ano de nascimento de uma pessoa e o ano atual, calcular a idade da pessoa. 8. A nota nal de um estudante calculada a partir de trs notas atribudas, respectivamente, a um trabalho de laboratrio, a uma avaliao semestral e a um exame nal. A mdia das trs notas mencionadas anteriormente os seguintes pesos: Trabalho de laboratrio: 2; Avaliao semestral: 3; Exame nal: 5. Calcule a mdia obtida pelo

17

18

CAPTULO 3.

ESTRUTURAS CONDICIONAIS E DE SELEO

aluno e, de acordo com o resultado, mostre se o aluno est reprovado (mdia entre 0 e 2,9), de recuperao (mdia entre 3 e 4,9) ou aprovado (mdia maior ou igual a 5).

9. Faa um programa que leia um nmero inteiro e verique se o mesmo par ou mpar.

10. Faa um programa que leia trs nmeros e mostre-os em ordem crescente.

11. Faa um programa que leia trs nmeros e mostre-os em ordem decrescente.

Tabela 3.1: Classicao de acordo com altura e peso. Altura Menor que 1,20 De 1,20 a 1,70 Maior que 1,70 Peso At 60 A B C Entre 60 e 90 (inclusive) D E F Acima de 90 G H I

12. Faa um programa que receba a altura (em metros) e o peso de uma pessoa (em quilos). Verique qual a classicao dessa pessoa, de acordo com a tabela 3.1.

13. Faa um programa que calcule a mdia ponderada das notas de trs provas. A primeira e a segunda prova tm peso 1 e a terceira prova tem peso 2. O programa deve a mdia obtida pelo aluno e exibir o resultado se aprovado ou reprovado. Considere que para a aprovao seja necessrio obtr pelo menos uma mdia de 60%.

14. Dados trs valores

A, B

C,

vericar se eles podem ser comprimentos de lados de um

tringulo e, se forma um tringulo equiltero, issceles ou escaleno. Considere que:

O comprimento de um lado do tringulo menor que a soma dos dois outros lados; Um tringulo equiltero deve ter os trs lados com a mesmo tamanho; Um tringulo issceles deve ter pelo menos dois lados com a mesmo tamanho; Um tringulo escaleno deve ter os trs lados com tamanhos diferente;

15. Escrever um programa para ajudar 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 3x sem juros; A comisso do vendedor que de 5% do valor com desconto (para vendas a vista) ou de 5% sobre o valor total (para vendas parceladas).

19

16. Usando o

switch,

escreve um programa que leia um nmero inteiro de 1 a 7 e imprima

o dia da semana correspondente a este nmero, isto , domingo=1, segundafeira=2, etc.

17. Faa um programa que leia uma data no formato dd/mm/aaaa e calcule o dia da semana correspondente a data fornecida. Dica: converter a data para o formato juliano pode facilitar a construo deste programa.

18. Faa um programa para vericar se um determinado nmero, fornecido pelo usurio, divisvel por 3 ou por 5 mas no por ambos.

19. Faa um programa que escreva o menu abaixo, leia uma opo do usurio e execute a operao correspondente. O programa deve exibir uma mensagem de erro se a opo for invlida. O menu do programa deve ser o seguinte: Escolha uma opo: 1 - Soma de dois nmeros. 2 - Diferena entre dois nmeros. 3 - Produto entre dois nmeros. 4 - Diviso entre dois nmeros (o denominador no pode ser zero). Sua opo:

20. Uma determinada empresa vende seus produtos em quatro diferentes estados.

Cada

estado possui uma taxao de imposto diferente sobre o produto (MG: 7%; SP: 12%; RJ: 15%; MS: 8%). Faa um programa em que o usurio entre com o valor e o estado destino do produto e o programa retorne o preo nal do produto acrescido do imposto correspondente ao estado onde ser vendido. O programa deve mostrar uma mensagem de erro caso o estado fornecido no esteja na lista de estados vlidos.

21. Leia uma distncia em quilmetros 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 a tabela 3.2.

Consumo (Km/l) Mensagem


Menor que 8 Entre 8 e 14 maior que 14 Econmico

Tabela 3.2: Consumo de combustvel. Venda o carro!

Super econmico

20

CAPTULO 3.

ESTRUTURAS CONDICIONAIS E DE SELEO

22. Leia a nota e o nmero de faltas de um aluno e escreva seu conceito de acordo com a tabela 3.3.

Tabela 3.3: Conceitos com relao a notas e faltas.

Nota
9.0 at 10.0 7.5 at 8.9 5.0 at 7.4 4.0 at 4.9 0.0 at 3.9

Conceito At 20 faltas Acima de 20 faltas


A B C D E B C D E E

23. Leia a idade e o tempo de servio de um trabalhador e escreva se ele pode ou no se aposentar. As condies para aposentadoria so:

Ter pelo menos 65 anos de idade. Ou ter trabalhado pelo menos 30 anos. Ou ter pelo menos 60 anos e ter trabalhado pelo menos 25 anos.

24. Um programador iniciante resolveu fazer um programa que receba um nmero inteiro de 1 a 7 correspondendo a um dia da semana (1=domingo, 2=segunda-feira, etc). O programa deve mostrar no nome do dia da semana. O programador decidiu usar uma estrutura de seleo (switch-case ) porm, ele esqueceu de incluir os comandos nal de cada case. Qual ser o comportamento deste programa? 25. Faa um programa que uma opo e trs valores e calcule uma mdia correspondente a uma das seguintes opes:

break

ao

A = mdia aritmtica. P = mdia ponderada com pesos 1, 2 e 3 para o primeiro, segundo e terceiro valor, respectivamente. G = mdia geomtrica. H = mdia harmnica.

O programa deve aceitar as opes tanto em caracteres maisculos como minsculos. O programa deve exibir uma mensagem de erro caso a opo escolhida seja invlida. 26. Leia uma data e determine se a data fornecida vlida. fevereiro tem 29 dias em anos bissextos. Lembre-se que o ms de

21

27. Um certo produto ir sofrer aumento de acordo com a tabela 3.4. Faa um programa que leia o valor atual, calcule e escreva o novo valor do produto. O programa tambm deve mostrar uma mensagem de acordo com a tabela 3.5.

Tabela 3.4: Percentuais para clculo de novos preos.

Preo Atual
At R$ 50

Precentual de Reajuste
5% 10% 15%

Entre R$ 50 e R$ 100 Acima de R$ 100

Tabela 3.5: Mensagem a ser exibida com relao ao preo do produto.

Preo Reajustado
At R$ 80

Mensagem
Barato Normal Caro Muito caro

Entre R$ 80 e R$ 120 (inclusive) Entre R$ 120 e R$ 200 (inclusive) Acima de R$ 200

28. Ler um nmero inteiro e maior que zero.

Caso o nmero fornecido seja negativo,

escreva uma mensagem de erro e solicite nova tentativa. Faa at cinco tentativas, se o usurio no fornecer um nmero vlido nestas tentativas, imprima uma mensagem de erro e nalize o programa. Caso o usurio tenha fornecido um valor vlido, calculeo o logaritmo natural do valor lido. 29. Um nmero

n no intervalo de 100 a 999 chamado nmero de Angstron se n obedece

a seguinte regra:

n = centenas3 + dezenas3 + unidades3


Exemplo:

153 = 13 + 53 + 33
Escreva um programa que leia um nmero inteiro no intervalo [100;999] e verique o um nmero de Angstron. 30. Considere a tabela 3.6. Escreva um programa que, dado o valor de venda, imprima a comisso que dever ser paga ao fornecedor. 31. Escreva um programa completo que, dados dois nmeros inteiros, mostre na tela o maior deles, assim, como a diferena existente entre ambos. 32. Escrever um programa que leia o cdigo de um produto escolhido do cardpio de uma lanchonete e a quantidade. Assim, o programa deve calcular o valor a ser pago por

22

CAPTULO 3.

ESTRUTURAS CONDICIONAIS E DE SELEO

Tabela 3.6: Comisso devida de acordo com venda mensal realizada.

Venda Mensal
< < < < <

Comisso

R$ 100.000,00 R$ 100.000,00 e R$ 80.000,00 e R$ 60.000,00 e R$ 40.000,00 e R$ 20.000,00 R$ 80.000,00 R$ 60.000,00 R$ 40.000,00 R$ 20.000,00

R$ 700,00 + 16% das vendas R$ 650 + 14% das vendas R$ 600,00 + 14% das vendas R$ 550,00 + 14% das vendas R$ 500,00 + 14% das vendas R$ 400,00 + 14% das vendas

aquele lanche. Considere que a cada execuo somente um pedido ser realizado. O cardpio da lanchonete exibido na tabela 3.7.

Tabela 3.7: Cardpio de lanchonete.

Descrio

Cdigo Preo
100 101 102 103 104 105 106 1,20 1,30 1,50 1,20 1,70 2,20 1,00

Cachorro quente Bauru simples Bauru com ovo Hamburger Cheeseburger Suco Refrigerante

33. Escreva um programa que, dada a idade de um nadador, classique-o em uma das categorias especicadas na tabela 3.8.

Tabela 3.8: Categorias para nadadores de acordo com idade.

Categoria
Infantil A Infantil B

Idade

5 a 7 anos 8 a 10 anos 11 a 13 anos 14 a 17 anos maiores de 18 anos

Infanto-juvenil Juvenil Snior

34. As tarifas de um determinado parque de estacionamento so as seguintes:

1a 3a 5a

e e

2a 4a

hora: R$ 1,00 cada hora. hora: R$ 1,40 cada hora.

hora e seguintes: R$ 2,00 cada hora.

23

O nmero de horas sempre um inteiro e arredondado por excesso. Assim, quem estacionar durante 61 minutos pagar o equivalente a duas horas. Os momentos de chegada ao parque e de partida so apresentados na forma hh:mm (considere que as horas vo at 23). Faa um programa que receba pelo teclado o momento de chegada e de partida, escreva na tela o preo cobrado pelo estacionamento. O programa dever realizar uma vericao quanto a validade das informaes fornecidas. Admite-se que a chegada e a partida se do com intervalos no superior a 24 horas, de modo que, se a hora de chegada superior a hora de sada, isso signica que a partida ocorreu no dia seguinte ao dia da chegada.

35. Faa um programa em que o usurio digite uma senha numrica, e o programa dever reconhecer se a senha verdadeira ou falsa, de acordo com um valor estabelescido previamente no programa.

36. Crie um programa que elabore questes para uma prova de matemtica para crianas que esto aprendendo a somar nmeros inteiros menores que 100. Escolha nmeros

aleatrios entre 1 e 100, e mostre na tela a sequinte pergunta: Qual a soma entre e

B ?,

onde

so os valores gerados. Pea a resposta. Faa cinco perguntas ao

aluno, e mostre para ele as perguntas realizadas, as respostas corretas e as respostas fornecidas. Mostre tambm quantos acertos e erros o aluno teve e a nota alcanado na prova (mdia aritmtica considerando que cada questo vale dois pontos).

37. Faa um programa que mostre para o usurio um menu de opes para as seguintes operaes matemticas: soma, subtrao, diviso (quociente), multiplicao, resto da diviso inteira, exponenciao e logaritmo (em uma base especicada pelo usurio), logaritmo natural, raiz quadrada, raiz nsima, seno, cosseno e tangente. O usurio

dever escolher uma das opes, e entrar com os operandos necessrios. O programa deve exibir o resultado obtido.

38. Faa um programa que calcule as razes de uma equao de segundo grau. O usurio dever fornecer os coecientes Considerer que:

a, b

para uma equao na forma

ax2 + bx + c = 0.

O valor do coeciente

deve ser diferente de zero, caso contrrio o programa

dever exibir a mensagem Esta no uma equao de segundo grau.

Se

< 0,

ento no existe razes reais para a equao.

Imprima a mensagem

No existe raiz real.

24

CAPTULO 3.

ESTRUTURAS CONDICIONAIS E DE SELEO

Se

= 0, > 0,

ento existe apenas uma raiz real.

Imprima a raiz encontrada e a

mensagem Raz nica. se ento existem duas raizes reais. Imprima o valor das razes.

39. Ler um nmero e calcular sua raiz quadrada. Se o valor for negativo, o resultado da raiz dever estar em notao de nmeros complexos. 40. Faa um programa que calcule as razes de uma equao de segundo grau. O usurio dever fornecer os coecientes

a, b

para uma equao na forma

ax2 + bx + c = 0.

programa dever exibir as razes encontradas, sejam elas reais ou complexas (caso em que

< 0).

41. Faa um programa que receba a altura e o sexo de uma pessoa, calcule e mostre o seu peso ideal. Considere que o peso ideal para homens calculado pela frmula e o peso ideal para mulheres calculado pela frmula fornecida. 42. Faa um programa que receba dois valores e mostre o maior. Caos os nmeros sejam iguais, imprima a mensagem Nmeros iguais. 43. Faa um programa que leia um nmero e, caso seja positivo, calcule e mostre o seu quadrado e sua raiz quadrada. 44. Faa um programa que informe o ms de acordo com o nmero informado pelo usurio. Por exemplo, se o usurio informa o valor 4, a sada do programa dever ser Abril). 45. Faa um programa que leia uma data no formato dd/mm/aaaa e mostre, por extenso, a data fornecida. Exemplo: 25/12/2000 dever resultar em: 25 de dezembro de 2000. 46. Ler trs valores

72, 7h 58
a altura

62, 1h 44, 7,

onde

A, B

C.

Neste programa necessrio que

C,

portanto

poder ser necessrio a troca de valores entre as variveis. Dica: use uma varivel auxiliar para trocar os valores entre duas variveis. 47. Ler trs valores

A, B

C.

Neste programa necessrio que

C,

portanto

poder ser necessrio a troca de valores entre as variveis. Dica: use uma varivel auxiliar para trocar os valores entre duas variveis. 48. Ler a data de nascimento de uma pessoa fornecida no formato dd/mm/aaaa. Verique a validade da data informada. O programa dever informar se a data fornecida vlida ou invlida.

25

49. Uma empresa decide dar aumento aos seus funcionrios de acordo com uma tabela que considera o salrio atual e o tempo de servio de cada funcionrio. Os funcionrios

com menor salrio tero um aumento proporcionalmente maior do que os funcionrios com um salrio maior, e conforme o tempo de servio na empresa, cada funcionrio ir receber um bnus adicional de salrio. Faa um programa que leia:

o valor do salrio atual do funcionrio; o tempo de servio deste funcionrio na empresa (quantidade de anos de trabalho na empresa).

Use a tabela 3.9 para calcular o salrio reajustado deste funcionrio e imprima o valor do salrio nal reajustado, ou uma mensagem caso o funcionrio no tenho direito a aumento.

Tabela 3.9: Tabelas Salrio Atual x Reajuste e Tempo de servio x Bnus.

Salrio Atual
At 500,00 At 1000,00 At 1500,00 At 2000,00

Reajuste
25% 20% 15% 10%

Tempo de Servio
Abaixo de 1 ano De 1 a 3 anos De 4 a 6 anos De 7 a 10 anos Mais de 10 anos

Bnus
100,00 200,00 300,00 500,00

Sem Bnus

Acima de 2000,00

Sem reajuste

50. O custo ao consumidor de um carro novo a soma do custo da fbrica, da comisso do distribuidor, e dos impostos. A comisso e os impostos so calculados sobre o custo de fbrica, de acordo com a tabela 3.10. Faa um programa que leia o custo de fbrica e escreva o custo do consumidor.

Custo de Fbrica
At R$ 12.000,00

Tabela 3.10: Tabela para clculo do custo do consumidor para carros novos.

% do Distribuidor % de Impostos
5 10 15 Isento 15 20

Entre R$ 12.000,00 e R$ 25.000,00 Acima de R$ 25.000,00

Faa um programa para calcular o ndice de massa corporal (IMC) de uma pessoa e mostre sua classicao de acordo com a tabela 3.11. seguinte frmula: Para calcular o IMC use a

massa(kg ) IM C = altura2 (m)

51. Faa um programa que leia trs pontos no plano cartesiano e verique se esses pontos formam um tringulo equiltero, escaleno, issceles ou se no formam um tringulo.

26

CAPTULO 3.

ESTRUTURAS CONDICIONAIS E DE SELEO

Tabela 3.11: Classicao de acordo com valor de IMC.

IMC
<

Classicao
Saudvel

18,5

Abaixo do peso

18,6  24,9 25,0  29,9 30,0  34,9 35,0  39,9 40,0

Acima do peso Obesidade Grau I Obesidade Grau II (severa) Obesidade Grau III (mrbida)

52. Faa um programa que leia trs valores sendo o primeiro e o terceiro valores nmeros e o segundo valor um caractere. O caractere representar uma operao matemtica e dever ser um dos seguintes: `+', `',`',`/' e `'. O programa dever calcular e exibir o resultado da operao correspondente. Obs.: o caractere `' dever ser usado para o clculo de exponenciao. 53. Faa um programa que leia uma data no formato dd/mm e informe se a data fornecida um dos feriados xos do ano. Considere os seguintes feriados: 1 de janeiro (confraternizao universal), 21 de abril (Tiradentes), 1 de maio (dia do trabalho), 7 de setembro (independncia do Brasil), 12 de outrubro (Nossa Senhora Aparecida, padroeira do Brasil), 2 de novembro (Finados), 15 de novembro (proclamao da repblica) e 25 de dezembro (natal). O programa dever dizer qual feriado corresponde a data fornecida (se for feriado). 54. Implemente o programa anterior usando

switch-case.

Dica: transforme os dois nmeros correspondentes a dia e mes num nico valor. 55. Faa um programa que leia 10 nmeros e escreva o maior e o menor desses 10 nmeros. Obs.: para este programa, no utilize estruturas de repetio nem

arrays.

56. Faa um programa que leia duas datas, ambas no formato dd/mm/aaaa, e verique e mostre qual das datas a mais recente. Obs.: no use converso entre formatos de data neste programa. 57. Faa um programa que leia um ponto no plano e informe em qual quadrante do plano cartesiano este ponto localizado. 58. Faa um programa que leia dois pontos no plano e informe se os mesmos esto localizados ou no num mesmo quadrante do plano cartesiano. 59. Faa um programa que leia um caractere e diga se o mesmo corresponde a um dgito de 0 a 9.

27

60. Faa um programa que leia um caractere e diga a que classe esse caractere pertence. Considere as seguintes classes: dgito (caracteres de `0' a `9'); letras maisculas (caracteres de `A' a `Z'); letras minsculas (caracteres de `a' a `z') e; outros (quaisquer outros caracteres). Dica: verique os cdigos ASCII para cada classe de caracteres. 61. Faa um programa que leia um caracte e verique se o mesmo maisculo ou minsculo. Se maisculo, converta para minsculo. Se minsculo, converta para maisculo. 62. Leia um inteiro entre 0 e 50 e verique em que dezena este nmero pertence. Faa este programa usando a estrutura Dica: o valor avaliado em

switch-case. uma estrutura switch-case

deve ser um inteiro ou um carac-

tere, estando armazenado em uma varivel ou sendo resultado de uma expresso. 63. Faa um programa que leia uma opo que especica uma determinada converso entre escalas termomtricas e, em seguida, solicite a temperatura a ser convertida. As opes de converso so as seguintes:

1  de Celsius para Fahrenheit. 2  de Celsius para Kelvin. 3  de Fahrenheit para Celsius. 4  de Fahrenheit para Kelvin. 5  de Kelvin para Celsius. 6  de Kelvin para Fahrenheit.

28

CAPTULO 3.

ESTRUTURAS CONDICIONAIS E DE SELEO

Captulo 4 Estruturas de Repetio


1. Faa um programa que mostre na tela os nmeros naturais entre 0 (zero) e 100. Faa trs verses desse programa, cada uma usando uma estrutura de repetio diferente (for,

while, do-while ).

Qual das trs estruturas a mais adequada para este programa?

Por que?

2. Faa um programa que solicite ao usurio informar um valor positivo.

O programa

dever repetir a solicitao caso o usurio fornea um valor invlido (negativo). Quando o usurio fornecer um valor vlido, mostre uma mensagem de texto conrmando o valor entrado. Faa trs verses desse programa, cada uma usando uma estrutura de repetio diferente (for,

while, do-while ).

Qual das trs estruturas a mais adequada para este

programa? Por que?

3. Faa um programa que gere e exiba numeros aleatorios entre 0 (zero) e 15. O programa deve gerar nmeros at que o nmero 0 (zero) seja sorteado. Faa trs verses desse programa, cada uma usando uma estrutura de repetio diferente (for,

while, do-while ).

Qual das trs estruturas a mais adequada para este programa? Por que?

4. Faa um programa que gere e exiba, por extenso, nmeros aleatrios entre 0 (zero) e 15. O programa deve gerar os nmeros at que o nmero 15 seja sorteado. O programa deve exibir tambm, ao nal, a quantidade de nmeros gerados.

5. Faa um programa que permita ao usurio fornecer diversos valores positivos. O programa dever parar de solicitar valores quando o usurio fornecer um valor negativo. Ao nal, o programa dever informar a soma dos valores lidos. Obs: o valor negativo (ltimo valor entrado) no deve entrar na conta da soma.

6. Faa um programa que permita ao usurio fornecer diversos valores reais. O programa

29

30

CAPTULO 4.

ESTRUTURAS DE REPETIO

deve, primeiramente, solicitar ao usurio a quantidade de valores a serem entrados. Ao nal, o programa deve informar a mdia aritmtica dos valores lidos. 7. Faa um programa que solicite diversos valores ao usurio. Ao nal, o programa deve informar o menor valor lido. 8. Faa um programa que solicite diversos valores ao usurio. Ao nal, o programa deve informar o maior valor lido. 9. Faa um programa que solicite diversos valores ao usurio. Ao nal, o programa deve informar a soma dos valores, sua mdia aritmtica, o menor e o maior valor. 10. Faa um programa que gere um nmero aleatrio no intervalo [0;1000] e pea o usurio para adivinhar o nmero. Caso o usurio acerte, imprima uma mensagem parabenizando o usurio e nalize o programa, caso contrrio diga se o nmero fornecido est acima ou abaixo do valor correto e permita que o usurio faa uma nova tentativa. No nal, mostre a quantidade de tentativas necessrias para acertar o nmero sorteado. 11. Faa um programa que gere um nmero aleatrio no intervalo [0;200] e paa o usurio para adivinhar o nmero. Caso o usurio acerte, imprima uma mensagem

parabenizando-o e nalize o programa. Caso o valor que o usurio fornea esteja incorreto, o programa dever mostrar uma das seguintes mensagens:

Pegando Fogo!

(caso o valor correto esteja a 5 unidades ou menos do valor

fornecido pelo usurio).

Muito Quente (caso o valor correto esteja de 6 a 10 unidades do valor fornecido). Quente (caso o valor correto esteja de 11 a 20 unidades do valor fornecido). Frio (caso o valor correto esteja de 21 a 30 unidades do valor fornecido). Muito Frio (caso o valor correto esteja de 31 a 50 unidades do valor fornecido). Gelando (caso o valor correto esteja de 51 a 75 unidades do valor fornecido). Congelou! (caso o valor correto esteja a mais de 75 unidades do valor fornecido).

O programa dever permitir que o usurio faa novas tentativas at encontrar o valor correto ou at disparar a mensagem Congelou!. Tambm deve ser exibida a quantidade de tentativas que o usurio efetuou. 12. Escreva um programa completo que permita a qualquer aluno introduzir, pelo teclado, uma sequncia arbitrria de notas (vlidas no intervalo de 10 a 20) e que mostre na

31

tela, como resultado, a mdia aritmtica correspondente. O nmero de notas com que o aluno pretente efetuar o clculo no ser fornecido ao programa, o qual terminar quando for introduzido um valor que no seja vlido como nota. 13. Escreva um programa que aceite um nmero inteiro maior que zero e devolva a soma de todos os seus algarismos. Por exemplo, se o usurio fornecer o nmero 251, o resultado ser 8 (que corresponde a 2+5+1). Se o nmero fornecido pelo usurio no for maior que zero, o programa deve apresentar uma mensagem de erro e nalizar. 14. Escreva um programa que leia o nmero de habitantes de uma determinada cidade, o valor do kwh e, para cada habitante, entre com os dados: consumo do ms e o cdigo do consumidor (1: residencial, 2: comercial, 3: industrial). No nal, imprima o maior, o menor e a mdia de consumo dos habitantes e, por m, o total de consumo de cada categoria de consumidor. 15. Leia um nmero positivo, calcule e mostre a sequencia de Fibonacci at o primeiro nmero superior ao nmero lido. Exemplo: se o usurio fornecer o valor 30, a sequncia a ser impressa ser: 0 1 1 2 3 5 8 13 21 34. 16. Faa um programa que determine e mostre os 50 primeiros mltiplos de 3, considerando nmeros positivos. 17. Faa um programa que leia um nmero N e depois imprima os N primeiros nmeros naturais mpares. 18. Faa um programa que calcule e mostre a soma dos 50 primeiros nmeros pares. Obs.: Considere apenas nmeros positivos. 19. Faa um programa que receba um nmero maior que 1, e verique se o nmero fornecido primo ou no. Obs.: um nmero considerado primo quando seus nicos divisores so 1 e o proprio nmero. 20. Faa um programa que receba vrios nmeros, calcule e mostre:

A soma dos nmeros digitados. A quantidade de nmeros digitados. A mdia dos nmeros digitados. O maior nmero digitado.

32

CAPTULO 4.

ESTRUTURAS DE REPETIO

O menor nmero digitado. A mdia dos nmeros pares.

Finalize a entrada de dados caso o usurio informe o valor 0.

21. Escreva um programa em C que escreva na tela de 1 em 1, de 1 at 100, 3 vezes. A primeira vez deve usar a estrutura de repetio

for,

a segunda

while

e a terceira

dowhile.
22. Escreva um programa que leia um nmero inteiro positivo N e em seguida imprima N linhas do tringulo de Floyd: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

23. Faa um programa que leia um nmero positivo e mostre seus divisores.

24. Faa um programa utilizando o comando

while

que mostra a contagem regressiva na

tela, iniciando em 10 e terminaod em 0. Mostrar a mensagem FIM! aps a contagem.

25. Pea ao usurio para digitar 10 valores, some estes valores e mostre o resultado.

26. Faa um programa que some todos os nmeros naturais abaixo de 1000 que so mltiplos de 3 e de 5.

27. Faa um programa que leia dois nmeros

entre 0 e 1000. O programa dever

somar todos os valores menores que 1000 e que sejam mltiplos de ambos.

A ou B, mas no de

28. Faa um programa que some os termos de valor par da sequncia de Fibonacci, cujos valores no ultrapassem quatro milhes.

29. Faa um programa que calcule o maior nmero palndromo feito a partir do produto de dois nmeros de 3 dgitos. Ex: O maior palndromo feito a partir do produto de nmeros de dois dgitos 9009 (que resultado de 91*99).

33

30. Faa um programa que calcule o menor nmero divisvel por cada um dos nmeros de 1 a 20. Ex: 2520 o menor nmero que pode ser dividido por cada um dos nmeros de 1 a 10, sem sobrar resto. 31. Faa um programa que calcule a diferena entre a soma dos quadrados dos primeiros 100 nmeros naturais e o quadrado da soma. Ex: A soma dos quadrados dos dez primeiros nmeros naturais :

12 + 22 + ... + 102 = 385


O quadrado da soma dos dez primeiros nmeros naturais :

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


A diferena entre a soma dos quadrados dos dez primeiros nmeros naturais e o quadrado da soma

3025 385 = 2640.

32. Faa um programa que encontre o conjunto de 5 dgitos consecutivos na sequncia 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 33. Faa um programa que calcule o terno pitagrico a, b, c, para o qual

a + b + c = 1000.

Um terno pitagrico um conjunto de trs nmeros naturais, a b c, para a qual,

34

CAPTULO 4.

ESTRUTURAS DE REPETIO

a2 + b 2 = c 2
Por exemplo,

32 + 42 = 9 + 16 = 25 = 52 .

34. Faa um programa que calcule a soma de todos os nmeros primos abaixo de dois milhes.

35. Escreva um programa que leia um nmero inteiro e calcule a soma de todos os divisores desse nmero, com exceo dele prprio. Ex: a soma dos divisores do nmero 66 :

1 + 2 + 3 + 6 + 11 + 22 + 33 = 78
36. Se os nmeros de 1 a 5 so escritos em palavras: um, dois, trs, quatro, cinco, ento h

3+4+4+6+5 = 22 letras usadas no total.


Obs.: No conte espaos ou hifens.

Faa um programa que conte quantas letras

seriam utilizadas se todos os nmeros de 1 a 1000 (mil) forem escritos em palavras.

37. Faa um programa que leia um nmero inteiro positivo N e imprima todos os nmeros naturais de 0 at N em ordem crescente e decrescente.

38. Faa um programa que leia um nmero inteiro positivo par N e imprima todos os nmeros pares de 0 at N em ordem crescente e todos os nmeros mpares em ordem decrescente.

39. Em Matemtica, o nmero harmnico designado por termo da srie harmnica. Ou seja:

Hn dene-se como sendo o ensimo

Hn = 1 + 1/2 + 1/3 + 1/4 + ... + 1/n


Apresente um programa que calcule o valor de qualquer usurio.

Hn

para um

fornecido pelo

40. Faa um programa que leia um valor N inteiro e positivo, calcule o mostre o valor E, conforme a frmula a seguir:

E = 1 + 1/1! + 1/2! + 1/3! + ... + 1/N !


41. Faa um programa que calcula a associao em paralelo de dois resistores R1 e R2 fornecidos pelo usurio via teclado. O programa ca pedindo estes valores e calculando at que o usurio entre com um valor para a resistncia igual a zero. Dica: utilize a frmula:

R=

R1 R2 R1 + R2

42. Escreva um programa que leia 10 nmeros e escreva a diferena entre o menor valor lido e o maior valor lido.

35

43. Faa um programa que calcule a rea de um tringulo, cuja base e altura so fornecidas pelo usurio. Esse programa no pode permitir a entrada de dados invlidos, ou seja, medidas menores ou iguais a 0. 44. Faa um programa que leia um nmero indeterminado de linhas contendo cada uma a idade de um indivduo (pare quando for informada a idade 0), e calcule a idade mdia desse grupo de indivduos. 45. Faa um programa que leia um conjunto no 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 um valor negativo ou zero. 46. Faa um programa para ler o cdigo, o sexo (M: masculino F: feminino) e o nmero de horas/aula dada mensalmente pelos professores de uma universidade, sabendose que cada hora/aula vale R$ 30,00. Emita uma listagem contendo o cdigo, o salrio bruto e o salrio lquido (levando em considerao os descontos explicados a seguir) de todos os professores. Mostre tambm a mdia dos salrios lquidos dos professores do sexo masculino e a mdia dos salrios lquidos dos professores do sexo feminino. Considere:

Desconto para homens, 10% e, para mulheres, 5%. As informaes terminaro quando for lido o cdigo = 99999.

47. O funcionrio chamado Carlos tem um colega chamado Joo que recebe um salrio que equivale a um tero do seu salrio. Carlos que gosta de fazer aplicaes na caderneta de poupana vai aplicar seu salrio integralmente nela, pois est rendendo 2% ao ms, e Joo aplicar seu salrio integralmente no fundo de renda xa, que est rendendo 5% ao ms. Construa um programa que dever calcular e mostrar a quantidade de meses necessrios para que o valor pertencente a Joo iguale ou ultrapasse o valor pertencente a Carlos. Teste com outros valores para as taxas. 48. Dados o nmero n de alunos de uma turma de Mtodos e Tcnicas de Programao e suas notas na primeira prova, determinar a maior e a menor nota obtidas por essa turma (nota mxima = 100 e nota mnima = 0). 49. Faa um programa que leia 20 inteiros positivos, ignorando no positivos, e imprima sua mdia. 50. Faa um programa que simula o lanamento de dois dados, d1 e d2, n vezes, e tem como sada o nmero de cada dado e a relao entre eles (>,<,=) em cada lanamento.

36

CAPTULO 4.

ESTRUTURAS DE REPETIO

51. Dados n e dois nmeros inteiros positivos, i e j, diferentes de 0, imprimir em ordem crescente os n primeiros naturais que so mltiplos de i ou de j ou de ambos. Exemplo: Para n = 6, i = 2 e j = 3 a sada dever ser: 0,2,3,4,6,8. 52. 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 seu valor seja 100000 (cem mil). 53. Um funcionrio recebe aumento anual. Em 1995 foi contratado por 2000 reais. Em

1996 recebeu aumento de 1.5%. A partir de 1997, os aumentos sempre correspondem ao dobro do ano anterior. Faa programa que determine o salrio atual do funcionrio. 54. Escreva um programa que receba como entrada o valor do saque realizado pelo cliente de um banco e retorne quantas notas de cada valor sero necessrias para atender ao saque com a menor quantidade de notas possvel. Sero utilizadas notas de 100, 50, 20, 10, 5, 2 e 1 real. 55. Escreva um programa para calcular o valor da srie, para 7 termos:

S = 0 + 1/2! + 2/4! + 3/6! + ...


56. Escreva um algoritmo que leia certa quantidade de nmeros e imprima o maior deles e quantas vezes o maior nmero foi lido. A quantidade de nmeros a serem lidos deve ser fornecida pelo usurio. 57. Escreva um algoritmo que leia um nmero inteiro e imprima, por extenso, cada um dos algarismos que compem o nmero. 58. Faa um programa que conte quantos nmeros primos existem entre a e b. 59. Faa um programa que some os nmeros primos existentes entre a e b. 60. Faa um programa que calcule e escreva o valor de S:

S=

1 3 5 7 99 + + + + ... 1 2 3 4 50

61. Escreva um programa que leia um nmero inteiro positivo n e em seguida imprima n linhas do chamado Triangulo de Pascal: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

37

... Dica: possvel calcular os valores do tringulo de pascal usando combinao n representa o nmero da linha e k o nmero da coluna. 62. Faa programas para calcular as seguintes frmulas:

(n k ), onde

1 + 2 + 3 + 4 + 5 + ... + n 1 2 + 3 4 + 5 + ... + (2n 1) 1 + 3 + 5 + 7 + ... + (2n 1)


63. Faa um programa que seja semelhante ao jogo de forca, mas com uma nica letra. A letra que o usurio deve adivinhar deve ser denida aleatoriamente. O usurio tem 5 chances de acertar a letra. O programa naliza sua execuo quando o usurio acerta a letra ou quando acabam suas chances. 64. Faa um algoritmo que converta uma velocidade expressa em km/h para m/s e vice versa. Voc deve criar um menu com as duas opes de converso e com uma opo para nalizar o programa. O usurio poder fazer quantas converses desejar, sendo que o programa s ser nalizado quando a opo de nalizar for escolhida. 65. Chico tem 1,50 metro e cresce 2 centmetros por ano, enquanto Z tem 1,10 metros e cresce 3 centmetros por ano. Construa um algoritmo que calcule e imprima quantos anos sero necessrios para que Z seja maior que Chico. 66. Em uma eleio presidencial existem quatro candidatos. Os votos so informados atravs de cdigos. Os dados utilizados para a contagem dos votos obedecem seguinte codicao:

1, 2, 3, 4 = voto para os respectivos candidatos. 5 = voto nulo. 6 = voto em branco.

Elabore um algoritmo que leia o cdigo do candidato em um voto. Calcule e escreva:

total de votos para cada candidato. a porcentagem de votos vlidos obtidos por cada candidato. total de votos vlidos. total de votos nulos. total de votos em branco.

38

CAPTULO 4.

ESTRUTURAS DE REPETIO

Como nalizador do conjunto de votos, tem-se o valor 0. Considere como votos vlidos todos os votos diferentes de branco ou nulo. 67. Faca um algoritmo que encontre o primeiro mltiplo de 11, 13 ou 17 aps um nmero dado. 68. Faa 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 mnima de cada tipo de moeda/nota de troco. Imprima uma mensagem de erro caso o valor pago seja menor que a conta. 69. Faa um programa que apresente um menu de opes para o clculo das seguintes operaes entre dois nmeros:

adio (opo 1) subtrao (opo 2) multiplicao (opo 3) diviso (opo 4). sada (opo 5)

O programa deve possibilitar ao usurio a escolha da operao desejada, a exibio do resultado e a volta ao menu de opes. O programa s termina quando for escolhida a opo de sada (opo 5). 70. Faa um programa que imprima a tabela ASCII exibindo o caractere, seu cdigo decimal e seu cdigo hexadecimal. 71. Ler uma sequncia de nmeros inteiros e determinar se eles so pares ou no. Dever ser informado a quantidade de dados lidos e a quantidade de nmeros pares. O processo termina quando for digitado o valor 1000. 72. Construa um programa que permita introduzir pelo terminal uma sequncia de nmeros inteiros e determine se cada um desses nmeros ou no perfeito. Todos os nmeros perfeitos encontrados devero ser escritos na tela. Chama-se perfeito a um nmero

inteiro no negativo que seja igual soma dos seus divisores prprios, exceto ele mesmo (e.g. o nmero 6 possui divisores 1, 2, 3 e 6, portanto 1+2+3=6; 6 um nmero

perfeito  o nmero 8 possui divisores 1, 2, 4 e 8, portanto 1+2+4=7; 8 no um nmero perfeito). 73. Faa um programa que receba dois nmeros. Calcule e mostre:

39

a soma dos nmeros pares desse intervalo de nmeros, incluindo os nmeros digitados. a multiplicao dos nmeros mpares desse intervalo, incluindo os digitados.

40

CAPTULO 4.

ESTRUTURAS DE REPETIO

Captulo 5 Vetores e Matrizes


1. Faa um programa que declare um vetor com capacidade para 10 elementos do tipo inteiro. O programa deve exibir o contedo do vetor. Como foram obtidos os valores que so exibidos pelo programa? 2. Faa um programa que declare um vetor de 10 valores reais e exiba seu contedo. Teste o resultado obtido quando usando uma das seguintes inicializaes do vetor:

double vetor[] = {0.8, 1.6, 2.3, 3.1, 3.9, 4.7, 5.5, 6.3, 7.0, 7.9}; double vetor[10]={0.8, 1.6, 2.3, 3.1, 3.9, 4.7, 5.5, 6.3, 7.0, 7.9}; double vetor[10]={}; double vetor[10]={0.8, 1.6, 2.3, 3.1, 3.9};

Explique por que estas inicializaes funcionam. 3. Faa um programa que declare um vetor de inteiros com 12 posies. Pea para o

usurio informar os valores para preenchimento deste vetor e, no nal, exiba o contedo do vetor. 4. Faa um programa que leia 11 valores inteiros e os armazene em um vetor. O programa deve exibir o programa em ordem direta (do primeiro elemento at o ltimo) e em ordem inversa (do ltimo elemtno at o primeiro). Exemplo: vetor: [1,3,5,2,6,0] ordem direta: 1 3 5 2 6 0 ordem inversa: 0 6 2 5 3 1 5. Faa um programa que possua um array de nome A que armazene 6 nmeros inteiros. O programa deve executar os seguintes passos:

41

42

CAPTULO 5.

VETORES E MATRIZES

Atribua os seguintes valores a este array: 1, 0, 5, -2, -5, 7. Armazene em uma varivel inteira (simples) a soma entre os valores das posies A[0], A[1] e A[5] do array e mostre na tela esta soma. Modique o array na posio 4, atribuindo a esta posio o valor 100. Mostre na tela cada valor do array A, um em cada linha.

6. Faa um programa que leia uma matriz 3x3 de nmeros inteiros e exiba o contedo na tela. Obs: ao exibir o contedo da matriz, procure organizar os valores em trs linhas e com as colunas alinhadas. 7. Faa um programa que declare uma matriz usando o seguinte comando:

double m[3][3]={{1,2,3},{},{7,8,9}};
O programa deve exibir o contedo da matriz. Explique o resultado obtido na exibio. 8. Faa um programa que leia uma matriz 2x2 e calcule o seu determinante. 9. Faa um programa que leia uma matriz 3x3 e calcule o seu determinante. 10. Faa um programa que leia um nmero

entre 2 e 10 correpondente a ordem de uma

matriz. A seguir, crie e exiba uma matriz identidade de ordem

n.

Dica: uma matriz identidade uma matriz que possui valor 1 na sua diagonal principal e valor 0 nas demais posies da matriz. 11. Faa um programa que leia uma matriz 3x3 e verique se a mesma uma matriz simtrica. Dica: em uma matriz simtrica os valores acima da diaginal principal so iguais aos valores abaixo da diagonal principal. 12. Faa um programa que leia um vetor de tamanho 10 com valores inteiros e informe qual o menor e o maior valor contido no vetor. 13. Faa um programa que crie um matriz 10x10 com inteiros gerados aleatoriamente. Os nmeros gerados devem estar no intervalo entre 0 e 10. Mostre a matriz gerada. 14. Faa um programa que leia dois vetores de tamanho 10 com nmeros reais e calcule o produto escalar entre estes vetores. 15. Faa um programa que leia duas matrizes A e B, ambas de tamanho 3x3, calcule e exiba a matriz C resultante da multiplicao de A por B. Calcule e exiba tambm uma matriz D resultante da multiplicao de B por A.

43

16. Faa um programa que leia 20 valores inteiros correspondente a idade de uma turma de alunos. Armazene esses dados em um vetor. Calcule a mdia e o desvio padro dos valores do vetor. Mostre tambm a maior e a menor idade armazenada no vetor.

17. Numa votao destinada a selecionar um entre 10 candidatos, optou-se pela coleta e processamento dos votos por computador. Supondo que os candidatos so designados por seu nmero de candidato, faa um programa que obedea as seguintes especicaes:

Os votos so recebidos a partir do teclado, informando o nmero do candidato que dever ser um inteiro de cinco dgitos.

O nmero zero usado para indicar voto em branco. Nmeros invlidos (no associados a nenhum candidato) indicam votos nulos. O programa dever exibir a classicao obtida na votao indicando o nome e nmero do candidato e sua votao expressa em valor absoluto de votos e em porcentagem de votos vlidos. Tambm dever ser informado o total de votantes, o total de votos vlidos, o total de votos brancos e o total de votos nulos.

O programa dever indicar se houve um vencedor ou se dever haver um segundo turno. Para ser vitorioso, o candidato precisa obter uma quantia superior a 50% dos votos vlidos. Caso seja necessrio um segundo turno, mostre quem so os

candidatos que devero concorrer.

18. Faa um programa que leia um vetor de 10 valores, ordene o vetor crescentemente e exiba o vetor ordenado. Obs: procure fazer este programa sem criar um segundo vetor.

19. Faa um programa que leia um vetor de 10 valores, ordene o vetor decrescentemente e exiba o vetor ordenado. Obs: procure fazer este programa sem criar um segundo vetor.

20. Faa um programa que crie um vetor com 25 posies contendo uma permutao aleatria dos valores de 1 a 25. Dica: comee por atribuir os valores de 1 a 25 ao vetor (obtendo um vetor ordenado) e depois calcule uma permutao aleatria deste vetor (obtendo um vetor desordenado mas com os mesmos valores).

21. Faa um programa que leia dois vetores A e B, ambos de tamanho 10 e com valores inteiros, e calcule o vetor C resultado da interseo entre A e B.

44

CAPTULO 5.

VETORES E MATRIZES

22. Leia um vetor A com 25 valores inteiros. Crie um segundo vetor B, tambm com 25 valores, em que a isima posio de B seja o resultado da mdia aritmtica do isimo valor de A juntamente com os valores da posies vizinhas posio i. Exiba o vetor B. Obs: este tipo de operao denominado convoluo de A por B.

23. Leia um texto de at 140 caracteres e converta o texto para letras maisculas. Obs: faa este programa sem usar as funes da biblioteca string.h.

24. Leia um texto de at 140 caracteres e converta o texto para letras minsculas. Obs: faa este programa sem usar as funes da biblioteca string.h.

25. Leia um texto de at 140 caracteres e converta a primeira letra de cada palavra para maiscula.

26. Leia um texto de at 140 caracteres e informe a quantidade total de caracteres; a quantidade de caracteres diferentes de espao em branco; a quantidade de palavras.

27. Leia uma palavra e verique se a mesma um palndromo.

Um palndromo uma

palavra que, se lida de trs para frente, apresenta a mesma graa da leitura normal. Exemplos: ovo, arara, asdfjkkjfdsa.

28. Leia uma frase de at 140 caracteres e verique se a frase forma um palndromo. Exemplo: socorram-me subi no onibus em marrocos. Obs.: desconsidere a ocorrncia de espaos em branco.

29. Leia um texto de at 140 caractere e conte a quantidade de vogais e consoantes.

30. Faa um programa que leia um texto de at 140 caracteres e substitua cada letra pela letra seguinte no alfabeto. Exemplo: texto normal: mensagem para voce. texto modicado: nfotbhfn qbsb wpdf. Dica: a letra

deve ser substituda pela letra

a.

Obs: esta operao conhecida como cifra de Csar. Uma das primeiras tcnicas de criptograa cuja criao atribuda ao imperador romano Jlio Csar.

31. Faa um programa capaz de multiplicar duas matrizes de tamanhos arbitrrios. Exiba a matriz resultante.

45

32. Usando o comando

for,

faa um algoritmo que conte o nmero de 1's que aparecem em

uma string contendo o valor binrio. Exemplo: 0011001

3.

33. Usando o comando

while, escreva um programa que substitui as ocorrncias do caractere

0 (zero) em uma string pelo caractere 1.

34. Escreva um programa que leia a idade e o primeiro nome de vrias pessoas. programa deve terminar quando uma idade negativa for digitada.

Seu

Ao terminar, seu

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

35. Escreva um programa que leia n nmeros inteiros e os armazene em um vetor. Imprima o vetor, o maior e o menor elemento e a posio que eles se encontram.

36. Escreva um programa que leia n nmeros inteiros no intervalo [0,50] e os armazene em um vetor estaticamente alocado com 100 posies. Preencha um segundo vetor,

tambm alocado estaticamente, apenas com os nmeros mpares do primeiro vetor. Imprima os dois vetores, 10 elementos por linha.

37. Leia um vetor de 10 posies. Contar e escrever quantos valores pares ele possui.

38. Leia um vetor de 10 posies e atribua valor 0 para todos os elementos que possurem valores negativos.

39. 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 desse

elemento est ordenado em ordem decrescente. Proponha um algoritmo para ordenar os elementos.

40. Faa um programa que receba do usurio dois cada. Crie um novo C.

arrays,

A e B, com 10 nmeros inteiros

array

C calculando C = A - B. Mostre na tela os dados do

array

41. Faa um programa que leia dois vetores A e B, com 16 nmeros inteiros cada.

Crie

um novo vetor C que possui os elementos de A que no esto presentes em B. Crie tambm o vetor D que possui os elementos de B que no esto presentes em A. Mostre os vetores calculados.

42. Faa um programa que leia um vetor de 10 posies e verique se existem valores iguais e os escreva.

46

CAPTULO 5.

VETORES E MATRIZES

43. Faa um programa que leia um vetor ordenado com 10 valores inteiros e remova os valores repetidos, se houver.

44. Faa um programa que leia um vetor de 10 posies (no ordenado), contendo valores inteiros. Remova os valores repetidos, se houver.

45. Leia 10 nmeros inteiros e armazene em um vetor. Em seguida escreva os elementos que so primos e suas respectivas posies no vetor.

46. Leia 10 nmeros 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 cada um dos vetores v1 e v2 tm no mximo 10 elementos, mas nem todos os elementos so utilizados. No nal escreva os elementos UTILIZADOS de v1 e v2.

47. Leia dois vetores de inteiros X e Y, cada um com 5 elementos (assuma que o usurio no 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 posio em Y.

Produto entre X e Y: multiplicao de cada elemento de X com o elemento da mesma posio em Y.

Diferena entre X e Y: todos os elementos de X que no existam em Y. Interseo entre X e Y: apenas os elementos que aparecem nos dois vetores. Unio entre X e Y: todos os elementos de X, e todos os elementos de Y que no esto em X.

48. Faa um programa para ler 10 nmeros DIFERENTES a serem armazenados em um vetor. Os dados devero ser armazenados no vetor na ordem que forem sendo lidos, sendo que caso o usurio digite um nmero que j foi digitado anteriormente, o programa dever pedir para ele digitar outro nmero. Note que cada valor digitado pelo usurio deve ser pesquisado no vetor, vericando se ele existe entre os nmeros que j foram fornecidos. Exibir na tela o vetor nal que foi digitado.

49. Pea ao usurio para digitar dez valores numricos e os armazene em ordem crescente num vetor. Obs.: a ordenao deve ocorrer durante a leitura dos dados do vetor.

47

50. Faa um programa que leia dez conjuntos de dois valores, o primeiro representando o nmero do aluno e o segundo representando a sua altura em metros. Encontre o

aluno mais baixo e o mais alto. Mostre o nmero do aluno mais baixo e do mais alto, juntamente com suas alturas.

51. Ler uma sequncia de nmeros inteiros (com valores positivos e negativos) do teclado, sequncia esta que termina com o nmero zero e armazene num vetor. quantidade de elementos positivos e negativos presentes na sequncia. Escrever a

52. Ler um conjunto de nmeros reais, armazenando-o em vetor e calcular o quadrado das componentes deste vetor, armazenando o resultado em outro vetor. Os conjuntos tm no mximo 20 elementos. Imprimir todos os conjuntos.

53. Faa um programa que leia dois nmeros a e b (positivos menores que 10000) e:

Crie um vetor onde cada posio um algarismo do nmero. A primeira posio o algarismo menos signicativo.

Crie um vetor que seja a soma de a e b, mas faa-o usando apenas os vetores construdos anteriormente.

Dica:

some as posies correspondentes.

Se a soma ultrapassar 10, subtraia 10 do

resultado e some 1 prxima posio.

54. Um nmero inteiro, em linguagem C, em geral ocupa 4 bytes (32 bits) de memria. Isso signica que esta varivel capaz de guardar uma dentre

23 2

combinaes diferentes

de bits. Assim, uma varivel inteira armazena valores no intervalo entre

23 1 e 23 1 1

(ou seja, entre -2147483648 e 2147483647). Porm h algumas aplicaes que requerem o uso de nmeros extremamente grandes (centenas ou at milhares de dgitos). Uma maneira de fazer isso armazenar os nmeros em

strings.

Crie um programa que

leia dois nmeros inteiros de at 256 dgitos armazenando-os como

strings.

Calcule a

soma destes dois inteiros gigantes e armazene em uma outra string (tambm de at 256 dgitos). Mostre o resultado.

55. Faa um programa que leia um vetor de 8 posies e em seguida leia tambm dois valores X e Y quaisquer correspondentes a duas posies no vetor. Ao nal seu programa dever escrever a soma dos valores encontrados nas respectivas posies X e Y.

56. Faa um programa que leia dois vetores de 10 posies e calcule outro vetor contendo, nas posies pares os valores do primeiro e nas posies impares os valores do segundo.

48

CAPTULO 5.

VETORES E MATRIZES

57. Faa um programa que leia um vetor de 15 posies e verique se existem valores iguais e os escreva. Mostre tambm quantas vezes esses valores se repetem dentro do vetor. 58. Faa um programa que leia um vetor de 15 posies e o compacte, ou seja, elimine as posies com valor zero. Para isso, todos os elementos frente do valor zero, devem ser movidos uma posio para trs no vetor. 59. Faa um programa que preencha um vetor com os modelos de cinco carros (exemplos de modelos: Fusca, Gol, Vectra, etc.). Carregue outro vetor com o consumo desses carros, isto , quantos quilmetros cada um deles faz com um litro de combustvel, calcule e mostre:

O modelo de carro mais econmico. Quantos litros de combustvel cada um dos carros cadastrados consomem para percorrer uma distncia de 321 quilmetros.

60. Faa um programa que preencha um vetor com dez nmeros reais, calcule e mostre a quantidade de nmeros negativos e a soma dos nmeros positivos desse vetor. 61. Faa um programa que receba o nome de 15 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 locaes, o cliente tem direito a uma locao grtis. Faa um programa que mostre o nome de todos os clientes, com a quantidade de locaes grtis a que ele tem direito. 62. Faa um programa que preencha trs vetores com dez posies cada um: o primeiro vetor, com os nomes de dez produtos; o segundo vetor, com os cdigos dos dez produtos; e o terceiro vetor; com os preos dos produtos. Mostre um relatrio apenas com o nome, o cdigo, o preo e o novo preo dos produtos que sofrero aumento. Sabese que os produtos que sofrero aumento so aqueles que possuem cdigo par ou preo superior a R$ 1.000,00. Sabese ainda que, para os produtos que satiszerem s duas condies anteriores, cdigo e preo, o aumento ser de 20%; para aqueles que satisfazerem apenas condio de cdigo, o aumento ser de 15%; e aqueles que satisfazerem apenas a condio de preo, o aumento ser de 10%. 63. Faa um vetor de tamanho 50 preenchido com o seguinte valor: (i+5i)%i, sendo i a posio do elemento no vetor, em seguida imprima o vetor na tela. 64. Faa um programa que preencha um vetor de tamanho 100 com os 100 primeiros naturais que no so mltiplos de 7 e que terminam com 7.

49

65. Faa um programa que realize a leitura dos seguintes dados relativos a um conjunto de alunos: Matricula, Nome, Cod.Disc., Nota1 e Nota2. Considere uma turma de at 10 alunos. Aps ler todos os dados digitados, e depois de armazen-los em vetores, exibir na tela a listagem nal dos alunos com as suas respectivas mdias nais (use uma mdia ponderada: Nota1 com peso=1.0 e Nota2 com peso=2.0). Dica: use mltiplos vetores, um para cada dado, com o mesmo ndice para os dados de um mesmo aluno. 66. Leia uma matriz 4x4, imprima a matriz e retorne a localizao (linha e a coluna) do maior valor. 67. Leia duas matrizes 4 x 4 e escreva uma terceira com os maiores elementos entre as primeiras. 68. Leia uma matriz 4 x 4, conte e escreva quantos valores maiores que 10 ela possui. 69. Gere matriz 4x 4 com valores no intervalo [1,20]. Escreva um programa que transforme 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 transformada. 70. Leia uma matriz 5 x 5. Leia tambm um valor X. O programa dever fazer uma

busca desse valor na matriz e, ao nal escrever a localizao (linha e coluna) ou uma mensagem de no encontrado. 71. Leia uma matriz 5 x 10 que se refere respostas de 10 questes de mltipla escolha, referentes a 5 alunos. Leia tambm um vetor de 10 posies contendo o gabarito de respostas que podem ser a, b, c ou d. Seu programa dever comparar as respostas

de cada candidato com o gabarito e emitir um vetor Resultado, contendo a pontuao correspondente a cada aluno. 72. Faa um programa que leia uma matriz A 5x5 e calcule

B = A2 .

73. Faa um programa que permita ao usurio entrar com uma matriz de 3x3 nmeros inteiros. Em seguida, o programa deve gerar um array unidimensional pela soma dos nmeros de cada coluna da matriz e mostrar na tela esse array. Por exemplo, a matriz: 5 -8 10 1 2 15 25 10 7 Vai gerar um vetor, onde cada posio a soma das colunas da matriz. A primeira

50

CAPTULO 5.

VETORES E MATRIZES

posio ser 5 + 1 + 25, e assim por diante: 31 4 32 74. Faa um programa que leia uma matriz, de 5 linhas e 4 colunas, contm as seguintes informaes sobre alunos de uma disciplina, sendo todas as informaes do tipo inteiro:

Primeira coluna: nmero de matrcula (use um inteiro). Segunda coluna: mdia das provas. Terceira coluna: mdia dos trabalhos. Quarta coluna: nota nal.

Elabore um programa que:

Leia as trs primeiras informaes de cada aluno. Calcule a nota nal como sendo a soma da mdia das provas e da mdia dos trabalhos. Imprima a matrcula do aluno que obteve a maior nota nal (assuma que s existe uma maior nota). Imprima a mdia aritmtica das notas nais.

75. Leia uma matriz 10 x 3 com as notas de 10 alunos em 3 provas. Em seguida, escreva o nmero de alunos cuja pior nota foi na prova 1, o nmero de alunos cuja pior nota foi na prova 2, e o nmero de alunos cuja pior nota foi na prova 3. Em caso de empate das piores notas de um aluno, o critrio de desempate arbitrrio, mas o aluno deve ser contabilizado apenas uma vez. 76. Escrever um programa em C que determine se uma matriz quadrada de n > 0 linhas e colunas uma matriz permutao. Uma matriz quadrada chamada de matriz

permutao se seus elementos so apenas 0's e 1's e se em cada linha e coluna da matriz existe apenas um nico valor 1. permutao: 1 0 0 0 0 1 0 1 0 77. Faa um programa para gerar automaticamente nmeros, entre 0 e 99, de uma cartela de bingo. Sabendo que cada cartela dever conter 5 linhas de 5 nmeros, gere estes Lembre-se que Exemplo: A matriz a seguir uma matriz

dados de modo a no ter nmeros repetidos dentro das cartelas!

51

importante armazenar os nmeros 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.

78. Na matriz de 20x20 abaixo, quatro nmeros ao longo de uma linha diagonal foram marcadas em negrito. O produto desses nmeros

26 63 78 14 = 1788696.

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

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
32 98 81 28 64 23 67 10 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 Qual o maior produto de quatro nmeros adjacentes em qualquer direo (cima,baixo, esquerda, direita, ou na diagonal) na matriz de 20x20?

79. Faa um programa que leia duas matrizes 3x3 com valores reais. Oferea ao usurio um menu de opes: somar as duas matrizes, subtrair as 2 matrizes, adicionar uma constante s duas matrizes, imprimir as matrizes. Nas duas primeiras opes uma

terceira matriz 3x3 deve ser criada. Na terceira opo o valor da constante deve ser lido e o resultado da adio da constante deve ser armazenado na prpria matriz.

80. Faa programa que leia uma matriz 3x6 com valores reais.

52

CAPTULO 5.

VETORES E MATRIZES


81. O

Imprima a soma de todos os elementos das colunas mpares. Imprima a mdia aritmtica dos elementos da segunda e quarta colunas. Substitua os valores da sexta coluna pela soma dos valores das colunas 1 e 2. Imprima a matriz modicada. tambm conhecido como jogo da velha, consiste em um tabuleiro de

tictactoe,

trs linhas e trs colunas, onde dois jogadores inserem alternadamente suas marcas. Ganha o jogador que conseguir inserir trs marcas em uma mesma linha, coluna ou diagonal. Faa um programa em linguagem C, que permita duas pessoas jogarem o

jogo da velha. O programa deve apontar o vencedor ou, quando no houver vencedor, exibir a mensagem Deu velha!. 82. Gerar e imprimir uma matriz de tamanho 10x10, onde seus elementos so da forma:

A[i][j ] = 2 i + 7 j 2 A[i][j ] = 3 i2 1
se

se

i < j.

i = j.
se

A[i][j ] = 4 i3 5 j 2 + 1

i > j.

83. Calcular a soma dos elementos de uma matriz numrica quadrada qualquer dada, que esto acima da diagonal principal. 84. Calcular a soma dos elementos de uma matriz numrica quadrada qualquer dada, que esto abaixo da diagonal principal. 85. Ler uma matriz numrica quadrada qualquer e calcular a diferena entre a soma dos elementos acima da diagonal principal e a soma do elementos abaixo da diagonal principal. 86. Leia uma matriz de tamanho 4x4 e verique se a mesma possui valores repetidos. 87. O sudoku um jogo de lgica e raciocnio que consiste em um tabuleiro com 9 regies dispostas em 3 linhas e 3 colunas. Cada regio composta por 9 posies dispostas em 3 linhas e 3 colunas. Neste jogo, o jogador deve inserir nmeros inteiros de 1 a 9 em cada posio do tabuleiro de modo que no ocorra valores repetidos em uma mesma linha, coluna ou regio do tabuleiro. Faa um programa que leia os nmeros de um

jogo de sudoku e verique se o jogo est correto. Dica: O tabuleiro completo pode ser implementado como uma matriz de 9 linhas por 9 colunas.

Captulo 6 Tipos Abstratos de Dados

53

54

CAPTULO 6.

TIPOS ABSTRATOS DE DADOS

Captulo 7 Funes
1. Crie uma funo para somar duas matrizes. Esta funo deve receber duas matrizes e retornar a soma em uma terceira matriz. Caso o tamanho da primeira e segunda Caso a funo seja concluda com

matriz seja diferente a funo retornar um erro.

sucesso a mesma deve retornar o valor zero (0). Utilize aritmtica de ponteiros para manipulao das matrizes. Mostre o uso dessa funo em um programa feito em C. 2. 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 funo que recebe, por parmetro, uma matriz A(10,10) e retorna o seu elemento minimax, juntamente com a sua posio. 3. Os incas caram conhecidos pela grande civilizao que reinou na regio dos Andes durante vrios sculos. O que pouca gente sabe que os incas construram pirmides 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 pirmides ainda se encontram escondidas na oresta amaznica e sua descoberta trar uma aplicao para este exerccio. Neste problema voc dever fazer um programa para vericar se uma matriz inca. Seu programa deve ter uma funo que recebe como parmetro, uma matriz quadrada A(n x n) de nmeros inteiros para vericar se a matriz inca, ou seja, se partindo do canto superior esquerdo da matriz, no sentido horrio, em espiral, a posio seguinte na ordem o inteiro consecutivo da posio anterior. retornar 1 (um) seno 0 (zero). Exemplo de uma matriz inca: 10 9 8 7 11 16 15 6 Caso a matriz seja inca deve

55

56

CAPTULO 7.

FUNES

12 13 14 5 1 2 3 4

Captulo 8 Arquivos

57

58

CAPTULO 8.

ARQUIVOS

Captulo 9 Ponteiros
1. Faa um programa que leia dois nmeros n e m e:

Crie e leia um vetor de inteiros de n posies. Crie e leia um vetor de inteiros de m posies. Crie e construa um vetor de inteiros que seja a unio entre os dois vetores anteriores, ou seja, que contm os elementos dos dois vetores (inclusive repetidos).

Na sua funo

main(),

imprima os trs vetores criados.

2. Faa um programa que leia dois nmeros n e m e:

Crie e leia um vetor de inteiros de n posies; crie e leia um vetor de inteiros de m posies; Crie e construa um vetor de inteiros que seja a interseo entre os dois vetores anteriores, ou seja, que contm apenas os nmeros que esto em ambos os vetores. No deve conter nmeros repetidos.

Na sua funo

main(),

imprima os trs vetores criados.

3. Faa um programa que leia um arquivos contendo valores numricos correspondentes a uma funo

f ( x)

qualquer. Considere que, neste arquivo, a primeira linha contm um

nmero inteiro informando quando valores h no arquivo. A partir da segunda linha do arquivo esto armazenados os valores da funo de x (os valores so separados por vrgulas). Faa um programa que leia estes valores para dentro de um vetor, calcule os valores correspondentes para a derivada da funo de x e armazene o resultado em outro arquivo.

59

60

CAPTULO 9.

PONTEIROS

Obs.: crie uma funo para ler o arquivo, outra para calcular os valores da derivada e uma terceira funo para escrever o dados calculados.

Captulo 10 Outros Recursos da Linguagem

61

62

CAPTULO 10.

OUTROS RECURSOS DA LINGUAGEM

Captulo 11 Estruturas de Dados

63

64

CAPTULO 11.

ESTRUTURAS DE DADOS

Captulo 12 Desaos

65

66

CAPTULO 12.

DESAFIOS

Apndice A Base Matemtica


A.1 Constantes

= 3.141593

G (constante gravitacional) = Raio da Terra = 6.378,1 km Massa da Terra =

6, 67300 1011 m3 kg 1 s2

5.9 1024 kg

A.2

Escalas termomtricas

C = Temperatura em graus Celsius F = Temperatura em graus Fahrenheit K = Temperatura em Kelvin

F 32 K 273 C = = 5 9 5

A.3

ngulos

Converso entre graus e radianos:

r=

r = ngulo em radianos; g = ngulo em graus.

g 180

67

68

APNDICE A.

BASE MATEMTICA

A.4

Polgonos e outros

Tringulo retngulo:

A=

A = rea do tringulo b = comprimento da base do tringulo h = comprimento altura do tringulo

bh 2

Tringulo qualquer:

p (p a) (p b) (p c) a+b+c p= 2 A=
A = rea do tringulo p = semipermetro do tringulo a, b, c = comprimento dos lados do tringulo

Quadrado:

A = L2
A = rea do quadrado b = comprimento do lado do quadrado

Retngulo:

A=bh
A = rea do retngulo b = comprimento da base do retngulo h = comprimento da altura do retngulo

Trapsio:

A = (B + b) h/2
A = rea do trapzio B = base maior b = base menor h = altura

Crculo:

P =2r A = r2

A.5.

PLANO E ESPAO

69

P = permetro do crculo A = rea do crculo r = raio do crculo

Esfera:

A = rea da superfcie da esfera V = volume da esfera

A = 4 r2 4 V = r3 3

Cilindro circular:

V = r2 h
V = volume do cilindro r = raio da base circular do cilindro h = altura do cilindro

A.5

Plano e Espao

Distncia entre pontos:

d(P 1, P 2) =

(x1 x2 )2 + (y1 y2 )2

Mdulo ou magnitude de um vetor:

|P | = d(P, O) =

px2 + py 2

P = ponto (px,py) qualquer O = ponto de origem (0;0)

ngulo entre vetores:

= arccos

< U, V > |U | |V |
entre vetores U e V

< U, V > = produto escalar |U | = mdulo do vetor U

Produto escalar entre vetores:

< U, V >= Ux Vx + Uy Vy

70

APNDICE A.

BASE MATEMTICA

A.6

Medidas

1 (metro / segundo) = 3,6 km/h

1 milha = 1,609344 quilometros

1 polegada = 2,54 centmetros

m3

(metro cbico) = 1.000 litros

1 litro = 1.000

cm3

= 1

dm3

(decmetro cbico)

1 quilograma = 2,20462262 libras

1 jarda = 0,9144 metros

1 acre = 4.046,8564224

m2
= 10.000

1 ha (hectare) = 0,1

km2

km2

A.7

Nmeros Complexos
e

z1 = a + bi

z2 = c + di

z1 + z2 = (a + bi) + (c + di) = (a + c) + (b + d)i z1 z2 = (a + bi) (c + di) = (a c) + (b d)i z1 z2 = (a + bi) (c + di) = (ac bd) + (ad + bc)i z = a bi z1 z (a + bi) (c di) z1 2 = = z2 z2 z (c + di) (c di) 2

A.8.

OUTROS

71

A.8

Outros

Somtrio: n

xi = x1 + x2 + x3 + ... + xn
i=1
Produtrio: n

xi = x1 x2 x3 ... xn
i=1
Coordenadas:

P (r, a) = C (r cos(a), r sin(a))


P = coordenada polar; C = coordenada cartesiana; r = raio; a = ngulo em radianos.

Mdia Aritmtica:

xi

i=1 = isimo elemento de um conjunto

1 n

xi

Mdia Aritmtica Ponderada: n

n i=1

xi pi

i=1 = isimo elemento de um conjunto

pi

p i xi

= isimo peso

Mdia Geomtrica: n
n

xi
i=1
= isimo elemento de um conjunto

xi

Mdia Harmnica:

n 1 i=1 xi xi = isimo elemento de um conjunto

Mudana de base logartmica:

logb a =

logc a logc b

72

APNDICE A.

BASE MATEMTICA

Razes de uma equao de segundo grau:

= b2 4ac b raizes = 2a
Desvio padro amostral:

s=

1 n1

(xi x )2
i=1

xi = isimo elemento da amostra x = mdia aritmtica dos valores da

amostra

A.9

Fsica

Fora Gravitacional:

F =G

G = constante gravitacional M = massa da terra =

M m d2

5, 9 102 4kg

m = massa de um objeto; d = distncia entre um objeto e a Terra.

Velocidade orbital de um satlite:

V =

GM R

V = velocidade orbital em m/s G = constante gravitacional M = massa da Terra em kg R = raio orbital em metros

Perodo orbital de um satlite: R3

T =2

T = perodo orbital em segundos R = raio orbital em metros G = constante gravitacional M = massa da Terra em kg

GM

A.10.

DATAS

73

A.10

Datas

Converso de formato gregoriano para formato juliano:

DataJuliana = (1461 (ano + 4800 + (mes 14)/12))/4 + (367 (mes 2 12 ((mes 14)/12)))/12 (3 ((ano + 4900 + (mes 14)/12)/100))/4 + dia 32075
Converso de formato juliano para formato gregoriano:

B = DataJuliana + 68569 N = (4 B )/146097 B = B ((146097 N + 3)/4) K = (4000 (B + 1))/1461001 B = B (1461 K )/4 + 31 J = (80 B )/2447 dia = B (2447 J )/80 B = J/11 mes = J + 2 (12 B ) ano = 100 (N 49) + K + B

A.11

Vetores e Matrizes

Determinante: (diagonal principal) - (diagonal secundria)

A.12
Combinao:

(n k) =

n! k!(nk)!

Arranjo: Permutao:

Você também pode gostar