A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução à Programação

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação"— Transcrição da apresentação:

1 Introdução à Programação
Uma Abordagem Funcional

2 Revisão

3 Exercício O fatorial duplo de um número natural n é o produto de todos os números de 1 (ou 2) até n, contados de 2 em 2. Por exemplo, o fatorial duplo de 8 é 8×6×4×2 = 384, e o fatorial duplo de 7 é 7×5×3×1 = 105. Defina uma função para calcular o fatorial duplo usando recursividade. Defina uma função recursiva que recebe dois números naturais m e n e retorna o produto de todos os números no intervalo [m,n]. Usando a função definida no exercício 2, escreva uma definição não recursiva para calcular o fatorial de um número natural.

4 Exercício Recursividade
Defina uma função recursiva para calcular a soma de dois números inteiros, sem usar os operadores + e -. Utilize as funções succ e pred da biblioteca, que calculam respectivamente o sucessor e o antecessor de um valor. A raiz quadrada inteira de um número inteiro positivo n é o maior número inteiro cujo quadrado é menor ou igual a n. Por exemplo, a raiz quadrada inteira de 15 é 3, e a raiz quadrada inteira de 16 é 4. Defina uma função recursiva para calcular a raiz quadrada inteira. Obs.: pode ser necessário uma função auxiliar.

5 Listas em Haskell

6 Materiais extraído do professor Romildo

7 Listas Caracteriza-se por agregar quantidades variáveis de elementos desde que todos eles sejam de um mesmo tipo. Exemplos de listas: Números Pares; Livros lidos por uma pessoa; Disciplinas que já cursei; ...

8 Definição Uma lista é uma sequência de zero ou mais elementos de um mesmo tipo. Entende-se por sequência uma quantidade qualquer de itens dispostos linearmente. Podemos representar uma lista pela enumeração dos seus elementos, separados por vírgulas e cercados por colchetes: [ e1, e2, .., en]

9 Estrutura de uma lista Lista vazia: Nenhum elemento na sequência
Lista não vazia: Formada por dois componentes: Cabeça: o primeiro elemento da lista Cauda: lista de todos os demais elementos, a partir do segundo

10 Notação de listas O construtor constante [] denota a lista vazia;
O construtor : constrói uma lista não vazia a partir da cabeça e da cauda; O operador : é binário e com associatividade à direita. Ex.:

11 Exemplo de listas

12 Exemplo de listas

13 Exemplos de listas

14 Exemplos de listas

15 Exemplos de listas

16 Exemplos de listas

17 Notação de listas

18 String

19 Casamento

20 Casamento de padrão Casamento de padrão é a operação básica de Haskell para decompor valores estruturados. Para cada construtor de dados existe uma forma de padrão correspondente.

21 Exemplo

22 Casamento de padrão com listas

23 Casamento de padrão com listas

24 Casamento de padrão com listas

25 Casamento de padrão com listas

26 Exercícios Defina uma função usando casamento de padrão que retorna o sucessor do primeiro elemento de uma lista, se houver, e zero caso contrário. Usando casamento de padrão, defina uma função que retorna a soma dos dois primeiros elementos de uma lista se a lista tiver pelo menos dois elementos, a cabeça da lista se ela contiver apenas um elemento, e zero caso contrário.

27 Exercícios Defina uma função usando casamento de padrão que retorna uma lista com os antecessores de cada elemento de uma lista, se houver, e zero caso contrário. Defina a função isIn que dados um valor e uma lista, retorna verdadeiro se o valor está na lista e falso caso contrário. Exemplos: isIn 1 [1,2,3] -> True; isIn 2 [1,5,4] -> False; isIn 'e' "Haskell" -> True


Carregar ppt "Introdução à Programação"

Apresentações semelhantes


Anúncios Google