• Nenhum resultado encontrado

Comandos de Repetição

N/A
N/A
Protected

Academic year: 2021

Share "Comandos de Repetição"

Copied!
8
0
0

Texto

(1)

Programação de Computadores I UFOP DECOM 2013–2 Exercícios de Revisão

Comandos de Repetição

Sumário 1 Testes de Compreensão 1 2 Exercícios de Programação 2 1 Testes de Compreensão

1. Determine o valor de n ao final de cada um dos trechos de programa a seguir, e determine também o número de iterações executadas em cada loop.

n=1; while modulo(n,10)<>0 n=n+1; end n=2; while n <= 200 n=n^2; end n=2; while ir > 200 n=n^2; end

2. Determine os valores das variáveis v1, v2 e v3 ao final da execução de cada um dos trechos de programa a seguir.

v = [2 5 8 3]; [L,C] = size(v) for i=1:C v1(1,i) = v(1,i)+10 v2(1,i) = v(1,L-i); v3(1,i) = v(1,i) > 3 end m = [1 5 3 8; 2 4 0 1; 0 1 2 3]; [L,C] = size(v) for i=1:C

v1(1,i) = v(1,i)+v(2,i) v2(1,i) = v(1,i) > v(2,i); v3(1,i) = v(i,1) + v(i,2) end

(2)

1. Quando um resistor (R), um capacitor (C ), e uma bateria (V ) são conectadas em série, a carga no capacitor (Q) aumenta ao longo do tempo, de acordo com a fórmula a seguir, se o capacitor estiver completamente descarregado, no instante de tempo t= 0:

Q(t)= CV (1 − e−t /RC)

Escreva um programa para monitorar a carga no capacitor, até que uma determinada carga seja atingida. Seu programa deve ler os seguintes dados: a voltagem da bateria (V ), os valores da resistência (R) do resistor e da capacitância (C) do capacitor, e o valor da carga (Q) a ser obtida no capacitor. O programa deve imprimir uma tabela da carga do capacitor em cada instantes de tempo, a partir do instante inicial t = 0, em intervalos de 0.1, até que seja atingida a carga desejada no capacitor.

Exemplo de execução da aplicação Carga de capacitor ---Voltagem da bateria: 9 Valor da resistência: 4 Valor da capacitância: 3 Carga desejada: 2 Tempo Carga 0.0 0.00 0.1 0.22 0.2 0.45 0.3 0.67 0.4 0.89 0.5 1.10 0.6 1.32 0.7 1.53 0.8 1.74 0.9 1.95

2. Você vai construir um programa para controlar o congelador da sua geladeira para gelar sua cerveja na temperatura que você gosta – super gelada! A idéia é que o congelador tem sensores de temperatura interna e de temperatura externa, e você pode programar a temperatura desejada para a cerveja. O visor do congelador exibe uma mensagem avi-sando quando a cerveja está na temperatura desejada, e quanto tempo foi necessário para atingir essa temperatura. Ele também avisa quando a cerveja está prestes a congelar, ou seja, quando a temperatura da cerveja chaga a 0oC.

Como não dispomos aqui desses sensores, seu programa deverá ler 3 valores de tempera-tura: a temperatura interna TC, a temperatura externa TE, isto é, a temperatura da cerveja no momento em que ela é colocada no congelador, e a temperatura desejada TD. Vamos supor que a cerveja é colocada no congelador no momento em que é informada a tempe-ratura desejada. A partir daí, a tempetempe-ratura da cerveja Ti, depois de decorridos i minutos após a cerveja ser colocada na geladeira, é calculada do seguinte modo:

T0= TE

Ti+1= Ti− K (Ti− TC)

onde K é uma constante de resfriamento, cujo valor vamos supor que seja K = 0.05. O programa deve exibir as duas mensagens solicitadas, como mostra o exemplo a seguir.

(3)

Exemplo de execução da aplicação Cerveja gelada!

---Temperatura externa: 27 Temperatura do congelador: -3 Temperatura desejada da cerveja: 4 Sua cerveja está gelada!

Temperatura = 4 C, tempo = 29 min Sua cerveja congelou!

Temperatura = -0 C, tempo = 45 min

