Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.

Slides:



Advertisements
Apresentações semelhantes
INTRODUÇÃO À COMPUTAÇÃO
Advertisements

Departamento de Informática Universidade Federal do Espírito Santo
Engenharia de Computação
Introdução à Programação: uma Abordagem Funcional PD I – Engenharia Elétrica Prof.ª Claudia Boeres 2008/2.
Departamento de Informática Universidade Federal do Espírito Santo
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 34 Departamento de Informática Centro.
A Informática.
Algoritmo e Programação
Introdução a Algoritmos
Material elaborado pela professora Alzennyr Cléa da UFRPE / DFM
INTRODUÇÃO A INFORMÁTICA
Introdução à Programação
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 34 Departamento de Informática Centro.
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 34 Departamento de Informática Centro.
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 34 Departamento de Informática Centro.
Linguagem de Montagem Visão geral.
Engenharia de Software
Software Básico Silvio Fernandes
Introdução à Informática
Lógica de Programação Módulo II
Maria Aparecida Castro Livi
INTRODUÇÃO À PROGRAMAÇÃO
Esquema básico do hardware
Componentes do Computador e noções de Arquitetura de Computadores
Linguagens de Programação
INTRODUÇÃO AO PROCESSAMENTO DE DADOS
Prof. Msc. Raul Paradeda Aula 2 Introdução
Estrutura do computador
O Portal do Estudante de Computação
Introdução a Programação
Professor Fernando Luís
Lógica de Programação UNIDADE 1 – Introdução a) Computador
Tecnologias Especificas Informática
PROGRAMAÇÃO I UNIDADE 1.
Informática Teórica Engenharia da Computação
Programação Avançada Prof. Natalia Castro Fernandes
INTRODUÇÃO – LOGICA E ALGORITMOS
INTELIGÊNCIA ARTIFICIAL
PCI- Introdução à Computação
INICIAÇÃO À INFORMÁTICA. O que são as Tecnologias de Informação ?... As Tecnologias de Informação dizem respeito a processos de tratamento, controlo e.
Introdução a Programação
Ana Duarte e Ana Marques 8ºB Nº1 e Nº2
Laboratório I Mateus Raeder Material baseado nos originais da
Semântica de Linguagens de Programação
TÉCNICAS DE PROGRAMAÇÃO
O que são, para que servem e onde podem ser utilizadas?

Fundamentos de Arquitetura da Computação
Projeto de Linguagens de Programação
ANÁLISE ESTRUTURADA DE SISTEMAS
Introdução à INFORMÁTICA
Workshop de Informática
Conceitos Básicos de Informática
METODOLOGIA, MÉTODOS E FERRAMENTAS
Introdução à Informática
Requisitos de Software
(Sistema de Processamento de Dados)
Algoritmos e Programação MC102
Processo e Qualidade.
Introdução à Informática
Introdução à Informática
Algoritmos e Programação I
SISTEMAS DE INFORMAÇÃO
SISTEMAS DE INFORMAÇÃO
Programação II Prof.ª Claudia Boeres CT IX - Sala 201 Departamento de Informática Centro Tecnológico Universidade Federal do Espírito.
Introdução a Informática
Introdução à Inteligência Artificial
PROGRAMAÇÃO DE COMPUTADORES Engenharia Unificado Prof. Leonardo Bacelar Lima Santos Departamento de Matemática
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Aula 01 Conhecendo o Computador Prof. Filipe Mutz.
Transcrição da apresentação:

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

Por que programar? para criar ferramentas para automatizar processos para simulações computacionais …

A que se destina esse curso? aprendizagem de conceitos e métodos básicos para a construção de um programa em um computador para a resolução de problemas

O que é necessário? um computador um editor de texto aprender uma linguagem de programação aprender a utilizar um interpretador de programas no linux e/ou no windows

O que é um computador? máquina de processar dados numéricos ou simbólicos hardware + dispositivos software é capaz de interpretar dados, produzir novos resultados, aceitar novos conceitos para interpretação de novas situações.

Arquitetura de Von Neumann

Hardware + dispositivos todo o processamento e armazenamento de informações em um computador são realizados via sinais digitais chamados de bits: 0 (desligado) e 1 (ligado) byte: agrupamento de 8 bits Memória: memória RAM (Random Acess Memory) memória ROM (Read Only Memory) memória auxiliar ou externa (cd, usb, disco rígido,...)

