Informática para Ciências e Engenharias (B)...

91
Informática para Ciências e Engenharias (B) 2016/17 Teórica 1

Transcript of Informática para Ciências e Engenharias (B)...

Informática para Ciências e Engenharias (B)

2016/17

Teórica 1

Informação

l  Regência / Teóricas •  Pedro Barahona ([email protected])

l  Aulas Práticas •  Pedro Barahona ([email protected]) •  Jorge Cruz ([email protected]) •  Ludwig Krippahl ([email protected]) •  Raquel Macedo ([email protected]) •  Filipe Luís ([email protected])

8 Março 2017 ICE-b: Introdução 2

Informação

l  Livro aconselhado: •  Allen B. Downey. Physical Modeling in MATLAB

• PDF: http://greenteapress.com/matlab/

l  Página de ICE-b •  http://iceb.ssdi.di.fct.unl.pt/

•  Programa, Objectivos •  Teóricas: sumários, slides •  Práticas: sumários, fichas •  Avaliação: calendário, provas, notas •  Software: links para o Octave •  Edições anteriores

8 Março 2017 ICE-b: Introdução 3

Na aula de hoje...

l  Objectivos, trabalhos e avaliação

l  Aulas teóricas e práticas

l  Sistema computacional

•  Componentes e execução de programas

l  MATLAB

•  Modelo de execução (interpretador).

•  Expressões aritméticas, atribuição e strings

8 Março 2017 ICE-b: Introdução 4

Objectivos

l  Visão abrangente das

•  metodologias e ferramentas da Informática para a

•  resolução de problemas em Ciência e nas Engenharias.

8 Março 2017 ICE-b: Introdução 5

Objectivos

l  Introdução a metodologias e ferramentas da Informática para resolver problemas em Ciência e Engenharias.

•  fundamentos de programação;

•  (breve) introdução a bases de dados;

•  redes e protocolos de comunicação;

•  aplicações: simulação, análise, ...

8 Março 2017 ICE-b: Introdução 6

Trabalho do aluno

l  6 créditos ECTS

•  Presencial

• Aulas teóricas: 2h por semana

• Aulas práticas: 3h por semana

•  Autónomo

• Estudo: 55h

• Trabalhos: 35h

•  (~ 6 horas por semana)

8 Março 2017 ICE-b: Introdução 7

Aulas Teóricas

l  Perceber, não decorar.

•  Preparação para o estudo

l  ~70% exposição, ~30% discussão

•  Aproveitem para ir tirando dúvidas

8 Março 2017 ICE-b: Introdução 8

Aulas Práticas

l  Começam segunda feira (dia 13 Março)

l  3 horas:

•  Praticar e fazer os trabalhos.

•  (algumas aulas têm exercícios extra)

•  mais autonomia

•  devem ir preparados

• Sem perceber a teórica é muito mais difícil

8 Março 2017 ICE-b: Introdução 9

Aulas Práticas

l  Login, password: os do CLIP

l  Trabalhem na vossa área em c:\users

•  Não no pendisk nem no Z:

l  No final, copiar os ficheiros

•  pendisk

•  drive Z: (área do aluno na FCT)

•  enviar por email.

8 Março 2017 ICE-b: Introdução 10

Avaliação

l  Duas componentes:

•  CompL - Laboratorial (trabalhos práticos)

•  CompTP - Teórico-prática (testes ou exame)

l  Fraude

•  actos que viciem o processo de avaliação

•  copiar, ceder trabalho para cópia, assinar trabalhos que não se fez, etc...

•  reprovação imediata

8 Março 2017 ICE-b: Introdução 11

Avaliação Contínua

l  Dois testes (datas provisórias)

•  T1: 29 de Abril, sábado, às 9:30

•  T2: 5 de Junho, 2ª feira, às 18:00

l  Exame

•  Ex: 7 de Julho, sábado, às 9:30

l  Componente Teórico-Prática •  CompTP = 0.5 • T1 + 0.5 • T2 (avaliação contínua)

ou •  CompTP = max (Ex, 0.5 • T1 + 0.5 • T2) (recurso / melhoria)

8 Março 2017 ICE-b: Introdução 12

Avaliação Contínua

