Matrizes como imagens Funções definidas pelo programador: Âmbito das variáveis Apresentação do projecto

Documentos relacionados
Computação e Programação

Computação e Programação

Computação e Programação

Funções definidas pelo programador: Passagem de argumentos Formas de Funções comuns Programas modulares

Programação em MATLAB

Computação e Programação

Computação e Programação

Computação e Programação

Computação e Programação

Computação e Programação

Programação em MATLAB

Computação e Programação

Computação e Programação

Programação em MATLAB

COMPUTAÇÃO E PROGRAMAÇÃO

Computação e Programação

Computação e Programação

Computação e Programação

Computação e Programação. MEMec - LEAN 1º Semestre

Programação em MATLAB

COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2010/2011 MEMec, LEAN

Cell arrays e estruturas: exemplos

Computação e Programação

Computação e Programação

1 - Ambiente de desenvolvimento

RESOLUÇÃO. Computação e Programação (2009/2010-1º Semestre) 1º Teste (11/11/2009) Nome. Número. Leia com atenção os pontos que se seguem:

Tópicos avançados sobre funções (cont.)

Computação e Programação

COMPUTAÇÃO E PROGRAMAÇÃO

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

Compilador de LP3 para C3E e P3

Computação e Programação

Computação e Programação (2010/2011-1º Semestre)

I-3 Introdução ao Matlab

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Computação e Programação 201*/201* - 1º Semestre

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

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

Mini curso básico. Gilberto A. S. Segundo Fábio Carmo. Programa de Educação Tutorial

Valdex Santos. 09 de junho de 2011

Legibilidade do código fonte

COMPUTAÇÃO E PROGRAMAÇÃO

FACCAT Sistemas de Informação. Estruturas de Dados

Computação e Programação

Programação em Matlab. Apenas Âmbito e Erros de programação

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

Introdução ao MATLAB. Parte II. Afonso Paiva ICMC-USP

Desenho/Formas SmartArt

Problema 2 (1 valor) M = [50:2:248 ; 249:-2:51] Problema 3 (1 valor)

Sistemas e Sinais (LEE & LETI)

Computação e Programação

Projecto e Desenvolvimento de Programas

Tópicos avançados sobre funções

Computação e Programação

Computação e Programação

Programação de Computadores I Estrutura de um Programa Procedimentos de Entrada e Saída PROFESSORA CINTIA CAETANO

Introdução ao MATLAB. Parte 2

Estudando com o MATLAB

Computação e Programação (2010/2011-1º Semestre)

MATLAB. Programação básica. Abordagem topo-base. Início. Definição das. Divisão em Sub-problemas. Divisão em Sub-problemas. Abordagem topo-base

Exemplo 1. t = [0:2:20] ; g = 9.81; m = 68.1; cd = 0.25; v = sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t); plot(t, v) 2013/02/14

Módulo 1a: Introdução ao Visual Basic for Applications (VBA)

Escrever scripts de PHP com HTML

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica. lmax Rodrigues. lcaroline Pereira. lnayara Medeiros

INTRODUÇÃO AO MATLAB. Hélder P. Oliveira

Programação Estruturada Aula - Estruturas de Repetição

2 Programação de Simulink S-functions

Introdução à Linguagem C

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

Computação e Programação

COMPUTAÇÃO E PROGRAMAÇÃO

Algoritmos e Programação

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Programação em MATLAB

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

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

Aplicações de Programação CNC/ISO com Microcomputador. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

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

Construção de Sites 2. Prof. Christiano Lima Santos

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Computação e Programação (2009/2010-1º Semestre)

4. Constantes. Constantes pré-definidas

Vetores. e o programa deverá ler os valores separadamente:

Computação e Programação MEMec - LEAN

Algoritmos e Programação

Introdução à Programação Aula 07. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Estruturas de Repetição

Introdução à programação em C#

Licenciatura em Informática

Modulo 2 Gestão de Base

