Fundamentos de Algoritmos - Aula 1

Documentos relacionados
Algoritmos - Aula 3 CIC/UFRGS 2006/1. Algoritmos CIC/UFRGS Algoritmos - Aula /1

Fundamentos de Algoritmos - Aula 5

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

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

Variáveis, Expressões Aritméticas e Entrada e Saída de Dados

LP2 Laboratório de Programação 2 Ciência da Computação. Problema proposto

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

INFORMÁTICA PARA ENGENHARIA

Linguagem Computacional

Material Didático Unificado.

EXPRESSÕES ARITMÉTICAS PARTE 2

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

COBOL DB2- CICS. Prof. Maromo [Aula 5]

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

ESTRUTURAS DE REPETIÇÃO - PARTE 1

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

Java e sua Sintaxe. Estrutura mínima de um programa em Java: public class Exemplo { }

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

E.E SENADOR LUIZ NOGUEIRA MARTINS

Aula 6: Entrada e Saída

02 - Introdução ao Scilab

Portugol. Tiago Alves de Oliveira

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

SSC 0301 IC para Engenharia Ambiental

Cálculo Diferencial e Integral I

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

Material Didático Unificado.

Conceitos Básicos de Programação

Planejamento das aulas 2018 Turmas Regulares

Unidade 6: Ambiente de Programação

Métodos para a construção de algoritmo

Tipo de argumentos. valor. argumentos

Programação de Computadores. Primeiro contato

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

Alguns exercícios em pseudocódigo

INFORMÁTICA PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO

Introdução à Computação

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

Programação de Computadores III

Programação de Computadores

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

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

Algoritmos - 2. Alexandre Diehl. Departamento de Física - UFPel

Programação de Computadores

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO

Algoritmos - 1. Alexandre Diehl. Departamento de Física - UFPel

FUNÇÃO SE. = SE ([condição]; [valor se verdadeiro]; [valor se falso]). A condição pode ser efetuada usando sinais matemáticos comparativos:

Algoritmos e Programação I

5. Expressões aritméticas

TECNOLOGIA EM REDES DE COMPUTADORES. computadores. Aula 4

Algoritmos Computacionais

Fundamentos de Programação

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II

5. Expressões aritméticas

Vetores, Matrizes e Gráficos

Programação de computadores. Aula 31/08/2017

Introdução à Computação

01/08/2011. Tipos de dados Numéricos Alfanuméricos Lógicos. Numéricos. Tipos de dados. Dados Numéricos Inteiros. Dados Numéricos Reais.

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO

Matemática Discreta. Fundamentos e Conceitos da Teoria dos Números. Universidade do Estado de Mato Grosso. 4 de setembro de 2017

Conceitos Básicos de Algoritmos

Introdução aos Métodos Numéricos

Lógica Computacional. Indução Matemática. Definições Indutivas. Demonstrações por Indução. Exemplos. 25 Novembro 2013 Lógica Computacional 1

Professor conteudista: Renato Zanini

Introdução à Programação Estruturada Parte 3. Material da Prof. Ana Eliza

EXPRESSÕES ARITMÉTICAS PARTE 1

Capítulo 3 Estrutura Sequencial

Dízimas e intervalos encaixados.

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Introdução a Computação

Linguagem Haskell. Riocemar S. de Santana

Entrada/Saída, Operadores. Curso: Técnico em Informática Disciplina: Algoritmos Prof. Abrahão Lopes

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

Universidade Federal de Uberlândia Faculdade de Computação. Expressões aritméticas, relacionais e lógicas Estruturas condicionais

Lógica Computacional. Indução Matemática. Definições Indutivas. Demonstrações por Indução. Exemplos. 12 Dezembro 2016 Lógica Computacional 1

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Fundamentos de Programação Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte 15 de maio de 2018.

Funções potência da forma f (x) =x n, com n N

Algoritmos RESUMO - LINGUAGEM C