l  Um trabalho prático (TP) •  Grupos de 2 alunos no período de

• 15 de Maio (publicação) a 31 de Maio (entrega) • Discussão / defesa da nota de 5 a 9 de Junho

l  2 Exercícios de programação (EP1 e EP2): •  Individuais nos períodos de

• 3 de Abril (publicação) a 7 de Abril (entrega) • 18 de Abril (publicação) a 21 de Abril (entrega) • Discussão / defesa da nota de 2 a 5 de Maio

l  Componente Laboratorial •  CompL = 0.6 • TP + 0.2 • EP1 + 0.2 • EP2

8 Março 2017 ICE-b: Introdução 13

Avaliação Contínua

l  Condições necessárias para se obter

•  Frequência • CompL ≥ 8.0

•  Aprovação • Frequência • CompTP ≥ 8.0 • NF≥ 9.5

l  Nota Final (NF) •  NF = 0.6 • CompTP + 0.4 • CompL se CompTP ≥ 8.0 •  NF = CompTP, (reprovação) se CompTP < 8.0

8 Março 2017 ICE-b: Introdução 14

Avaliação

l  Notas de anos anteriores (a partir de 2013/14)

•  Alunos com Frequência

• Dispensados de realizar os trabalhos

• Se os realizarem, ficam com a melhor CompL

•  Alunos com CompTP ≥ 8.0

• Estão dispensados dos testes e exame

• Se realizarem testes ou exame, ficam com a melhor CompTP

8 Março 2017 ICE-b: Introdução 15

Informática (Introdução)

8 Março 2017 ICE-b: Introdução 16

Informática: Ciência e Engenharia

l  Processamento de informação

•  sistemas computacionais, ambientes de programação, concepção e implementação de programas, ...

l  Contribui para a resolução de problemas de todas as áreas.

l  Usando o computador podemos

•  desenvolver programas

•  executar programas

8 Março 2017 ICE-b: Introdução 17

Sistema computacional

l  Hardware

•  dispositivos electrónicos que compõem o computador

l  Software

•  Programas executados pelo hardware

• Sistema: controla a execução de aplicações

• Aplicações: executam várias funções

l  Dados

•  Informação lida ou escrita pelo software

8 Março 2017 ICE-b: Introdução 18

Hardware

l  O hardware opera sobre sequências de elementos em dois estados

•  Zero e um, desligado e ligado, bit (binary digit)

•  Um conjunto de 8 bits é um byte

•  Tudo é codificado em sequências de bytes:

• Programas, dados (texto, imagens, músicas, vídeos).

• Tudo depende de como a informação é interpretada.

8 Março 2017 ICE-b: Introdução 19

Programas

l  Programa:

•  conjunto de instruções l  Para executar programas é preciso:

•  Hardware

•  interpreta conjuntos de bits que especificam acções muito simples (instruções).

• A funcionalidade dos programas vem do encadeamento de muitas acções simples

8 Março 2017 ICE-b: Introdução 20

Programas

l  Software (os programas)

•  sistema operativo •  conjunto de programas que medeiam interacção com

hardware e outros

•  interpretador de comandos

• permite especificar acções e invocar programas

•  compiladores e interpretadores

•  traduzem instruções de alto nível para o hardware

•  outras aplicações

• processador de texto, folha de cálculo, imagem, ...

8 Março 2017 ICE-b: Introdução 21

Hardware

imagens:

Unidade Central de Processamento (CPU)

Microprocessador: Circuito integrado que opera, sequencialmente, em valores binários (voltagem, 0 e 1).

Pentium pro, 1995 5.5 milhões de transistores (Core)

8 Março 2017 ICE-b: Introdução 22

Hardware

imagens:

CPU

8 Março 2017 ICE-b: Introdução 23

Hardware

imagens:

CPU

8 Março 2017 ICE-b: Introdução 24

Hardware

imagens:

Random Access Memory (RAM)

•  Memória central, rápida

•  Armazena dados e programas

•  Volátil: conteúdo perde-se quando o computador é desligado

8 Março 2017 ICE-b: Introdução 25

Hardware

imagens:

CPU

Motherboard •  Electrónica de

comunicação dentro e para fora do PC

8 Março 2017 ICE-b: Introdução 26