Linguagem C estruturas de repetição

Introdução a Sistemas Abertos. Shell Script

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 04 Algoritmos e Programação Estruturada

Programação 2017/2018 2º Semestre

Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional. Rodrigo Barbosa de Santis

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB

COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2010/2011 MEMec, LEAN

Engenharia Biomédica Jorge Henriques, Fevereiro, 2007

Aula 4 Estruturas de Controle

Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre

Transcrição:

Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 7 Matrizes como imagens Funções definidas pelo programador: Âmbito das variáveis Apresentação do projecto D.E.M. Área Científica de Controlo Automação e Informática Industrial Wrap Up da última aula Quais as estruturas de repetição do MATLAB? for while Quando se utiliza uma e outra? forquando se pretende que o programa execute a repetição um número pré-determinado de vezes whilequando o número de repetições a executar depende de alguma condição lógica e não pode ser previsto à partida elo programa Computação e Programação 2015 / 2016 2 1

Wrap Up da última aula O que é um ciclo infinito? É um problema que pode ocorrer nos ciclos while quando a condição de paragem nunca é satisfeita Para que serve a instrução break Serve para interromper um ciclo whilenalgum ponto da sequência a ser repetida, permitindo executar a 1ª parte dessa sequência pelo menos uma vez Computação e Programação 2015 / 2016 3 Alinhamento da AT 7 Matrizes como imagens Funções definidas pelo programador: Âmbito das variáveis Computação e Programação 2015 / 2016 4 2

Função pré-definida image Descrição: Representa uma matriz na forma de uma imagem Sintaxe: image(c) image(c,'propriedade',valor,...) >> A = [0:10:60; 10:10:70; 20:10:80] A = 0 10 20 30 40 50 60 10 20 30 40 50 60 70 20 30 40 50 60 70 80 >> image(a) Computação e Programação 2015 / 2016 5 Função pré-definida colormap Descrição: Escolhe uma tabela de cores para representação de matrizes Sintaxe: colormap(map) Existem várias tabelas de cores pré-definidas no Matlab, embora seja fácil ao utilizador definir a sua própria tabela. Computação e Programação 2015 / 2016 6 3

Exemplo >> A = [0:5:100; 10:5:110; 20:5:120]; >> image(a) >> imagesc(a) >> colormap(bone) >> colormap(winter) >> colormap(hot) Semelhante a image, mas ajusta a tabela de cores aos valores máximo e mínimo da matriz Computação e Programação 2015 / 2016 7 Função pré-definida imread Descrição: Lê uma imagem de um ficheiro para uma matriz (nos formatos suportados) Sintaxe: imread(ficheiro) imread(ficheiro,formato) >> B = imread('koala.jpg'); >> image(b) Computação e Programação 2015 / 2016 8 4

Função pré-definida imwrite Descrição: Grava uma matriz como imagem(nos formatos suportados, ver ajuda da função) Sintaxe: imwrite(matriz,ficheiro) imwrite(matriz,ficheiro,formato) >> B(:,:,1:2) = 0; >> image(b) >> imwrite(b,'koala_azul.jpg') Computação e Programação 2015 / 2016 9 Trabalhar com o PlotEditMode Botão para modo de edição Adicionar legenda, texto e setas Barra de ferramentas de edição Clickpara seleccionar objecto Posicionar rótulos e outros objectos por click e arrasto Clickno botão direito do rato para aceder às propriedades do objecto Computação e Programação 2015 / 2016 10 5

