26
STEPHEN J. CHAPMAN S S E E E E G G U U N N N D D D A A A A A A E E E E E E D D D D I I I I Ç Ç Ç Ã Ã O

Programação em MATLAB para engenheiros – 2ª edição

Embed Size (px)

DESCRIPTION

O autor apresenta, ao longo de toda a obra, uma metodologia de resolução de problemas top-down (do mais geral para o mais específico), reforçando a capacidade do MATLAB como uma linguagem de programação técnica que permite ao estudante escrever programas limpos, eficientes e bem documentados. O livro enfatiza o uso de funções para decomposição lógica de tarefas em subtarefas ainda menores e de ferramentas MATLAB pré-construídas. Apresenta, com igual ênfase, notas sobre boas práticas de programação e erros de programação.

Citation preview

STT

EEPPPPPP

HHHHHHEEEEEE

NNNNNNNNNNNN JJJJJJ...... CCCCCC

HHHHHHHAAAAAAA

PPPPPPPPMMMMMMMM

AAAAAAAANNNNNNNN

PPPPPPPPRRRRRR

OOOOOOGGGG

RRAA

MMMAA

ÇÇÃÃ

OO EE

MM MMM

AAATTT

LLLAA

BT

LLAA

BB PPAA

RRAA

EENN

GGEE

NNNNNNHHHHH

EEEEEEEIIRRRR

OOOOOOSS

S T E P H E N J . C H A P M A N

SS EEEE GG UU NNN DDD AAAAAA EEEEEE DDDD IIII ÇÇÇ ÃÃ O

O O OO auauauautototot r r r apapaprererereeeseseseseses ntntntnta,aa,a, a a ao o lolongngo o dede

tototototodadadada a a a a o oo obrbrbrbra,aa,a, u uumamma m metetododolologogiaiaia dd ddeeee

reereresssosoluluçãçããão oo dededede pp pproroblblememas

totop-p-dodownw ((dodo mmaiais s gegerararall l papapapararara o o

mamaisis espspececífí ico)o), rerefoforçrçanandodo aa

cacapap cicidadade do o MAMATLTLABAB ccomomomommmommmommmo o

uuumumumuuu aa liingngngngngngngngngngngngnn uauagegem m dede prorogrgramamaçaçãoão

tététététéécncnicica quququque e e pepermrmitite aoao eststududanntete

esesesesesesccrcrcrcrcrcc eveverer p roogrgramammmasasasas l limimpopos,s,

efefefefefefefefficccciccieientntnnn es ee b bemem doco ummenennntatatatadodos.s.

OO OOOOO lllililil vrvvvvv o oo enfafaf tizaaaaa o uuusssosos de e

fuffffufunçnçnçnççnçnçnçõeõ sss ss parararaa decccccompoppp siçãçççção

ólóóólólóllóóggigiigigiicacacccacaaa ddde taaatt reefafafafafafas emmemm

ssususususususubtbtbttbbbb aaararaa efefeee aaaaasas aaaaaaininnninndadadadaaa mmenennnnnooresssse e ddddddeeee

fefeeefefeff rrrrrrrrrrraaamamamamaamenenenenenentatatatatat ssss ss MAMAMAMAMAMATLTLTLTLTLTLABABABABABAB

prprrrprpré---é-éé ccococcococococ nsnssnsnsnstrtrtrtrtrtruíuíuuuuídadadadadadass.ssss AAAA AAprprprprprpresesesesssenenenenenentatatatatata,

cooocoocomm m mmm igggguauauauauaual l ênênênênênênfafafafafafasesesesesese, , nonononoootatatatatatas ss sosososososobrbrbrbrbrbreeeee e

bobobooboboboboasasasss p p p prárááátitititicacaaacc s s s s dededededede pppppprorororororogrgrgrrgrramamamamamamaçaçaçaçaçaçãoãoãoãoãoão

e e ee eererererrorororoooos s sss dededede pp p prororr grrgramamamamamamaçaçaçaçaçaçãoãoãoãoãoão..

ApApApApApplililiililicacacacacacaçõçõçõçõçõçõõesesesesesesesDeDeststtinininna-a-a-a-sesesesesee à à à à àà d d d d ddisisisisisisciciciciciciplplplplplplplininininninina a a aa a a

