Você está na página 1de 23

Jefferson Gustavo Martins CEFETPR - Medianeira

Jefferson Gustavo Martins CEFETPR - Medianeira


1
Exerccios
Estrutura Seqencial
Faa um programa que escreva a mensagem Ol Mundo.

Faa um programa que leia o nome do usurio e, logo em seguida, escreva a mensagem Ol seguida do nome do usurio.

Faa um programa que leia um valor inteiro, adicione 2 ao valor e escreva o resultado da soma.

Faa um programa que leia 2 valores inteiros e escreva a soma dos mesmos.

Faa um programa que leia a altura dos andares de um prdio e o nmero de andares, e calcule a altura do prdio.

Faa um programa que leia o comprimento, a altura e a espessura de um slido cbico e imprima o volume do mesmo.

Faa um programa que leia um valor qualquer e encontre o maior inteiro menor ou igual raiz do valor lido.

Faa programas para o clculo de
a) v = ri
b) p = vi
c) i = q/t
d) v = w/q
e) p = ri
2

f) p = v
2
/r
onde
v-tenso, i-corrente, r-resistncia, p-potncia, t -tempo, q-carga eltrica e w-trabalho/energia

Considerando o fato de que um byte tem 8 bits, que um kilobyte (KB) tem 1024 bytes e que um megabyte (MB) tem 1024
KB, escrever um programa para, dada a capacidade de armazenamento de uma mquina qualquer (em MB), calcular e
escrever o nmero bits existentes.

Fazer um programa que, mediante a leitura de uma distncia (em Km), do perodo de tempo (em hora) utilizado para
percorr-lo e da quantidade de combustvel (em litros) utilizada, calcule a velocidade mdia(em Km/h) e o consumo mdio
do automvel (em Km/l).

Faa um programa que leia o raio e escreva o volume de uma esfera.
Obs.:
3
4
3
r
v




*
Escreva um programa que calcule a mdia aritmtica das notas obtidas por um aluno, considerando que o aluno tenha
(obrigatoriamente) 4 notas.


*
Considere que a mdia bimestral composta por 1 trabalho (peso 3) e 1 prova (peso 7) e que a mdia semestral composta
pela mdia entre duas mdias bimestrais. Faa um programa que leia as notas de um aluno e calcule as mdias bimestrais e
a mdia semestral do mesmo.

Faa um programa que, dado um valor, encontre o maior inteiro menor ou igual raiz do valor fornecido.

Faa um programa que, mediante a entrada de um horrio, calcule o nmero de segundo decorridos no presente dia.
Observao: hora e minuto devem ser lidos em variveis distintas; 1 hora = 60 minutos e 1 minuto = 60 segundos.

Faa um programa que, mediante a entrada de uma idade qualquer (em anos), calcule o nmero de meses e o nmero de
dias vividos pela pessoa. Observao: 1 ano = 365 dias e 1 ano = 12 meses.

Faa um programa que leia o custo da saca de cal, da saca de cimento, do metro de pedra, do metro de areia, do metro de
ferro, do milheiro de tijolos e o valor da diria de um operrio. Aps esta leitura o algoritmo deve ler a quantidade dos itens
anteriores (empregada na concluso de uma determinada obra) e calcular o custo da obra.

Um terreno possui um desnvel de aproximadamente 0.11m a cada 9.5m. Considerando que o clculo seja dado pela
frmula V = (0.11/9.5) * L
1
* L
2
(onde V o volume em m
3
de terra necessria para fazer o aterro e L
1
e L
2
so as
dimenses da obra), faa um algoritmo que leia as dimenses e calcule a quantidade de terra necessria para nivelar o
terreno.