3. Suponha que você deposita R$ 500,00 reais em uma conta de investimento, no início de cada mês. No final de cada mês, é creditado um rendimento de 1% do saldo total da conta. Por exemplo, no final do do primeiro mês, o saldo da conta seria R$ 505,00, e ao final do segundo mês seria R$ 1015,10. Escreva um programa que calcule e imprima o saldo da conta, ao final de cada mes, ao longo do período de 1 ano, a partir do mes em que é feito o primeiro depósito.

Exemplo de execução da aplicação Conta de Investimento ---Mês Saldo 1 505.00 2 1015.10 3 1530.20 \vdots 12 6404.70

4. Os plano de cargos e salários de uma determinada empresa consiste de 7 diferentes níveis de salário mensal: 1.500,00, 2.400,00, 3.500,00, 5.000,00 7.000,00, 9.000,00 e 12000. O número de empregados da empresa em cada um desses níveis de salário é, respectiva-mente: 3000, 2500, 1500, 1000, 400, 100 e 25. Escreva um programa que imprima uma tabela com os valores dos níveis de salário e o número de empregados em cada nível, e calcule e imprima também os seguintes dados:

(a) O salário mensal médio

(b) O número de empregados com salário acima e abaixo do salário médio.

(c) O salário médio pago (i.e., a soma dos salários mesnsais pagos a todos os funcioná-rios dividido pelo número de funcionáfuncioná-rios).

Exemplo de execução da aplicação Plano de Salários

---Nível Valor Empregados

1 1500.00 3000 2 2400.00 2500 3 3500.00 1500 \vdots 7 12000,00 25 Salário médio: 4900.00

Empregados com salário acima do médio: 577 Empregados com salário abaixo do médio: 7000 Média de pagamentos mensais:

(4)

mineradoras pertences à companhia Ouro Preto Minas S.A. Escreva um programa que leia os dados dessas tabelas na forma de 2 matrizes, M1e m2, respectivamente. O programa deve então calcular o lucro de cada uma das mineradoras, em cada mês, assim como o lucro total no período, de toda a companhia. Para efeito deste cálculo, considere que todo o minério produzido em um mês é vendido neste mesmo mês. Determine também qual das duas mineradoras deu maior lucro no período.

Mineradora Cachoeira Produção (ton) 1200 1000 1500 2100 1800 1500 2000 1900 Custo (R$/ton) 4,00 4,50 3,90 3,50 3,80 4,00 3,50 3,50 Venda (R$/ton) 4,50 4,50 5,00 4,80 4,50 4,10 4,50 4,70 Mineradora Itabirito Produção (ton) 1800 1500 1500 2000 1700 1600 2100 1900 Custo (R$/ton) 4,00 5,00 4,00 3,80 4,10 4,00 3,60 3,70 Venda (R$/ton) 4,50 4,50 4,80 4,50 4,70 4,10 4,60 4,70 6. Uma sequência é um palíndromo se ela é igual ao seu reverso. Por exemplo, as seguintes

sequeências de numeros inteiros são palíndromos: 0 1 0 1 2 3 3 2 1 3 2 4 7 4 2 3

Escreva um programa que leia, repetidamente, uma sequência de números (como um vetor de linha) e determine se a sequência lida é um palíndromo ou não, conforme exemplificado a seguir. O programa deve terminar quando for digitada uma sequência vazia.

Exemplo de execução da aplicação Palíndromo

---Digite uma sequência de números: [1 3 5 4 5 3 1] É um palíndromo

Digite uma sequência de números: [1 3 5 4] Não é um palíndromo

Digite uma sequência de números: [ ] Tchau

7. Escreva um programa que leia um vetor de algarismos decimais e obtenha o número de-cimal correspondente, conforme exemplificado a seguir. Seu programa deve verificar se cada elemento do vetor dado como entrada é um algarismo decimal.

Exemplo de execução da aplicação Algarismos -> Número

---Digite uma sequência de algarismos: [3 12 31] Entrada inválida!

Digite uma sequência de algarismos: [3 5 4 5 3 1] Número decimal = 34531

8. Escreva um programa que leia um número inteiro não negativo e determine a sequência de algarismos que compõem esse número. Seu programa deve verificar se a anetrada é um valor válido, isto é, um número inteiro ≥ 0, conforme exemplificado a seguir:

(5)

Exemplo de execução da aplicação Número -> Algarismos

---Digite um número inteiro >=0: 3.56 Entrada inválida!

Digite um número inteiro >=0: 34531 Número decimal = [3 5 4 5 3 1]

