Baixe o app para aproveitar ainda mais
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 = x1). 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).
Compartilhar