Introdução ao VisuALG

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

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Início Enquanto - GABARITO Professor: Danilo Giacobo

Expressões, Atribuições, Entrada e Saída. Givanaldo Rocha

Tipos de dados, constantes e variáveis. Prof.: Jesus

Algoritmos. Seqüência finita e ordenada de procedimentos que resolvem um determinado problema. Exemplo: O que preciso fazer para preparar um omelete?

Ciência da Computação A&P

Introdução a Programação de Jogos

MÉTODOS MATEMÁTICOS. Claudia Mazza Dias Sandra Mara C. Malta

As bibliotecas iostream e cstdlib permitem a utilização de diversos comandos de entrada e saída e funções básicas.

Fundamentos Tecnológicos

Computação I (MAB120) DCC/UFRJ

CURSO BÁSICO DE PROGRAMAÇÃO AULA 3. Revisão Estrutura de Decisão Se Então

Linguagens de Programação Aula 13

Fábio Rodrigues / Israel Lucania

CURSO BÁSICO DE PROGRAMAÇÃO AULA 3. Revisão Estrutura de Decisão Se Então

Programação de Computadores III

Transcrição:

Fundamentos de Algoritmos - Aula 1 CIC/UFRGS 2006/1

Números e Aritmética 1 espécies mais populares inteiros positivos inteiros negativos frações, ou racionais reais 5-5 2/3 17/3 #i1.4142135623731 (representação inexata de real)

Números e Aritmética 2 programador pode fazer somas: ( -5 5) + subtrações: (- 5 5) multiplicações: (* 3 4) divisões: (/ 8 12) toda expressão é parentizada e o operador vem no início seguido dos números separados por espaço

Números e Aritmética 3 Avaliação é tal como nós fazemos (* (+ 2 2) (/ (* (+ 3 5) (/ 30 10)) 2)) = (* 4 (/ (* 8 3) 2)) = (* 4 (/ 24 2)) = (* 4 12) = 48

Números e Aritmética 4 por causa da forma, nunca há dúvidas sobre ordem da avaliação compare com 3 + 4 5 com tempo e prática aprendemos que a multiplicação é feita primeiro e depois a soma

Números e Aritmética 5 Outras operações: (sqrt A) computa A (expt A B) computa A B (remainder A B) computa o resto da divisão inteira A/B (log A) computa logaritmo natural de A (sin A) computa o seno de A (em radianos)

Números e Aritmética 6 Scheme computa com inteiros e racionais EXATOS, se usarmos operações primitvas que produzem resultados exatos assim o resultado de (/ 44 14) é exibido como 22/7 Scheme (e outras linguagens) produzem valores INEXATOS quando lidam com números reais raiz quadrada de 2 não é racional e sim um real