Uma casa de pizzas vende em trs tamanhos: pequeno (10 polegadas de dimetro), mdio (12 polegadas de dimetro) e
grande (16 polegadas de dimetro). Uma pizza pode ser comprada simples (com molho e queijo unicamente) ou com
ingredientes extras, tais como pimentes, cogumelos ou cebola.
O dono da pizzaria deseja desenvolver um programa para calcular o preo de venda da pizza, dado o seu tamanho e o
nmero de ingredientes. O preo de venda ser 1.5 vezes o custo total, o qual determinado pela rea da pizza e pelo
nmero de ingredientes. Em especial, o custo total incluir um custo fixo de preparao, um custo base varivel que
proporcional ao tamanho de cada pizza e um custo varivel adicional para cada ingrediente extra. Por simplicidade, ser
assumido que cada ingrediente extra tem o mesmo custo por unidade de rea.
Considere agora uma pizza cujo dimetro d, com n ingredientes extras. O preo de venda desta pizza ser determinado
por: custo preo * 5 . 1 , onde rea) * custoExtra * (n rea) * (custobase custofixo custo + + e
4
2
d
rea .
Portanto, o preo de venda da pizza pode ser facilmente determinado se os vrios custos forem conhecidos e o tamanho
(isto , dimetro) e o nmero de ingredientes for especificado.

Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
2


*
A intensidade de campo eltrico (E) entre duas cargas eltricas (q
1
e q
2
) dada por
2
2 1
q * *
d
q k
, onde K uma constante
com valor de 9 * 10
9
Nm
2
/C
2
(N Newton e C unidade de carga eltrica, coulomb) e d a distncia entre as cargas. Faa
um programa que, mediante a entrada de q
1
e q
2
e d, calcule e escreva E.


Calcule a massa de ar de um pneu de automvel, usando a frmula: ) 460 ( 37 . 0 + T m PV , onde P presso, V
volume, m massa de ar e T temperatura.

O objeto (+) sofre a ao de duas foras (F
1
e F
2
) sob um ngulo de 90, o que gera uma fora resultante R, dada por
2
2
2
1
2
F F R + , conforme ilustra esta figura
+
R F1
F2
. Faa um programa que mediante a entrada dos valores de F
1

e F
2
, calcule R.





*
O objeto (+) sofre a ao de duas foras (F
1
e F
2
) sob um ngulos
1
e
2
, o que gera uma fora resultante R, dada por
2 2 2
Y X
F F R + , conforme ilustra esta figura
+
R F1
F2
O2
_
O1
_
, onde Fx dado por
X X X
F F F
2 1
+ , 1 *
1 1
Cos F F
X
,
2 *
2 2
Cos F F
X
,
Y Y Y
F F F
2 1
+ , 1 *
1 1
Sen F F
Y
, 2 *
2 2
Sen F F
Y
. Faa um programa que mediante a
entrada dos valores F
1
e F
2
, calcule R.

Construa um programa que calcule a quantidade de latas de tinta necessrias e o custo para pintar tanques cilndricos de
combustvel, em que so fornecidos a altura e o raio desse cilindro. Sabendo que:
- a lata de tinta custa R$ 50,00.
- cada lata contm 5 litros;
- cada litro de tinta pinta 3 m
2
.


A energia (E) obtida atravs da equao mc E
2
, onde E energia, m a massa e c a velocidade da luz. Faa um
programa que, mediante a entrada de m calcule e escreva E. Observao: c uma constante com valor de 300 000 000
Km/s.

Uma empresa, promotora de concursos, pretende fazer um programa para o clculo do nmero de salas necessrias para a
realizao de provas. Desta forma, o programa dever obter o nmero total de candidatos e o nmero de pessoas que podem
realizar as provas em uma mesma sala, calcular e escrever o nmero de salas.


A rea de um tringulo retngulo (a) obtida obtida a partir da frmula
2
*h b
a . Faa um programa que, mediante o
fornecimento das dimenses da base (b) e da altura (h), encontre a


A dimenso da hipotenusa (a) obtida a partir da frmula
2 2 2
c b a + . Faa um programa que, mediante o fornecimento
dos catetos (b e c), encontra a.


*
Dada a equao x x x y 2
2
, fazer um programa para, mediante a entrada (pelo usurio) de um valor para x,
calcular e escrever y.





*
A converso entre as escalas (temperatura) Celsius e Farheinheit pode ser obtida a partir da frmula
9
) 32 ( 5

F
C .
Escreva um programa para a converso de Celsius para Fahreinheit, denominado CelsiusToFahreinheit, e outro para a
converso de Fahreinheit para Celsius, denominado FahreinheitToCelsius.


Considerando a frmula para o clculo do instante t v s S
0 0
+ , fazer um programa que, mediante o fornecimento de um
valor qualquer para t (pelo usurio), calcule S.


Dado que at v V +
0
, faa um programa que, mediante a entrada de um t qualquer (pelo usurio), calcule V.



*
Considerando a frmula para o clculo do instante
2
2
0 0
at
t v s S + + , fazer um programa que, mediante o fornecimento
de um valor qualquer para t (pelo usurio), calcule S.

Escreva u m programa que leia dois valores e escreva a diferena entre eles.

Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
3

A distncia entre dois pontos A=(x
1
, y
1
) e B=(x
2
, y
2
) dada por
2
1 2
2
1 2
) ( ) ( y y x x d + . Escreva um programa
que calcule e escreva a distncia entre dois pontos quaisquer, cujas coordenadas x e y so fornecidas pelo usurio.



*
Escreva um programa que leia os valores dos coeficientes de uma equao de 2
o
grau (Ax
2
+ Bx + C) e calcule suas razes
reais, atravs da frmula
a
ac b b
2
4
2
t
.




*
Faa um programa que leia a massa e o volume de uma soluo e calcule sua molaridade, considerando a massa molar com
o valor constante de 40 g/mol e as frmulas
v
E n
M
) (
e
) (
) (
) (
E mm
E m
E n , onde M molaridade, n nmero de mols, v volume, m massa e mm massa
molar.





*
A frao molar (X) de um elemento (E) dada pela diviso do nmero de mols do elemento pela soma do nmero de mols
dos elementos que compem a soluo, ou seja,

n
i
i
E n
E n
E X
1
) (
) (
) ( . O nmero de mols (n) de um elemento (E), por sua
vez, dado pela diviso de sua massa (m) por sua massa molar (mm), ou seja,
) (
) (
) (
E mm
E m
E n . Faa um programa
(denominado FracaoMolar) que calcule as fraes molares de uma soluo, composta pelos elementos genricos A e B, a
partir de suas massas e massas molares.

Faa um programa que encontre a soluo de um sistema de equaes lineares, sabendo que dada o sistema genrico
x a u y b
1 1

x a v y b
2 2

tem a soluo dada por
v
a b b a
b
u
a b b a
b
x
2 1 2 1
1
2 1 2 1
2



v
a b b a
a
u
a b b a
a
y
2 1 2 1
1
2 1 2 1
2


O resultado final corresponde escrita do sistema de equaes (no seguinte formato x a u y b
1 1

x a v y b
2 2
)
e os valores de x e y (no seguinte formato
x = valor_x
y = valor_y).

Supondo que a populao de um pas A seja de 90.000.000 habitantes com taxa anual de crescimento de 3% e que a
populao de um pas B seja, aproximadamente, de 200.000.000 habitantes com uma taxa anual de crescimento de 1.5%,
fazer um programa que calcule e escreva o nmero de anos necessrio s para que a populao do pas A ultrapasse ou
iguale a populao do pas B, mantidas essas taxas de crescimento. Considere a frmula para o clculo do Montante:
M
n
= C (I + 1)
n
, onde
M montante aps terem decorridos n perodos;
C capital inicial investido;
I taxa de juros ao perodo;
N nmero de perodos decorridos

Anacleto tem 1.50 metros e cresce 2 centmetros por ano, enquanto Felisberto tem 1.10 metros e cresce 3 centmetros por
ano. Construa um algoritmo que calcule e escreva quantos anos sero necessrios para que Felisberto seja maior que
Anacleto.

Uma empresa monta, em mdia, um TV a cada 20 minutos e utiliza, para isso, a mo-de-obra de 3 funcionrios. Faa um
programa que, dado o nmero de funcionrio e o nmero de dias trabalhados e considerando uma jornada de 8 horas de
trabalho, calcule a quantidade de TVs produzidas.
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
4

Jos proprietrio de uma empresa que revende componentes eletro-eletrnicos e tem um renda mdia de 10% das vendas
efetuadas. Considerando que a empresa tenha aderido ao sistema de lucro presumido e que pague 2% do lucro de Imposto
de Renda (IR), faa um programa que calcule, mediante entrada das vendas (mensais) realizadas durante 6 meses, o lucro,
os impostos e o lucro lquido.



*
A perda de carga em tubulaes para vazes dada pela frmula de Hanzen-Willians
J = Q
1.85
* 10.643 * D
4.87
* C
-1.85
,
onde J = perda de carga (m/1000m), Q = vazo (m
3
/s), D = dimetro do tubo (m
2
) e C = coeficiente de rugosidade. Escreva
um programa (denominado PerdaCarga) que, a partir dos valores de Q, D e C, calcule J.

Um fio de arame de X metros esticado do nvel do cho at o topo
de um poste. Sabendo-se que o arame faz um ngulo de graus no
cho, determine a altura do poste.
(uTrigonometria)
h
arame
cho
a


Um observador visualiza o ponto culminante de um morro sob um
ngulo de . Afastando-se do morro mais delta metros passa a
visualizar o mesmo ponto sob um ngulo de graus. Faa um
programa para, dados , e delta, calcular a altura do morro.
(uTrigonometria2)
h
x delta
lin
h
a
s

d
e

v
is

o
t a


Rotinas


*
Um determinado material radioativo perde metade de sua massa a cada 50 segundos. Dada a massa inicial, em gramas, fazer
uma rotina com o seguinte cabealho
void calculaMassa(float massaInicial, float *massaFinal, int *hora, int *minuto, int *segundo)
que determine o tempo necessrio para que essa massa se torne menor do que 0.5 gramas. Escreva a massa inicial, a massa
final e o tempo calculado em horas, minutos e segundos retornados atravs do parmetros.



*
Sendo H = 1 + 1/2 + 1/3 + 1/4 + ... + 1/N, faa uma rotina com o seguinte cabealho
float calculaSerie(int N)
para gerar o nmero H, mediante a leitura do valor de N na rotina main e sua passagem atravs do argumento N.





*
Uma agncia de publicidade quer separar as companhias de acordo com os respectivos nmeros de funcionrios em: grande,
mdia, pequena e microempresa. Para tal, consegue um conjunto de dados com o cdigo, o nmero de funcionrios e o porte
da empresa. Construa uma rotina com o seguinte cabealho
void classificaEmpresa(int *grande, int *media, int *pequena, int *micro)
que leia estes dados para cada empresa e totalize o nmero de empresas em cada categoria. Observao: as leituras devem
ser feitas dentro da rotina e deve-se utilizar, como indicador de trmino de leituras, o cdigo de empresa igual a 0 (zero).






*
Fazer uma rotina com o seguinte cabealho
void calculaEX(float x, float *eX, int *iteracao)
que calcule o valor de e
x
atravs da srie: ...
! 3 ! 2 ! 1
3 2 1
0
+ + + +
x x x
x e
x
de modo que o mesmo difira do valor calculado
atravs do comando (funo) exp de, no Maximo, 0.0001. O valor de x deve ser lido na rotina main e, ao trmino da
execuo do programa dever ser escrito o valor de x, o valor calculado atravs da srie, o valor dado pela funo exp e o
nmero de termos utilizados da srie. Obs.: a funo exp(x) retorna o valor de e na potncia x e talvez seja necessrio incluir
a biblioteca math.h #include <math.h>.


Na teoria dos jogos, um ponto de sela caracterizado por uma entrada em uma matriz, tal que esta seja o valor mnimo
(menor valor) para sua linha e o mximo (maior valor) para sua coluna. Escreva a rotina
int rotPontoSela(float *M, int nLin, int nCol, int *pLin, int *pCol)
para, dada uma matriz M com nLin linhas e nCol colunas, retornar a posio (linha e coluna, respectivamente nos endereos
apontados por pLin e pCol) e o valor 1 se esta caracterstica ocorrer na matriz, ou 0 (zero) caso contrrio.


Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
5
Estruturas de Seleo
Faa um programa que leia um valor inteiro e, se este for par, adicione 2 ao valor, seno multiplique-o por 2, e escreva o
resultado final.

Faa um programa que leia a altura dos andares de um prdio e o nmero de andares, e calcule a altura do prdio, aps
validar os valores lidos.

Faa um programa que leia o comprimento, a altura e a espessura de um slido cbico e escreva o volume do mesmo, aps
validar os valores lidos.

Faa um programa que calcule a mdia aritmtica das notas obtidas por um aluno, considerando que o aluno tenha
(obrigatoriamente) 4 notas e que este seja aprovado com mdia superior ou igual a 60; caso contrrio o aluno reprovado.

Faa um programa que leia trs valores inteiros e mostre-os em ordem crescente. Utilize para tal uma seleo encadeada.

Faa um programa que leia dois valores e se a diferena entre eles for maior que 10, escreva a distncia.

Faa um programa que leia a massa e o volume de uma soluo e calcule sua molaridade, considerando a massa molar com
o valor constante de 40 g/mol e as frmulas
v
E n
M
) (
e
) (
) (
) (
E mm
E m
E n , onde M molaridade, n nmero de mols, v volume, m massa e mm massa
molar.
Obs.: v 0 (zero) e mm 0 (zero).

A frao molar (X) de um elemento (E) dada pela diviso do nmero de mols do elemento pela soma do nmero de mols
dos elementos que compem a soluo, ou seja,

n
i
i
E n
E n
E X
1
) (
) (
) ( . O nmero de mols (n) de um elemento (E), por sua
vez, dado pela diviso de sua massa (m) por sua massa molar (mm), ou seja,
) (
) (
) (
E mm
E m
E n . Faa um programa
(denominado FracaoMolar) que calcule as fraes molares de uma soluo, composta pelos elementos genricos A e B, a
partir de suas massas e massas molares.
Obs.: 0 ) (
1

n
i
i
E n e 0 ) ( E mm .

Faa um programa que encontre a raiz de uma equao de 1
o
grau (Bx + C) e determine se esta reta crescente ou
decrescente.


*
Faa um programa que encontre as razes de uma equao de 2
o
grau (Ax
2
+ Bx + C), caso estas sejam reais.
Obs.: se delta >= 0, existe razes reais, seno apenas imaginrias.


*
Dados os pontos A, B e C (no plano cartesiano), faa um programa que identifique a existncia (ou no) de um tringulo
(retngulo ou no) formado pela ligao destes pontos e calcule a rea deste tringulo.

Dada uma equao de 2
o
grau (Ax
2
+ Bx + C), faa um programa que determine se esta funo tem valor de mximo ou de
mnimo e qual este ponto (Yv e Xv) e em que intervalo a funo crescente e em que intervalo ela crescente.
Obs.:
a
b
Xv
2

e
a
delta
Yv
4

, onde ac b delta 4
2
.

Faa um programa que calcule a idade de uma pessoa a partir de sua data de nascimento (dia, ms, ano) e da data atual (dia,
ms, ano).

Tendo dados de entrada a altura e o sexo de uma pessoa, construa um programa que calcule seu peso ideal, utilizando as
seguintes frmulas:
- para homens: (72.7 * h) 58;
- para mulheres: (62.1 * h) 44.7.
-
Faa um programa que leia o ano de nascimento de uma pessoa, calcule e mostre sua idade e, tambm, verifique e mostre se
ela j tem idade para votar (16 anos ou mais) e para conseguir a Carteira de Habilitao (18 anos ou mais).

O dia da semana para uma data qualquer pode ser obtido a partir da frmula a seguir:
diaSemana = ((int)(2.6 * mes 0.1) + dia + ano + ano div 4 + seculo div 4 2 * seculo) % 7 + 7,
onde
- mes o nmero do ms. Obs.: Janeiro e Fevereiro so os meses 11 e 12 do ano precedente, maro o ms 1 e dezembro
o ms 10.
- dia representa o dia do ms.
- ano representa o nmero formado pelos dois ltimos algarismos do ano.
- seculo representa o nmero formado pelos dois primeiros algarismos do ano.
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
6
- os dias da semana so numerados de zero a seis, sendo que domingo corresponde a 0 e sbado a 6.

Escreva um programa que escreva a data lida no formato dia/ms/ano e o dia da semana.



*
Faa um programa que encontre a soluo de um sistema de equaes lineares.
Exemplo:
y = x + 2
y = 5x

A perda de carga em tubulaes para vazes dada pela frmula de Hanzen-Willians
J = Q
1.85
* 10.643 * D
4.87
* C
-1.85
,
onde J = perda de carga (m/1000m), Q = vazo (m
3
/s), D = dimetro do tubo (m
2
) e C = coeficiente de rugosidade. Escreva
um programa (denominado PerdaCarga) que, a partir dos valores de Q, D e C, calcule J.
Obs.: validar os valores das variveis.



*
Escreva um programa que, dado um valor inteiro (com 4 dgitos), verifique se este possui a seguinte caracterstica
30 + 25 = 55
55
2
= 3025.



*
Escreva um programa que, dado um valor inteiro (com 4 dgitos), verifique se este um nmero dobradia, isto , se tem as
duas metades iguais.
Exemplos:
Nmeros dobradia: 5454 54 = = 54; 3333 33 = = 33;
Nmeros no-dobradia: 3331 33 = = 31; 3939 39 = = 39;







*
Escreva um programa que leia o nmero de um funcionrio, o nmero de horas por ele trabalhadas (nHTrab), o valor que
recebe por hora (vlrHora), o nmero de filhos com idade inferior a 14 anos (nFilho), valor do salrio famlia por filho
(slrFamFilho), a idade, o tempo de servio do funcionrio.
Aps esta etapa de leituras, o programa dever calcular (nesta seqncia) o salrio bruto (obtido atravs do produto
entre nHTrab e vlrHora, o salrio famlia (obtido atravs do produto entre nFilho e slrFamFilho), o desconto do INSS (8,5%
do salrio bruto), os adicionais e o imposto de renda (IR), como segue:
Clculo dos adicionais:
Se idade do funcionrio for superior a 40 anos, o adicional igual a 2% do salrio bruto
Se o tempo de servio for superior a 15 anos, o adicional igual a 3.5% do salrio bruto.
Se tempo de servio for menor que 15 anos, mas superior a 5 anos e idade maior que 30 anos ento adicional
igual a 1,5% do salrio bruto.

Clculo do IR:
Se salrio bruto > 1500 ento IR = 15% do salrio bruto
Se salrio bruto > 500 e salrio bruto < 1500 ento IR = 8% do salrio bruto
Se salrio bruto <= 500 ento IR = 0%

Mostrar, na tela, o nmero do funcionrio, o salrio bruto, o total adicional, o total de descontos e o salrio lquido.




*
A partir dos lados (A, B, C) de um tringulo retngulo (
A
B
C
O
_
) pode-se obter o valor do ngulo , pois
A
B
Tan ,
C
B
Sen e
C
A
Cos . Faa um programa que, a partir dos valores de A, B e C calcule .





*
Dado que a dilatao de uma barra metlica dada por L t L * * , onde L comprimento da barra, L - dilatao,
T - temperatura e - coeficiente de dilatao:
Metal Coeficiente de Dilatao
Ao 11.7 * 10
-6
/ C
Ao Inoxidvel 17.3* 10
-6
/ C
Ferro Fundido 12.1 * 10
-6
/ C
Lato 20.0 * 10
-6
/ C
Concreto 10.0 * 10
-6
/ C
Poliestireno 72.0 * 10
-6
/ C
Vidro Plano 950.0 * 10
-6
/ C
, faa um programa que, a partir da leitura do material e do tamanho da barra, calcule o tamanho desta barra aps a
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
7
dilatao.

Escreva um programa que leia o grupo e o salrio de uma pessoa e calcule o Imposto de Renda (IR) a ser pago por ela,
considerando a seguinte tabela:
Grupo Salrio Desconto
1 < 1000 0%
2 > 1000 e < 2000 8.5%
3 > 2000 e < 3000 12%
4 > 3000 27.5%




*
Escreva um programa que leia o cdigo de um determinado produto e mostre a sua classificao. Utilize a seguinte tabela
como referncia:
Grupo Classificao
1 Alimento No-Perecvel
2, 3 ou 4 Alimento Perecvel
5 ou 6 Vesturio
7 Higiene Pessoal
8 at 15 Limpeza e Utenslios Domsticos
Qualquer Outro Cdigo Invlido



*
Escreva um programa que, dada a idade de um nadador, classifique-o em uma das seguintes categorias:
Idade Categoria
5 at 7 anos Infantil A
8 at 10 anos Infantil B
11 at 13 anos Juvenil A
14 at 17 anos Juvenil B
Maiores de 18 anos Adulto

Elabore um programa que calcule o que deve ser paga por um produto, considerando o preo normal de etiqueta e a escolha
da condio de pagamento. Utilize os cdigos da tabela a seguir para ler qual a condio de pagamento escolhida e efetuar
o clculo adequado.
Cdigo Condio de Pagamento
1 vista em dinheiro ou cheque, recebe 10% de desconto.
2 vista no carto de crdito, recebe 5% de desconto.
3 Em 2 vezes, preo normal de etiqueta sem juros.
4 Em 3 vezes, preo normal de etiqueta mais juros de 10%.



*
Implemente uma rotina que leia os valores de dois nmeros inteiros e a operao aritmtica a ser aplicada sobre eles
enquanto os valores fornecidos pelo usurio forem diferentes de zero; a cada par de valores lidos a rotina dever calcular e
escrever a resposta adequada. Observao: Utilize os smbolos da tabela a seguir para identificar a operao aritmtica
escolhida.
Smbolo Operao Aritmtica
+ Adio
- Subtrao
* Multiplicao
/ Diviso




*
Um certo ao classificado de acordo com o resultado de trs testes, que deve verificar se o mesmo satisfaz s seguintes
especificaes:
- Teste 1 contedo de carbono abaixo de 7%;
- Teste 2 dureza Rokwell maior que 50;
- Teste 3 resistncia trao maior do que 80000psi.
O ao atribudo o grau 10, se passa pelos trs testes; 9, se passa apenas nos testes 1 e 2; 8, se passa no teste 1; 7, se no
passou nos trs testes. Supondo uma amostra, contedo de carbono (em %), a dureza Rokwell e a resistncia trao (em
psi) sejam lidos, fazer um programa que d a classificao desta amostra de ao, escrevendo o grau obtido.

Faa um programa que, dadas as dimenses de uma rea qualquer, calcule o nmero de pisos (azulejos) necessrios para
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
8
revest-lo. Obs.: os pisos podem ter as seguintes dimenses: 20x20, 15x15, 30x30, 30x50. Outras dimenses podem ainda
ser adicionadas.

Considerando que voc precise que escolher as melhores dimenses para uma parede (ou uma viga) e que este processo
envolva clculos exaustivos, faa um programa para encontrar as possveis combinaes de medidas que satisfaam as
necessidades de seu problema. Para isso, considere que estas medidas devem estar compreendidas em um intervalo M =
[M
min
, M
max
], onde M representa o comprimento, a largura e a espessura, e que a variao das dimenses de 0.5cm.

Escreva um programa que, dado os valores de x e y, atribua um valor varivel N sob as seguintes condies
valores de x e y x < 5 x = = 5 x > 5
y < 12 1.00 2.00 3.00
y = = 12 4.00 5.00 6.00
y > 12 7.00 8.00 9.00

Estruturas de Repetio
Faa um programa que conte de 1 a 100.

Faa um programa que apresente, na tela, a tabela ASCII. Observao: a funo deve utilizar a mesma varivel para mostrar
o cdigo ASCII e o caractere associado.

Faa um programa que leia valores enquanto o valor digitado for maior ou igual a zero.

Faa um programa que leia valores enquanto o valor digitado for par.

Escreva um programa que obtenha a soma dos nmeros pares positivos menores que 500.

Faa um programa que, dado um conjunto de valores inteiros no-negativos, determine qual o menor e o maior valor do
conjunto. Obs.: o final do conjunto ser determinado quando o usurio entrar com o valor -1, o qual no deve ser
considerado.

Faa um programa que leia um valor inteiro e no-negativo e escreva todos os inteiros positivos menores que ele.

Faa um programa que escreva a tabuada de um valor qualquer.

Faa um programa que escreva todas as possibilidades de que no lanamento de dois dados obtenha-se o valor 7 (sete)
como soma dos valores de cada dado.

* Dados valores numricos a e b quaisquer, calcule (a*b) utilizando apenas a operao de soma.

* Dados valores numricos a e b quaisquer, calcule ((int) a/b) utilizando apenas a operao de subtrao.

* Dados valores numricos a e b quaisquer, calcule (a%b) utilizando apenas a operao de subtrao.


*
Faa um programa que leia nmeros inteiros at que os 3 ltimos valores lidos totalizem 24. Exemplos:
1 10 15 0 9
0 1 100 6 15 3


Dados os nmeros de entrada, a e b, encontrar c que satisfaa
2 2 2
c b a + .


Dados os nmeros de entrada, a e b, encontrar c que satisfaa
2 2 2
c b a + , tolerando um erro mximo de a .

Escreva um programa para encontrar aqueles nmeros inteiros Z, de 1 a 50, que podem ser escritos na frmula Z
2
= X
2
+
Y
2
, com nmeros positivos X e Y.

Em uma eleio presidencial, existem quatro candidatos. Os votos so informados atravs de cdigo. Os dados utilizados
para a escrutinagem obedecem seguinte codificao:
- 1, 2, 3, 4 = voto para os respectivos candidatos;
- 5 = voto nulo;
- 6 = voto em branco.
Elabore um programa que calcule e escreva:
- o total de votos para cada candidato;
- total de votos nulos;
- total de votos em branco;
- percentual dos votos em branco e nulos sobre o total.
Obs.: considere que o valor 0 (zero) seja o finalizador da leitura dos votos e que este no deve ser considerado na
totalizao dos votos.

Escreva um programa que obtenha os 100 primeiros nmeros mpares.

Escreva os programas anteriores (volume de um slido cbico, altura de um prdio, equao de 2 grau (A != 0),
molaridade e fraes molares) utilizando o lao para repetir a leitura dos valores enquanto o usurio entrar com valores
invlidos.

Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
9
Considere o seguinte algoritmo:
int i;
int s = 1;
for (i=1; i<=20; i++)
s = 2 * s;
Qual o valor da varivel s no fim da execuo?


*
Um determinado material radioativo perde metade de sua massa a cada 50 segundos. Dada a massa inicial, em gramas,
fazer um programa que determine o tempo necessrio para que essa massa se torne menor do que 0.5 gramas. Escreva a
massa inicial, a massa final e o tempo calculado em horas, minutos e segundos.

Faa um programa que efetue a soma de todos os nmeros mpares que so mltiplos de trs e que se encontram no
conjunto dos nmeros de 1 at um valor qualquer.

Faa um programa que, dado um valor K qualquer, efetue a soma de todos seus mltiplos que se encontram entre os
nmeros N1 e N2. Obs.: K, N1 e N2 devem ser obtidos a partir de leitura e podero ser quaisquer valores.

Escreva um programa que leia um conjunto de 20 nmeros inteiros e mostre qual foi o maior e o menor valor fornecido.


*
Faa um programa que encontre todos os inteiros (com 4 dgitos) que possurem a seguinte caracterstica
30 + 25 = 55
55
2
= 3025.

Considerando que voc precise que escolher as melhores dimenses para uma parede (ou uma viga) e que este processo
envolva clculos exaustivos, faa um programa para encontrar as possveis combinaes de medidas que satisfaam as
necessidades de seu problema. Para isso, considere que estas medidas devem estar compreendidas em um intervalo M =
[M
min
, M
max
], onde M representa o comprimento, a largura e a espessura, e que a variao das dimenses de 0.5cm.

Escreva um programa que calcule a perda de carga em tubulaes para vazes que variem de 1 litro/s a 100 litros/s, atravs
da frmula de Hanzen-Willians:
J = Q
1.85
* 10.643 * D
4.87
* C
-1.85

onde
J = perda de carga (m/1000m)
Q = vazo (m
3
/s)
D = dimetro do tubo (m
2
)
C = coeficiente de rugosidade.

Faa um programa que leia um valor inteiro e verifique se este primo. Obs.: um nmero primo se este divisvel apenas
por ele e por 1.


*
Faa um programa que leia um valor inteiro e imprima todos os nmeros primos menores que ele. Obs.: um nmero
primo se este divisvel apenas por ele e por 1.

Faa um programa que leia dois valores inteiros (N1 e N2) e escreva todos os inteiros primos entre eles.


*
Sendo H = 1 + 1/2 + 1/3 + 1/4 + ... + 1/N, faa um programa para gerar o nmero H, mediante a leitura do valor de N, pelo
usurio.

Conta-se que o grande matemtico rabe Abdul Aliba Bah tinha um primo que de sete em sete dias no andava de camelo,
por receio de levar uma mordida; isso seria resultado de um trauma de infncia. Em homenagem a esse primo, com que o
grande matemtico fazia pescarias no Oceano ndico, Abdul criou o conceito de nmero primo supersticioso. Um nmero
primo supersticioso quando for primo e seu ltimo dgito for 7. Exemplos: 7, 17, 37 etc. Faa um programa que, dado um N
qualquer, gere todos os nmeros primos supersticiosos menores que ele.

Conta-se que o grande matemtico rabe Abdul Aliba Bah tinha brigas freqentes com a me de sua esposa. Quando iam
preparar quibes, sua sogra discordava dele quanto proporo de cebola ralada e carne. Abdul afirmava que era 1:2,
enquanto ela afirmava que seria 1:5; acabavam tentando chegar a um acordo, ficando em 1:3. A sogra de abdul tinha
superstio parecida com a de seu primo: nunca comia mais de 7 quibes, por medo de indigesto. Em razo de tudo isso,
Abdul criou o engenhoso conceito de nmeros sogra. Um nmero sogra qualquer nmero divisvel simultaneamente por
2, 3 e 5, mas no divisvel por 7. Exemplos: 30, 60, 90 etc. Faa um programa que, dado um N qualquer, gere todos os
nmeros sogra menores que ele.


*
Faa um programa para gerar N termos da srie de Fibonacci. Obs.: a srie de Fibonacci dada por 0, 1, 1, 2, 3, ..., ou
genericamente, por
2 - k 1 - k k
F F F + para todo k > 1.

Faa um programa para gerar o n-simo termos da srie de Fibonacci. Obs.: a srie de Fibonacci dada por 0, 1, 1, 2, 3, ...,
ou genericamente, por
2 - k 1 - k k
F F F + para todo k > 1.

Faa um progra ma que leia um valor inteiro e verifique se este pertence srie de Fibonacci. Obs.: a srie de Fibonacci
dada por 0, 1, 1, 2, 3, ..., ou genericamente, por
2 - k 1 - k k
F F F + para todo k > 1.

Faa um programa que leia um valor inteiro e verifique se este perfeito. Obs.: um nmero perfeito se este for igual
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
10
soma de seus divisores, exceto ele prprio. Ex.: 6 = 1 + 2 + 3.


Faa um programa que leia um valor inteiro e imprima todos os nmeros perfeitos menores que ele. Obs.: um nmero
perfeito se este for igual soma de seus divisores, exceto ele prprio. Ex.: 6 = 1 + 2 + 3.



*
Fazer um programa que, dados 100 nmeros inteiros positivos, calcule e imprima os que so nmeros perfeitos. Obs.:
nmero perfeito aquele cuja soma de seus divisores, exceto ele prprio, igual o nmero. Exemplo: 6 = 1 + 2 + 3.


Faa um programa que leia um valor inteiro em base 10 e converta para a base binria. Observao: o valor binrio obtido
atravs de divises sucessivas por 2 e inverso os restos.


Faa um programa que leia um valor inteiro e verifique se este capicua. Obs.: um nmero capicua se tiver o mesmo
valor, se lido da esquerda para a direita ou da direita para a esquerda. Ex.: 44, 262 etc.




*
Capicuas so nmeros que tm o mesmo valor, se lidos da esquerda para a direita ou da direita para a esquerda. Ex.: 44, 232
etc.
Fazer um programa que determine e escreva todos os nmeros inteiros menores que 10
4
e que so quadrados perfeitos e
capicuas ao mesmo tempo.



*
Faa um programa que leia um valor inteiro e imprima todos os nmeros capicuas menores que ele. Obs.: um nmero
capicua se tiver o mesmo valor, se lido da esquerda para a direita ou da direita para a esquerda. Ex.: 44, 262 etc.



*
Considerando a funo
x x x
x x x
x y
2
45 ) 5 10 ( 2
3
2 3
3 2

+ +
, faa um programa no qual o usurio entre com os extremos
de um intervalo (a, b) qualquer e calcule, para cada inteiro (x) do intervalo, o valor de y.





*
Considerando que um operrio constri 0.9 m
2
por dia, faa um programa que varie o nmero de operrios de 1 at o
nmero suficiente pra construir uma obra qualquer em um nico dia e mostre quantos dias sero gastos para concluir a obra,
para cada possvel quantidade de operrios. Observao: a rea da obra deve ser fornecida pelo usurio.
Exemplo:
operrios dias
1 10
2 5
...
6 1

Se uma pessoa efetua N experincias, com a probabilidade de sucessos P para cada experincia, a probabilidade de sucessos
exatos I
1
) 1 (


,
_

N I
P P
I
N
. Escreva um programa para computar a soma das probabilidades para I = 0 at N.






*
Faa um programa que gere a seguinte pirmide de dgitos, usando ciclos encaixados (Obs.: no gere apenas 10 cadeias):
1
232
34543
4567654
567898765
67890109876
7890123210987
890123454321098
90123456765432109
0123456789876543210


Gere o grfico da funo ) 5 . 0 ( t sen e y
at
na tela, usando um (*) para cada um dos pontos que faz o desenho. Faa o
plano descer verticalmente com um ponto por linha. (Sugesto: cada linha dever ser constituda por um asterisco,
precedido de um nmero apropriado de espaos. Determine a posio do asterisco com o truncamento do valor calculado,
isto , considerando valor inteiro e desprezando as casas decimais).

Escreva um programa que transforme um inteiro positivo num nmero romano. Projete o programa de forma que possa
execut-lo repetidamente at eu o valor zero seja introduzido.

Escreva um programa que leia o grupo e o salrio de 100 pessoas e calcule o Imposto de Renda (IR) a ser pago por cada
uma delas, considerando a seguinte tabela:
Grupo Salrio Desconto
1 < 1000 0%
2 > 1000 e < 2000 8.5%
3 > 2000 e < 3000 12%
4 > 3000 27.5%

Idem ao programa anterior, porm, quando o usurio fornecer o valor 0 (zero) para o grupo, o programa dever ser
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
11
encerrado (sair do lao de repetio).






*
Calcule o imposto de renda de um grupo de 10 contribuintes, considerando que os dados de cada contribuinte, nmero do
CPF, nmero de dependentes e renda mensal so valores fornecidos pelo usurio. Para cada contribuinte ser feito no
desconto de 5% do salrio mnimo por dependente.
Os valores da alquota para clculo do imposto so:
Renda Lquida Alquota
At 2 salrios mnimos Isento
2 a 3 salrios mnimos 5%
3 a 5 salrios mnimos 10%
5 a 7 salrios mnimos 15%
Acima de 7 salrios mnimos 20%
Observe que deve ser fornecido o valor atual do salrio mnimo para que o programa calcule os valores correntes.

Um cinema possui capacidade de 100 lugares e est sempre com ocupao total. Certo dia, cada espectador respondeu a um
questionrio, no qual constava:
- sua idade;
- sua opinio em relao ao filme, segundo as seguintes notas:
Nota Significado
A timo
B Bom
C Regular
D Ruim
E Pssimo
Elabore um programa que, lendo estes dados, calcule e escreva:
- a quantidade de respostas timo;
- a diferena percentual entre respostas bom e regular;
- a mdia de idade das pessoas que responderam ruim;
- a percentagem das respostas pssimo e a maior idade que utilizou esta opo;
- a diferena de idade entre a maior idade que respondeu timo e a maior idade que respondeu ruim.






*
Um prdio tem trs elevadores denominados A, B e C. Para otimizar o sistema de controle dos elevadores, foi realizado um
levantamento no qual cada usurio respondia:
- o elevador que utilizava com maior freqncia;
- o perodo que utilizava o elevador, entre:
- M Matutino;
- V Vespertino;
- N Noturno.
Construa um programa que calcule e escreva;
- qual o elevador mais freqentado e o perodo de maior fluxo deste elevador;
- qual o perodo mais usado de todos, considerando todos os elevadores;
- qual a diferena percentual entre o mais usado dos horrios e o menos usado;
- qual a percentagem, do elevador de mdia utilizao, sobre o total de servios prestados.

Estruturas de Repetio e Matrizes






*
Seja a varivel comp osta bidimensional M.
9000 10 175 225 3.7 4.75
432 363 9.8 100 156 18
6381 30.2 40 301 1 0
992 7213 402 4211 442 7321
1 2 21 3 9000 2000

a) Defina (declare) a matriz acima segundo a linguagem C/C++?
b) Quantos elementos fazem parte do conjunto?
c) Qual o contedo do elemento identificado por A[4][5]?
d) Qual o contedo de X aps o comando X = A[0][4] + A[3][1], sendo que X do tipo inteiro?
e) O que aconteceria caso fosse feito uma referncia posio A[4][6]?.




