Você está na página 1de 4

Universidade Federal de Uberlndia a Faculdade de Computao ca Programao Funcional Prof.

. Marcelo Rodrigues de Sousa ca Exerc cios para a primeira avaliao ca Exerc cio 1 Fornecidos trs valores inteiros, a, b e c, implemente uma funo que retorna e ca quantos desses trs nmeros so maiores que a mdia entre eles. Obs.: O nome da funo deve e u a e ca ser obrigatoriamente nrosAcimaDaMedia. Exerc cio 2 Construa uma funo em F# que determina a soma dos inteiros entre dois ca nmeros dados (a e b), excluindo os elementos limites do intervalo. O nome da funo deve u ca ser somaRangeAberto e como exemplo: > somaRangeAberto 1 4;; igual a 5. e Exerc cio 3 Construa uma funo em F# que determina quantos mltiplos de um inteiro a ca u existem no intervalo entre b e c (tambm inteiros), incluindo os extremos do intervalo. O nome e da funo deve ser nroMultiplosRange e como exemplo: ca > nroMultiposRange 2 1 10;; igual a 5 e, preste ateno pois e ca > nroMultiposRange 2 10 1;; tambm igual a 5. Ou seja, os nmeros b e c no esto e e u a a necessariamente em ordem crescente. Exerc cio 4 Construa uma funo em F# que determina de quantas formas poss escolher ca e vel n objetos de uma coleo original de m objetos, onde m n. Sabe-se que: ca
( )

m! m = n n!(m n)!

O nome da funo deve ser combinacoes e como exemplo: ca > combinadores 5 2;; igual a 10. e Exerc cio 5 Construa uma funo em F# que calcula a raiz quadrada inteira de um nmero ca u inteiro dado. O nome da funo deve ser raizQuadradaInteira e como exemplo: ca > raizQuadradaInteira 65;; igual a 8. e Exerc cio 6 Seja a funo abaixo escrita em F#: ca

let rec funcao3 a b = match b with | x::xs -> if a = 0 then x::xs else funcao3 (a-1) xs a) [8 pontos] Qual o resultado de > funcao3 2 [5;6;7;8];;? Justique sua resposta atravs e de um rastreamento da funo. ca b) [2 pontos] O que faz a funo funcao3? Que signicam os parmetros a e b? ca a Exerc cio 7 Seja a funo abaixo escrita em F#: ca let funcao2 x y = let rec funcao2Aux x y = if y = 0 then x else funcao2Aux y (x%y) if x < y then funcao2Aux y x else funcao2Aux x y a) [8 pontos] Qual o resultado de > funcao2 24 16;;? Justique sua resposta atravs de um e rastreamento da funo. ca b) [2 pontos] O que faz a funo funcao2? Que signicam os parmetros x e y? ca a Exerc cio 8 Seja a funo abaixo escrita em F#: ca let rec funcao1 a b c = match c with | [] -> [] | x::xs -> if x=a then b::xs else x::(funcao1 a b xs) a) [8 pontos] Qual o resultado de > funcao1 1 2 [1;2;1;3;1];;? Justique sua resposta atravs de um rastreamento da funo. e ca b) [2 pontos] O que faz a funo funcao1? Que signicam os parmetros a, b e c? ca a Exerc cio 9 Construa uma funo em F# que, dada uma lista de inteiros, uma posio e um ca ca elemento a ser inserido, retorna uma nova lista com o referido elemento na n-sima posio. e ca 2

O nome da funo deve ser inserirNesimaPosicao e como exemplo: ca > inserirNesimaPosicao [1;2;3;4] 2 9;; igual a [1;9;2;3;4] e e > inserirNesimaPosicao [1;2;3;4] 3 9;; igual a [1;2;9;3;4]. e Exerc cio 10 Construa uma funo em F# que determina se uma dada lista um pal ca e ndromo. O nome da funo deve ser palindromo e como exemplo: ca > palindromo [a;r;a;r;a];; igual a true, e > palindromo [r;o;m;a];; igual a false e Exerc cio 11 Faa uma funo que resolve a equao de primeiro grau, a x + b = 0 onde c ca ca a = 0, a e b nmeros em ponto utuante. Obs.: O nome da funo deve ser obrigatoriamente u ca resolve1grau e a funo deve retornar um valor tipo float. ca Exerc cio 12 Faa uma funo que resolve a equao de primeiro grau, a x + b = 0 onde c ca ca a = 0, a e b nmeros em ponto utuante. Obs.: O nome da funo deve ser obrigatoriamente u ca resolve1grau e a funo deve retornar um valor tipo float. ca Exerc cio 13 Fornecidos trs valores inteiros, a, b e c, implemente uma funo que retorna e ca a soma dos dois maiores elementos desses valores. Obs.: O nome da funo deve ser obrigatoca riamente soma2maiores. Exerc cio 14 Construa uma funo em F# que determina quantos divisores tem um determica nado nmero inteiro positivo. O nome da funo deve ser nroDivisores e como exemplo: u ca > nroDivisores 10 igual a 4. e Exerc cio 15 (04 pontos) Construa uma funo em F# que determina se um nmero inteiro ca u positivo primo ou no. Para tal use a funo constru no exerc anterior, lembrando-se e a ca da cio que um nmero inteiro positivo primo se apresenta 2 divisores apenas. O nome da funo u e e ca deve ser primo. Exerc cio 16 Construa uma funo em F# que determina o somatrio dos elementos primos ca o de uma lista. O nome da funo deve ser somatorioPrimos e como exemplo: ca > somatorioPrimos [19;15;17;21];; retorna 36;

Exerc cio 17 Construa uma funo em F# que intercale elementos de uma lista L1 em uma ca lista L2 , por exemplo: se L1 = [100; 200; 300] e L2 = [1; 2], ento o retorno da funo a ca ser [100;1;200;2;300]. a 3

Exerc cio 18 Construa uma funo em F# que verica se em uma lista no existe mltipla ca a u ocorrncia de algum elemento? O nome da funo deve ser naoOcorreMultiplo e como exeme ca plo: > naoOcorreMultiplo [1;2;1];; retorna false > naoOcorreMultiplo [1;2;3];; retorna true Exerc cio 19 Construa uma funo em F# que realiza a deleo de um todos as ocorrncias ca ca e de um determinado elemento em uma lista. O nome da funo deve ser deletaTodos e como ca exemplo: > deletaTodos 1 [1;2;1;2;3;1];; retorna [2;2;3];

Exerc cio 20 Construa uma funo em F# que determina o n-simo elemento em uma lista ca e circular, considerando que a cabea da lista corresponde ` posio zero. O nome da funo deve c a ca ca ser nEsimoCircular e como exemplo: > nEsimoCircular 5 [a;b;c] igual a c. e

Você também pode gostar