Buscar

8-Funções

Prévia do material em texto

1. Escreva duas funções para calcular o seno e o co-seno, respectivamente. No 
programa principal, crie um switch com as seguintes opções:
1 - Calcular o seno
2 - Calcular o co-seno
3 - Parar o programa
Coloque o switch dentro de um laço para permitir que o usuário utilize 
várias vezes as funções seno e co-seno. Ao escolher uma opção, o programa deve 
pedir para o usuário informar o valor de um ângulo em radianos e mostrar o valor 
do seno ou do co-seno.
As séries abaixo devem ser utilizadas para calcular o seno e o co-seno de 
forma aproximada. A função deve retornar o resultado quando a precisão for da 
ordem de 0,000001.
sin x = x - pow(x,3)/fat(3) + pow(x,5)/fat(5) - ... + pow(-1,n+1) * pow( x,2n-
1 )/ fat( 2n-1 )
cos x = 1 - pow(x,2)/fat(2) + pow(x,4)/fat(4) - ... + pow(-1,n+1) * 
pow( x,2(n-1) )/ fat( 2(n-1) )
Perceba que o sinal na frente de cada termo alterna (-+-+-+...). pow(x,n) 
returna x elevado a potência n, fat(n) é o fatorial de n(1 × 2 × 3 × ⋯ × n). Essas 
funções também precisam ser escritas.
2. Escrever uma funcao que fica constantemente pedindo ao usuário para ele 
inserir um número. Esse número é o N-ésimo termo da série de fibonacci. O 
programa deve então imprimir esse número na tela. O programa para quando o 
usuário digitar um número negativo.
 -Criar uma função que retorna para o usuário o N-ésimo termo da série de 
fibonacci. Fazer essa função de duas maneiras distintas: 
1) como parâmetro de retorno da função
2) um ponteiro como parâmetro na chamada da função
3. Implemente um programa que simule o caminhar de um pequeno robô em 
quatro direções: norte, sul, leste oeste. Para tanto, obedeça os seguintes 
protótipos:
void avançar();
void voltar();
void girar_esquerda();
void girar_direita();
void ligar();
Além dessas funções, você deverá criar três variáveis globais: a direção (int 
direcao), posição do robô no plano cartesiano x e y (int x, int y). Inicie essas 
variáveis com os valores que desejar.
A função que irá começar a lógica será a função ligar(). Nela, você deverá 
modificar a variável direcao, cujos possíveis valores são: 1 – robô aponta para o 
norte, 2 – robô aponta para o sul, 3 – robô aponta para o leste e 4 – robô aponta 
para o oeste.
Além da variável direcao, você também irá modificar as variáveis inteiras x e y 
da posição do robô no plano cartesiano, no momento que o robô quiser se 
movimentar. 
Mas como seria a lógica? A lógica de um robô depende de sua direção, ou seja, 
para onde o mesmo está apontando. Se por exemplo um robô estiver apontando 
para o NORTE e eu chamo a função avançar(), o nosso robô ira incrementar a 
variável y em uma unidade (y = y+1). Se ele estivesse olhando para o OESTE, 
então eu deveria decrementar a variável x em um unidade (x = x­1).
A funções de giro ( girar_esquerda() , girar_direita() ) também dependem 
e modificam a direção para a qual o robô esta “olhando”. Se o robô estiver 
apontando para o NORTE e a função girar_esquerda() for chamada, a variável 
direcao deverá ser alterada para OESTE, ou seja, direcao = 4.
Concluindo, na função ligar(), você deverá cria um laço infinito o qual lerá o 
seguinte menu dentro de um while:
1 – Avançar Robô
2 – Voltar Robô
3 – Girar à Esquerda
4 – Girar à Direita
Dependendo da opção selecionada, uma função é chamada, modificando as 
variáveis x, y ou direcao. Lembre-se sempre de mostrar (printf) o atual valor 
das variáveis (direcao, x e y). Cria uma função chamada imprimir() para tal. 
Esta função deverá ser chamada sempre no começo do laço (while).

Continue navegando