Dada a matriz 'mat' abaixo :
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
12



*
mat
O Q * I
E E S
R E U T
A * * S
demonstre, atravs de uma Teste de Mesa, qual ser sua configurao aps a execuo trecho de algoritmo a seguir.
Descreva o que o algoritmo faz.
int i, j;
for (i=0; i<4; i++)
for (j=i+1; j<4; j++)
{
aux = mat [i][j] ;
mat[I][j] = mat [j][i] ;
mat[j][i] = aux ;
}
for (j=0; j<4/2; j++)
{
aux = mat[j][j];
mat[j][j] = mat[3-j][3-j];
mat[3-j][3-j] = aux;
}




*
Dada uma matriz A com dimenses MxN, faa um programa que a identifique como:
- Matriz Diagonal: matriz quadrada cujos elementos so zeros, com exceo daqueles pertencentes diagonal principal;
- Matriz Escalar: matriz diagonal na qual todos os elementos da diagonal principal so iguais;
- Matriz Identidade ou Unidade: matriz diagonal cujos elementos da diagonal principal so todos iguais a 1 (um).
- Matriz Nula: matriz cujos elementos so todos iguais a 0 (zero).


*
Dadas duas matrizes A e B, faa um programa que a identifique como:
- Matriz Oposta: denomina-se matriz oposta de uma matriz A
MxN
, matriz A
MxN
, cujos elementos tm os sinais contrrios aos
elementos da matriz A;
- Matriz Transposta: denomina-se matriz transposta de uma matriz A = [a
ij
]
MxN
, matriz A
t
= [a
ji
]
NxM
, cujas linhas e colunas
so, respectivamente, as colunas e linhas de A;







