Exercicios 01 Programacao Logica-Matrizes

download Exercicios 01 Programacao Logica-Matrizes

of 23

Transcript of Exercicios 01 Programacao Logica-Matrizes

  • 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 = ri2 f) p = v2/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 3r

    vp

    =

    *

    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) * L1 * L2 (onde V o volume em m

    3 de terra necessria para fazer o aterro e L1 e L2 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: custopreo *5.1= , onde rea) * custoExtra *(n rea) * (custobase custofixo custo ++= e

    4

    2pdrea = .

    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 (q1 e q2) dada por 221 q**

    dqk

    , onde K uma constante

    com valor de 9 * 109 Nm2/C2 (N Newton e C unidade de carga eltrica, coulomb) e d a distncia entre as cargas. Faa um programa que, mediante a entrada de q1 e q2 e d, calcule e escreva E.

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

    O objeto (+) sofre a ao de duas foras (F1 e F2) sob um ngulo de 90, o que gera uma fora resultante R, dada por

    22

    21

    2 FFR += , conforme ilustra esta figura +

    RF1

    F2

    . Faa um programa que mediante a entrada dos valores de F1

    e F2, calcule R.

    *

    O objeto (+) sofre a ao de duas foras (F1 e F2) sob um ngulos q1 e q2, o que gera uma fora resultante R, dada por

    222YX FFR += , conforme ilustra esta figura

    +

    RF1

    F2O2_O1_

    , onde Fx dado por XXX FFF 21 += , 1 *11 qCosFF X = , 2 *22 qCosFF X = , YYY FFF 21 += , 1 *11 qSenFF Y = , 2 *22 qSenFF Y = . Faa um programa que mediante a

    entrada dos valores F1 e F2, 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 m2.

    A energia (E) obtida atravs da equao mcE =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* hb

    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 222 cba += . Faa um programa que, mediante o fornecimento dos catetos (b e c), encontra a.

    *

    Dada a equao xxxy --= 22 , 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 -=

    FC .

    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 tvsS 00 += , fazer um programa que, mediante o fornecimento de um valor qualquer para t (pelo usurio), calcule S.

    Dado que atvV += 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

    00at

    tvsS ++= , 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=(x1, y1) e B=(x2, y2) dada por

    212

    212 )()( yyxxd -+-= . 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 2o grau (Ax2 + Bx + C) e calcule suas razes

    reais, atravs da frmula a

    acbb2

    42 --.

    *

    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

    vEn

    M)(

    = e )(

    )()(

    EmmEm

    En = , 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

    iiEn

    EnEX

    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, )(

    )()(

    EmmEm

    En = . 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 xauyb 11 -= xavyb 22 -=

    tem a soluo dada por

    vabba

    bu

    abbab

    x2121

    1

    2121

    2

    --

    -=

    vabba

    au

    abbaa

    y2121

    1

    2121

    2

    -+

    --

    =

    O resultado final corresponde escrita do sistema de equaes (no seguinte formato xauyb 11 -= xavyb 22 -= )

    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:

    Mn = 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 = Q1.85 * 10.643 * D4.87 * C-1.85, onde J = perda de carga (m/1000m), Q = vazo (m3/s), D = dimetro do tubo (m2) 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 a graus no cho, determine a altura do poste. (uTrigonometria)

    harame

    choa

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

    h

    xdelta

    linhas

    de vis

    o

    ta

    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 ex atravs da srie: ...!3!2!1

    3210 ++++=

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

    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

    vEn

    M)(

    = e )(

    )()(

    EmmEm

    En = , 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

    iiEn

    EnEX

    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, )(

    )()(

    EmmEm

    En = . 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

    iiEn e 0)( Emm .

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

    *

    Faa um programa que encontre as razes de uma equao de 2o grau (Ax2 + 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 2o grau (Ax2 + 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.: ab

    Xv2-

    = e a

    deltaYv

    4-

    = , onde acbdelta 42 -= .

    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 = Q1.85 * 10.643 * D4.87 * C-1.85, onde J = perda de carga (m/1000m), Q = vazo (m3/s), D = dimetro do tubo (m2) 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 552 = 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

  • 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 = [Mmin, Mmax], 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 222 c b a += .

    Dados os nmeros de entrada, a e b, encontrar c que satisfaa 222 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 Z2 = X2 + Y2, 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 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-k1-kk 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-k1-kk 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 104 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 xxx

    xxxxy

    2

    45)510(23

    23

    32

    --

    ++--= , 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 m2 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( --

    NI PP

    IN

    . 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( tseney 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

  • 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 Mmxn, 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

    1iiin MX 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

    183

    x1 = , 185

    x2 = e 1810 x3 = =>

    50000 * 1810 20000 *

    185

    10000 * 183

    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

  • 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) autom vel (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

  • 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(saca)

    Cal(saca) Pedra(m3) 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 31016404C) o(Cruzament 60043903B) o(Cruzament 48035202A) o(Cruzament 61024501

    xxxxxxxx

  • 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 ,1j e i entre p ocompriment de caminho existe no se ,0

    j e i entre p ocompriment de caminho existe se ,1

    M[i][j]

    A

    C E

    D

    B

    0101010110010011100100110

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