Programação de Computadores I UFOP DECOM 2014–1 Aula prática 7 Comandos de repetição — while Resumo Nesta aula você desenvolverá algumas aplicações para treinar o uso do comando for. Sumário 1 Resolvendo problemas 1 1 Resolvendo problemas Tarefa 1: Cálculo da média geométrica A média geométrica de um conjunto de n números x 1 , . . . , x n é definida como a raiz n-ésima do produto dos números. M= √ n x1 x2 x3 . . . x n Escreva um programa que leia a quantidade de números do conjunto e em seguida leia cada um dos números e calcula e exibe a média geométrica dos números. Exemplo de execução da aplicação Cálculo da média geométrica ----------------------------------quantidade de números: 7 digite o próximo número: 5 digite o próximo número: 6 digite o próximo número: 2 digite o próximo número: 88 digite o próximo número: 1 digite o próximo número: 36 digite o próximo número: 5 média geométrica: 7.14474 Solução: 1 clc; clear; printf("Cálculo da média geométrica\n"); printf("-----------------------------------\n"); n = input("quantidade de números: "); produto = 1; for i = 1:n x = input("digite o próximo número: "); produto = produto * x; end m = produto ^ (1/n); printf("\nmédia geométrica: %g\n", m); 2 Tarefa 2: Valor aproximado de π O valor de π pode ser aproximado pela seguinte série: π 1 1 1 = + + +··· 8 1 × 3 5 × 7 9 × 11 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 Cálculo do valor aproximado de pi ----------------------------------quantidade de iterações: 100 pi = 3.136592684839 Solução: clc; clear; printf("Cálculo do valor aproximado de pi\n"); printf("-----------------------------------\n"); n = input("quantidade de iterações: "); soma = 0; x = 1 for i = 1:n soma = soma + 1 / (x * (x+2)); x = x + 4; end piaprox = 8*soma; printf("\npi = %.12f\n", piaprox); 3 Tarefa 3: Tabela de função A função y (t) é definida por: ( −3t 2 + 5, se t ≥ 0 y (t) = 3t 2 + 5, se t < 0 Escreva um programa Scilab que gera uma tabela da função no intervalo [−9 − −9], com incrementos de 0,5, como mostsrado no exemplo de execução. Exemplo de execução da aplicação Tabela da função dada =============================== t y(t) =============================== -9.0 248.0000 -8.5 221.7500 -8.0 197.0000 -7.5 173.7500 -7.0 152.0000 -6.5 131.7500 -6.0 113.0000 -5.5 95.7500 -5.0 80.0000 -4.5 65.7500 -4.0 53.0000 -3.5 41.7500 -3.0 32.0000 -2.5 23.7500 -2.0 17.0000 -1.5 11.7500 -1.0 8.0000 -0.5 5.7500 0.0 5.0000 0.5 4.2500 1.0 2.0000 1.5 -1.7500 2.0 -7.0000 2.5 -13.7500 3.0 -22.0000 3.5 -31.7500 4.0 -43.0000 4.5 -55.7500 5.0 -70.0000 5.5 -85.7500 6.0 -103.0000 6.5 -121.7500 7.0 -142.0000 7.5 -163.7500 8.0 -187.0000 8.5 -211.7500 9.0 -238.0000 Solução: 4 clc; clear; printf("Tabela da função dada\n") printf("===============================\n"); printf("t y(t)\n"); printf("===============================\n"); for t = -9 : 0.5 : 9 do if t < 0 then y = 3*t^2 + 5 else y = -3*t^2 + 5 end printf("%4.1f %9.4f\n", t, y) end 5