*
Dada uma matriz A, faa um programa que a identifique como:
- Matriz Simtrica: denomina-se matriz simtrica qualquer matriz quadrada de dimenses N em que A = A
t
;
- Matriz Anti-Simtrica: denomina-se matriz anti-simtrica qualquer matriz quadrada de dimenses N em que A = A
t
, porm
os elementos da diagonal principal so iguais a 0 (zero);
- Matriz Triangular Superior: denomina-se matriz triangular superior qualquer matriz quadrada A, de dimenses N, em que a
ij

= 0 para todo i>j;
- Matriz Triangular Inferior: denomina-se matriz triangular inferior qualquer matriz quadrada A, de dimenses N, em que a
ij
=
0 para todo i<j;
- Matriz Peridica: denomina-se matriz peridica qualquer matriz quadrada A, de dimenses N, em que A
n
= A, sendo n = 2.
Se n o menor inteiro para o qual A
n
= A, diz-se que o perodo de A n-1;
- Matriz Idempotente: denomina-se matriz idempotente qualquer matriz peridica A, de dimenses N, tal que A
2
= A. O
perodo da matriz idempotente 2-1 = 1;
- Matriz Nipotente: denomina-se matriz nipotente qualquer matriz A, de dimenses N, tal que, dado um nmero inteiro
positivo p, A
P
= 0 (matriz nula). Se p o menor inteiro positivo tal que A
P
=0 (matriz nula), diz-se que A nipotente de ndece
p;


