Linguagem Haskell. Riocemar S. de Santana

Tamanho: px
Começar a partir da página:

Download "Linguagem Haskell. Riocemar S. de Santana"

Transcrição

1 Linguagem Haskell Riocemar S. de Santana

2 Haskell, o que é? É uma linguagem de programação puramente funcional, de propósito geral. Nomeada em homenagem ao matemático americano Haskell B. Curry ( ). Concebida para ensino e também para o desenvolvimento de aplicações reais. Resultado de mais de vinte anos de investigação por uma comunidade de base acadêmica muito ativa. Implementações abertas e livremente disponíveis. Como uma linguagem funcional, a estrutura de controle primária é a função.

3 O que é a programação funcional? É um paradigma de programação. No paradigma imperativo, um programa é uma sequência de instruções que mudam células na memória. No paradigma funcional, um programa é um conjunto de definições de funções que são aplicadas a valores. Podemos programar num estilo funcional em muitas linguagens. Exemplos: Scheme, ML, O Caml, Haskell, F#

4 Programação Funcional A programação funcional modela um problema computacional como uma coleção de funções matemáticas, cada uma com um domínio de entrada e um resultado. As funções interagem e combinam entre si usando composição funcional, condições e recursão.

5 Linguagem Haskell Exemplo Para somar os números inteiros de 1 a 10 podemos escrever em linguagem C: int total = 0, i; for (i = 1; i <= 10; i++){ total = total + i; } O método da computação é baseado em atribuição de valores à variáveis.

6 Linguagem Haskell Exemplo A soma dos números inteiros de 1 a 10 em linguagem Haskell pode ser feita como: >sum[1..10] O método da computação é baseado em aplicação de argumentos à funções.

7 WinHugs

8 WinHugs Hugs é uma implementação da linguagem Haskell que pode ser executada em PCs e sistemas Unix, incluindo Linux. Pode ser obtido gratuitamente em downloading.htm

9 WinHugs Suporte para: Microsoft Windows Debian GNU/Linux Fedora Core (Linux) OpenSUSE (Linux) FreeBSD Mac OS X

10 Haskell Função Uma função pode ser representada da seguinte maneira: A partir dos valores de entrada á obtido o valor de saída.

11 Haskell Função Funções em Haskell são normalmente definidas pelo uso de equações. Por exemplo, a função soma pode ser escrita: soma x y = x + y Chamada da seguinte maneira: >soma

12 Haskell Função A função soma pode ser implementada em um arquivo (bloco de notas) e salvo com a extensão.hs

13 Haskell Função Carregando o arquivo de funções: Hugs>:load caminho

14 Haskell Função Chamando a função soma: Main>soma 10 2

15 Haskell Função Incluindo mais funções no arquivo: incrementa n = n + 1

16 Haskell Função Função que chama uma função:

17 Hugs Alguns comandos importantes:

18 Tipos básicos A linguagem Haskell possui uma disciplina rigorosa de tipos de dados, sendo fortemente tipada. Neste caso, toda função, variável, constante tem apenas um tipo de dado, que sempre pode ser determinado. Embora fortemente tipada, a linguagem Haskell possui um sistema de dedução automática de tipos para funções cujos tipos não foram definidos. A partir dos tipos pré-definidos na linguagem Haskell, novos tipos podem ser construídos pelo programador.

19 Tipos primitivos em Haskell Para definir que uma expressão E tem o tipo T (E é do tipo T) escreve-se E ::T-> Saida

20 Prototipação de tipos Exemplos: -- Função que verifica se um número inteiro é par. par::int->bool par x = if mod x 2 == 0 then True else False -- Função para converter um valor Fahrenheit em Celsius convertefc::float->float convertefc x = (x - 32)/ 1.8

21 Prototipação de tipos Tipo Booleano: O tipo booleano é representado pela abreviatura Bool e possui os valores: True ou False. Tipo Inteiro: Os inteiros são referenciados por Int, o domínio matemático dos inteiros (até ).

22 Funções do módulo Prelude O arquivo de biblioteca Prelude.hs oferece um grande número de funções definidas no padrão da linguagem através do módulo Prelude. even - verifica se um valor dado é par odd - verifica se um valor dado é impar rem - resto da divisão inteira mod - resto da divisão inteira ceiling - arredondamento para cima floor - arredondamento para baixo round - arredondamento para cima e para baixo truncate - parte inteira do número fromintegral - converte um inteiro em real sin - seno de ângulo em radianos cos - cosseno tan tangente

