Programação de Computadores I UFOP DECOM 2013–2 Aula prática 10 Funções: Primeira Parte Resumo As atividades propostas nesta prática visam explorar as primeiras noções sobre funções definidas pelo própio programador para o desenvolvimento de suas aplicações. 1 Exercícios Tarefa 1: Força gravitacional A força gravitacional F entre dois corpos com massas m1 e m2 é dada pela equação F= Gm1 m2 r2 onde G é a constante gravitacional (6, 672 × 10 −11 N m2 /Kg 2 ), m1 e m2 são as massas dos corpos em quilogramas e r é a distância entre os dois corpos. Escreva uma função para calcular a força gravitacional entre dois corpos dadas as suas massas e a distância entre eles. Para testar sua função faça um programa principal para determinar a força sobre um satélite de 800kg em órbita a 38000km da superfície da Terra. A massa da Terra é de 5, 98 × 1024 kg. Exemplo de execução da aplicação força gravitacional: 2.21045e+08 N Solução: clear; clc; // função para calcular a força gravitacional function F = forcaGravitacional(m1, m2, r) G = 6.672E-11; F = G * m1 * m2 / r^2; endfunction // programa principal massaSatelite = 800; massaTerra = 5.98E24; distancia = 38000; forca = forcaGravitacional(massaSatelite, massaTerra, distancia); printf("força gravitacional: %g N\n", forca); 1 Tarefa 2: Funções hiperbólicas Escreva três funções para calcular o seno, o cosseno e a tangente hiperbólicas, dadas pelas equações: ex − e− x 2 ex + e− x cossenoh(x) = 2 ex − e− x tangenteh(x) = x e + e− x senoh(x) = Utilize suas funções para desenhar a forma das funções seno, cosseno e tangente hiperbólicas. Exemplo de execução do programa: Solução: clear; clc; clf; // funções hiperbólicas function y = senoh(x) y = (exp(x) - exp(-x))/2; endfunction function y = cossenoh(x) y = (exp(x) + exp(-x))/2; endfunction function y = tangenteh(x) y = (exp(x) - exp(-x))/(exp(x) + exp(-x)); endfunction // programa principal x = [-5:5]; plot(x, senoh(x), x, cossenoh(x), x, tangenteh(x)); title("Funções hiperbólicas"); xlabel("x"); ylabel("y"); legend("sinh", "cosh", "tanh"); set(gca(), "grid", [1 1]); 2