*
Uma agncia de publicidade quer prestar servios somente para as maiores companhias em nmero de funcionrios em
cada uma das classificaes: grande, mdia, pequena e microempresa. Para tal, consegue um conjunto de dados com o cdigo,
o nmero de funcionrios e o porte da empresa. Construa um programa que liste o cdigo da empresa com maiores recursos
humanos dentro de sua categoria. Utilize, como finalizador, o cdigo de empresa igual a 0 (zero).

Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
13

*
Suponha a existncia de um vetor de inteiros com n elementos, tal que n mpar. No se sabe como est a ordem dos
elementos. Localize o elemento central, ou seja, aquele que estaria no meio se o vetor estivesse ordenado, sem alterar o vetor
original.


Faa um algoritmo que leia um vetor V de n nmeros naturais. Para cada campo V[i] = k, com 0 i < n, o algoritmo dever ler
k nmeros inteiros e colocar a mdia deles novamente em V[i]. No final deve ser impresso o vetor e a mdia geral de seus
campos.
Observao: escolha um valor qualquer para n. Faa um algoritmo que leia um vetor V de n nmeros naturais. Para cada
campo V[i] = k, com 0 i < n, o algoritmo dever ler k nmeros inteiros e colocar a mdia deles novamente em V[i]. No final
deve ser impresso o vetor e a mdia geral de seus campos.
Observao: escolha um valor qualquer para n.


Escrever um algoritmo que gere a seguinte matriz:
1 1 1 1 1 1
1 2 2 2 2 1
1 2 3 3 2 1
1 2 3 3 2 1
1 2 2 2 2 1
1 1 1 1 1 1

Considerando as matrizes A e B quaisquer, faa um programa que calcule a soma dos elementos da diagonal principal da
matriz D, definida como produto da matriz transposta de A pela matriz inversa de B.

Fazer um programa em que o usurio entre com a posio do vetor e o valor a ser armazenado nesta posio, enquanto a
posio lida for vlida, isto , enquanto for digitado uma posio entre 0 e o tamanho do vetor -1. Aps a leitura, armazene o
valor na referida posio.


*
Dado um vetor de A[1 .. n] de elementos inteiros positivos. Pretende-se separar os seus elementos em dois vetores x[1 .. p] e
y[1 .. q] de modo que x contenha todos os nmeros pares e y contenha todos os nmeros mpares do vetor inicial.
a) Escreva as especificaes de entrada e sada do problema proposto.
b) Elabore um programa que resolva este problema

Dados 3 vetores (A, B e C) com as mesmas dimenses, faa um programa que some os vetores A e B e armazene o vetor
resultante em C. Observao: antes de realizar a soma, necessrio obter os vetores A e B.

Faa um programa que multiplique um vetor por uma constante. Observao: antes de realizar a multiplicao, necessrio
obter o vetor.

Faa um programa que leia a quantidade de metros quadrados construdos diariamente durante um ms, e, ao final, totalize a
metragem construda.

Faa programa um que calcule a mdia aritmtica das notas obtidas pelos alunos de uma determinada turma, considerando que
cada aluno tenha (obrigatoriamente) 4 notas e que estes so aprovados se atingirem mdia superior ou igual a 60; caso
contrrio o aluno reprovado.


*
Faa um programa que leia os valores das 80 posies de um vetor de inteiros e encontre e mostre, na tela, o valor (m) e a
posio (p) do menor elemento, da seguinte forma: o menor elemento = m e sua posio = p.

Faa um programa que leia 40 nomes para montar uma lista de chamada e depois escreva a lista na ordem inversa da leitura.

Faa um programa que verifique a existncia de um determinado valor em um vetor de inteiros. Se encontrar escrever a
posio, seno escrever -1.

Faa um programa que, mediante o fornecimento dos ndices de uma matriz de dimenses MxN, retorne o contedo da
respectiva posio.

Faa um programa que, mediante o fornecimento dos ndices de uma matriz de dimenses MxN e de um valor, insira este
valor na respectiva posio.


*
Dadas 3 matrizes (A, B e C) com as mesmas dimenses MxN, faa um programa que some as matrizes A e B e armazene a
matriz resultante em C. Observao: antes de realizar a soma, necessrio obter as matrizes A e B.


*
Faa um programa que multiplique uma matriz por uma constante. Observao: antes de realizar a multiplicao, necessrio
obter a matriz.



*
Dadas 3 matrizes, faa um programa que multiplique as matrizes A e B e armazene a matriz resultante em C. Observaes:
1- antes de realizar a soma, necessrio obter as matrizes A e B;
2- A tem dimenses MxN; B tem dimenses NxP e C tem dimenses MxP.

Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
14
Implemente as operaes necessrias para manipular uma matriz M
mxn
, tais como atribuio, consulta e alterao de um valor
na matriz, conforme os cabealhos a seguir.

int atribuiValorMatriz(int *M, int nLinha, int nColuna, int linha, int coluna, int valor)
onde o parmetro valor ser colocado na posio [linha, coluna] da matriz M, se linha e coluna estiverem dentro das
dimenses nLinha e nColuna de M.

int obtemValorMatriz(int *M, int nLinha, int nColuna, int linha, int coluna)
onde o contedo da posio [linha, coluna] da matriz M ser retornado, se linha e coluna estiverem dentro das dimenses
nLinha e nColuna de M.

int obtemPosicaoMatriz(int *M, int nLinha, int nColuna, int *linha, int *coluna, int valorProcurado)
onde a posio [linha, coluna] da matriz M que contenha o valor do parmetro valorProcurado ser retornado em *linha e
*coluna, se existir tal valor em M.

int somaMatriz(int *M, int *N, intj R, int nLinha, int nColuna)
onde M e N so as matrizes a serem somadas e R a matriz resultado e todas as trs tm dimenses nLinha e nColuna.

int subtraiMatriz(int *M, int *N, intj R, int nLinha, int nColuna)
onde M e N so as matrizes a serem subtradas e R a matriz resultado e todas as trs tm dimenses nLinha e nColuna.

int multiplicaMatriz(int *M, int *N, intj R, int nLinha, int nColuna)
onde M e N so as matrizes a serem multiplicadas e R a matriz resultado e todas as trs tm dimenses nLinha e nColuna.

Dadas as tabelas a seguir, com os horrios dirios (sada e chegada) do sistema ferrovirio da cidade de So Paulo, faa um
programa que permita a incluso desta tabelas e que mediante o fornecimento de um par (A, B) de cidades fornea o horrio de
sada da cidade A e o horrio de chegada cidade B. (fazer a ilustrao das tabelas)

A casa de um bbado na esquina X da rua principal, e a cadeia na esquina Y da rua principal. O bbado comea na esquina
K da rua principal, onde K est entre X (casa do bbado) e Y (cadeia). Ele vai para qualquer esquina K-1 ou K+1 com a
probabilidade 0.5 para cada uma, e repete o processo at que chegue seguro em casa ou fique na cadeia. Escreva um programa
que simule o andar do bbado e observaes sobre se ele chega seguramente em casa ou se vai para a cadeia.

Idem ao anterior, mas considere a existncia de outras ruas, isto , uma matriz bidimensional.

* Faa um programa que, mediante a entrada de uma matriz quadrada de dimenso NXN, calcule o determinante da mesma.

Se por definio a massa molecular numrica mdia dada por

n
1 i
i i n
M X M , onde n o nmero de polmeros com
massas moleculares diferentes; X a frao do nmero de mo lculas de polmero com massa molecular M. Faa um programa
para calcular a massa molecular numrica mdia para um n mximo de 5.


*
Exemplo:
3 molculas com massa molecular de 10000
5 molculas com massa molecular de 20000
10 molculas com massa molecular de 50000
18
3
x
1
,
18
5
x
2
e
18
10
x
3
=>
50000 *
18
10
20000 *
18
5
10000 *
18
3
M
n
+ +

Na teoria dos jogos, um ponto de sela caracterizado por uma entrada em uma matriz, tal que esta seja o valor mnimo
(menor valor) para sua linha e o mximo (maior valor) para sua coluna. Escreva um programa que, dado uma matriz qualquer,
encontre seu ponto de sela (se este existir).
Em uma cidade do interior, sabe-se que, de janeiro a abril de 1976 (121 dias), no ocorreu temperatura inferior a 14 C nem
superior a 40 C. Considerando que a temperatura era verificada 5 vezes por dia, faa um programa que armazene todas as
verificaes e informe, ao final:
* a menor temperatura ocorrida;
* a maior temperatura ocorrida;
* a temperatura mdia ocorrida;
* o nmero de dias nos quais as 5 temperaturas foram inferiores temperatura mdia.