Hardware

imagens:

HDD

•  Disco rígido

•  Não volátil, mais lento

CPU

RAM

8 Março 2017 ICE-b: Introdução 27

Hardware

imagens:

010010101 0111101

0100110

0100110

8 Março 2017 ICE-b: Introdução 28

Hardware

l  Na memória, os bits estão organizados em palavras (8, 16, 32 ou 64 bits, por exemplo)

•  1 byte = 8 bits

l  Cada palavra tem um endereço

•  endereço é fixo

•  conteúdo varia

10100010010101110100101001011010 00000000000000000000000000000000 00000000000010010100101001001100 00010010011000000000000000000000 00000000000000000000000000000000

106 107 108 109 110

106

8 Março 2017 ICE-b: Introdução 29

Hardware

l  Leitura

•  CPU apresenta endereço à memória

10100010010101110100101001011010 00000000000000000000000000000000 00000000000010010100101001001100 00010010011000000000000000000000 00000000000000000000000000000000

106 107 108 109 110

106

...

... CPU 109

8 Março 2017 ICE-b: Introdução 30

Hardware

l  Leitura

•  Memória devolve cópia do conteúdo

10100010010101110100101001011010 00000000000000000000000000000000 00000000000010010100101001001100

00000000000000000000000000000000

106 107 108

110

106

...

... CPU

00010010011000000000000000000000 109

8 Março 2017 ICE-b: Introdução 31

Hardware

l  Escrita

•  CPU apresenta endereço e novo conteúdo

10100010010101110100101001011010 00000000000000000000000000000000 00000000000010010100101001001100 00010010011000000000000000000000 00000000000000000000000000000000

106 107 108 109 110

106

...

... CPU

107 10100101...

107

8 Março 2017 ICE-b: Introdução 32

Hardware

l  Escrita

•  Memória actualiza o conteúdo no endereço indicado.

10100010010101110100101001011010 00000000000000000000000000000000 00000000000010000100101001001100 00010010011000000000000000000000 00000000000000000000000000000000

106 107 108 109 110 ...

... CPU

107 10100101...

10100101010010101010001001100100 107

8 Março 2017 ICE-b: Introdução 33

Hardware

l  CPU

•  Obtém instruções guardadas na memória (RAM)

• Em cada momento guarda o endereço da instrução a executar

• Execução sequencial

•  Componentes principais

• Unidade de controlo: determina que operações efectuar para cada instrução

• Unidade aritmética e lógica: operações algébricas

8 Março 2017 ICE-b: Introdução 34

Hardware

l  CPU •  Exemplo (simplificado): SOMA 106 107 110

• Soma valores em 106 e 107, guarda em 110

Unidade de

Controlo

Unidade de aritmética e

lógica

00100010010101110100101001011010 00000101010010101010001001100100 00000000000010010100101001001100 00010010011000000000000000000000 00100111101000011110110010111110

106

108 109 110

107 106

...

...

8 Março 2017 ICE-b: Introdução 35

Sistema operativo (SO)

l  Funções de acesso a periféricos e ficheiros

•  Sistema de ficheiros, drivers, etc.

•  Invocadas pelos programas em execução

l  Carregador

•  Usando funções anteriores, carrega programas em memória e coloca-os em execução

l  Interpretador de comandos

•  Usando as funções anteriores, lê comandos do teclado e invoca o carregador para executar programas.

8 Março 2017 ICE-b: Introdução 36

Ficheiros

l  Qualquer ficheiro é uma sequência de bits (1,0)

•  Organizado em bytes (8 bits)

•  pode representar um texto, números, imagem, sons, ...

•  depende de como é interpretado

l  O ficheiro é guardado no disco

•  não se perde ao desligar o computador

•  tem um identificador único (caminho/nome).

l  Um ficheiro com código fonte

•  código escrito pelo programador

8 Março 2017 ICE-b: Introdução 37

Sistema operativo

l  Gere a memória

Acesso a periféricos e ficheiros

Carregador Interpretador de comandos

Memória ocupada pelo SO

Memória para onde são carregados

os programas

Memória livre para as aplicações

8 Março 2017 ICE-b: Introdução 38

Sistema operativo “simples”