Números e Aritmética 7 A notação i avisa o programador que o resultado é uma aproximação do valor verdadeiro (- #i1.0 #i0.9) = #i0.09999999999999998 mas (- #i1000.0 #i999.9) = #i0.10000000000002274 mesmo sabendo, da matemática, que ambas diferenças deveriam ser 0, 1 Na disciplina: números exatos

Variáveis e Programas 8 em matemática aprendemos a formular dependências entre quantidades usando VARIÁVEIS que representa uma quantidade desconhecida exemplo: um disco de raior r tem área aproximada de 3, 14.r 2 para um disco de raios 5 fazemos 3, 14.5 2 = 3, 14.25 = 78, 5

Variáveis e Programas 9 uma expressão com variáveis é uma regra que decreve como computar um número quando temos valores para as variáveis um programa é uma regra que diz como produzir um dado a partir de outro dado deve haver uma maneira de nomear regras regra para computar área de um disco (define (area-of-disk r) (* 3.14 (* r r)))

Variáveis e Programas 10 depois de definida, uma regra pode ser usada fornecendo um valor para cada veriável que segue o nome da regra (area-of-disk 5) dizemos que APLICAMOS area-of-disk para 5. (area-of-disk 5) = (* 3.14 (* 5 5)) = (* 3.14 25) = 78.5

Variáveis e Programas 11 muitos programas consomem mais do que uma entrada programa para computar a área de um anel, ou seja de de um disco com um buraco no meio área do anel é a área do disco externo menos a área do disco interno há portanto dois valores desconhecidos: o raio do disco interno e o raio do disco externo

Variáveis e Programas 12 (define (area-of-ring outer inner) (- (area-of-disk outer) (area-of-disk inner))) area-of-ring é um programa que aceita duas entradas, chamadas outer e inner resultado será a diferença entre (area-of-disk outer) e (area-of-disk inner) usamos operações básicas de Scheme e também programas definidos

Variáveis e Programas 13 Para usar area-of-ring fornecemos duas entradas (area-of-ring 5 3) Essa expressão é a valiada da seguinte forma (area-of-ring 5 3) = (- (area-of-disk 5) (area-of-disk 3)) = (- (* 3.14 (* 5 5)) (* 3.14 (* 3 3)))

Variáveis e Programas 14 =...

Enunciado de Problemas 15 raramente o problema é representar expressões aritméticas em programas descrições de problemas em geral são textos informais com ambigüidades, detalhes sem importância primeira tarefa: obter a informação relevante e só então formular a expressão apropriada

Enunciado de Problemas 16 Eis um exemplo A empresa XYX & Co. paga aos seus empregados $12 por hora. Um empregado típico trabalha de 20 a 65 horas por semana. Desenvolva um programa que alcule o salário de um empregado a partir do seu número de horas trabalhadas Se um empregado trabalha h horas, o seu salário será 12. h O programa será (define (wage h) (* 12 h))

Erros de Sintaxe 17 expressões são ou ATÔMICAS (numeros e variáveis) ou são expressões COMPOSTAS (que começam com (, seguido de operação, mais expressões e terminada por ) definições tem a seguinte forma: (define (f x... y) an-expression)

Erros de Sintaxe 18 As seguintes definições possuem erros de sintaxe: (define (P x) (+ (x) 10)) (define (Q x) x 10)

Erros de Execução 19 nem toda expressão legal possui um resultado um exemplo óbvio é (/ 1 0). da mesma forma, se definimos (define (f n) (+ (/ n 3) 2)) DrScheme não pode avaliar (f 5 8) RUN-TIME ERROR

Erros Lógicos 20 programador pode também cometer ERROS LÓGICOS erros lógicos não são detectados por DrScheme e nenhuma mensagem é produzida um programador pode evitar tais erros somente projetando seus programas com cuidado e com método exemplo de programa com erro lógico (define (wage h) (+ 12 h))

Compondo Funções 21 em geral programa consiste de várias definições programa para cálculo da área de anel possui 2 definições: area-of-ring e area-of-disk area-of-ring é a FUNÇÃO PRINCIPAL, area-of-disk é FUNÇÃO AUXILIAR

Compondo Funções 22 Eis duas versões para o cálculo da área de um anel. Qual das duas é mais legível? (define (area-of-ring outer inner) (- (area-of-disk outer) (area-of-disk inner))) e (define (area-of-ring outer inner) (- (* 3.14 (* outer outer)) (* 3.14 (* inner inner))))

Compondo Funções 23 para programas pequenos a diferença entre os dois estilos é pequena para programas maiores o uso de funções auxiliares é uma necessidade mas mesmo para programas menores devemos considerar dividir o problema com o uso de auxiliares

Exercícios 24 1. Leia os capítulos 1, 2 e 3 do livro www.htdp.org 2. Instale o DrScheme em seu computador e/ou use o DrScheme já instalado nos laboratórios 3. Experimente com o DrScheme Experimente com algumas funções pré-definidas Use a avaliação passo a passo (stepper) Force erros de sintaxe e de execução e observe as mensagens de erro produzidas pelo DrScheme