O Sr. Jos possui uma tornearia que produz 150 tipos de peas e quer automatizar o controle de estoque atravs de um
programa de computador.
Como o Sr. Jos est receoso quanto utilizao de tecnologias, ele decidiu fazer a implantao gradativa do sistema. A
primeira etapa consiste no cadastramento, ao final do expediente, da produo do dia. Considerando que, pelo menos, uma
pea de cada tipo produzida por dia, faa um programa para que ao final de cada ms (30 dias) escreva o total de cada pea
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
15
produzida naquele ms.
O Pesque & Pague do Seu Creyso quer informatizar o controle de peixes de seus 50 audes. Os peixes so colocados nos
audes e o reabastecimento ocorre apenas quando todos os peixes em todos os audes se esgotarem. Considerando que no
momento em que o cliente vai pagar a conta, ele indica em qual aude estava pescando e quantos peixes foram pegos, faa um
programa para controlar a quantidade de peixes nos audes do Seu Creyso. Obs.: quando for informado 0 (zero) para o nmero
de peixes, o programa deve escrever a quantidade de peixes de cada aude e ser encerrado.
Em um jogo de loteria so sorteados 50 valores entre 0 e 99 inclusive os extremos). Faa um programa que realize o sorteio
destes 50 nmeros para a lotrica, considerando que nmeros repetidos devem ser desprezados. Ou seja, aps sortear um
nmero deve-se verificar se este j foi sorteado, pois se isto ocorrer outro nmero dever ser sorteado para substitu-lo.
Observaes:
* a rotina random(N) sorteia aleatoriamente um valor entre 0 e N-1;
exemplo:

x = random(100); // o valor sorteado e atribudo a x pode ser qualquer inteiro entre 0 4 99.


* a rotina randomize() deve ser utilizada em conjunto com a rotina random(n) e evita que o sorteio fique viciado, isto , que a
mesma seqncia de valores seja sorteada todas as vezes.
exemplo:

randomize(); // se no for utilizado a rotina randomize(), o programa sempre ir sortear a mesma seqncia de
valores
for(i=0; i<15; i++) // a cada execuo do lao sorteado um valor atravs da chamada rotina random(100)
cout << random(100);

Dadas as definies:

#define MAX_X 50
#define MAX_Y 50
#define MAX_BARATAS (MAX_X * MAX_Y / 3)

struct Barata
{
int x, y, estaViva;
};

int Matriz[MAX_X][MAX_Y];
Barata Baratas[MAX_BARATAS];

e a funo random(num) da biblioteca stdlib.h, que dado um inteiro (num) retorna um valor (inteiro) na faixa [0 ... (num-1)].

Construa um programa que:
- sorteie posies para todas as baratas dentro da matriz, sem que duas baratas ocupem o mesmo lugar;
- entre num lao no qual, uma a uma, todas as baratas andam um quadrado para uma direo aleatria (esquerda, direita, cima,
baixo), sem, claro, sair dos limites da matriz;
Obs.: cabe apenas uma barata por quadrado, i. e., clula da matriz.
- quando sobre um quadrado j estiverem passado (andaram) trs baratas, tal quadrado torna-se infectado; a prxi ma barata
que passar sobre o quadrado morre e desaparece, e o quadrado torna-se no-infectado novamente;
- o lao prossegue at que a populao seja um tero da populao no incio do programa.
Obs.: deve ser fornecido, na sada, a posio de cada barata ainda viva e o nmero de iteraes do lao.

Obs.: no usar variveis globais.
Voc foi contratado pela empresa Games S.A. para desenvolver um jogo. Este consiste de um tabuleiro de dimenses M x N
no qual devem ser distribudas N baratas, aleatoriamente, no incio do jogo. Para isso voc deve considerar:

- as seguintes definies:

#define MAX_X 50
#define MAX_Y 50
#define MAX_BARATAS (MAX_X * MAX_Y / 3)
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
16

struct Barata
{
int x, y, estaViva;
};

int Matriz[MAX_X][MAX_Y];
Barata Baratas[MAX_BARATAS];

- a funo random(num) da biblioteca stdlib.h, que dado um inteiro (num) retorna um valor (inteiro) na faixa [0 ... (num-1)].

1. As baratas caminham aleatoriamente pelo tabuleiro em qualquer uma das 4 direes.
2. A barata no se locomover apenas se todas as 4 posies a seu redor estiverem ocupadas.
3. Duas baratas no podem ocupar a mesma posio no tabuleiro.
4. A terceira barata que passar em uma determinada posio dever ser eliminada.
4.1 Aps uma barata ser eliminada, a posio deve ficar como se no tivesse passado barata alguma por ela. O jogo acaba
quando restarem 10% das baratas que iniciaram o mesmo.
5. O nmero de baratas deve ser determinado pelo usurio.
6. A cada 20 movimentos ou ciclos do jogo a barata pode se reproduzir. Isto possvel apenas se houver uma posio vaga a
seu redor, sendo que a escolha desta posio deve ser aleatria, e se o nmero de baratas for menor ou igual a do nmero de
posies (M x N).
7. O usurio poder dar chineladas com o mouse, o que eliminar a barata que estiver na posio clicada.
8. O usurio poder passar um spray de veneno para matar a barata de determinada posio.
8.1. As baratas ficam 10% mais resistentes a cada vez que o veneno aplicado em uma posio vizinha quela em que ela se
encontra.
8.2. A partir de 10 aplicaes em posies vizinhas, a barata fica imune.
9. O tipo barata voadora pode se locomover para posies no-contguas, desde que a posio destino no esteja ocupada. Este
tipo de barata est sujeita s mesmas caractersticas das outras.
10. O tipo de barata deve ser definido no momento de sua criao (aleatoriamente). Porm, o nmero de baratas voadoras deve
ser menor que 1/5 das baratas normais.

------------------------------------

Construa um programa que:
- sorteie posies para todas as baratas dentro da matriz, sem que duas baratas ocupem o mesmo lugar;
- entre num lao no qual, uma a uma, todas as baratas andam um quadrado para uma direo aleatria (esquerda, direita, cima,
baixo), sem, claro, sair dos limites da matriz;
Obs.: cabe apenas uma barata por quadrado, i. e., clula da matriz.
- quando sobre um quadrado j estiverem passado (andaram) trs baratas, tal quadrado torna-se infectado; a prxima barata
que passar sobre o quadrado morre e desaparece, e o quadrado torna-se no-infectado novamente;
- o lao prossegue at que a populao seja um tero da populao no incio do programa.
Obs.: deve ser fornecido, na sada, a posio de cada barata ainda viva e o nmero de iteraes do lao.

Obs.: no usar variveis globais.
Crie a funo int inverteBit(int n, int i), a qual deve inverter o valor do i-simo bit (da mais baixa para a mais alta ordem
relativa) do nmero n, i. e. , o bit contiver o valor 1 dever ficar com o valor 0 e vice-versa.
Exemplo:
...
int x;

x = 37;
x = inverteBit(x, 8); // estado atual de x: (37
(10)
== 00000000 00100101
(2)
)

// aps a execuo tem-se
// estado atual de x: (163
(10)
== 00000000 10100101
(2)
)

x = inverteBit(x, 8); // estado atual de x: (163
(10)
== 00000000 10100101
(2)
)

// aps a execuo tem-se
// estado atual de x: (37
(10)
== 00000000 00100101
(2)
)
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
17
Visando fazer um levantamento das atuais condies de trfego de uma malha rodoviria e definir alternativas para uma
reformulao futura, foi realizada uma pesquisa de trfego do tipo ORIGEM-DESTINO. Esta pesquisa submeteu aos
motoristas que trafegavam pela regio em estudo um questionrio com as seguintes perguntas:
a) De onde veio (origem)? b) Para onde vai (destino)? c) Qual o tipo de veculo?

As respostas foram fornecidas atravs de cdigo numricos, conforme especificao a seguir:

Questo a)
(1) Belo Horizonte
(2) So Paulo
(3) Santos Dumont
(4) Braslia
Questo b)
(1) Rio de Janeiro
(2) Petrpolis
(3) Juiz de Fora
(4) Barbacena
Questo c)
(1) automvel
(2) Caminho
(3) nibus

Pode ser utilizado, como indicador de parada de leituras, o valor 0 (zero) para as respostas das questes a, b e c. Ao final o
programa dever apresentar uma lista contendo Origem, Destino e o nmero de veculos de cada Tipo que realizou o percurso.
Foi distribudo um questionrio de 100 perguntas para um grupo de pessoas, dentre as quais esto:
1) Voc se incomoda que seu parceiro fume?
2) Voc gosta de msica sertaneja?
...
100) Voc gosta de cebola?