Trabalhar com o Ploting Tools Subplots Activar as Ploting Tools Figura Figure Pallete Plot Browser Adicionar dados Property Editor Property Inspector Computação e Programação 2015 / 2016 11 Formatação avançada de gráficos >> x = -pi:pi/10:pi; >> y = tan(sin(x)) - sin(tan(x)); >> plot(x,y,'rs--','linewidth',2,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',10) Computação e Programação 2015 / 2016 12 6

Implementação de Algoritmos em MATLAB Sequenciação Selecção Repetição Módulos Ficheiros script Estruturas: if if else if elseif switch case Estruturas: for while Funções definidas pelo programador Computação e Programação 2015 / 2016 13 Alinhamento da AT 7 Matrizes como imagens Funções definidas pelo programador: Âmbito das variáveis Computação e Programação 2015 / 2016 14 7

Funções Há dois aspectos distintos a ter em conta nas funções: A sua definição: onde é criado um nome para a função, definidos os seus argumentos de entrada e de saída, e descrito na forma de código fonte o processo de computação que essa função terá que executar A sua aplicação (ou chamada à função): em que o processo de computação é realizado para valores particulares dos argumentos de entrada, produzindo um resultado concreto. Computação e Programação 2015 / 2016 15 Definição de Funções Uma funçãoé uma sequência de instruções de MATLAB armazenada num ficheiro de texto (um M-file, i.e., um ficheiro de texto com extensão.m) Uma funçãodestingue-se de um scriptessencialmente de três formas 1. O código fonte começa com um cabeçalho específico 2. O âmbito das variáveis não é partilhado com o Ambiente de Trabalho 3. A chamada da função envolve, em geral, a passagem de argumentos Computação e Programação 2015 / 2016 16 8

Cabeçalho da função Descrição: declaração de um M-file como função Sintaxe: function [lista_out] = nome_funcao(lista_in) onde lista_out: lista de argumentos de saída separados por vírgulas lista_in: lista de argumentos de entrada separados por vírgulas NOTA: o nome do M-filedeve ser igual ao nome da função, acrescido da extensão.m Computação e Programação 2015 / 2016 17 Definição e aplicação Definição da função >> minha_area = calcarea(0.2) minha_area = 0.1257 >> meu_raio = 1.5; Chamadas à função >> minha_area = calcarea(meu_raio) minha_area = 7.0686 Computação e Programação 2015 / 2016 18 9

Alinhamento da AT 7 Matrizes como imagens Funções definidas pelo programador: Âmbito das variáveis Computação e Programação 2015 / 2016 19 Variáveis Cada função tem um ambiente próprio para as suas variáveis, ao contrário do script As trocas de informação com o exterior fazem-se através dos argumentos da função No MATLAB as variáveis locais da função são criadas quando esta é iniciada, e destruídas quando esta termina* * - com a excepção das variáveis persistentes e globais Ambiente de trabalho (Base) Função Argumentos de Entrada Argumentos de Saída Script Computação e Programação 2015 / 2016 20 10

Execução da função no MATLAB Chamada à função No ambiente de trabalho base não são criadas as variáveis area e radpertencentes à função, apenas é criada a variável ans(dado que não houve atribuição do resultado). Computação e Programação 2015 / 2016 21 Scripts como drivers para funções Computação e Programação 2015 / 2016 22 11

Execução no MATLAB Execução do script São criadas no ambiente de trabalho base as variáveis areae radiusdo script, mas não as da função Computação e Programação 2015 / 2016 23 Âmbito das variáveis O âmbito de uma variável(scope) é o ambiente de trabalho em que ela é válida. (informalmente pode dizer-se que é a parte do nosso programa, ou do ambiente do Matlab, onde essa variável está definida, é reconhecida, e pode ser utilizada) O ambiente de trabalho da CommandWindowé chamado Ambiente de trabalho Base (Base Workspace) e é partilhado com os scripts. Cadafunção tem o seu ambiente de trabalho próprio e todas as suas variáveis estão definidas apenas nesse ambiente. Computação e Programação 2015 / 2016 24 12

Âmbito das variáveis Regras de âmbito de uma variável: 1. Se uma variável for criada através da Command Window pertencerá ao Ambiente de trabalho Base, e pode ser utilizada na Command Window e em qualquer script. Command Window Script (ex: programa.m) Função (ex: func.m) e= 2; Computação e Programação 2015 / 2016 25 Âmbito das variáveis Regras de âmbito de uma variável: 2. Se uma variável for criada dentro de um scriptserá partilhada com o Ambiente de trabalho Base, e pode ser utilizada a partir do ponto em que foi definida no código fonte do script, na Command Window e em qualquer outro script. Command Window Script(ex: programa.m) Função (ex: func.m) a= 12; Computação e Programação 2015 / 2016 26 13

Conceito de âmbito (scope) Regras de âmbito de uma variável: 3. Se uma variável for definida como argumento de entrada ou de saídade uma função o seu ambiente tem o mesmo nome da função, e pode ser utilizada apenas no código fonte dessa função em qualquer parte do código. Command Window Script(ex: programa.m) Função (ex: func.m) function... = func (c) Computação e Programação 2015 / 2016 27 Conceito de âmbito (scope) Regras de âmbito de uma variável: 4. Se uma variável for criada dentro de uma função o seu ambiente tem o mesmo nome da função, e pode ser utilizada apenas no código fonte dessa função e apenas a partir do ponto em que foi definida. Command Window Script(ex: programa.m) Função (ex: func.m) function d = func (...) d = 1; Computação e Programação 2015 / 2016 28 14

Exemplo: função desigualdade Computação e Programação 2015 / 2016 29 Definição da função desigualdade Cabeçalho Comentários Ajuda da função que aparece na Command Window quando é usado o comando help Corpo da função Código fonte da função Computação e Programação 2015 / 2016 30 15

Definição da função desigualdade Argumento de saída Palavra reservada Nome da função Argumentos de entrada Cabeçalho Computação e Programação 2015 / 2016 31 Driver para a função desigualdade Computação e Programação 2015 / 2016 32 16

Visualização do âmbito das variáveis NOTA: colocar um breakpoint na função desigualdade.m e correr o script driverdesigualdade.m(quando em modo debugcarregar na tecla F10 para avançar a execução) Computação e Programação 2015 / 2016 33 Âmbito Base do MATLAB Base MATLAB Script: driverdesigualdade.m Função: desigualdade.m Âmbito: Base (Ambiente de trabalho do MATLAB) Variáveis: V Vmax Vmin Computação e Programação 2015 / 2016 34 17

Âmbito do script driverdesigualdade Base MATLAB Script: driverdesigualdade.m Função: desigualdade.m Âmbito: driverdesigualdade Variáveis: V Vmax Vmin Computação e Programação 2015 / 2016 35 Âmbito da função desigualdade MATLAB Script: driverdesigualdade.m Função: desigualdade.m Âmbito: desigualdade Variáveis: X Xmax Xmin Computação e Programação 2015 / 2016 36 18

Exemplo de execução >> driverdesigualdade Introduza o valor de V: 10 Introduza o valor de Vmin: 1 Introduza o valor de Vmax: 9 10.00 não pertence a [1.00,9.00] >> Computação e Programação 2015 / 2016 37 Boas práticas de Programação Usar o mesmo nome para a função e para o ficheiro onde ela esta guardada (é um erro comum não o fazer!) Se os argumentos forem passados à função na sua chamada, não substituir estes valores por input dentro da função As funções que executam cálculos normalmente não os apresentam ao utilizador. Crie funções distintas estas tarefas. Evitar criar funções demasiados longas (mais de uma página) Faça a depuração de erros lógicos das funções uma-a-uma de forma independente do programa principal. Integre as funções no programa só depois de garantir que estão a realizar a sua tarefa correctamente. Computação e Programação 2015 / 2016 38 19

Referências Capítulo 6 de Stormy Attaway (2012), Matlab: A Practical Introduction to Programming and Problem Solving, Elsevier. GettingstartedwithMATLAB: http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/getstart.pdf As aulas teóricas contêm contribuições dos profs. José Borges e Miguel Silva Computação e Programação 2015 / 2016 39 20