ininintrtrtrtrododododuçuçãoão àà c comommpupupupupuputatatatataçãçãçãçãçãção o o ooo (o(o(o(o(o(ou u uuuu

ciciênêncicia a dada ccc comomommpupupuputataçãção)o), nonoos s ss

cursos d dee ininformrmátáticica,a, cccomomomomo o

SiSiststsstememmemasasa d de e Informmaçaçãoã ,

Ciiênêncicia a dada CC CComomomompupup tataçãção e

EnEngegenhharariaia da a CoCompmppututututaçaçaça ãoão, ,

beem m cocomomo nnosos currsosos dede

Fíísis caca, QuQuímímicica a e e EnEngegenhnharariaia, ,

ses nddo o papartrticicululararmementnte e útútilil

paparara eeststududanantetes s deestste e úlú tit momo.

DeD ststststininini a-a-se, aiaindnda,a, a a

profissionnnnaiaiaiais s s emem g gereralal queue

desejem utilizar ee eessssss a a

ffferramamaaa ennnnta da computututtaçaçaçaçãoão.

Para suas soluções de curso e aprendizado,visite www.cengage.com.br

9 788522 107896

ISBN 13 978-85-221-0789-6ISBN 10 85-221-0789-0

PPPPPPRRRRROOOOGGGGGGGGGGGGGGGRRRRRRRAAAAAAAMMMMMMMAAAAAAÇÇÇÇÇÃÃÃÃÃOOOOO EEEEMMMMMMMM

GGGGGGGEEEEEEEENNNNNNHHHHHHHHEEEEEEEEIIIIIIIIRRRRRRRROOOOOOOOSSPPPPPPPPAAAAAAARRRRRRRRAAAAAAAA EEEEEEEENNNNNNNNGGGGGGGGEEEEEEEENNNNNNNNHHHHHHHHEEEEEIIIROOOOOOOSSS ES E G UG U N DN A E DE DE DE DE DD I ÇI ÇI ÇI ÇI ÇI ÇI Ç Ã OÃ OÃ OÃ OÃ OÃ OÃ O

Ouutrass obrbrassassssasssas

adaddadadadadaadduçuççççuçuçuçuçuççAAAnAAnAAnAAAnAAnálálálllláláláláláláliiisiiisisisississe e ee ee e NuNNNNuNuNuNuNuNuNumémémééééémémééééériririririrricacacacacacacacacaaca TrTrTrTrTrTTrTrTTrTTrTrTraaaaaaaaaaa ãããããoãoãã dddddd ddddddaa a aa 8 88 8888 88

nanaaaaaanaanananaaaddddedddddddiçiççiçiçiçiçiçãoãoãoãoãooooãoãoão nnnnnnnnorrrorororororoorrrtttetettttetetetetee-a-aaaaaaaaammmmememememememeememeeme iiriririiiriiiicacaaacacaccccacacac nnnnnnnnnn

DDDDDDDDDDDDouououououououououuuuuuglglglglgglglgglglggggg asasasasasasasasasas F FFaaiaiaiaiaaiaiaiaiairerereereeeereererererereesssssssssRiRiRiRiRiRiRiRRRRR chccccccchhhharaaaaa dd dddddd LLLLL.LLL.LLLLL B BBBBBBBururururururururrururuurrdededededededededeen n nnnn nnnnnn n eeeeee ee e e J.J.JJJ D DDDD D D

AAAAAAAAAAlglglglglglgglglgororororororororororititttitititiitttittmomomomomomomomomm sss sss ememememm CCCCC CCCC++++++++++++++++++EsEsEsEsEsEsEsEstrtrtrtrtrtrtrt ututututututututurururururururura a a a a aa dededededededde D DD adadadddddddddddosososos eeee e eee A AAAAAAAAA

AddddddAddamamaaaamaa DDDDDDDDrororooroororozdzdzdzdzdzdzdzdekekekekekekekekekk

iaaaaaaaaa d ddddddddddddda a aaaaaaa CoCoCooCCCCoooCCoCoCoCoCoompmppppmppppmpmpmpmpmpmpppuuuutututuu açaçaaçaçaçççaaçççççãããããoãoããão InnInnInInInIntrtrtrtrtrtrtrtrododooooododododododuçuççççuçuçuçuçuççãoãoãoããããoããoã à à à ààà C C CCCCC CCCCCCCiêiêêiêiêiêiêiêêncncncncncncnnncnciaiaiiiiaii

2222222 2 eee e eeeedidididididididiçççççççççççç aaaaaãoãooãoãoãoãoãoãoão a aa aaaaaaaatutututututututututualalaaaalaaaaalala iziziiii adadaaaa

eleleeelelelee i,i,i,ii,i,,, E E E EE Enrnricicoo oooooo GiGiGiGiGiGiGiiulululululullioioiioioiooioi Ricaa dddrdrdddo o o o DaDaDaDaDaDaDaDaDaanininininnininininieleleleeleeeleelelele F FFFFFFFFFedededededededededeeeeeeee

ererrrrrrrnanananananananannandndndnndndndndndndo o oooooooo EdEdEEEdEdEdEdEdEdEdEduauauaaaaauauauauauarddddddrddooo o o oo PePereesFrFrFrFrFrFrFrF anananananaancocococo P P P Pololoo lololoolooooo iiininninnini e eeee F FFFFFFFFeeeeeeeeeee

SSSSSSSisisiiiiisisssisistetemamammmm s s OpOpOOOpOOpOOOOOOO eeererererereracacacacacaccioioioioioooioioioioionanananananaananannaisissssisisisissisisIIInInI trtrttrtttrododdodododoododo uçuçuçuçuçuçuçuçuççãoãoãoãoãoãoãoãoãããoãoãoãoo a aaaaaaaaaososooosososososososos S S SSS S SSS

nnnnnnnnnnnnnnnnnn M MMMMMMMMcIcIcIcIccIcIcccIveveeeeevevevevevevevv r r rrr rrrr McMcccccMcMcMcMcMcMcMcHoHoHoHoHoHoHoHoHoesesesesessesesessessIda a M.M. F F F FFFFFFlllylylyylylyylyynnnnnnnnnnnnnnnnn e eeeeeeeee A AAAAAAAAAnnnnnnnn

sscrcreteta:a uumamammmmmmm ii i intntttntntnttttrororooooooodududududdddduçãçãçãçãçãçãããão o ooMaMaMaMaMaMaMaMatetetetetetetet mámámmmámámmámmám titiititittiiicacacacacacaca DD DDisisisis

TrTTTTT addddduçuçuçuçuuuuçuu ee eeeedididididiiçãçãçãçãçãção o o o o o nonooooonononoortrteee-eee-e-e-e amamamamamamamamamerericicananaaãoãoãoãoãoã dddddda aaaaa 2 2222

heininerermamannEdwawawawawawawaw rd R. Sch

a Objeto cooooooom PrPrPrPrPrPrPrototototototototoooooo ipaçãoeentn açação aOrOrOrOrOrOrO ien

ninielel F Fededeli, EEEEEEEnrn iccccccooooo oo o GiGiGGGGiG ulu io ddoo DaDannRiRiRRRR cacardrdoo

oonini e e FFerernanaaaaaandndnnnnn oooooo o EEEdEdEEE uauauuuuu drdPPololollololoFranncoo PPo uauuuuuardrdo o PePereress

PrPrinincc ssípípioioss Sistemmmmmmass OOO O OO O Opepepeeeeeperaraacicicionono aiaia sss dde e SS

caççe e ee AA AAplplplicicaPrPrPP ojojjjetetosos õeõeõõõõ ss

SStutuararttBrB iiaian nn LL.LL SSSS

C

M

Y

CM

MY

CY

CMY

K

AF_matlab.ai 5/18/10 5:05:22 PMAF_matlab.ai 5/18/10 5:05:22 PM

Stephen J. ChapmanBAE SYSTEMS Austrália

Tradução Técnica:Flávio Soares Correa da SilvaPhD em Inteligência Artificial pela University of Edinburgh, livre-docente e professor associado do Departamento de Ciência da Computação, Instituto de Matemática e Estatística da USP

Fundamentos de Programação em Matlab

Segunda edição

Book_Matlab.indb 3 29/4/2010 09:47:16

v

Esse livro é dedicado com amor à minha filha Rachel.

Book_Matlab.indb 5 29/4/2010 09:47:16

vii

Prefácio xv

1 IntroduçãoaoMATLAB 11.1 Vantagens do MATLAB 21.2 Desvantagens do MATLAB 41.3 O Ambiente MATLAB 3

1.3.1 A Área de Trabalho MATLAB 41.3.2 A Janela de Comandos 51.3.3 A Janela de Histórico de Comandos 71.3.4 O Botão Iniciar 71.3.5 A Janela de Edição/Depuração 81.3.6 Janela de Figuras 101.3.7 Como Estacionar e Transportar Janelas 101.3.8 O Espaço de Trabalho MATLAB 111.3.9 O Navegador do Espaço de Trabalho 121.3.10 Obtendo Ajuda 131.3.11 Alguns Comandos Importantes 141.3.12 O Caminho de Busca MATLAB 15

1.4 Utilizando o MATLAB como Prancheta de Rascunhos 171.5 Resumo 18

1.5.1 Resumo do MATLAB 191.6 Exercícios 19

2 MATLABBásico 212.1 Variáveis e Matrizes 212.2 Criando e Iniciando Variáveis no MATLAB 25

Sumário

Book_Matlab.indb 7 29/4/2010 09:47:16

viii | FundamentosdeProgramaçãoemMatlab

2.2.1 Iniciando Variáveis em Expressões de Atribuição 252.2.2 Iniciando com Expressões de Atalho 282.2.3 Iniciando com Funções Predefinidas 292.2.4 Iniciando Variáveis com Entrada pelo Teclado 29

2.3 Matrizes Multidimensionais 312.3.1 Armazenando Matrizes Multidimensionais em Memória 332.3.2 Acessando Matrizes Multidimensionais com uma Dimensão 33

2.4 Submatrizes 352.4.1 A Função end 352.4.2 Utilizando Submatrizes no Lado Esquerdo de uma Declaração de

Atribuição 362.4.3 Atribuindo um Escalar a uma Submatriz 37

2.5 Valores Especiais 382.6 Exibindo Dados de Saída 40

2.6.1 Alterando o Formato-Padrão 402.6.2 A Função disp 422.6.3 Saída Estruturada Usando a Função fprintf 43

2.7 Arquivos de Dados 442.8 Operações com Escalares e Matrizes 47

2.8.1 Operações com Escalares 472.8.2 Operações com Matrizes 47

2.9 Hierarquia de Operações 512.10 Funções Predefinidas MATLAB 54

2.10.1 Resultados Opcionais 542.10.2 Utilizando Funções MATLAB com Matrizes como Entrada 542.10.3 Funções MATLAB Comuns 55

2.11 Introdução a Diagramas 562.11.1 Utilizando Diagramas xy Simples 572.11.2 Imprimindo um Diagrama 582.11.3 Exportação de um Diagrama como Imagem Gráfica 592.11.4 Diagramas Múltiplos 592.11.5 Cores de Linhas, Estilos de Linhas, Estilos de Marcadores e Legendas 612.11.6 Escalas Logarítmicas 64

2.12 Exemplos 642.13 Depurando Programas MATLAB 722.14 Resumo 74

2.14.1 Resumo de Boas Práticas de Programação 752.14.2 Resumo do MATLAB 76

2.15 Exercícios 79

3 ExpressõesdeRamificaçãoeProjetodePrograma 873.1 Introdução a Técnicas de Projeto Top-Down 873.2 Uso de Pseudocódigo 933.3 O Tipo de Dados Logical 93

3.3.1 Operadores Relacionais 94

Book_Matlab.indb 8 29/4/2010 09:47:16

Sumário | ix

3.3.2 Nota de Atenção a Respeito dos Operadores == e ~= 973.3.3 Operadores Lógicos 913.3.4 Funções Lógicas 103

3.4 Ramificações 1043.4.1 A Construção if 1053.4.2 Exemplos de Utilização de Construções if 1073.4.3 Notas a Respeito do Uso de Construções if 1133.4.4 A Construção switch 1153.4.5 A Construção try/catch 117

3.5 Características Adicionais de Diagramas 1193.5.1 Controlando os Limites nos Diagramas dos Eixos x e y 1193.5.2 Desenhando Múltiplos Diagramas sobre os Mesmos Eixos 1223.5.3 Criando Múltiplas Figuras 1233.5.4 Subdiagramas 1243.5.5 Controle Avançado de Linhas Desenhadas 1253.5.6 Controle Avançado de Cadeias de Texto 1263.5.7 Diagramas Polares 1273.5.8 Anotando e Armazenando Diagramas 135

3.6 Notas Adicionais a Respeito da Depuração de Programas MATLAB 1393.7 Resumo 142

3.7.1 Resumo de Boas Práticas de Programação 1433.7.2 Resumo do MATLAB 144

3.8 Exercícios 145

4 Laços 1494.1 O Laço while 1494.2 O Laço for 155

4.2.1 Detalhes de Operação 1634.2.2 O Compilador no-momento-exato (JIT) do MATLAB 1654.2.3 As Expressões break e continue 1694.2.4 Laços Aninhados 171

4.3 Matrizes Lógicas e Vetorização 1734.3.1 Criando o Equivalente a Construções if/else com Matrizes Lógicas 174

4.4 Os Perfis MATLAB 1764.5 Exemplos Adicionais 1794.6 Resumo 194

4.6.1 Resumo de Boas Práticas de Programação 1944.6.2 Resumo do MATLAB 194

4.7 Exercícios 195

5 FunçõesDefinidaspeloUsuário 2035.1 Introdução a Funções MATLAB 2055.2 Passagem de Variáveis em MATLAB: O Esquema de Passagem por Valor 2115.3 Argumentos Opcionais 2225.4 Compartilhando Dados pelo Uso de Memória Global 2275.5 Preservando Dados entre Chamadas de uma Função 2355.6 Funções de Funções 240

Book_Matlab.indb 9 29/4/2010 09:47:16

x | Programação em MATLAB® para Engenheiros

5.7 Subfunções e Funções Privadas 2445.7.1 Subfunções 2455.7.2 Funções Privadas 2465.7.3 Ordem de Avaliação de Funções 247

5.8 Resumo 2475.8.1 Resumo de Boas Práticas de Programação 2485.8.2 Resumo do MATLAB 248

5.9 Exercícios 249

6 TiposAdicionaisdeDadosedeDiagramas 2616.1 Dados Complexos 261

6.1.1 Variáveis Complexas 2636.1.2 Usando Números Complexos com Operadores Relacionais 2646.1.3 Funções Complexas 2656.1.4 Colocando Dados Complexos em Diagramas 269

6.2 Funções de Cadeias de Caracteres 2726.2.1 Funções de Conversão de Cadeias de Caracteres 2726.2.2 Criando Matrizes Bidimensionais de Caracteres 2726.2.3 Concatenação de Cadeias de Caracteres 2736.2.4 Comparação de Cadeias de Caracteres 2746.2.4.1 Comparando Cadeias de Caracteres quanto à Igualdade 2746.2.4.2 Comparando Cadeias Individuais quanto à Igualdade e Desigualdade 2746.2.4.3 Categorizando Caracteres em uma Cadeia de Caracteres 2756.2.5 Buscando ou Substituindo Caracteres Dentro de uma Cadeia 2776.2.6 Conversão para Caixa Alta e Caixa Baixa 2796.2.7 Eliminação de Espaços em Branco das Cadeias de Caracteres 2796.2.8 Conversões de Número para Cadeia de Caracteres 2806.2.9 Conversões de Cadeia de Caracteres para Número 2826.2.10 Resumo 283

6.3 Matrizes Multidimensionais 2896.4 Diagramas Bidimensionais Adicionais 291

6.4.1 Tipos Adicionais de Diagramas Bidimensionais 2916.4.2 Funções para Diagramas 2966.4.3 Histogramas 297

6.5 Diagramas Tridimensionais 2986.5.1 Diagramas Tridimensionais de Linha 2996.5.2 Diagramas Tridimensionais de Superfície, Malha e Curva de Nível 301

6.6 Resumo 3046.6.1 Resumo de Boas Práticas de Programação 3046.6.2 Resumo do MATLAB 304

6.7 Exercícios 306

7 MatrizesCelulares,eEstruturasGráficosdeControle 3117.1 Matrizes Celulares 311

7.1.1 Criando Matrizes Celulares 3137.1.2 Utilizando Chaves {} como Construtores de Células 315

Book_Matlab.indb 10 29/4/2010 09:47:16

Sumário | xi

7.1.3 Visualizando o Conteúdo de Matrizes Celulares 3157.1.4 Estendendo Matrizes Celulares 3167.1.5 Apagando Células em Matrizes 3187.1.6 Utilizando Dados em Matrizes Celulares 3197.1.7 Matrizes Celulares de Cadeias de Caracteres 3197.1.8 A Importância das Matrizes Celulares 3207.1.9 Resumo das Funções da Matriz cell 324

7.2 Matrizes Estruturas 3257.2.1 Criando Matrizes Estruturas 3257.2.2 Adicionando Campos a Estruturas 3287.2.3 Removendo Campos de Estruturas 3297.2.4 Usando Dados em Matrizes Estruturas 3297.2.5 As Funções getfield e setfield 3317.2.6 Nomes Dinâmicos de Campos 3317.2.7 Usando a Função size com Matrizes Estruturas 3337.2.8 Aninhando Matrizes Estruturas 3337.2.9 Resumo das Funções structure 334

7.3 GráficosdeControle 3367.3.1 O Sistema de Gráficos MATLAB 3367.3.2 Controles de Objetos 3377.3.3 Examinando e Modificando Propriedades de Objetos 3387.3.4 Usando set para Listar Valores Possíveis de Propriedades 3457.3.5 Localizando Objetos 3467.3.6 Selecionando Objetos com o Mouse 3487.4 Posição e Unidades 351

7.4.1 Posições de Objetos figure 3517.4.2 Posições de Objetos axes 3527.4.3 Posições de Objetos text 352

7.5 Posições de Impressão 3557.6 Propriedades Iniciais e de Fábrica 3567.7 Propriedades de Objetos Gráficos 3587.8 Resumo 358

7.8.1 Resumo de Boas Práticas de Programação 3597.8.2 Resumo do MATLAB 359

7.9 Exercícios 360

ApêndiceA ConjuntodeCaracteresASCII 365

ApêndiceB FunçõesdeEntrada/Saída367

ApêndiceC RespostasparaosTestes 389

ÍndiceRemissivo 463

Book_Matlab.indb 11 29/4/2010 09:47:16

Book_Matlab.indb 12 29/4/2010 09:47:16

xiii

MATLAB® (que abrevia MATrix LABoratory – Laboratório de Matrizes) é um pro-grama de computador de uso específico, otimizado para executar cálculos científicos e de engenharia. Ele nasceu como um programa para operações matemáticas sobre matrizes, mas ao longo dos anos transformou-se em um sistema computacional flexível capaz de resolver essencialmente qualquer problema técnico.

O programa MATLAB implementa esta linguagem e oferece uma ampla biblioteca de funções predefinidas para que a programação técnica se torne mais fácil e eficiente. Essa variedade extremamente ampla de funções torna muito mais fácil resol ver prob-lemas técnicos em MATLAB do que em outras linguagens, como Fortran ou C. Este livro apresenta a linguagem MATLAB e mostra como utilizá-la para resolver pro blemas técnicos típicos.

Esse livro não é um texto do tipo “como utilizar o MATLAB” (embora os estu-dantes aprendam a usá-lo para resolver problemas durante a utilização deste livro). O livro ensina o uso de MATLAB como uma linguagem técnica de programação, que pode ser usada no lugar de linguagens como Basic, Fortran ou C++. A maioria dos pro-gramas de curso de engenharia atualmente exige o aprendizado de MATLAB e usam esta linguagem como uma ferramenta essencial ao longo de todo o curso. A maioria dos programas de curso de engenharia também exige que os estudantes se fami liarizem pelo menos com os fundamentos da programação de computadores. Este livro pretende satisfazer esses dois requisitos simultaneamente em uma única disciplina, liberando assim tempo precioso nos cursos de ensino de engenharia.

Este livro não tem a pretensão de apresentar uma descrição completa das centenas de funções do MATLAB. Em vez disso, ensina ao estudante como utilizar MATLAB como uma linguagem para resolver problemas e como localizar qualquer função dese-jada utilizando os recursos de ajuda on- line do MATLAB.

Prefácio

Book_Matlab.indb 13 29/4/2010 09:47:16

xiv | FundamentosdeProgramação em MATLAB®

O livro Fundamentos de Programação em MATLAB, segunda edição, foi construído para ser utilizado como livro-texto em disciplinas de introdução à programação e à resolução de problemas para estudantes de primeiro ano de engenharia. Este material deve servir confortavelmente para disciplinas de nove semanas com três horas de aula por semana.

as Vantagens do Matlab para Programação técnica

MATLAB apresenta muitas vantagens, em comparação com linguagens de computador convencionais, para resolução de problemas técnicos. Dentre elas, temos:

1. Facilidade de UsoMATLAB é uma linguagem interpretada, assim como muitas versões de Basic, e, como esta, é muito fácil de usar. O programa pode ser usado como pranche-ta de rascunhos para avaliar expressões digitadas em linha de comando, ou para executar programas grandes previamente escritos. Programas podem ser escri tos e modificados com facilidade usando o ambiente de desenvolvimento integrado embutido, bem como depurados usando o depurador MATLAB. Por ser muito fácil de usar, a linguagem é ideal para uso educacional e para desen-volver rapidamente protótipos de novos programas.

Muitas ferramentas de desenvolvimento de programas são fornecidas para tornar o programa fácil de usar. Dentre elas, temos um editor/depurador, um navegador de espaço de trabalho e muitos programas de demonstração.

2. Independência de PlataformaMATLAB tem suporte em muitos sistemas computacionais diferentes, propor-cionando, em grande medida, uma independência de plataforma. No momento de preparação deste livro, a linguagem tinha suporte em Windows 2000/XP/Vista, Linux, Unix e Macintosh. Programas escritos em uma plataforma funcio-nam em todas as outras, e arquivos de dados escritos em qualquer plataforma podem ser lidos transparentemente em todas as outras. Como resultado, pro-gramas escritos em MATLAB podem migrar para novas plataformas quando as necessidades do usuário se alteram.

3. Funções PredefinidasMATLAB vem completo, com uma grande biblioteca de funções predefinidas que proporcionam soluções testadas e empacotadas para muitas tarefas técnicas básicas. Por exemplo, suponha que você esteja escrevendo um programa que precise calcular a estatística associada com um conjunto de dados de entrada. Na maioria das linguagens, você precisaria escrever suas próprias sub-rotinas ou funções para implementar os cálculos, como média aritmética, desvio padrão, mediana etc. Essas e centenas de outras funções são construídas já na linguagem MATLAB, tornando seu trabalho muito mais fácil.

Além da grande biblioteca de funções construída na linguagem básica MATLAB, existem muitas outras caixas de ferramentas especializadas dispo-níveis para ajudar a resolver problemas complexos em áreas específicas. Por exemplo, um usuário pode comprar caixas de ferramentas-padrão para

Book_Matlab.indb 14 29/4/2010 09:47:16

Prefácio | xv

resolver problemas em processamentos de sinais, sistemas de controle, comu-nicações, processamentos de imagens e redes neurais, dentre muitas outras.

4. Diagramas Independentes de DispositivosDiferente de outras linguagens de computador, MATLAB tem diversos coman-dos para imagens e desenhos integrais, que podem ser exibidos em qualquer dispositivo gráfico suportado pelo computador onde está funcio nando o MATLAB. Este recurso torna o MATLAB uma ferramenta notável para visuali-zar dados técnicos.

5. Interface Gráfica de UsuárioMATLAB inclui ferramentas que permitem que um programador construa interativamente uma interface gráfica de usuário (GUI, do inglês Graphical User Interface) para seu programa. Com este recurso, o programador é capaz de pro-jetar programas sofisticados para análise de dados que podem ser operados por usuários rela tivamente inexperientes.

Características deste livro

Muitas características deste livro têm por objetivo enfatizar a maneira apropriada de escrever programas MATLAB. Essas características devem ser úteis para um estudante aprendendo a usar o MATLAB e para quem já trabalha com este programa. Dentre elas, temos:

1. Ênfase na metodologia de projetos top-downO livro apresenta uma metodologia de projetos top-down no Capítulo 3, e a uti-liza de forma consistente no seu decorrer. Esta metodologia encoraja o estu-dante a pensar a respeito do projeto apropriado de um programa antes de ini-ciar a codificação. Ela enfatiza a importância de definir claramente o pro blema a ser resolvido e os dados de entrada e saída requeridos antes de iniciar qualquer outra atividade. Uma vez definido apropriadamente o problema, ensina o estudante a aplicar o refinamento passo a passo para subdividir a tarefa em subtarefas menores, e implementar as subtarefas como sub-rotinas ou fun-ções separadas. Finalmente, a metodologia utilizada ensina a importância de efetuar testes em todos os estágios do processo, tanto unitários das rotinas com-ponentes como testes exaustivos do produto final.

O processo formal de projeto ensinado no livro pode ser assim resumido:1 Estabeleça claramente o problema que você está tentando resolver.2 Defina os dados de entrada requeridos pelo programa e os dados de

saída produzidos por ele.3 Descreva o algoritmo que você pretende implementar no programa.

Este passo requer um projeto top-down e decomposição passo a passo, fazendo uso de pseudocódigo ou de diagramas de fluxo.

4 Transforme o algoritmo em sentenças MATLAB.5 Teste o programa MATLAB. Neste passo estão incluídos os testes uni-

tários de funções específicas e o exaustivo do programa final, com dife-rentes conjuntos de dados.

Book_Matlab.indb 15 29/4/2010 09:47:16

xvi | FundamentosdeProgramação em MATLAB®

2. Ênfase em funçõesO livro enfatiza o uso de funções para a decomposição lógica de tarefas em subtarefas menores. Ele ensina as vantagens das funções para ocultar dados. Enfatiza também a importância dos testes unitários das funções antes de combiná-las no programa final. O livro mostra ainda os erros comumente efetuados com funções e como evitá-los.

3. Ênfase em ferramentas MATLABO livro ensina o uso apropriado das ferramentas pré-construídas MATLAB para facilitar a programação e depuração de programas. As ferramentas trata-das são o Espaço de Lançamento, o Editor/Depurador, o Navegador do Espaço de Trabalho, o Navegador de Ajuda e ferramentas de projeto de GUI.

4. Notas de boa prática de programaçãoAs notas enfatizam as boas práticas de programação à medida que são apresen-tadas, para a conveniência do estudante. Além disso, as boas práticas de pro-gramação apresentadas em um capítulo são resumidas no seu final. Apre-sentamos a seguir uma nota de boa prática de programação.

boa Prática de Programação

Sempre destaque com tabulação o corpo de uma construção if, com dois ou mais espa-ços, para melhorar a legibilidade do código.

5. Notas de erros de programaçãoEssas notas enfatizam erros comuns que podem ser evitados. Apresentamos a seguir uma nota de erros de programação.

Erros de Programação

Sempre verifique se os nomes de variáveis não se repetem nos primeiros 63 caracteres. Se isto não ocorrer, o MATLAB não conseguirá diferenciar as variáveis.

Características Pedagógicas

Este livro foi projetado especificamente para uso em cursos de Introdução à Programação e à Resolução de Problemas. Deve ser possível cobrir este material confortavelmente em um curso de nove semanas, com três horas semanais. Se o tempo for insuficiente em algum programa particular de engenharia, os capítulos 6 e 7 podem ser desconsiderados; os rema-nescentes ainda assim ensinarão os fundamentos de programação e uso do MATLAB para

Book_Matlab.indb 16 29/4/2010 09:47:16

Prefácio | xvii

resolução de problemas. Esta característica deve ser atraente para os professores de engen-haria pressionados para compactar cada vez mais material dentro de um currículo finito.

Os capítulos seguintes tratam de material avançado que será útil para estudantes e engenheiros ao longo de suas carreiras. Este material inclui recursos avançados de entrada/saída e o projeto de interfaces gráficas de usuários para os programas.

O livro inclui diversas características projetadas para dar suporte à compreensão do estudante. Estão incluídos 12 testes, distribuídos ao longo dos capítulos. As respos-tas a todas as perguntas estão apresentadas no Apêndice C. Os testes podem ser usados como autotestes de compreensão. Além disso, temos aproximadamente 130 exercícios de final de capítulo. As boas práticas de programação são apresentadas em todos os capítulos em quadros de Boa Prática de Programação, e os erros comuns são apresenta-dos em notas de Erros de Programação. O material de final de capítulo é composto por Resumos de Boas Práticas de Programação e Resumos de Comandos e Funções MATLAB.

Quero agradecer aos seguintes revisores por seus comentários:Randy Freeman, Northwestern UniversityThomas N. Gambill, University of Illinois – Urbana ChampaignArlene A. Guest, Naval Postgraduate SchoolDieter S. Schmidt, University of Cincinnati.

Manterei atualizada uma lista de errata e correções na página Web do livro, que se encontra em www.cengage.com/engineering

* NT: a errata e correções dizem respeito à edição original em inglês.

Book_Matlab.indb 17 29/4/2010 09:47:16

Book_Matlab.indb 18 29/4/2010 09:47:16

xix

Quero agradecer a minha esposa, Rosa, e a nossos filhos Avi, David, Rachel, Aaron, Sarah, Naomi, Shira e Devorah, por serem pessoas tão agradáveis e inspirarem todos os meus esforços.

Stephen J. Chapman

Agradecimentos

Book_Matlab.indb 19 29/4/2010 09:47:16

1

MATLAB (que abrevia MATrix LABoratory – Laboratório de Matrizes) é um programa de computador especializado e otimizado para cálculos científicos e de engenharia. Inicialmente, foi projetado para cálculos com matrizes; ao longo dos anos, transformou-se em um sistema computacional flexível, capaz de resolver essencialmente qualquer problema técnico.

O MATLAB implementa a linguagem de programação de mesmo nome, junta-mente com uma grande biblioteca de funções predefinidas que tornam as tarefas de programação técnica mais fáceis e eficientes. Este livro apresenta a linguagem MATLAB versão 7.5, e mostra como utilizá-la para resolver problemas técnicos típicos.

MATLAB é um programa muito grande, com uma rica variedade de funções. Até mesmo sua versão básica, sem ferramentas adicionais, é muito mais rica que outras linguagens de programação técnica. Existem mais de 1.000 funções no produto MATLAB, e as ferramentas adicionais ampliam esses recursos com muito mais funções em diferentes especialidades. Este livro não pretende ensinar todas as funções do MATLAB. Em vez disso, o usuário aprende os fundamentos de como escrever, depurar e otimizar bons programas MATLAB, juntamente com um subconjunto das funções mais importantes. Outro aspecto igualmente importante é que o programador aprende a utilizar as ferramentas do próprio MATLAB para localizar a função adequada a um propósito específico a partir da enorme gama de opções disponíveis.

C a p í t u l o 1

IntroduçãoaoMATLAB

Book_Matlab.indb 1 29/4/2010 09:47:17

2 | FundamentodeProgramação em MATLAB®

1.1 Vantagens do Matlab

MATLAB tem muitas vantagens, em comparação com linguagens computacionais con-vencionais, para resolver problemas técnicos. Dentre elas, temos:

1 Facilidade de UsoMATLAB é uma linguagem interpretada, assim como diversas versões de Basic. Como o Basic, ele é muito fácil de usar. O programa pode ser utilizado como pran cheta de rascunhos para avaliar expressões digitadas em linha de comando, ou para executar programas grandes escritos previamente. Os pro-gramas podem ser facilmente escritos e modificados no ambiente integrado de desenvolvimento, e depois depurados por meio do depurador MATLAB. Como a linguagem é muito fácil de utilizar, ele é ideal para o desenvolvimento rápido de protótipos para novos programas.

Diversas ferramentas para desenvolvimento de programas são fornecidas, o que facilita o uso do programa. Dentre elas, temos um editor/depurador integrado, documentação e manuais on-line, um navegador do espaço de trab-alho e diversos programas de demonstração.

2 Independência de PlataformaMATLAB tem suporte em diferentes sistemas computacionais, o que propor-ciona independência de plataforma. No momento da preparação deste livro, a lingua gem tem suporte em Windows XP/Vista, Linux, diversas versões de Unix e Macintosh. Programas escritos em qualquer plataforma são executados nas outras, e arqui vos de dados escritos em qualquer plataforma podem assim também ser lidos transparentemente. Com isso, programas escritos em MATLAB podem migrar para novas plataformas caso o usuário precise da mudança.

3 Funções PredefinidasMATLAB vem completo, com uma grande biblioteca de funções predefi nidas, que apresentam soluções testadas e empacotadas para diversas tarefas técnicas básicas. Por exemplo, suponha que você esteja escrevendo um programa para calcular as estatísticas relacionadas a um conjunto de dados de entrada. Na maioria das linguagens, você precisaria escrever suas próprias sub-rotinas ou funções para implementar os cálculos de média aritmética, desvio-padrão, me diana etc. Estas, e centenas de outras funções fazem parte da linguagem MATLAB, facili tando seu trabalho.

Além da grande biblioteca de funções presentes na linguagem MATLAB básica, diversas ferramentas específicas estão disponíveis para ajudar a resolv-er problemas complexos em áreas específicas. Por exemplo, um usuário pode adquirir ferramentas-padrão para resolver problemas em Processamento de Sinais, Sistemas de Controle, Comunicações, Processamento de Imagens e Redes Neurais, além de outros. Existem também muitos programas MATLAB de uso livre, que são contribuições de usuários compartilhadas por meio do site MATLAB.

Book_Matlab.indb 2 29/4/2010 09:47:17

Capítulo 1Introdução ao MATLAB | 3

4 Desenhos Independentes de DispositivosDiferente da maioria das linguagens de computador, MATLAB tem muitos co mandos para desenhos e imagens, que podem ser apresen tados em qualquer dispositivo de saída gráfica compatível com o computador que executa o MATLAB. Este recurso torna o MATLAB uma ferramenta excepcional para visua lização de dados técnicos.

5 Interface Gráfica de UsuárioMATLAB tem ferramentas que permitem a um usuário construir interativa-mente uma interface gráfica de usuário (GUI, do inglês Graphical User Interface) para seus progra mas. Com este recurso, o programador pode projetar pro-gramas sofisticados de aná lise de dados, os quais podem ser operados por usuários relativamente inexperientes.

6 O Compilador MATLABA flexibilidade e a independência de plataforma do MATLAB resultam da com-pilação de programas MATLAB em um código independente de dispositivo denomi nado pcode, e da interpretação em tempo de execução das instruções em pcode. Esta abordagem é similar à adotada pela linguagem Visual Basic da Microsoft. Infelizmente, os programas resultantes às vezes podem se tornar lentos, pois o código MATLAB é interpretado, em vez de compilado. Indicaremos os aspectos que tendem a tornar a execução de programas mais lenta quando os encontrarmos. Versões recentes do MATLAB resolveram parcialmente este problema com a inclusão da tecnologia de compilação no momento de uso (Just-in-time – JIT). O JIT compila partes do código MATLAB durante a execução dos programas, desta forma acelerando os programas de maneira geral.

Existe um compilador MATLAB separado. Ele pode compilar um pro-grama MATLAB como um programa efetivamente executável, que pode rodar sem a necessidade de uma licença MATLAB. Esta é uma boa forma de converter um progra ma protótipo MATLAB em um programa executável que pode ser vendido e distribuído a usuários.

1.2 Desvantagens do Matlab

MATLAB tem duas desvantagens principais. Primeiro, ele é uma linguagem interpre-tada, por isso pode ser mais lento que linguagens compiladas. Este problema pode ser dimi nuído pela estruturação apropriada dos programas MATLAB para otimizar o des-empenho do código vetorizado e pelo uso do compilador JIT.

A segunda desvantagem é o custo: uma cópia completa do MATLAB é de cinco a dez vezes mais cara que um compilador convencional C ou Fortran. Esse custo relativa-mente alto é mais do que compensado pelo tempo reduzido requerido para um engen-heiro ou cientista criar um programa, o que torna o MATLAB eficaz para empresas. Ele pode ser muito caro, entretanto, para a compra individual. Felizmente, existe uma versão de estudante mais barata, que é uma excelente ferramenta para aqueles que queiram aprender a linguagem. A versão estudante do MATLAB é essencialmente idêntica à versão completa.

Book_Matlab.indb 3 29/4/2010 09:47:17

4 | FundamentodeProgramação em MATLAB®

1.3 O ambiente Matlab

A unidade fundamental de dados em qualquer programa MATLAB é a matriz, que é uma coleção de valores de dados organizados em linhas e colunas, determi nada por um nome único. Valores individuais de dados em uma matriz podem ser acessados por meio do nome da matriz seguido de índices entre parênteses que identificam a linha e a coluna de um valor particular. Até mesmo escalares são tratados como matrizes em MATLAB – eles são simplesmente matrizes com apenas uma linha e uma coluna. Aprenderemos a criar e a manipular matrizes MATLAB na seção 1.4 (substitui “no Capítulo 2”).

Na execução do MATLAB podem ser exibidas janelas de diferentes tipos, as quais aceitam comandos ou exibem informações. Os três tipos mais importantes são Janelas de Comandos, onde podem ser inseridos comandos; Janelas de Figuras, que exibem desenhos e gráficos; e Janelas de Edição, que permitem a um usuário criar e modificar programas MATLAB. Veremos exemplos desses três tipos de janelas na presente seção.

Além disso, o MATLAB pode exibir outras janelas de auxílio, que possibilitam ao usuário examinar o valor de variáveis definidas em memória. Vamos conhecer aqui algumas dessas janelas adicionais, e examinar as outras quando discutirmos como depurar programas MATLAB.

1.3.1 a Área de trabalho Matlab

Ao iniciar o MATLAB versão 7.5, aparece uma janela especial denominada área de trabalho MATLAB. Essa área de trabalho é uma janela dentro da qual há outras janelas, que exibem os dados do MATLAB, barras de ferramentas e um botão “Iniciar” similar aos utilizados no Windows XP ou Vista. A maior parte das ferramentas MATLAB aparece como “estacio-nada” na área de trabalho, em sua configuração inicial, dentro da janela de área de trabalho. Entretanto, o usuário pode “transportar” uma ou todas as ferramentas, para que elas apa-reçam em janelas separadas.

A configuração inicial da área de trabalho MATLAB está apresentada na Figura 1.1. Ela integra muitas ferramentas para gerenciar arquivos, variáveis e aplicações do ambiente MATLAB.

As principais ferramentas que podem ser acessadas na ou a partir da área de tra-balho MATLAB são:

• Janela de Comandos• Janela de Histórico de Comandos• Botão Iniciar• Janela de Documentos, que inclui o Editor/Depurador e o Editor de Matrizes• Janelas de Figuras• Navegador do Espaço de Trabalho• Navegador de Ajuda• Navegador de Caminhos• Navegador do Diretório Corrente

Discutiremos as funções dessas ferramentas em seções subsequentes do pre-sente capítulo.

Book_Matlab.indb 4 29/4/2010 09:47:17

Capítulo 1Introdução ao MATLAB | 5

1.3.2 a Janela de Comandos

O lado direito da área de trabalho MATLAB contém a Janela de Comandos. Um usuá-rio pode inserir comandos interativos pelo marcador de comandos (»), na Janela de Comandos, e eles serão executados de imediato.

Um exemplo de cálculo interativo simples é o seguinte: suponha que você queira calcular a área de um círculo com raio de 2,5 m. Isso pode ser feito pela janela de coman-dos MATLAB, digitando:

» area = pi * 2.5^2area =

19,6350

O MATLAB calcula a resposta assim que a tecla Enter é pressionada, e armazena o resultado em uma variável (na realidade, em uma matriz 1 x 1) denominada area. O conteúdo dessa variável é exibido na Janela de Comandos, conforme mostrado na

Figura 1.1 Área de trabalho MATLAB. A aparência exata da janela pode diferir ligeiramente em diferentes tipos de computador.

Book_Matlab.indb 5 29/4/2010 09:47:17

6 | FundamentodeProgramação em MATLAB®

Figura 1.2, e a variável pode ser usada em outros cálculos. (Observe que π é predefinido no MATLAB, por isso podemos simplesmente usar pi sem antes termos de declarar seu valor como 3,141592...).

Se uma declaração é muito extensa para ser digitada em uma única linha, ela pode ser complementada em linhas sucessivas digitando reticências (...) no final de cada linha, e então continuando na linha seguinte. Por exemplo, as duas expressões a seguir são idênticas:

x1 = 1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6

e

x1 = 1 + 1/2 + 1/3 + 1/4... + 1/5 + 1/6

Em vez de digitar comandos diretamente na Janela de Comandos, uma série de comandos pode ser colocada em um arquivo, e o arquivo inteiro pode ser executado quando digitamos seu nome na Janela de Comandos. Esses arquivos são denominados arquivos de scripts (e funções de scripts, como veremos), também chamados arquivos M, por terem uma extensão de arquivo “.m”.

Figura 1.2 A Janela de Comandos fica mais à direita na área de trabalho. Os usuários podem inserir comandos e ver as respostas ali.

Book_Matlab.indb 6 29/4/2010 09:47:18

Capítulo 1Introdução ao MATLAB | 7

1.3.3 a Janela de Histórico de Comandos

A Janela de Histórico de Comandos exibe uma lista dos comandos que um usuário inseriu na Janela de Comandos. A lista de comandos anteriores pode se estender a execuções anteriores do programa. Os comandos permanecem na lista até ser apagados. Para reexecutar qualquer comando, simplesmente clique duas vezes sobre ele com o botão esquerdo do mouse. Para apagar um ou mais comandos da Janela de Histórico de Comandos, selecione os comandos e clique sobre eles com o botão direito do mouse. Surgirá um menu que permitirá ao usuário apagar os itens (ver Figura 1.3).

1.3.4 O botão Iniciar

O Botão Iniciar (Figura 1.4) permite ao usuário acessar as ferramentas MATLAB e da área de trabalho, arquivos de ajuda, e assim por diante. Ele funciona exatamente como o botão Iniciar do Windows. Para iniciar o uso de uma ferramenta específica, basta cli-car no Botão Iniciar e selecionar a ferramenta com base no submenu apropriado.

Figura 1.3 A Janela de Histórico de Comandos, mostrando dois comandos sendo apagados.

Book_Matlab.indb 7 29/4/2010 09:47:18

Visite a página deste livro na Cengage Learning Brasil e conheça também todo o nosso catálogo

STT

EEPPPPPP

HHHHHHEEEEEE

NNNNNNNNNNNN JJJJJJ...... CCCCCC

HHHHHHHAAAAAAA

PPPPPPPPMMMMMMMM

AAAAAAAANNNNNNNN

PPPPPPPPRRRRRR

OOOOOOGGGG

RRAA

MMMAA

ÇÇÃÃ

OO EE

MM MMM

AAATTT

LLLAA

BT

LLAA

BB PPAA

RRAA

EENN

GGEE

NNNNNNHHHHH

EEEEEEEIIRRRR

OOOOOOSS

S T E P H E N J . C H A P M A N

SS EEEE GG UU NNN DDD AAAAAA EEEEEE DDDD IIII ÇÇÇ ÃÃ O

O O OO auauauautototot r r r apapaprererereeeseseseseses ntntntnta,aa,a, a a ao o lolongngo o dede

tototototodadadada a a a a o oo obrbrbrbra,aa,a, u uumamma m metetododolologogiaiaia dd ddeeee

reereresssosoluluçãçããão oo dededede pp pproroblblememas

totop-p-dodownw ((dodo mmaiais s gegerararall l papapapararara o o

mamaisis espspececífí ico)o), rerefoforçrçanandodo aa

cacapap cicidadade do o MAMATLTLABAB ccomomomommmommmommmo o

uuumumumuuu aa liingngngngngngngngngngngngnn uauagegem m dede prorogrgramamaçaçãoão

tététététéécncnicica quququque e e pepermrmitite aoao eststududanntete

esesesesesesccrcrcrcrcrcc eveverer p roogrgramammmasasasas l limimpopos,s,

efefefefefefefefficccciccieientntnnn es ee b bemem doco ummenennntatatatadodos.s.

OO OOOOO lllililil vrvvvvv o oo enfafaf tizaaaaa o uuusssosos de e

fuffffufunçnçnçnççnçnçnçõeõ sss ss parararaa decccccompoppp siçãçççção

ólóóólólóllóóggigiigigiicacacccacaaa ddde taaatt reefafafafafafas emmemm

ssususususususubtbtbttbbbb aaararaa efefeee aaaaasas aaaaaaininnninndadadadaaa mmenennnnnooresssse e ddddddeeee

fefeeefefeff rrrrrrrrrrraaamamamamaamenenenenenentatatatatat ssss ss MAMAMAMAMAMATLTLTLTLTLTLABABABABABAB

prprrrprpré---é-éé ccococcococococ nsnssnsnsnstrtrtrtrtrtruíuíuuuuídadadadadadass.ssss AAAA AAprprprprprpresesesesssenenenenenentatatatatata,

cooocoocomm m mmm igggguauauauauaual l ênênênênênênfafafafafafasesesesesese, , nonononoootatatatatatas ss sosososososobrbrbrbrbrbreeeee e

bobobooboboboboasasasss p p p prárááátitititicacaaacc s s s s dededededede pppppprorororororogrgrgrrgrramamamamamamaçaçaçaçaçaçãoãoãoãoãoão

e e ee eererererrorororoooos s sss dededede pp p prororr grrgramamamamamamaçaçaçaçaçaçãoãoãoãoãoão..

ApApApApApplililiililicacacacacacaçõçõçõçõçõçõõesesesesesesesDeDeststtinininna-a-a-a-sesesesesee à à à à àà d d d d ddisisisisisisciciciciciciplplplplplplplininininninina a a aa a a

ininintrtrtrtrododododuçuçãoão àà c comommpupupupupuputatatatataçãçãçãçãçãção o o ooo (o(o(o(o(o(ou u uuuu

ciciênêncicia a dada ccc comomommpupupuputataçãção)o), nonoos s ss

cursos d dee ininformrmátáticica,a, cccomomomomo o

SiSiststsstememmemasasa d de e Informmaçaçãoã ,

Ciiênêncicia a dada CC CComomomompupup tataçãção e

EnEngegenhharariaia da a CoCompmppututututaçaçaça ãoão, ,

beem m cocomomo nnosos currsosos dede

Fíísis caca, QuQuímímicica a e e EnEngegenhnharariaia, ,

ses nddo o papartrticicululararmementnte e útútilil

paparara eeststududanantetes s deestste e úlú tit momo.

DeD ststststininini a-a-se, aiaindnda,a, a a

profissionnnnaiaiaiais s s emem g gereralal queue

desejem utilizar ee eessssss a a

ffferramamaaa ennnnta da computututtaçaçaçaçãoão.

Para suas soluções de curso e aprendizado,visite www.cengage.com.br

9 788522 107896

ISBN 13 978-85-221-0789-6ISBN 10 85-221-0789-0

PPPPPPRRRRROOOOGGGGGGGGGGGGGGGRRRRRRRAAAAAAAMMMMMMMAAAAAAÇÇÇÇÇÃÃÃÃÃOOOOO EEEEMMMMMMMM

GGGGGGGEEEEEEEENNNNNNHHHHHHHHEEEEEEEEIIIIIIIIRRRRRRRROOOOOOOOSSPPPPPPPPAAAAAAARRRRRRRRAAAAAAAA EEEEEEEENNNNNNNNGGGGGGGGEEEEEEEENNNNNNNNHHHHHHHHEEEEEIIIROOOOOOOSSS ES E G UG U N DN A E DE DE DE DE DD I ÇI ÇI ÇI ÇI ÇI ÇI Ç Ã OÃ OÃ OÃ OÃ OÃ OÃ O

Ouutrass obrbrassassssasssas

adaddadadadadaadduçuççççuçuçuçuçuççAAAnAAnAAnAAAnAAnálálálllláláláláláláliiisiiisisisississe e ee ee e NuNNNNuNuNuNuNuNuNumémémééééémémééééériririririrricacacacacacacacacaaca TrTrTrTrTrTTrTrTTrTTrTrTraaaaaaaaaaa ãããããoãoãã dddddd ddddddaa a aa 8 88 8888 88

nanaaaaaanaanananaaaddddedddddddiçiççiçiçiçiçiçãoãoãoãoãooooãoãoão nnnnnnnnorrrorororororoorrrtttetettttetetetetee-a-aaaaaaaaammmmememememememeememeeme iiriririiiriiiicacaaacacaccccacacac nnnnnnnnnn

DDDDDDDDDDDDouououououououououuuuuuglglglglgglglgglglggggg asasasasasasasasasas F FFaaiaiaiaiaaiaiaiaiairerereereeeereererererereesssssssssRiRiRiRiRiRiRiRRRRR chccccccchhhharaaaaa dd dddddd LLLLL.LLL.LLLLL B BBBBBBBururururururururrururuurrdededededededededeen n nnnn nnnnnn n eeeeee ee e e J.J.JJJ D DDDD D D

AAAAAAAAAAlglglglglglgglglgororororororororororititttitititiitttittmomomomomomomomomm sss sss ememememm CCCCC CCCC++++++++++++++++++EsEsEsEsEsEsEsEstrtrtrtrtrtrtrt ututututututututurururururururura a a a a aa dededededededde D DD adadadddddddddddosososos eeee e eee A AAAAAAAAA

AddddddAddamamaaaamaa DDDDDDDDrororooroororozdzdzdzdzdzdzdzdekekekekekekekekekk

iaaaaaaaaa d ddddddddddddda a aaaaaaa CoCoCooCCCCoooCCoCoCoCoCoompmppppmppppmpmpmpmpmpmpppuuuutututuu açaçaaçaçaçççaaçççççãããããoãoããão InnInnInInInIntrtrtrtrtrtrtrtrododooooododododododuçuççççuçuçuçuçuççãoãoãoããããoããoã à à à ààà C C CCCCC CCCCCCCiêiêêiêiêiêiêiêêncncncncncncnnncnciaiaiiiiaii

2222222 2 eee e eeeedidididididididiçççççççççççç aaaaaãoãooãoãoãoãoãoãoão a aa aaaaaaaatutututututututututualalaaaalaaaaalala iziziiii adadaaaa

eleleeelelelee i,i,i,ii,i,,, E E E EE Enrnricicoo oooooo GiGiGiGiGiGiGiiulululululullioioiioioiooioi Ricaa dddrdrdddo o o o DaDaDaDaDaDaDaDaDaanininininnininininieleleleeleeeleelelele F FFFFFFFFFedededededededededeeeeeeee

ererrrrrrrnanananananananannandndndnndndndndndndo o oooooooo EdEdEEEdEdEdEdEdEdEdEduauauaaaaauauauauauarddddddrddooo o o oo PePereesFrFrFrFrFrFrFrF anananananaancocococo P P P Pololoo lololoolooooo iiininninnini e eeee F FFFFFFFFeeeeeeeeeee

SSSSSSSisisiiiiisisssisistetemamammmm s s OpOpOOOpOOpOOOOOOO eeererererereracacacacacaccioioioioioooioioioioionanananananaananannaisissssisisisissisisIIInInI trtrttrtttrododdodododoododo uçuçuçuçuçuçuçuçuççãoãoãoãoãoãoãoãoãããoãoãoãoo a aaaaaaaaaososooosososososososos S S SSS S SSS

nnnnnnnnnnnnnnnnnn M MMMMMMMMcIcIcIcIccIcIcccIveveeeeevevevevevevevv r r rrr rrrr McMcccccMcMcMcMcMcMcMcHoHoHoHoHoHoHoHoHoesesesesessesesessessIda a M.M. F F F FFFFFFlllylylyylylyylyynnnnnnnnnnnnnnnnn e eeeeeeeee A AAAAAAAAAnnnnnnnn

sscrcreteta:a uumamammmmmmm ii i intntttntntnttttrororooooooodududududdddduçãçãçãçãçãçãããão o ooMaMaMaMaMaMaMaMatetetetetetetet mámámmmámámmámmám titiititittiiicacacacacacaca DD DDisisisis

TrTTTTT addddduçuçuçuçuuuuçuu ee eeeedididididiiçãçãçãçãçãção o o o o o nonooooonononoortrteee-eee-e-e-e amamamamamamamamamerericicananaaãoãoãoãoãoã dddddda aaaaa 2 2222

heininerermamannEdwawawawawawawaw rd R. Sch

a Objeto cooooooom PrPrPrPrPrPrPrototototototototoooooo ipaçãoeentn açação aOrOrOrOrOrOrO ien

ninielel F Fededeli, EEEEEEEnrn iccccccooooo oo o GiGiGGGGiG ulu io ddoo DaDannRiRiRRRR cacardrdoo

oonini e e FFerernanaaaaaandndnnnnn oooooo o EEEdEdEEE uauauuuuu drdPPololollololoFranncoo PPo uauuuuuardrdo o PePereress

PrPrinincc ssípípioioss Sistemmmmmmass OOO O OO O Opepepeeeeeperaraacicicionono aiaia sss dde e SS

caççe e ee AA AAplplplicicaPrPrPP ojojjjetetosos õeõeõõõõ ss

SStutuararttBrB iiaian nn LL.LL SSSS

C

M

Y

CM

MY

CY

CMY

K

AF_matlab.ai 5/18/10 5:05:22 PMAF_matlab.ai 5/18/10 5:05:22 PM