23 Funções do módulo Prelude (Cont...) asin - arco seno acos - arco cosseno atan - arco tangente atan - arco tangente abs - valor absoluto sqrt - raiz quadrada, valor positivo apenas exp - exponencial base e log - logaritmo natural (base e) logbase - logaritmo na base dada min - menor de 2 objetos dados max - maior de 2 objetos dados

24 Listas e Tuplas A linguagem Haskell nos fornece dois mecanismos para a construção de dados compostos: listas e tuplas. A lista possibilita a união de vários elementos todos do mesmo tipo - numa única estrutura. Numa tupla podemos combinar os componentes de um dado numa única estrutura, e os componentes podem ter tipos e propriedades distintas

25 Listas Fundamento Uma lista é uma estrutura de dados que representa uma coleção de objetos homogêneos em sequência. Para alcançar qualquer elemento, todos os anteriores a ele devem ser recuperados. Em programação, uma lista vazia (representada por [ ] em Haskell) é a estrutura base da existência de uma lista.

26 Listas Fundamento Uma lista é composta sempre de dois segmentos: cabeça (head) e corpo (tail). A cabeça da lista é sempre o primeiro elemento. ['a','b','c','d'] "abcd" > 'a':['b','c','d'] "abcd

27 Listas Operador (:) O símbolo (:) é o operador de construção de listas. Toda lista é construída através deste operador. Exemplos: Hugs> 'a':['b','c','d'] "abcd" Hugs> 2:[4,6,8] [2,4,6,8]

28 Listas Hugs> 'a':['b','c','d'] "abcd" Hugs> 1:[2,3] [1,2,3] Hugs> ['a','c','f'] == 'a':['c','f'] True Hugs> [1,2,3] == 1:2:3:[] True Hugs> 1:[2,3] == 1:2:[3] True Hugs> "papel" == 'p':['a','p','e','l'] True

29 Escrevendo Listas Pode-se definir uma lista indicando os limites inferior e superior de um conjunto conhecido, onde existe uma relação de ordem entre os elementos, no seguinte formato: [ <limite-inferior>.. <limite-superior> ] > [1..4] [1,2,3,4] > ['m'..'n'] "mn" > [1,3..6] [1,3,5] > ['a','d'..'p'] "adgjmp" > [3.1..7] [3.1,4.1,5.1,6.1,7.1]

30 Escrevendo Listas Podemos definir qualquer progressão aritmética em uma lista utilizando a seguinte notação: [ <1o. termo>, <2o. termo>.. <limite-superior> ] > [7,6..3] [7,6,5,4,3] > [6,5..0] [6,5,4,3,2,1,0] > [-5,2..16] [-5,2,9,16] > [5,6..5] [5] > [1, ] [1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0]

31 Listas por compreensão A descrição de uma lista pode ser feita em termos dos elementos de uma outra lista. Por exemplo, temos a lista L1 = [2,4,7]. Uma lista definida por compreensão pode ser escrita: > [ 2 * n n <- L1 ] [4,8,14] A lista resultante contém todos os elementos da lista L1, multiplicados por 2. Assim, podemos ler: Obtenha todos os 2*n dos elementos n contidos em L1 = [2,4,7].