O que faz um computador? Processamento DadosResultado resolve problemas de forma automática!!!

Para que usar um computador? tradução e edição de textos reconhecimento de imagens gerenciamento de bancos roteamento de mensagens em redes de computadores …

O que é programar? identificar, organizar e codificar o conhecimento para a descrição de um conceito para o computador.

O que é necessário para programar? compreender o problema a ser resolvido; planejar uma solução; descrever a solução por meio de uma linguagem de programação; testar o programa com o objetivo de verificar se ele resolve o problema.

Fonte: google images Navegação automática de robos a) qual o problema que quero resolver? b) é preciso fornecer informações? compreensão do problema dados de entrada

Fonte: google images Navegação automática de robos c) qual a estratégia de solução que devo adotar? planejando a solução d) como automatizar o processo? codificando por meio de um programa de computador e) funciona? TESTES!!!!

Linguagem de Programação formalismo: padrões segundo os quais um agente possa interpretar e/ou descrever informação formalismo = sintaxe + semântica

Por que usar linguagem de programação? não é possível ainda usar linguagem natural para programar no computador; a linguagem de máquina é difícil de ser compreendida; são mais próximas da linguagem natural, podendo-se focar no problema e não nas dificuldades de entendimento da linguagem; tradutores.

Propriedades de um programa correção: o programa deve descrever corretamente o conhecimento segundo a intenção desejada e para cada entrada, deve executar e parar com a saída correta soma x y = x + y f x = 1/x eficiência: o programa deve usar de forma adequada os recursos da máquina (espaço de memória e tempo de execução) ordenação de elementos

Ordenação de elementos Bubble sortQuick sort Fonte: google images

Paradigmas de Linguagem de Programação uma forma específica de se pensar em programação Exemplos: – procedural – funcional partir da rua X andar 100 metros virar a direita subir e descer a ladeira virar a esquerda andar 20 metros chegou ao destino como fazer! o que fazer! Fonte: google images

Programação Funcional elaborar programas para uma máquina funcional que: – avalia expressões escritas segundo regras sintáticas bem definidas; – aceita a definição de novas funções; – avalia funções

Máquina Funcional lê expressão avalia exibe resultado 2+4 Soma de 2 e 4 6

Máquina funcional usuário: 4 – 2 resposta: 2 usuário: f resposta: definição de f não conhecida usuário: carrega arquivo com funções resposta: ok usuário: f resposta: 2 f x = x + 1 Arquivo texto

Recordando funções matemáticas associação entre elementos de dois conjuntos A e B tal que o conjunto de partida A seja igual ao domínio da função; em outras palavras: seja F uma função de A em B. Então F representa o conjunto de pares ordenados (x,y) tais que para todo x A, existe y B, tal que (x, y) F.

Função total e parcial Seja f uma função de A em B. Então: f é uma função total: Domínio (f) = A f é uma função parcial: Domínio (f) A

Exemplos a) A = {a, b, c}, B = {1, 2, 3} f: A B tq f = {(a,1), (b,1), (c,3)} b) A = {1, 2, 3}, B = {a, e, i, o, u} f: A B tq f = {(1,a), (2,e), (2,i), (3,o)} c) A = {a, b, c}, B = {1, 2, 3} f: A B tq f = {(a,1), (b,1)}

Descrições Funcionais extensional: todos os elementos são explicitados f = {(a,1), (b,2), (c,3)} intencional: os elementos são descritos através de um critério de pertinência f = {(x,y) | x e y = 2x}

Exemplos a) f: tq f (x) = 1/x b) g: tq g(y) = y – 1 c) f: tq f (x) = x 2 - 1

Exercícios 1. Conceitue programação de computadores. 2. Quais os principais paradigmas de programação e o que os diferenciam. 3. Faça uma descrição intencional da função: F = {1,3,5,7,...}. 4. Faça uma listagem de outros exemplos de programas de computador que são usados hoje em diferentes áreas do conhecimento e por diferentes profissionais. 5. Apresente exemplo de outras linguagens técnicas usadas pelo ser humano para descrever conhecimento. 6. Os conceitos de correção e de eficiência, se aplicam a qualquer artefato. Escolha 3 artefatos quaisquer e discuta os dois conceitos.