9. Escreva um programa que leia um número inteiro positivo n e determine todos os divisores de n, exceto o próprio n. Por exemplo:

Exemplo de execução da aplicação Divisores de n

---Digite um número inteiro positivo: 220

Divisores: 1 2 4 5 10 11 20 22 44 55 110

10. Dois números inteiros positivos n1e n2 são ditos amigos se a soma dos divisores de n1é igual a n2 e vice-versa.1 Por exemplo, 220 e 284 são números amigos, pois a soma dos divisores de 220 é 1+2+4+5+10+11+20+22+44+55+110=284 e a soma dos divisores de 284 é 1+2+4+71+142=220. A tabela a seguir relaciona alguns outros pares de números amigos:

n1 220 2620 12285 17296 69615 n2 284 2924 14595 18416 87633

Exemplo de execução da aplicação Números amigos

---Digite n1: 220 Digite n2: 284 São amigos

Exemplo de execução da aplicação Números amigos

---Digite n1: 756 Digite n2: 41 Não são amigos

11. Um número é primo se ele não é divisor de nenhum outro número exceto ele próprio e 1. Escreva um programa que leia um número inteiro positivo n e determine se ele é primo.

Exemplo de execução da aplicação Números primos

---Digite um número inteiro positivo: 4058879 Não é primo

(6)

Números primos

---Digite um número inteiro positivo: 2147483647 É primo

Dica: A solução natural para este problema consiste em testar se o número lido, n, é divisível por 2, 3, 4 · · · , e assim sucessivamente, até encontrarmos um número k, tal que n seja divisível por k, ou concluirmos que n é primo. Para que valores de k devemos testar se n divide k? Naturalmente, poderíamos testar para valores de k = 2,3,. . . (n − 1). Entretanto, podemos restringir essa faixa de valores, de modo a tornar nosso programa mais eficiente: k = 2,3,. . . , b√nc. As seguintes estratégias podem também ser adotadas para tornar o programa ainda mais eficiente:

(a) Teste inicialmente se n é par, isto é, se n é divisível por 2. Em caso afirmativo, o programa termina imediatamente, informando que n não é primo.

(b) Se n não for par, podemos testar a divisibilidade de n apenas para números ímpares, isto é, para k = 3,5,7,. . . , b√nc.

12. O valor de π pode ser aproximado pela seguinte série: π 8 = 1 1x3 + 1 5x7+ 1 9x11 + . . .

A tabela a seguir mostra como o valor calculado considerando-se n termos da série aproxima-se de π, à medida que n cresce.

n π-aprox 1 2.666666666667 2 2.895238095238 3 2.976046176046 ... 10 3.091623806668 ... 20 3.116596556794 ... 100 3.136592684839 ... 1000 3.141092653621 ... 10000 3.141542653590

Escreva um programa que leia um valor n ≥ 1 e calcule um valor aproximado para π, usando n termos da série acima.

Exemplo de execução da aplicação Valor aproximado de pi

---Número de iterações: 100 pi = 3.136592684839

13. Em Análise Numérica, o Método de Newton-Raphson é um método para encontrar apro-ximações sucessivas para os zeros de uma função f : R → R.2 Este método pode ser

(7)

usado para o cálculo de aproximações sucessivas para a raiz quadrada de um número real r, conforme explicado a seguir. Começamos "adivinhando"um valor x0 qualquer como uma aproximação para√r. A partir daí, obtemos valores cada vez mais próximos de√r , por meio de iterações sucessivas, onde, em cada iteração n ≥ 1, calculamos um valor aproximando xnpara √ r, do seguinte modo: xn = xn −1− x2n −1− r 2xn −1

Por exemplo, considere o cálculo de uma aproximação para√10, começando com x0 = 5. Por meio de iterações sucessivas, obtemos as seguintes aproximações para√10:

n xn 0 x0= 5 1 x1= x0− x20−10 2x0 = 5 − 52−10 2.5 = 3.5 2 x2= x1− x 2 1−10 2x1 = 3.5 − 3.52−10 2.3.5 = 3.1785714 3 x3= x2− x 2 2−10 2x2 = 3.1785714 − 3.17857142−10 2.3.1785714 = 3.1623194 4 x4= x3− x 2 3−10 2x3 = 3.1623194 − 3.16231942−10 2.3.1623194 = 3.1622777 ... ...