l  Um utilizador de cada vez

•  Supervisiona a utilização dos recursos do sistema

•  Controla os periféricos

•  Gere a memória central (RAM)

•  Gere o acesso aos ficheiros (HDD, SSD, MC, PD...)

•  Gere a interacção com o utilizador

8 Março 2017 ICE-b: Introdução 39

Arranque

l  Quando a energia é ligada

•  O CPU começa a executar código, que carrega o SO do sistema de ficheiros para a RAM.

•  Depois, o CPU executa instruções que fazem a inicialização do SO

•  Terminada a inicialização, passa a ser executado o código do interpretador de comandos.

8 Março 2017 ICE-b: Introdução 40

Interpretador de comandos

l  Linha de comando

•  apresenta prompt

•  lê comando

•  executa o comando •  mostra resultados

•  volta ao prompt

•  cmd, konsole

8 Março 2017 ICE-b: Introdução 41

Interpretador de comandos

l  Linha de comando prompt> comando argumento1 argumento2 …

•  o comando pode ser interno do SO

• dir, cd, print, type

•  ou pode ser um programa para executar

• o SO verifica se existe o programa, invoca o carregador e o CPU executa o programa

•  os argumentos são passados para esse programa

• e.g. format G: /FS:FAT32

8 Março 2017 ICE-b: Introdução 42

Interpretador de comandos

l  Interface Gráfica

•  ícones

•  janelas

•  botões

•  menus

imagem:

8 Março 2017 ICE-b: Introdução 43

Interpretador de comandos

l  Interface Gráfica

•  (GUI: Graphical User Interface)

•  janelas, icons, menus, ...

•  click (ou duplo click)

•  se no ícone que representa um programa, o programa é carregado e executado

•  se no ícone que representa um ficheiro de dados é executado o programa associado, passando o nome do ficheiro como argumento

8 Março 2017 ICE-b: Introdução 44

Programar

8 Março 2017 ICE-b: Introdução 45

Programar

l  Para quê?

•  Versatilidade

• Não estamos limitados aos programas que •  já estão feitos • que temos • e que sabemos como usar

• Se soubermos programar podemos resolver muito mais problemas

• aproveitar melhor o potencial do computador

8 Março 2017 ICE-b: Introdução 46

Programar

l  Para quê? •  Versatilidade •  Reprodutibilidade

•  fazer coisas “à mão” não é reprodutível • é muito importante processar dados de forma

reprodutível

8 Março 2017 ICE-b: Introdução 47

Programar

l  Para quê? •  Versatilidade •  Reprodutibilidade •  Fiabilidade

• Uma vez testado, se funciona, funciona

8 Março 2017 ICE-b: Introdução 48

Programar

l  Para quê? •  Versatilidade •  Reprodutibilidade •  Fiabilidade •  Conveniência

• O investimento inicial pode compensar muito

8 Março 2017 ICE-b: Introdução 49

Programar

l  Exemplo: calcular massa molecular •  Alanina: CH3CH(NH2)COOH

l  Objectivo •  corremos o programa:

• massamol('CH3CH(NH2)COOH') •  e recebemos a resposta

• 89.093

8 Março 2017 ICE-b: Introdução 50

Programar

l  Exemplo: calcular massa molecular •  Precisamos de aprender umas coisas antes

l  Hoje: •  Como dar instruções ao CPU?

• ou seja, traduzir uma linguagem de programação prática para nós (alto nível)

• para as instruções correspondentes no CPU (baixo nível).

8 Março 2017 ICE-b: Introdução 51

Programar

l  Baixo nível •  Mais próximo do hardware •  Instruções simples, mais elementares

• Operações lógicas, leitura e escrita, operações algébricas

... mov ax,'00' mov di,counter mov cx,digits+cntDigits/2 cld rep stosw inc ax ...

8 Março 2017 ICE-b: Introdução 52

Programar

l  Alto nível •  Mais próximo de nós •  Instruções complexas

•  (convertidas em muitas simples para o CPU)