32 Listas por compreensão Exemplo: listaquad = [x^2 x <- [1..30]] >listaquad [1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,28 9,324,361,400,441,484,529,576,625,676,7 29,784,841,900] listaquadinf = [ x^2 x <- [1..] ] > listaquadinf [1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,28 9,324,361,400,441,484,529,576,625,676,7 29,784,841,900,961,1024,1089,1156,1225,1296,1369,144 4,1521, > elem 4 listaquadinf True A função elem verifica se um elemento pertence a uma lista. Retorna True ou False

33 Listas Funções Pré-definidas

34 Listas Funções Pré-definidas

35 Listas Funções Pré-definidas

36 Listas Funções Pré-definidas

37 Fim. Referências Aula14.pdf

Linguagens de Programação Aula 13

Linguagens de Programação Aula 13 Linguagens de Programação Aula 13 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Suporte para a programação orientada a objetos 2 Na aula de hoje Programação Funcional Linguagem Haskell 3 Roteiro

Leia mais

Linguagem Haskell. Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação. Tiago Carneiro 19 Agosto 2013

Linguagem Haskell. Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação. Tiago Carneiro 19 Agosto 2013 Linguagem Haskell Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação Tiago Carneiro 19 Agosto 2013 1 1 Linguagem Haskell Linguagem de programação funcional É um paradigma de programação

Leia mais

Linguagens de Programação Aula 14

Linguagens de Programação Aula 14 Linguagens de Programação Aula 14 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Linguagem Haskell Funções Tipos básicos Expressões 2 Na aula de hoje Linguagem Haskell Listas 3 Listas e Tuplas

Leia mais

Listas em Haskell. Listas. Linguagem Haskell. Maria Adriana Vidigal de Lima. Faculdade de Computação - UFU. Setembro

Listas em Haskell. Listas. Linguagem Haskell. Maria Adriana Vidigal de Lima. Faculdade de Computação - UFU. Setembro em Haskell Linguagem Haskell Faculdade de Computação - UFU Setembro - 2009 em Haskell 1 em Haskell Noções sobre Construção de por Compreensão Funções Sobre Processamento de Fundamentos em Haskell Noções

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 09 Programação Funcional (Haskell) Edirlei Soares de Lima Programação Funcional A programação funcional modela um problema computacional

Leia mais

Professor: Domingos Equipe Haskell: Lucas Montesuma, Francisco Leonardo CONCEITOS DA LINGUAGEM DE PROGRAMAÇÃO CÁLCULADORA EM HASKELL

Professor: Domingos Equipe Haskell: Lucas Montesuma, Francisco Leonardo CONCEITOS DA LINGUAGEM DE PROGRAMAÇÃO CÁLCULADORA EM HASKELL Professor: Domingos Equipe Haskell: Lucas Montesuma, Francisco Leonardo CONCEITOS DA LINGUAGEM DE PROGRAMAÇÃO CÁLCULADORA EM HASKELL Sobre a Linguagem Haskell Inicialmente temos no trabalho o uso da versão

Leia mais

Introdução à Programação uma Abordagem Funcional

Introdução à Programação uma Abordagem Funcional Universidade Federal do Espírito Santo Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres boeres@inf.ufes.br CT VII - Sala 34 Departamento de Informática Centro Tecnológico

Leia mais

Programação de Computadores III

Programação de Computadores III Programação de Computadores III Introdução ao FORTRAN Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157

Leia mais

Programação de Computadores III

Programação de Computadores III Programação de Computadores III Introdução ao FORTRAN Professor Hugo de Oliveira Barbalho hbarbalho@ic.uff.br Material produzido pelo professor: Leandro Augusto Frata Fernandes (laffernandes@ic.uff.br)

Leia mais

Programação de Computadores:

Programação de Computadores: Instituto de C Programação de Computadores: Introdução ao FORTRAN Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Introdução ao FORTRAN Cinco aspectos

Leia mais

Expressões Lambda. Programação Funcional. Capítulo 7. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto

Expressões Lambda. Programação Funcional. Capítulo 7. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto Programação Funcional Capítulo 7 Expressões Lambda José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2012.1 1/64 1 Valores de primeira classe 2 Expressão lambda 3 Aplicação

Leia mais

Aula prática 14. Expressão Lambda

Aula prática 14. Expressão Lambda Programação Funcional UFOP DECOM 2014.1 Aula prática 14 Expressão Lambda Sumário Resumo Expressões lambdas são funções anônimas que podem ser usadas como qualquer outro valor de primeira classe. Nesta

Leia mais

Pedro Vasconcelos DCC/FCUP. Programação Funcional 3 a Aula Definição de funções

Pedro Vasconcelos DCC/FCUP. Programação Funcional 3 a Aula Definição de funções Programação Funcional 3 a Aula Definição de funções Pedro Vasconcelos DCC/FCUP 2014 Definição de funções Podemos definir novas funções simples usando funções pré-definidas. minuscula :: Char -> Bool minuscula

Leia mais

Introdução à Ciência da Computação

Introdução à Ciência da Computação Introdução à Ciência da Computação Unidade III Programação de Computadores com Octave Uso do Octave no Modo Interativo Prof. Roberto M. de Faria/DSC/UFCG Ajuda para o Octave Para ter acesso à documentação

Leia mais

INFORMÁTICA PARA ENGENHARIA

INFORMÁTICA PARA ENGENHARIA INFORMÁTICA PARA ENGENHARIA Prof. Fabiano Taguchi fabianotaguchi@gmail.com O QUE ESPERAR DAS AULAS? Exercícios de lógica de programação para construção de códigos; Manipulação do software Scilab para cálculos;

Leia mais

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N! Declarações Os nomes das variáveis devem conter apenas letras, dígitos e o símbolo _ Os principais tipos são: int, float, double e char Exemplos: int n; int quantidade_valores; float x, y, somavalores;

Leia mais

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO VARIÁVEL LINGUAGEM C Aula 3 TECNOLOGIA EM JOGOS DIGITAIS LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO Marcelo Henrique dos Santos Marcelo Henrique dos Santos Mestrado em Educação (em andamento) MBA em Negócios

Leia mais

Aula 04: Fluxogramas e condicionais

Aula 04: Fluxogramas e condicionais Aula 04: Fluxogramas e condicionais Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Introdução ao C/C++ Variáveis

Leia mais

Processamento da Informação Teoria Funções

Processamento da Informação Teoria Funções Processamento da Informação Teoria Funções Semana 01 Prof. Jesús P. Mena-Chalco 27/04/2013 Funções No contexto de linguagens de programação, uma função é uma sequência de instruções utilizada para realizar

Leia mais

ACOS ASIN CEIL. Código:

ACOS ASIN CEIL. Código: Este método tem a função de retornar o valor absoluto de um número. Isto significa que o valor será sempre positivo. Caso seja utilizado um valor negativo à este método. Ele será retornado como positivo.

Leia mais

Expressões Condicionais

Expressões Condicionais Programação Funcional Capítulo 4 Expressões Condicionais José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2012.1 1/39 1 Combinando funções 2 Expressão condicional 3

Leia mais

Linguagens de Programação Funcional

Linguagens de Programação Funcional Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A

Leia mais

Aula prática 5. Funções Recursivas

Aula prática 5. Funções Recursivas Programação Funcional UFOP DECOM 2014.1 Aula prática 5 Funções Recursivas Resumo Definições recursivas são comuns na programação funcional. Nesta aula vamos aprender a definir funções recursivas. Sumário

Leia mais

Funções de Ordem Superior

Funções de Ordem Superior Programação Funcional Capítulo 7 Funções de Ordem Superior José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2013.2 1/37 1 Funções de Ordem Superior 2 Composição de funções

Leia mais

Universidade Federal do Espírito Santo. Programação II. CT IX - Sala 206 Departamento de Informática Centro Tecnológico

Universidade Federal do Espírito Santo. Programação II. CT IX - Sala 206 Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Programação II Prof.ª Claudia Boeres (boeres@inf.ufes.br) CT IX - Sala 206 Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Linguagem

Leia mais

Expressões Condicionais

Expressões Condicionais Programação Funcional Capítulo 4 Expressões Condicionais José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2013.1 1/38 1 Combinando funções 2 Expressão condicional 3

Leia mais

Unidade 6: Ambiente de Programação Prof. Daniel Caetano

Unidade 6: Ambiente de Programação Prof. Daniel Caetano Lógica de Programação para Engenharia 1 Unidade 6: Ambiente de Programação Prof. Daniel Caetano Objetivo: Apresentar o uso de funções prontas do Portugol e do C/C++ para efeturar cálculos mais complexos.

Leia mais

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio

Leia mais

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

Introdução ao SciLab. SciLab O que é? Onde obter o programa: Introdução ao SciLab SciLab O que é? SciLab é uma plataforma interativa para computação numérica composta de uma rica coleção de algoritmos numéricos e de uma linguagem de programação associada. CN04 2010

Leia mais

Aula 08: Repetição (Parte 3)

Aula 08: Repetição (Parte 3) Aula 08: Repetição (Parte 3) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão

Leia mais

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701 www.decom.ufop.br/red AULA TEÓRICA 02 1 Prof. Marcelo Luiz Silva Red CONTEÚDOS DA AULA

Leia mais

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. Fundamentos de Programação Turma CI-240-EST Josiney de Souza josineys@inf.ufpr.br Agenda do Dia Aula 5 (18/09/15) Resolução de alguns problemas Aula anterior: soma-produto-media, amd2dias, segundos2hms

Leia mais

Material Didático Unificado.

Material Didático Unificado. Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material

Leia mais

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Algoritmos e Técnicas de Programação. Professora: Luciana Faria Algoritmos e Técnicas de Programação Professora: Luciana Faria Entrada e Saída de Dados Funções matemáticas #include Função ceil cos exp fabs floor log log10 pow sin sqrt tan Exemplo ceil(x)

Leia mais

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo Este documento explica como transformar um algoritmo escrito na forma pseudocódigo

Leia mais

Introdução à Linguagem C. Adaptado de Deise Saccol

Introdução à Linguagem C. Adaptado de Deise Saccol Introdução à Linguagem C Adaptado de Deise Saccol 1 Tradução CÓDIGO FONTE... LET SOMA = VAR1 + TOTAL... TRADUTOR CÓDIGO OBJETO... 00010110111001011001011010... MONTADOR (assembler) Tradutor para linguagens

Leia mais

Algoritmos RESUMO - LINGUAGEM C

Algoritmos RESUMO - LINGUAGEM C Algoritmos RESUMO - LINGUAGEM C 1 Sintaxe da linguagem C Componentes reconhecidos pela linguagem C (sintaxe da linguagem): tipos propriedades dos dados; declarações partes do programa, podendo dar significado

Leia mais

Universidade Federal do Espírito Santo. Programação II. CT IX - Sala 201 Departamento de Informática Centro Tecnológico

Universidade Federal do Espírito Santo. Programação II. CT IX - Sala 201 Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Programação II Prof.ª Claudia Boeres (boeres@inf.ufes.br) CT IX - Sala 201 Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Linguagem

Leia mais

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática INF1005 Programação I Pontifícia Universidade Católica Departamento de Informática 1 INF1005 Expressões e Operadores Pontifícia Universidade Católica Departamento de Informática 2 Farinha, açúcar, manteiga,fermento...

Leia mais

Paradigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I

Paradigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I Paradigmas Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I OO Simula-67, Smalltalk, C++, Eiffel, Object Pascal,

Leia mais

Material Didático Unificado.

Material Didático Unificado. Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material

Leia mais

Oficina: Programação para Android com o App Inventor. Profª. Alana Gama Licencianda em Ciências da Computação IF Baiano Campus Senhor do Bonfim

Oficina: Programação para Android com o App Inventor. Profª. Alana Gama Licencianda em Ciências da Computação IF Baiano Campus Senhor do Bonfim Oficina: Programação para Android com o App Inventor Profª. Alana Gama Licencianda em Ciências da Computação IF Baiano Campus Senhor do Bonfim Desenvolver o quinto Item da lista (Programação) Testa uma

Leia mais

Introdução a Linguagem C

Introdução a Linguagem C Introdução a Linguagem C Professor: Juliano Lucas Gonçalves juliano.goncalves@ifsc.edu.br Agenda Histórico Estrutura básica de um programa em C Diretivas para o processador Bibliotecas Ambiente de desenvolvimento

Leia mais

Programação Funcional

Programação Funcional Programação Funcional Lucília Camarão de Figueiredo Universidade Federal de Ouro Preto lucilia@dcc.ufmg.br Aula 04: Definição de funções 1 DEFINIÇÃO DE FUNÇÕES f x1 x2...xn = E Define uma função f de tipo

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Fabio Mascarenhas - 2015.2 http://www.dcc.ufrj.br/~fabiom/lp Introdução Quais das expressões abaixo têm o mesmo significado? (vector-ref a 42) Introdução Quais das expressões

Leia mais

Portugol. Tiago Alves de Oliveira

Portugol. Tiago Alves de Oliveira Portugol Tiago Alves de Oliveira Revisando Algoritmo: Sequência finita de passos que levam à execução de uma tarefa Claro e preciso. Ex. somar dois números Algoritmo precisa seguir uma sequência lógica

Leia mais

Programação Funcional Capítulo 3 Tipos e Classes

Programação Funcional Capítulo 3 Tipos e Classes Programação Funcional Capítulo 3 Tipos e Classes José Romildo Malaquias 2012.1 Departamento de Computação Universidade Federal de Ouro Preto 1 / 68 1 Valores, expressões e tipos 2 Listas 3 Tuplas 4 Funções

Leia mais

Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage. Introdução à Programação

Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage. Introdução à Programação Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage Introdução à Programação Construção de Algoritmos Algoritmo é uma seqüência finita de ações que descrevem como um problema

Leia mais

Conhecendo a Linguagem de Programação C

Conhecendo a Linguagem de Programação C Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Conhecendo a Linguagem de Programação C DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Como

Leia mais

Utilização da Linguagem C

Utilização da Linguagem C Histórico Criada em 1972 por Dennis Ritchie Usada no desenvolvimento do sistema operacional Unix no Bell Labs C foi derivada da linguagem B, desenvolvida por Ken Thompson Linguagem procedural de alto nível

Leia mais

Aula Prática 2. Paradigmas da Programação I / Programação Funcional

Aula Prática 2. Paradigmas da Programação I / Programação Funcional Aula Prática 2 Paradigmas da Programação I / Programação Funcional ESI/MCC 1 o ano (2005/2006) Nesta aula pretende-se introduzir os conceitos seguintes: valores e expressões; tipos básicos e tipos compostos;

Leia mais

Aula 12- Variáveis e valores reais

Aula 12- Variáveis e valores reais Aula 12- Variáveis e valores reais Até agora todos os nossos problemas continham apenas valores inteiros e portanto variáveis do tipo int. Para resolver problemas que usam valores com parte fracionária,

Leia mais

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

Material Didático Unificado. Variáveis correspondem a nomes para endereços de memória que são gerenciados pelo Scilab.

Material Didático Unificado. Variáveis correspondem a nomes para endereços de memória que são gerenciados pelo Scilab. Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material

Leia mais

Layout. Módulos. Normalmente, cada módulo está armazenado num ficheiro com o mesmo nome do módulo. Exemplo.hs

Layout. Módulos. Normalmente, cada módulo está armazenado num ficheiro com o mesmo nome do módulo. Exemplo.hs Layout Ao contrário de quase todas as linguagens de programação, o Haskell não necessita de marcas para delimitar as diversas declarações que constituem um programa. Em Haskell a identação do texto (isto

Leia mais

Aula Prática 3. Paradigmas da Programação I / Programação Funcional. ESI/MCC 1 o ano (2005/2006)

Aula Prática 3. Paradigmas da Programação I / Programação Funcional. ESI/MCC 1 o ano (2005/2006) Aula Prática 3 Paradigmas da Programação I / Programação Funcional ESI/MCC 1 o ano (2005/2006) Nesta aula pretende-se que os alunos: consolidem os conceitos de expressão, tipo e redução; compreendam a

Leia mais

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com (66) 9953-7642 AULA 02 Revisão de conteúdos da aula passada Exercícios de revisão da aula 01 Estruturas condicionais

Leia mais

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Programação de Computadores I BCC701 www.decom.ufop.br/moodle Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada

Leia mais

Computação 1. Aula 4 - Teórica Professor: Leonardo Carvalho

Computação 1. Aula 4 - Teórica Professor: Leonardo Carvalho Computação 1 Aula 4 - Teórica Professor: Leonardo Carvalho Planejamento Relembrando Valores numéricos int, float operações: + - * / // ** % Variáveis atribuição simples e múltipla Sequências: str, tuple,

Leia mais

Pedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes

Pedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes Programação Funcional 2 a Aula Tipos e classes Pedro Vasconcelos DCC/FCUP 2012 Tipos Um tipo é um nome para uma coleção de valores relacionados. Por exemplo, o tipo Bool True contém dois valores lógicos:

Leia mais

Aula 02 - Introdução ao Scilab (p1)

Aula 02 - Introdução ao Scilab (p1) BCC701- Programação de Computadores I Aula 02 - Introdução ao Scilab (p1) Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM http://www.decom.ufop.br/bcc701 BCC701-2019-01 DECOM

Leia mais

Tipos de Dados. Capítulo Tipos de Base

Tipos de Dados. Capítulo Tipos de Base Capítulo 2 s de Dados O Haskell é uma linguagem de programação com uma disciplina de tipos rigorosa ( strongly typed ), quer isto dizer que toda a entidade num programa em Haskell tem um, e um só, tipo,

Leia mais

Matlab Noções introdutórias. Roteiro para aula

Matlab Noções introdutórias. Roteiro para aula Matlab Noções introdutórias Roteiro para aula Matlab- Variáveis Pode-se criar variáveis na área de trabalho Comandos encerrados com ; não geram eco na área de trabalho >> a = 65 a = 65 >> a = 65; >> Matlab-

Leia mais

Unidade 6: Ambiente de Programação

Unidade 6: Ambiente de Programação Lógica de Programação para Engenharia 1 Unidade 6: Ambiente de Programação Prof. Daniel Caetano Objetivo: Apresentar o uso de funções prontas do Portugol e do C/C++ para efeturar cálculos mais complexos.

Leia mais

Unidade 6: Ambiente de Programação Prof. Daniel Caetano

Unidade 6: Ambiente de Programação Prof. Daniel Caetano Informática para Engenharia 1 Unidade 6: Ambiente de Programação Prof. Daniel Caetano Objetivo: Apresentar o uso de funções prontas do Portugol e do Python para efeturar cálculos mais complexos. Bibliografia:

Leia mais

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

Introdução à Programação. Uma Abordagem Funcional Introdução à Programação Uma Abordagem Funcional Tipos em Haskell Linguagem fortemente tipada Em Haskell, conhecendo-se o tipo das operações e funções que compõem uma expressão podemos determinar o tipo

Leia mais

Unidade 3: Linguagem de programação

Unidade 3: Linguagem de programação Unidade 3: Linguagem de programação 3.3. Primeiros passos Iniciaremos os primeiros passos no aplicativo Scilab abrindo a janela principal, ilustrada na Figura 3.1. Aprenderemos inicialmente a realizar

Leia mais

Módulo 7. Funções. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)

Módulo 7. Funções. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio) Módulo 7 Funções Algoritmos e Estruturas de Dados I C++ (Rone Ilídio) Funções Conjunto de instruções acessadas através de um nome Implementadas uma única vez e executadas quantas necessárias Importantes