Escreva um programa para cálculo de um valor aproximado para a raiz quadrada de um número real r, usando o método de Newton. Você pode usar como uma aproximação inicial o valor x0 = r/2. Você vai construir duas diferentes versões do programa:

(a) O programa deve ler o número real r e um número inteiro positivo n e calcular um valor aproximado para√r, usando n iterações do método de Newton-Raphson.

Exemplo de execução da aplicação Cálculo de raiz quadrada

---Número: 10.5

Iterações: 10

Raiz de 10.5 = 3.240370349204

(b) O programa deve ler o número real r e um erro de aproximação desejado δ e calcular um valor aproximado para√r tal que o erro de aproximação seja ≤ δ. Em outras palavras, o programa deve calcular valores aproximados para√r em sucessivas ite-rações, até que a diferença entre os valores calculados em iterações consecutivas – xn − xn −1 – seja menor ou igual a δ. Imprima também o número de iterações requeridas para se obter uma aproximação para√r com o erro desejado.

Exemplo de execução da aplicação Cálculo de raiz quadrada

---Número: 10.5

Erro: 0.000001

Raiz de 10.5 = 3.240370349204 Número de iterações = 5

14. Uma matriz quadrada M é um quadrado mágico se todos os seguintes cálculos resultam em um mesmo valor, o qual é chamado de constante mágica da matriz M:3

• a soma de todos os valores, em cada linha de M

(8)

• a soma de todos os valores na diagonal de M

• a soma de todos os valores na diagonal secundária de M

É possível construir um quadrado mágico n × n para qualquer valor de n, exceto para n= 2. A figura a seguir ilustra um quadrado mágico 3 × 3:

Escreva um programa que leia um matriz e verifique se ela é ou não um quadrado mágico. Se a matriz dada como entrada não for uma matriz quadrada, o programa deve simples-mente responder que ela não é um quadrado mágico.

Exemplo de execução da aplicação Quadrado mágico

---Digite uma matriz quadrada: [2 7 6; 9 5 1; 4 3 8] É um quadrado mágico: k = 15

Dica:

(a) O operador de comparação de igualdade (==) pode também ser usado para verificar se todos os valores de uma matriz ou vetor são iguais ao um determinado valor. Uma expressão da forma M == n, onde M é uma matriz de números e n é um número, resulta em uma matriz de valores lógicos (%t ou %t), em que cada elemento é o resultado de comparar o elemento correspondente de M com o valor n. Por exemplo:

-->M = [1 2 1; 2 2 1] M = 1. 2. 1. 2. 2. 1. -->K = M == 1 K = T F T F F T

(b) A função and recebe como argumento uma matriz de valores lógicos M e retorna como resultado a conjunção de todos os valores de M. Por exemplo, supondo que K é a matriz do exemplo acima, teríamos:

-->and(K) ans = F -->and([%t %t %t]) ans = T

Referências

Documentos relacionados

ABSTRACT: The toxicological effects of crude ethanolic extracts (CEE) of the seed and bark of Persea americana have been analyzed on larvae and pupae of

- Remover as pastilhas usadas e retornar todo o parafuso de regulagem em seguida montar uma pastilha nova do lado da roda, empurrando com a mão a pinça no sentido do cilindro de

Varr edura TCP Window ( cont inuação) ACK- win manipulado Não Responde ACK- win manipulado ICMP Tipo 3 Firewall Negando Firewall Rejeitando Scanner de Porta... Var r edur a FI N/

Preliminarmente, alega inépcia da inicial, vez que o requerente deixou de apresentar os requisitos essenciais da ação popular (ilegalidade e dano ao patrimônio público). No

Feitiço do Segredo: deposita um segredo numa pessoa de confiança, essa pessoa fica deposita um segredo numa pessoa de confiança, essa pessoa fica sendo o &#34;Fiel do sendo o

DUAS ESPÉCIES NOVAS DE SENDAPHNE NIXON IHYMENOPTERA, BRACONIDAE, MICROGASTRINAEI DO BRASIL'..

Para os gestores de RH o seu papel não tem sido fácil, porque segundo ele não há um trabalho fácil só depende do desempenho de cada um e sua força de vontade. A contratação

Resultados: Os indivíduos obesos parecem apresentar deficiência de vitamina D decorrente da ingestão inadequada ou captação aumentada dessa vitamina pelo tecido