d = b^2-4*a*c; if s < 0 raizes = []; elseif d == 0 raizes =[-b/(2*a)]; else raizes = [(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];

8 Março 2017 ICE-b: Introdução 53

Programar

l  Precisamos de: •  linguagem de programação

• C++, Java, Python, … MATLAB •  um compilador...

• Traduz o programa escrito na linguagem de programação num formato que o SO pode carregar em memória e o CPU executar

•  … ou um interpretador •  Interpreta cada instrução da linguagem de programação

em instruções para o CPU

8 Março 2017 ICE-b: Introdução 54

Programar

l  Vamos usar: •  Linguagem de programação

• MATLAB •  Um interpretador

• MATLAB • ou Octave

• Gratuito. • Disponível em http://www.gnu.org/software/octave/ • Detalhes na página de ICE-b

8 Março 2017 ICE-b: Introdução 55

O interpretador é um programa

l  Funcionamento da consola do interpretador: •  utilizador escreve a linha com a instrução

•  (enter no final) •  o interpretador analisa a linha •  o interpretador executa a instrução

• mostra o resultado •  volta ao prompt

8 Março 2017 ICE-b: Introdução 56

O interpretador é um programa

l  Consola do interpretador

Utilizador dá ao interpretador o comando na linguagem de alto nível (MATLAB) O interpretador interpreta o comando e dá ao CPU as instruções correspondentes. (o CPU também executa o interpretador e coordena as entradas e saídas)

Memória

Código e dados do

interpretador

8 Março 2017 ICE-b: Introdução 57

Linguagem MATLAB

l  Constantes numéricas 1 1.5 -20.8 •  Nota: o ponto é o separador decimal •  Constantes numéricas valem o que representam.

8 Março 2017 ICE-b: Introdução 58

Linguagem MATLAB

l  Expressões aritméticas •  Operadores aritméticos básicos: + - * / ^

octave:4> 5+12

ans = 17 octave:5> -1.7*(5-3) ans = -3.4000 octave:6> 5^2+3*2 ans = 31

8 Março 2017 ICE-b: Introdução 59

Linguagem MATLAB

l  Constantes l  Operadores aritméticos l  Funções pré-definidas

•  Chamar funções: • nome • nome(argumento) • nome(arg1,arg2,arg3...)

octave:7> cos(1) ans = 0.54030 octave:8> sqrt(15) ans = 3.8730 octave:9> sin(sqrt(2)) ans = 0.98777 octave:10> exp(2) ans = 7.3891 octave:11> e^2 ans = 7.3891 octave:12> pi ans = 3.1416

8 Março 2017 ICE-b: Introdução 60

Linguagem MATLAB

l  Variáveis •  uma variável é um nome para uma posição na memória •  o valor da variável é o conteúdo dessa posição •  nome da variável

•  letras (sem acentos, cedilhas, etc), algarismos e _ (underscore) começando por uma letra ou _

• e.g. var var1 _spec Y y • maiúsculas e minúsculas são diferentes

8 Março 2017 ICE-b: Introdução 61

Linguagem MATLAB

l  Variáveis •  o CPU executa instruções que especificam endereços de

memória; •  a unidade de aritmética e lógica opera sobre os conteúdos desses

endereços. •  mas as linguagens de alto nível permitem associar nomes a

endereços de memória • para o programador não precisar de saber os endereços

8 Março 2017 ICE-b: Introdução 62

Linguagem MATLAB

l  Variáveis •  os interpretadores mantêm uma tabela que associa nomes de

variáveis a endereços. •  quando um valor é atribuído a um nome pela primeira vez é criada

a variável acrescentando uma linha à tabela. •  a partir daí, sempre que o nome aparecer, a tabela é consultada

para se saber qual é o endereço de memória correspondente a esse nome.

8 Março 2017 ICE-b: Introdução 63

Linguagem MATLAB

l  Atribuição x = 6 •  interpretador lê a linha •  analisa o conteúdo

• definir uma variável com nome x • atribuir-lhe o valor 6

8 Março 2017 ICE-b: Introdução 64

Linguagem MATLAB

l  Atribuição x = 6 •  interpretador lê a linha •  analisa o conteúdo

• definir uma variável com nome x • atribuir-lhe o valor 6

•  Executa • associa o nome x um endereço

1000

RAM

1000 1001 1002

x

Nome Endereço

8 Março 2017 ICE-b: Introdução 65

Linguagem MATLAB

l  Atribuição

x = 6 •  interpretador lê a linha •  analisa o conteúdo

• definir uma variável com nome x • atribuir-lhe o valor 6

•  Executa • associa o nome x um endereço • guarda o valor no endereço RAM

•  (em binário, mas vamos simplificar...)

6

1000

RAM

1000 1001 1002

x

Nome Endereço

8 Março 2017 ICE-b: Introdução 66

Linguagem MATLAB

l  Atribuição y = 12 •  interpretador lê a linha •  analisa o conteúdo •  executa

• associa o nome y um endereço • guarda o valor no endereço RAM

6 12

1000 1001

RAM

1000 1001 1002

x y

Nome Endereço

8 Março 2017 ICE-b: Introdução 67

Linguagem MATLAB

l  Cálculo e atribuição z = x + y •  interpretador lê a linha •  analisa o conteúdo

•  somar x e y • guardar em z

6 12

1000 1001

RAM

1000 1001 1002

x y

Nome Endereço

8 Março 2017 ICE-b: Introdução 68

Linguagem MATLAB

l  Cálculo e atribuição z = x + y •  interpretador lê a linha •  analisa o conteúdo •  executa

•  y e x estão em memória

6 12

1000 1001

RAM

1000 1001 1002

x y

Nome Endereço

8 Março 2017 ICE-b: Introdução 69

Linguagem MATLAB

l  Cálculo e atribuição z = x + y •  interpretador lê a linha •  analisa o conteúdo •  executa

•  y e x estão em memória • é criada a variável z • CPU: SOMA 1000, 1001, 1002

6 12 18

1000 1001 1002

RAM

1000 1001 1002

x y z

Nome Endereço

8 Março 2017 ICE-b: Introdução 70

Linguagem MATLAB

l  Variáveis e valores •  variável = expressão

• = é o sinal de atribuição • à esquerda do = tem de ficar uma variável

• Só se pode atribuir valores à variável x = 2 ✓ 2 = x ✗

8 Março 2017 ICE-b: Introdução 71

Linguagem MATLAB

l  Tipos de dados (alguns) •  inteiros

x = 1

•  reais •  (aproximadamente... na verdade alguns racionais)

y = 23.8 •  string (texto literal)

t = 'abc'

8 Março 2017 ICE-b: Introdução 72

Linguagem MATLAB

l  strings

•  entre plicas indicar que é valor e não um nome x = abc

• o interpretador interpreta abc como um nome de uma variável ou função

x = 'abc' • assim atribui o texto, literalmente, à variável x •  (como sempre, codificado numericamente, e em binário)

8 Março 2017 ICE-b: Introdução 73

Linguagem MATLAB

l  strings (texto) •  sequências de símbolos (caracteres): letras maiúsculas e

minúsculas, algarismos, sinais de pontuação. •  cada carácter é armazenado no computador usando uma dada

codificação numérica •  sequência de bits

•  A codificação mais utilizada está definida na norma ASCII • American Standard Code for Information Interchange.

8 Março 2017 ICE-b: Introdução 74

Codificação ASCII

Codificação ASCII 8 Março 2017 ICE-b: Introdução 75

Codificação ASCII

Caracteres de controlo, como o LF - mudança de linha, em MATLAB ‘\n’, iniciam-se no código 01 e vão até ao código 31

Codificação ASCII 8 Março 2017 ICE-b: Introdução 76

Codificação ASCII

Dígitos, 48 a 57

Codificação ASCII 8 Março 2017 ICE-b: Introdução 77

Codificação ASCII

Letras

Maiúsculas 65 a 90

Minúsculas 97 a 122

Codificação ASCII 8 Março 2017 ICE-b: Introdução 78

Linguagem MATLAB

l  Resumindo, strings •  uma sequência de caracteres. •  Em MATLAB

• escreve-se entre plicas •  são valores que se pode atribuir a variáveis

octave:1> string='Estudante na FCT/UNL' string = Estudante na FCT/UNL

8 Março 2017 ICE-b: Introdução 79

Linguagem MATLAB

l  Funções para strings

octave:1> string='Estudante na FCT/UNL' string = Estudante na FCT/UNL octave:2> stringRes=lower(string) stringRes = estudante na fct/unl octave:3> stringRes=upper(string) stringRes = ESTUDANTE NA FCT/UNL octave:4> numEmTexto='3.14' numEmTexto = 3.14 octave:5> num=str2num(numEmTexto) num = 3.1400 octave:6> outroTexto=num2str(num) outroTexto = 3.14 octave:7>

8 Março 2017 ICE-b: Introdução 80

Linguagem MATLAB

l  Funções e variáveis •  podemos usar variáveis como argumentos

•  sin(a) (se a estiver definida) •  ATT: se definirmos uma variável com o mesmo nome que uma

função “escondemos” a função • e.g. sin=2 (já não podemos usar função sin)

8 Março 2017 ICE-b: Introdução 81

Linguagem MATLAB

l  Funções e variáveis •  todas as funções são chamadas pelo seu nome seguido dos

argumentos entre parênteses: •  sin(2) calcula o seno de 2 • help('sin') mostra a documentação da função sin •  cd('c:\users\a.meireles')

muda a pasta de trabalho para a pasta indicada • pwd sem argumentos, indica a pasta corrente • pi sem argumentos, devolve o valor de π

8 Março 2017 ICE-b: Introdução 82

Linguagem MATLAB

l  Funções e variáveis •  Excepção:

•  se uma função recebe apenas uma string sem espaços como argumento, pode ser chamada sem parênteses nem plicas na string.

• help sin equivale a help('sin') •  format bit equivale a format('bit) •  cd c:\users\a.meireles cd('c:\users\a.meireles')

• só usem esta síntaxe nestes casos •  sin 0 equivale a sin('0'), que calcula o seno do

código numérico do carácter '0' (48) ou erro.

8 Março 2017 ICE-b: Introdução 83

Linguagem MATLAB

l  Funções e variáveis •  Excepção:

•  se uma função recebe apenas uma string sem espaços como argumento, pode ser chamada sem parênteses nem plicas na string.

• Dá jeito em casos como help, cd e format, mas evitem usar esta síntaxe noutros casos para não fazer confusão.

• Em geral, invocar a função com •  nome(argumentos)

8 Março 2017 ICE-b: Introdução 84

Linguagem MATLAB

l  Funções e variáveis l  Expressões

•  Quando uma expressão é avaliada o interpretador “ecoa” o resultado • excepto se terminarmos linha com ;

•  Se o valor de uma expressão não é atribuído a uma variável o interpretador guarda na variável ans

8 Março 2017 ICE-b: Introdução 85

Exemplo

l  Sequências simples de comandos: •  Carregar o IDE do Octave

•  (Interactive Development Environment) •  Utilizar a janela de comandos •  Inserir os comandos interactivamente

l  Exemplo: Cálculo de concentração. •  NaCl: massa molar 58.4 g/mol •  Concentração de 2g em 125ml?

8 Março 2017 ICE-b: Introdução 86

Exemplo

l  Cálculo de concentração. •  NaCl: massa molar 58.4 g/mol •  Concentração de 2g em 125ml?

8 Março 2017 ICE-b: Introdução 87

>> mmNaCl = 58.4 mmNaCl=58.4 >> v = 0.125; >> q = 2/mmNaCl q = 0.034247 >> c = q/v c = 0.27397

Gestão de Variáveis

l  who lista as variáveis definidas •  whos para mais informação

l  clear “esquece-se” delas •  ou de uma em particular:

•  clear x

8 Março 2017 ICE-b: Introdução 88

Resumo

l  Comandos básicos do sistema l  Operadores * / + - ^ l  Atribuição de valor a variável =

•  números e strings l  Funções

•  nome(argumentos)

8 Março 2017 ICE-b: Introdução 89

Estudar esta aula

l  Recomendado •  Physical Modeling in MATLAB

• Capítulo 1 todo

l  Opcional (ler por alto) •  Manual do Octave

• Capítulos 1 e 2, introdução do capítulo 4 •  tem mais matéria do que é dada nesta disciplina, mas é

útil saberem o que lá está • principalmente para consulta

8 Março 2017 ICE-b: Introdução 90

Dúvidas?

8 Março 2017 ICE-b: Introdução 91