Leia mais

Fluxogramas e variáveis

Fluxogramas e variáveis Fluxogramas e variáveis Patrícia de Siqueira Ramos UNIFAL-MG, campus Varginha 11 de Março de 2019 Patrícia de Siqueira Ramos Fundamentos da programação 1 / 20 Fases de um algoritmo Patrícia de Siqueira

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Tipos de Dados, Expressões, Operadores e Comandos Básicos Prof.: Julliano Rosa Nascimento julliano.rn@gmail.com Roteiro Tipos de Dados: Revisão Expressões Operadores Comandos Básicos

Leia mais

Pedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes

Pedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes Programação Funcional 2 a Aula Tipos e classes Pedro Vasconcelos DCC/FCUP 2014 Tipos Um tipo é um nome para uma coleção de valores relacionados. Por exemplo, o tipo Bool True contém dois valores lógicos:

Leia mais

Tipo de argumentos. valor. argumentos

Tipo de argumentos. valor. argumentos Operação Numero de argumentos Tipo de argumentos valor (+ ) 2 ou + Numérico Soma ( ) 2 ou + Numérico Subtração ( ) 1 Numérico Simétrico (/ ...) 2 ou + Numérico Divisão (cos

Leia mais

Processamento da Informação

Processamento da Informação Processamento da Informação Fabrício Olivetti de França 02 de Fevereiro de 2019 Topics 1. Tipos Padrões 2. Variáveis Auxiliares 3. Condicionais 1 Tipos Padrões Tipos Padrões A linguagem Python fornece

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO Prof. Dr. Daniel Caetano 2013-1 Objetivos Entender como avaliar divisibilidade Conhecer as funções matemáticas prontas do C/C++ Capacitar o

Leia mais

Programação Estruturada Prof. Rodrigo Hausen VAMOS USAR O LINUX. SE TIVER ENTRADO NO WINDOWS, REINICIE O COMPUTADOR.

Programação Estruturada Prof. Rodrigo Hausen   VAMOS USAR O LINUX. SE TIVER ENTRADO NO WINDOWS, REINICIE O COMPUTADOR. Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Expressões e Funções VAMOS USAR O LINUX. SE TIVER ENTRADO NO WINDOWS, REINICIE O COMPUTADOR. 1 TIPOS PRIMITIVOS EM C Numéricos:

Leia mais

Vírgula flutuante. Tipos float, double, long double. Uso de funções. Exercícios

Vírgula flutuante. Tipos float, double, long double. Uso de funções. Exercícios Vírgula flutuante. Tipos float, double, long double. Uso de funções. Exercícios David Déharbe 1 1 Objetivos da aula Complementar os conhecimentos sobre a construção de expressões Novos tipos para valores

Leia mais

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO Prof. Dr. Daniel Caetano 2013-2 Objetivos Entender como avaliar divisibilidade Conhecer as funções matemáticas prontas do C/C++ Capacitar o

Leia mais

Aula 03 - Introdução ao Scilab (p2)

Aula 03 - Introdução ao Scilab (p2) BCC701- Programação de Computadores I Aula 03 - Introdução ao Scilab (p2) Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM http://www.decom.ufop.br/bcc701 BCC701-2019-01 DECOM

Leia mais

CCO 016 / COM 110 Fundamentos de Programação

CCO 016 / COM 110 Fundamentos de Programação CCO 016 / COM 110 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 06 Operações matemáticas Comandos Sequenciais Comandos Sequenciais na Linguagem de

Leia mais

Programação Funcional BCC222. Aulas 5,6. Mais sobre recursão

Programação Funcional BCC222. Aulas 5,6. Mais sobre recursão Programação Funcional BCC222 Aulas 5,6 Mais sobre recursão Lucília Camarão de Figueiredo Departamento de Ciência da Computação Universidade Federal de Ouro Preto Parte I Booleanos e Caracteres Operadores

Leia mais

Python - Variáveis e expressões

Python - Variáveis e expressões Python - e expressões Prof. Paulo H R Gabriel (com base no material do Prof. André Backes) Linguagem de Máquina Computador entende apenas pulsos elétricos Presença ou não de pulso 1 ou 0 Tudo no computador

Leia mais

Introdução ao Scilab. Comandos de entrada e saída de dados.

Introdução ao Scilab. Comandos de entrada e saída de dados. BCC701 Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência da Computação www.decom.ufop.br/bcc701 2012/01 Semana 02: Introdução ao Scilab. Comandos de entrada e saída

Leia mais

CAPÍTULO 2 PROGRAMAÇÃO IMPERATIVA: a Linguagem Pascal

CAPÍTULO 2 PROGRAMAÇÃO IMPERATIVA: a Linguagem Pascal Métodos de Programação I Departamento de Matemática, FCTUC 16 CAPÍTULO 2 PROGRAMAÇÃO IMPERATIVA: a Linguagem Pascal 2.1 Programação: Conceitos Fundamentais 2.1.1 Fases de construção de um programa executável

Leia mais

Funções Padronizadas na Linguagem de Programação

Funções Padronizadas na Linguagem de Programação Faculdade de Engenharia da Computação Disciplina: Lógica de Programação Funções Padronizadas na Linguagem de Programação Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis Wagner Santos C.

Leia mais

Anexo A. Resumo dos principais procedimentos do Scheme

Anexo A. Resumo dos principais procedimentos do Scheme Para processamento de booleanos Anexo A Resumo dos principais procedimentos do Scheme #f falso #t verdadeiro (boolean? x) se x for booleano, devolve #t se não, devolve #f (and x1 x2 x3...) calcula x1,

Leia mais

Operadores e Estruturas de Decisão. Vanessa Braganholo

Operadores e Estruturas de Decisão. Vanessa Braganholo Operadores e Estruturas de Decisão Vanessa Braganholo vanessa@ic.uff.br Aula de hoje } Operadores } Aritméticos (usados em contas) } Relacionais (usados em comparações numéricas) } Lógicos (usados em comparações

Leia mais

Execução de instruções. Aula nº4

Execução de instruções. Aula nº4 Execução de instruções Aula nº4 Sumário Funções Selecção simples de instruções Operadores lógicos Selecção composta de instruções Selecção múltipla Exercícios Algoritmos computacionais Acções de um algoritmo

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Introdução à Linguagem C 1 Histórico da Linguagem C Criada por Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da linguagem C O sistema Unix é escrito

Leia mais

Introdução à Ciência da Computação Disciplina:

Introdução à Ciência da Computação Disciplina: Introdução à Ciência da Computação Disciplina: 113913 Prof. Edison Ishikawa Python 3.0 Capítulo 3 Funções Sumário Chamadas de funções Conversão entre tipos Coerção entre tipos Funções matemáticas Composição

Leia mais

TCC 00308: Programação de Computadores I Operadores e Estruturas de Decisão

TCC 00308: Programação de Computadores I Operadores e Estruturas de Decisão TCC 00308: Programação de Computadores I 2017.1 Operadores e Estruturas de Decisão Operadores aritméticos Operador Exemplo Prioridade (x) (1 + 2) * 3 9 1 ** 2 ** 3 8 2 +x +15 3 -x -(5+3) -8 3 * 5 * 3 15

Leia mais

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Conceitos Linhas de Código de um Algoritmo ou Programa escrita do programa linha a linha, ou seja, a sintaxe do programa, podendo-se

Leia mais

PCI- Operadores, Expressões e Funções. Profa. Mercedes Gonzales Márquez

PCI- Operadores, Expressões e Funções. Profa. Mercedes Gonzales Márquez PCI- Operadores, Expressões e Funções. Profa. Mercedes Gonzales Márquez Constantes São valores previamente determinados e que não se alteram ao longo do programa. Assim como as variáveis, as constantes

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Fabrício Olivetti de França 14 de Junho de 2018 1 λ-cálculo 2 Computabilidade Computabilidade é uma área de estudo central da Ciência da Computação. Ela estuda a possibilidade

Leia mais

Programação Funcional

Programação Funcional Programação Funcional Capítulo 2 Primeiros Passos José Romildo Malaquias 2012.1 Departamento de Computação Universidade Federal de Ouro Preto 1 / 39 1 Glasgow Haskell Compiler 2 O módulo Prelude 3 Aplicação

Leia mais

Programação Funcional

Programação Funcional Programação Funcional Lucília Camarão de Figueiredo Universidade Federal de Ouro Preto lucilia@dcc.ufmg.br Aula 07: Funções de Ordem Superior 1 INTRODUÇÃO Uma função é chamada função de ordem superior

Leia mais

Linguagem Funcional Haskell

Linguagem Funcional Haskell Bacharelado em Ciência da Computação PARADIGMAS DE PROGRAMAÇÃO Linguagem Funcional Haskell Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Principais Linguagens Funcionais LISP (John McCarthy,

Leia mais

Operadores e Estruturas de Decisão. Vanessa Braganholo

Operadores e Estruturas de Decisão. Vanessa Braganholo Operadores e Estruturas de Decisão Vanessa Braganholo vanessa@ic.uff.br Aula de hoje Operadores Aritméticos (usados em contas) Relacionais (usados em comparações numéricas) Lógicos (usados em comparações

Leia mais