Cada resposta tem as seguintes opes, SIM, INDIFERENTE, NO.
O ndice de afinidade de um rapaz com uma moa dado pelo nmero de perguntas em que ambos deram a mesma resposta ou
em que um deles deu a resposta indiferente.
Fazer um programa para escrever uma tabela com o ndice de afinidade existente entre cada moa e cada rapaz de um grupo de
M moas e um grupo de R rapazes (R <= 50 e M <= 60. Desta forma, o programa poder ler:
- os valores de R e M; - as 100 respostas de cada rapaz; - as 100 respostas de cada moa;

Ao final dever ser impresso para cada par (rapaz, moa) o ndice de afinidade entre ambos.
A tabela a seguir contm vrios itens que esto estocados em vrios armazns de uma companhia. fornecido, tambm, o
custo de cada um dos produtos armazenados.
Produto 1 (un.) Produto 2 (un.) Produto 3 (un.)
Armazm 1 1200 3700 3737
Armazm 2 1400 4210 4224
Armazm 3 2000 2240 2444

Custo $ 260,00 420,00 330,00
Fazer um programa que:
- leia o estoque inicial;
- determine e imprima quantos itens esto arma zenados em cada armazm;
- qual o armazm possui a maior quantidade do produto 2;
- o custo total de:
* cada produto em cada armazm;
* estoque em cada armazm;
* cada produto em todos os armazns.
Considere que o dono do armazm Secos e Molhados S.A. faz um levantamento mensal de suas mercadorias e que este
armazm possua 100 itens diferentes identificados pelos nmeros inteiros de 0 a 99. Para cada cliente que chega a seu balco e
pede um determinado produto, o dono do armazm verifica a exis tncia deste produto em quantidade suficiente para atender o
pedido, d baixa nos produtos vendidos e os entrega ao cliente. Escreva um programa para auxiliar a manuteno do estoque
do armazm Secos e Molhados e que leia o estoque inicial e, a cada pedido, d baixa no estoque ou escreva a mensagem
Produto em falta. quando no houver mercadoria para atender o pedido.
Fazer um programa para corrigir provas de mltipla escolha (a, b, c, d, e). Cada prova tem 10 questes e cada questo vale um
ponto. O primeiro conjunto de dados a ser lido o gabarito para a correo da prova. Os dados seguintes correspondem s
respostas dos alunos de uma turma, sendo que cada turma possui N alunos, onde N no pode ser superior a 100. O programa
dever, aps a leitura do gabarito e das respostas de cada aluno, calcular e imprimir a nota deste aluno.
Alguns dias antes das eleies de 2002 (2 turno) uma equipe de acadmicos do Curso de Jornalismo da FAG saiu realizando
uma pesquisa que tinha como pergunta nica: Em que voc vai votar em 27 de outrubro?. Cada acadmico possua 100
formulrios e cada formulrio possui apenas um campo para informar a opinio do entrevistado. Considerando a relao 1
C1, 2 C2, 3 C3, 4 C4 e 5 outros, faa um programa que leia o conjunto de dados coletados por um dos acadmicos,
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
18
calcule e escreva o nmero de votos de cada candidato.
Um controle padro de videogame possui sensores que indicam a direo na qual o usurio pretende seguir. Fazer um
programa que simule (,isto , leia) a entrada das direes (0 - Esquerda, 1 - Direita, 2 - em Frente, 3 - para Trs) e calcule e
escreva:
- a direo em que houve maior deslocamento.
- a direo em que houve menor deslocamento.
- a mdia entre todas as direes.
Observao: Considere o valor 4 como indicador de trmino para as leituras.
Uma equipe de funcionrios do IBOPE saiu s ruas para fazer uma pesquisa sobre a estatura da populao brasileira. Cada
funcionrio possua 100 formulrios e apenas alguns poucos minutos para realizar a entrevista, sendo que nenhum deles
conseguiu atingir os 100 entrevistados. Cada formulrio possua apenas um campo para informar a altura do entrevistado. Faa
um programa que leia o conjunto de dados coletados por um dos funcionrios, calcule e escreva a maior, a menor e a mdia
das alturas do grupo de pessoas entrevistadas por ele.
Obs.: considere o valor da altura igual a zero para o encerramento das leituras.
O Instituto de Cincias Exatas da UFMG deseja saber se existem alunos cursando, simultaneamente, as disciplinas
Programao de Computadores e Clculo Numrico. Considere que os nmeros de matrcula dos alunos de Programao
de Computadores (no mximo 150 alunos) e de Clculo Numrico (no mximo 220 alunos) so disponibilizados pelo
trecho de programa abaixo e que cada conjunto dos nmeros de matrcula dos alunos de uma disciplina tem a matrcula fictcia
999 no final. Complete o programa para que seja impresso o nmero de matrcula dos alunos que esto cursando estas
disciplinas simultaneamente.
int main(int argc, char* argv[])
{
int vProgComp[150], vCalcNum[220], i;

printf("\nProgramacao de Computadores\n");
i = -1;
do
{
i++;
printf(Matricula do Aluno %d: , i+1);
scanf(%d, &vProgComp[i]);
}while(vProgComp[i] != 999);

printf("\nCalculo Numerico\n");
i = -1;
do
{
i++;
printf(Matricula do Aluno %d: , i+1);
scanf(%d, &vCalcNum[i]);
}while(vCalcNum[i] != 999);

printf("\n\nResultados");

printf("\nProgramacao de Computadores\n");
for(i=0; vProgComp[i] != 999; i++)
printf("%d ", vProgComp[i]);

printf("\nCalculo Numerico\n");
for(i=0; vCalcNum[i] != 999; i++)
printf("%d ", vCalcNum[i]);

// cdigo restante ????????

getch();
return 0;
}



Os lugares de um teatro costumam ser identificados atravs da fila e da coluna de cada um. O servio de reserva mantm um
mapa que indica os lugares ocupados e os ainda vagos. Como lugares ocupados entende-se como pedidos de reservas
(pagamento no efetuado) e lugares vendidos (pagamento efetuado). Neste contexto, se um pedido de reservas no for
confirmado (pagamento efetuado), este poder ser vendido a outra pessoa. Para fixar idias, vamos considerar um teatro com
15 filas, numeradas de 1 15, cada fila com 10 cadeiras direita e 10 cadeiras esquerda, conforme ilustrado ao lado.
Considere tambm os valores
V ou 0: lugares vagos
R ou 1: lugares reservados
O ou 2: lugares cujo pagamento j foi efetuado
.............. PALCO..............
01 01
. lado lado .
. esquerdo direito .
. .
15 15
-10 ... -1 0 +1 ... +10

Faa um sis tema para gerenciar as reservas para um espetculo, com menu para
selecionar a opo desejada e que permita:
- realizar e cancelar reservas;
- calcular o total de lugares cuja reserva foi confirmada e o valor recebido;
- calcular o total de lugares cuja reserva ainda no foi confirmada e o valor total
referente a estes lugares;
- calcular o total de lugares vagos e o valor referente a eles.


Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
19


*
A empresa XYZ, fornecedora de energia eltrica, est realizando anlises sobre o consumo de seus clientes para planejar as
adequaes necessrias em sua malha de cabos. A partir disto, chegou-se concluso de que deveria ser criado um programa
de computador para realizar o controle dos dados e auxiliar no processo de anlise.
Esta anlise ser realizada por setores de uma regio. Para isto, o programa dever totalizar o consumo dos clientes de cada
quadra, a partir da entrada das coordenadas da quadra em que o consumidor se localiza e do respectivo consumo. Observao:
a quadra 1410, representa a coordenada (x, y) na planta da regio, onde x = 14 e y = 10, conforme ilustrado abaixo.


Considere que, para a execuo do projeto piloto, o
programa dever considerar apenas as quatro quadras
assinaladas no mapa.









*
(Leon, 1999, pg. ?) O senhor Joo da Silva est realizando reformas em sua casa. Durante a fase de levantamento de preos
Joo realizou oramento em 4 empresas abrangendo cimento, cal, pedra e ferro.
As matrizes a seguir identificam as empresas e os custos; e o material necessrio e a quantidade.
Empresa/Material Cimento(sa
ca)
Cal(saca) Pedra(m
3
) Ferro(m) Material Quantidade
Casa & Cia. Ltda. 9.50 5.60 21.00 9.80 Cimento 50 sacas
ConstruCasa S/A 9.00 5.90 20.00 13.00 Cal 20 sacas
Mos Obra Ltda. 9.25 6.00 21.50 11.20 Pedra 3 metros
Pedra sobre Pedra Ltda. 9.75 5.75 23.00 10.80 Ferro 10.5 metros

Observaes:
- Joo no tem como levar os itens para casa (por conta prpria);
- as empresas entregaro o material somente se venderem todos os itens;
- a empresa Casa & Cia. Ltda. cobra a taxa de $25 para cada entrega (independente da mercadoria a ser entregue);
- a empresa ConstruCasa S/A oferece desconto de 5% para compras acima de $1000 e no cobra taxa de entrega;
- e empresa Mos Obra Ltda. cobra a taxa de entrega de $50 e oferece desconto de 2.5% para todas as compras;
- a empresa Pedra sobre Pedra Ltda. no cobra taxa de entrega e no oferece descontos.

Considerando as condies anteriores, faa um programa que determine qual o menor oramento e que permita flexibilidade
quanto aos valores dos materiais e as quantidades de material necessrias.





*
(Leon, 1999, pg. 16) Em uma certa seo do centro de determinada
cidade, dois conjuntos de ruas de mo nica se cruzam, conforme
ilustrado na Figura ao lado. A mdia do nmero de veculos por hora
que entram e saem dessa seo durante o horrio de rush dada no
diagrama. Determine a quantidade de veculos entre cada um dos
quatro cruzamentos.
Montagem do Sistema de Equaes:

'

+ +
+ +
+ +
+ +
D) o (Cruzament 310 1 640 4
C) o (Cruzament 600 4 390 3
B) o (Cruzament 480 3 520 2
A) o (Cruzament 610 2 450
1
x x
x x
x x
x x





Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
20




*
(Leon, 1999, pg. 35) Considere a topologia de ligao viria entre 5 cidades de uma
determinada regio, conforme ilustrado na Figura ao lado.
Uma empresa transportadora deseja planejar suas rotas de entrega entre estas cidades com o
objetivo de minimizar os custos envolvidos. Para tal, precisa identificar os caminhos mnimos
entre estas 5 cidades. Escreva um programa utilizando produto matricial que retorne os
caminhos mnimos entre estas cinco cidades. Obs.: a matriz identifica ao lado utilizada para
identificar a existncia (valor 1) ou no (valor 0) de estrada entre os pares de cidades.

Elevando a matriz potncia p, se

'

>

indicados caminhos dos existncia quanto garantias h no , 1


j e i entre p o compriment de caminho existe no se , 0
j e i entre p o compriment de caminho existe se , 1
M[i][j]

A
C E
D
B

0 1 0 1 0
1 0 1 1 0
0 1 0 0 1
1 1 0 0 1
0 0 1 1 0


(Leon, 1999, pg. 28) Joo pesa 81 quilos. Ele quer perder peso por meio de um programa de dieta e exerccios. Aps consultar
a Tabela Calorias Queimadas por Hora, ele monta o programa de exerccios da Tabela Horas por Dia para cada Atividade.


Calorias Queimadas por Hora
Atividade Esportiva
Peso Andar a 3 Km/h Correr a 9 Km/h Andar de Bicicleta a 9 Km/h Jogar Tnis (moderado)
69 213 651 304 420
73 225 688 321 441
77 237 726 338 468
81 249 764 356 492

Horas por Dia para cada Atividade
Atividade Esportiva
Dia da Semana Andar Correr Andar de Bicicleta Jogar Tnis
Segunda-Feira 1.0 0.0 1.0 0.0
Tera-Feira 0.0 0.0 0.0 2.0
Quarta-Feira 0.4 0.5 0.0 0.0
Quinta-Feira 0.0 0.0 0.5 2.0
Sexta-Feira 0.4 0.5 0.0 0.0







Quantas calorias ele vai queimar por dia se seguir este programa?


(Leon, 1999, pg. 29) Uma empresa fabrica trs produtos. Suas despesas de produo esto divididas em trs categorias. Em
cada uma dessas categorias, faz-se uma estimativa do custo de produo de um nico exemplar de cada produto. Faz-se,
tambm, uma estimativa da quantidade de cada produto a ser fabricado por trimestre. Essas estimativas so dadas nas tabelas a
seguir.





*
Custo de Produo por Item em Unidades Monetrias ($)

Gastos
Produto Matria-Prima Pessoal Despesas Gerais
A 0.10 0.30 0.10
B 0.30 0.40 0.20
C 0.15 0.25 0.15
Quantidade Produzida por Trimestre

Estao
Produto A B C
Vero 4000 2000 5800
Outono 4500 2600 6200
Inverno 4500 2400 6000
Primavera 4000 2200 6000
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
21

A empresa gostaria de apresentar a seus acionistas uma nica tabela mostrando o custo total por trimestre de cada uma das trs
categorias: matria -prima, pessoal e despesas gerais.

Cadeias de Caracteres (Strings)
* Leia uma string (seqncia de caracteres) e a escreva de traz para frente.

* Leia uma string (seqncia de caracteres) e inverta seu contedo.

Leia uma string (seqncia de caracteres) e altere a primeira letra de cada palavra em maiscula.

* Idem ao anterior, mas garanta que a primeira letra de cada palavra em maiscula e as demais em minscula.



*
Escreva uma funo que receba por parmetro duas strings e crie uma nova string atravs da intercalao das anteriores e a
coloque em um terceiro parmetro (de sada). Observe que as duas seqncias envias por parmetro nem sempre tero o
mesmo comprimento. Neste caso, a parte restante da maior seqncia deve ser simplesmente anexada seqncia que
representa a intercalao.

Leia uma string (seqncia de caracteres) e converta para inteiro, assim como faz o comando (funo) atoi.



*
Leia uma string (seqncia de caracteres) e substitua conjuntos de espaos em branco por um nico espao em branco.
Exemplo:
String de Entrada String de Sada
Abcbbbbdefbbbbbbb*gbbbbhbbijklmbbbbbb,bbbx abcbdefb*gbhbijklmb,bx



*
Dada uma string (seqncia de caracteres), lidos um a um e finalizada por um ponto, escreva a quantidade de caracteres
iguais fornecidos em seqncia, de acordo com os exemplos:
ENTRADA: AAABBBBCCCCC => SADA: 3A, 4B, 5C
ENTRADA: XXXXACCCXX => SADA: 4X, 1A, 3C, 2X

Observaes 01: - faa uma rotina utilizando simplesmente a escrita dos valores de sada;
- refaa a rotina de modo a armazenar a sada na string original;
- faa uma rotina que realize o processo inverso, isto , dada uma string como as de sada enteriormente a
transforme nas de entrada.

Observaes 02: - considere, inicialmente, um mximo de 9 caracteres consecutivos iguais;
- refaa as rotinas considerando qualquer nmero de caracteres consecutivos iguais.

Dada uma string (seqncia de caracteres) de entrada, lido um a um, verifique se a seguinte condio satisfeita:
- aps uma seqncia ininterrupta de letras A, a primeira seqncia de letras B deve somar o dobro de As.







*
Leia strings (seqncia de caracteres) que representem expresses e verifique se os parnteses esto balanceados. Quando
um erro for detectado, uma mensagem apresentada e o programa ignora o resto da string, isto , pra.
Exemplos:
String de Entrada String de Sada
( )) Fecha parnteses em excesso, coluna 3.
(( ) ( ) )) Fecha parnteses em excesso, coluna 7.
( ) ( Faltou fecha parnteses, coluna 4.
( ) ((bla bla bla resto da string ignorado Faltou fecha parnteses , coluna 4.
( ) ( ) ( ) OK
( ( x ) ) bla bla ( bla ) OK
( ( ) ( ) ) ) ( ) Fecha parnteses em excesso, coluna 7.

Otimize o programa anterior utilizando apenas trs variveis:
s para armazenar a string
i para percorrer a string (ndice)
np para o controle da parentetizao

Mesmo que o programa anterior, mas misturando colchetes e parnteses. Aplique as regras de parentetizao normal.
String de Entrada String de Sada
[ ( ) ( ( ) ) ] OK
( [ ] ] ) Fecha colchetes em excesso, coluna 4.
( [ ] ( ] Faltou fecha parnteses, coluna 5.

Otimize o programa anterior utilizando apenas quatro variveis:
s para armazenar a string
i para percorrer a string (ndice)
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
22
np para o controle dos parnteses
nc para o controle dos colchetes

Repita o exerccio anterior, mas no aceitando abrir colchetes se houver parnteses aberto (em outras palavras, nunca aceite
colchetes dentro de parnteses).

Crie uma string s, de comprimento 10;
Leia esta string, colocando apenas caracteres numricos e sem repetio;
Limpe a tela, escreva a string e, debaixo dela, escreva asteriscos seguindo os nmeros que foram digitados.
Exemplo:
String de Entrada: 24681357.
Sada:
2 4 6 8 1 3 5 7
* pule para a segunda coluna
* pule para a quarta coluna
* pule para a oitava coluna
* pule para a stima coluna
* pule para a quinta coluna
* encerra pois j passou pela primeira coluna

Idem ao exerccio anterior, mas verifique tambm se ao caminhar dentro da string todas as posies visitadas, listando as
posies no visitadas o vdeo.

Fazer uma funo que substitua todos os pontos decimais por vrgulas decimais em um cadeia str1. Ex.: 9.8 => 9,8 /
100.99 => 100,99

Fazer um programa que inverta uma cadeia. Por exemplo, uma cadeia que contenha 1, 2, 3, 4 dever ser transformada em
4, 3, 2, 1. O programa deve:
- solicitar ao usurio a cadeia original;
- copi-la para uma cadeia auxiliar;
- inverter a cadeia original, utilizando uma segunda cadeia;
- inverter a cadeia original, sem utilizar uma segunda cadeia.

Dada a string s e um nmero n de entrada, apresente a string no vdeo em blocos de n caracteres, invertidos em relao ao
original.
Exemplos.
12345678 , 3 32165478
12345678 , 2 21436587

Dada a string s e os nmeros n e k de entrada, apresente a string no vdeo em blocos de n caracteres, invertidas em blocos de
comprimento k.
Exemplos (os espaos em branco foram utilizados apenas para tornar os exemplos mais claros.
1234567890 , n = = 4 , k = = 4 4321 8765 90
1234567890 , n = = 4 , k = = 2 2143 6587 09
1234567890 , n = = 5 , k = = 2 21435 76980
1234567890 , n = = 5 , k = = 3 32145 87690

Fazer uma funo que recebe uma string como parmetro e retorna um string obtido ao se eliminar os espaos em branco no
incio e fim do string:

" Bom dia, senhor " deve ser transformado em "Bom dia, senhor"
"Bom dia, senhor " deve ser transformado em "Bom dia, senhor"
" Bom dia, senhor" deve ser transformado em "Bom dia, senhor"

Fazer uma funo que codifica um string pelo mtodo ZENIT-POLAR:

Z E N I T
P O L A R

Ou seja, onde aparece um Z no string de entrada, aparecer um ``P'' na sada; e, semelhantemente, onde aparece um P no
string de entrada, aparecer um Z na sada. Isto deve ocorrer para todos os pares em ZENIT-POLAR, maisculas e
minsculas. As outras letras no so alteradas
Por exemplo, o string Parabens a voce codificado para Zitibols i veco.
Ao se aplicar duas vezes a transformao, obtm-se o mesmo string, ou seja, a codificao de Zitibols i veco Parabens a
voce.

Escreva um programa para calcular a freqncia de ocorrncia de cada letra do alfabeto em um texto, onde freqncia de
ocorrncia de uma letra o nmero de vezes em que este ocorre dividido pelo nmero total de ocorrncias de letras
Jefferson Gustavo Martins CEFETPR - Medianeira
Jefferson Gustavo Martins CEFETPR - Medianeira
23
(comprimento do texto menos ocorrncias de brancos e sinais de pontuao.

Operaes sobre Cadeias de Caracteres (Strings)
Escreva rotinas que implementem as funes de manipulao de strings, conforme
especificado a seguir.

*
char *strcat(char *str1, const char *str2)
strcat concatena uma cpia de str2 em str1. str1 deve ter espao suficiente para armazenar o contedo de ambas.



*
int strcmp(const char *str1, const char *str2)
strcmp compara lexicograficamente as strings apontadas por str1 e str2 e devolve um inteiro baseado no resultado:
valor menor que 0 se str1 for menor que str2
valor 0 se str1 for igual str2
valor maior que 0 se str1 for maior que str2



*
char *strcpy(char *str1, const char *str2)

strcpy copia o contedo da string str2 para str1 e devolve um ponteiro para str1.



*
int strlen(const char *str)

strlen devolve o nmero de caracteres contidos em str, sem considerar o caractere nulo (\ 0).



*
char *strstr(const char *str1, const char *str2)

strstr devolve um ponteiro para a primeira ocorrncia de str2 em str1, se existir. Caso contrrio, strstr retorna um ponteiro
nulo (NULL).



*
char *strchr(const char *str, int ch)

strstr devolve um ponteiro para a primeira ocorrncia de ch em str, se existir. Caso contrrio, strchr retorna um ponteiro nulo
(NULL).



*
void strSub(char *str1, int n, int p, const char *str2)

strSub substitui n caracteres a partir da posio p da string str1 por str2.


Registros
1- Criar estruturas para representar:
- nmeros racionais (numerador e denominador)
- nmeros reais (parte inteira e parte real)
- um termo de um polinmio
- dados de um livro
- passagem de nibus
- os dados de um aluno (matrcula, notas bimestrais etc.)
- produto de um supermercado (cdigo, preo, peso/capacidade, tipo de embalagem etc.)
- cheque bancrio

2- Crie estruturas para representar
- os dependentes de uma pessoa e inclua a inclua na estrutura definida anteriormente para pessoa
- um talo de cheques (m ximo 50 folhas), onde cada folha tem a estrutura definida anteriormente em cheque bancrio
- uma lista de chamada, para a estrutura aluno anteriormente definida, considerando um turma de 20 alunos
- um polinmio com at 20 termos, a partir da estrutura definida anteriormente para um nico termo
- o conjunto de livros de uma biblioteca com capacidade para armazenar 1000 livros, a partir da estrutura anterior

* Escreva um programa que contenha uma estrutura para uma construo, leia os valores dos campos e escreva estes mesmos
valores.

Bibliografia:
Leon, S. J., lgebra Linear com Aplicaes. 4. Edio. Rio de Janeiro: LTC, 1999.