Informática para Ciências e Engenharias (B) 2013/14
Transcript of Informática para Ciências e Engenharias (B) 2013/14
![Page 1: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/1.jpg)
Informática para Ciências e Engenharias (B)
2013/14
Teórica 1
![Page 2: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/2.jpg)
2
Informação
Docente (teóricas)• Ludwig Krippahl ([email protected])
• Terças, 15:00-16:00 Gab. 252 Ed. II
Página de ICE:• http://ssdi.di.fct.unl.pt/ice/
Livro aconselhado:• Allen B. Downey. Physical Modeling in
MATLAB• PDF: http://greenteapress.com/matlab/
![Page 3: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/3.jpg)
3
Na aula de hoje...
Objectivos, trabalhos e avaliação Aulas teóricas e práticas Sistema computacional
• Componentes e execução de programas
MATLAB• Modelo de execução (interpretador).
• Expressões aritméticas, atribuição e strings
![Page 4: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/4.jpg)
4
Objectivos
Visão abrangente das metodologias e ferramentas da Informática para a resolução de problemas em Ciência e nas Engenharias.
![Page 5: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/5.jpg)
5
Objectivos
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, ...
![Page 6: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/6.jpg)
6
Trabalho do aluno
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)
![Page 7: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/7.jpg)
7
Aulas Teóricas
Perceber, não decorar.• Preparação para o estudo
~70% exposição, ~30% discussão• Aproveitem para ir tirando dúvidas
![Page 8: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/8.jpg)
8
Aulas Práticas
Começam sexta feira (dia 7) 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
![Page 9: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/9.jpg)
9
Aulas Práticas
Login, password: os do CLIP Trabalhem na vossa área em c:\users No final, copiar os ficheiros
• pendisk
• drive Z: (área do aluno na FCT)
• enviar por email.
![Page 10: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/10.jpg)
10
Avaliação Duas componentes:
• Laboratorial (trabalhos práticos)
• Teórico-prática (testes ou exame)
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
![Page 11: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/11.jpg)
11
Avaliação Contínua
Dois testes• 9 de Abril e 28 de Maio
Dois trabalhos• Grupos de 2 alunos
• Prazos de entrega terminam a:• P1: 4 de Maio
• discussões conforme necessário
• P2: 8 de Junho
• discussões com todos de 9 a 12 de Junho
![Page 12: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/12.jpg)
12
Avaliação Contínua
Condições necessárias• Frequência
• P1 ≥ 9.5 ou P2 ≥ 9.5
• Aprovação• Frequência e CompTP ≥ 8.5
Notas• CompL = (TP1+TP2) / 2
• CompTP = 0.4 * T1 + 0.6 * T2 (ou exame)
• Final = 0.4 * CompL + 0.6 * CompTP
![Page 13: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/13.jpg)
13
Avaliação
Nota final (só com frequência)• Se CompTP<8.5
• Nota final = CompTP
• Caso contrário• NF= 0.4 * CompL + 0.6* CompTP
![Page 14: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/14.jpg)
14
Avaliação
Notas de 2012/13• Frequência em 2012/13
• Dispensados de realizar os trabalhos
• Se os realizarem, ficam com a melhor CompL entre 2012/13 e 2013/14
• Alunos com CompTP ≥ 8.5• Estão dispensados dos testes e exame
• Se realizarem testes ou exame, ficam com a melhor CompTP entre 2012/13 e 2013/14
![Page 15: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/15.jpg)
15
Avaliação em Recurso
Condições• Frequência (TP1 ≥ 9.5 ou TP2 ≥ 9.5)
• Exame ≥ 8.5
• CompTP = nota do exame
Nota final• NF= 0.4 * CompL + 0.6 * Nota do Exame
![Page 16: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/16.jpg)
16
Melhoria na época de recurso
Condições• Ter aprovado
Nota final• NF= 0.4 * CompL + 0.6 * Nota do Exame
• (se a nota do exame for superior à nota já obtida na componente teórico-prática)
![Page 17: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/17.jpg)
17
Informática
(Introdução)
![Page 18: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/18.jpg)
18
Informática:Ciência e Engenharia
Processamento de informação• sistemas computacionais, ambientes de
programação, concepção e implementação de programas, ...
Contribui para a resolução de problemas de todas as áreas.
Usando o computador podemos• desenvolver programas
• executar programas
![Page 19: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/19.jpg)
19
Sistema computacional
Hardware• dispositivos electrónicos que compõem o
computador
Software• Programas executados pelo hardware
• Sistema: controla a execução de aplicações
• Aplicações: executam várias funções
Dados• Informação lida ou escrita pelo software
![Page 20: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/20.jpg)
20
Hardware
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.
![Page 21: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/21.jpg)
21
Programas
Programa:• conjunto de instruções
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
![Page 22: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/22.jpg)
22
Programas
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, ...
![Page 23: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/23.jpg)
23
Hardware
imagens:
Unidade Central de Processamento
Microprocessador:Circuito integrado que opera, sequencialmente, em valores binários (voltagem, 0 e 1).
Pentium pro, 19955.5 milhões de transistores (Core)
![Page 24: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/24.jpg)
24
Hardware
imagens:
CPU
![Page 25: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/25.jpg)
25
Funcionamento
imagens:
CPU
![Page 26: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/26.jpg)
26
Hardware
imagens:
Random Access Memory (RAM)
Memória central, rápida
Armazena dados eprogramas
Volátil: conteúdo perde-sequando o computador é desligado
![Page 27: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/27.jpg)
27
Hardware
imagens:
CPU
MotherboardElectrónica de comunicação dentro e para fora do PC
![Page 28: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/28.jpg)
28
Hardware
imagens:
HDDDisco rígidoNão volátil, mais lento
CPU
RAM
![Page 29: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/29.jpg)
29
Hardware
imagens:
010010101 0111101
0100110
0100110
![Page 30: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/30.jpg)
30
Hardware
Na memória, os bits estão organizados em palavras (8, 16, 32 bits, por exemplo)• 1 byte = 8 bits (normalmente)
Cada palavra tem um endereço• endereço é fixo
• conteúdo varia 10100010010101110100101001011010
00000000000000000000000000000000
00000000000010010100101001001100
00010010011000000000000000000000
00000000000000000000000000000000
106
107
108
109
110
106
![Page 31: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/31.jpg)
31
Hardware
Leitura• CPU apresenta endereço à memória
10100010010101110100101001011010
00000000000000000000000000000000
00000000000010010100101001001100
00010010011000000000000000000000
00000000000000000000000000000000
106
107
108
109
110
106
...
...CPU 109
![Page 32: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/32.jpg)
32
Hardware
Leitura• Memória devolve cópia do conteúdo
10100010010101110100101001011010
00000000000000000000000000000000
00000000000010010100101001001100
00010010011000000000000000000000
00000000000000000000000000000000
106
107
108
109
110
106
...
...CPU
![Page 33: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/33.jpg)
33
Hardware
Escrita• CPU apresenta endereço e novo conteúdo
10100010010101110100101001011010
00000000000000000000000000000000
00000000000010010100101001001100
00010010011000000000000000000000
00000000000000000000000000000000
106
107
108
109
110
106
...
...CPU
10710100101...
![Page 34: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/34.jpg)
34
Hardware
Escrita• Memória actualiza o conteúdo no endereço
indicado.
10100010010101110100101001011010
10100101010010101010001001100100
00000000000010010100101001001100
00010010011000000000000000000000
00000000000000000000000000000000
106
107
108
109
110
106
...
...CPU
10710100101...
![Page 35: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/35.jpg)
35
Hardware
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
![Page 36: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/36.jpg)
36
Hardware
CPU• Exemplo (simplificado): SOMA 106 107 110
• Soma valores em 106 e 107, guarda em 110
Unidade deControlo
Unidade de aritmética e lógica
00100010010101110100101001011010
00000101010010101010001001100100
00000000000010010100101001001100
00010010011000000000000000000000
00100111101000011110110010111110
106
107
108
109
110
106
...
...
![Page 37: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/37.jpg)
37
Sistema operativo (SO) Funções de acesso a periféricos e ficheiros
• Sistema de ficheiros, drivers, etc.
• Invocadas pelos programas em execução
Carregador
• Usando funções anteriores, carrega programas em memória e coloca-os em execução
Interpretador de comandos
• Usando as funções anteriores, lê comandos do teclado e invoca o carregador para executar programas.
![Page 38: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/38.jpg)
38
Ficheiros 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
O ficheiro é guardado no disco
• não se perde ao desligar o computador
• tem um identificador único (caminho/nome).
Um ficheiro com código fonte
• código escrito pelo programador
![Page 39: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/39.jpg)
39
Sistema operativo
Gere a memória
Acesso a periféricos e ficheiros
Carregador
Interpretador de comandos
Memória paraonde são carregados
os programas
Memória ocupada pelo SO
Memória livre para as aplicações
![Page 40: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/40.jpg)
40
Sistema operativo “simples”
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, SDD, MC, ...)
• Gere a interacção com o utilizador
![Page 41: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/41.jpg)
41
Arranque
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.
![Page 42: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/42.jpg)
42
Interpretador de comandos
Linha de comando• apresenta prompt
• lê comando
• executa o comando• mostra resultados
• volta ao prompt
• cmd, konsole
![Page 43: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/43.jpg)
43
Interpretador de comandos
Gráfico• ícones
• janelas
• botões
• menus
imagem:
![Page 44: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/44.jpg)
44
Interpretador de comandos
Linha de comandoprompt> 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
![Page 45: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/45.jpg)
45
Interpretador de comandos
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
shell + click
![Page 46: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/46.jpg)
46
Programar
![Page 47: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/47.jpg)
47
Programar
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
![Page 48: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/48.jpg)
48
Programar
Para quê?• Versatilidade
• Reprodutibilidade• fazer coisas “à mão” não é reprodutível
• é muito importante processar dados de forma reprodutível
![Page 49: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/49.jpg)
49
Programar
Para quê?• Versatilidade
• Reprodutibilidade
• Fiabilidade• Uma vez testado, se funciona, funciona
![Page 50: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/50.jpg)
50
Programar
Para quê?• Versatilidade
• Reprodutibilidade
• Fiabilidade
• Conveniência• O investimento inicial pode compensar muito
![Page 51: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/51.jpg)
51
Programar
Exemplo: calcular massa molecular• Alanina: CH3CH(NH2)COOH
Objectivo• corremos o programa:
• massamol('CH3CH(NH2)COOH')
• e recebemos a resposta• 89.093
massamol
![Page 52: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/52.jpg)
52
Programar
Exemplo: calcular massa molecular• Precisamos de aprender umas coisas antes
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).
![Page 53: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/53.jpg)
53
Programar
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,countermov cx,digits+cntDigits/2cldrep stoswinc ax...
http://assembly.happycodings.com/code1.html
![Page 54: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/54.jpg)
54
Programar
Alto nível• Mais próximo de nós
• Instruções complexas• (convertidas em muitas simples para o CPU)
s=b^2-4*a*c; if s<0 raizes=[]; elseif s==0 raizes=-b/(2*a); else raizes=[(-b+sqrt(s))/(2*a),(-b-sqrt(s))/(2*a)];
![Page 55: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/55.jpg)
55
Programar
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
![Page 56: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/56.jpg)
56
Programar
Vamos usar:• Linguagem de programação
• MATLAB
• Um interpretador• MATLAB
• ou Octave
• Gratuito.
• Disponível em http://www.gnu.org/software/octave/
![Page 57: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/57.jpg)
57
O interpretador é um programa
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
![Page 58: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/58.jpg)
58
O interpretador é um programa
Consola do interpretador
Código e dados do
interpretador
Memória
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)
![Page 59: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/59.jpg)
59
Linguagem MATLAB
Constantes numéricas1 1.5 -20.8
• Nota: o ponto é o separador decimal
• Constantes numéricas valem o que representam.
![Page 60: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/60.jpg)
60
Linguagem MATLAB
Expressões aritméticas• Operadores aritméticos básicos:
+ - * / ^
octave:4> 5+12ans = 17octave:5> -1.7*(5-3)ans = -3.4000octave:6> 5^2+3*2ans = 31
![Page 61: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/61.jpg)
61
Linguagem MATLAB
Constantes Operadores aritméticos Funções pré-definidas
• Chamar funções:• nome
• nome(argumento)
• nome(arg1,arg2,arg3...)
octave:7> cos(1)ans = 0.54030octave:8> sqrt(15)ans = 3.8730octave:9> sin(sqrt(2))ans = 0.98777octave:10> exp(2)ans = 7.3891octave:11> e^2ans = 7.3891octave:12> pians = 3.1416
contas e funções
![Page 62: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/62.jpg)
62
Linguagem MATLAB
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
![Page 63: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/63.jpg)
63
Linguagem MATLAB
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
![Page 64: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/64.jpg)
64
Linguagem MATLAB
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.
![Page 65: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/65.jpg)
65
Linguagem MATLAB
Atribuiçãox = 6
• interpretador lê a linha
• analisa o conteúdo• definir uma variável com nome x
• atribuir-lhe o valor 6
![Page 66: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/66.jpg)
66
Linguagem MATLAB
Atribuiçãox = 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
![Page 67: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/67.jpg)
67
Linguagem MATLAB
Atribuiçãox = 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
![Page 68: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/68.jpg)
68
Linguagem MATLAB
Atribuiçãoy = 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
![Page 69: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/69.jpg)
69
Linguagem MATLAB
Cálculo e atribuiçãoz = 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
![Page 70: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/70.jpg)
70
Linguagem MATLAB
Cálculo e atribuiçãoz = 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
![Page 71: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/71.jpg)
71
Linguagem MATLAB
Cálculo e atribuiçãoz = 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
![Page 72: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/72.jpg)
72
Linguagem MATLAB
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
atribuição e binário
![Page 73: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/73.jpg)
73
Linguagem MATLAB
Tipos de dados (alguns)• inteiros
x = 1
• reais • (aproximadamente... na verdade alguns racionais)
y = 23.8
• string (texto literal)t = 'abc'
![Page 74: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/74.jpg)
74
Linguagem MATLAB
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)
![Page 75: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/75.jpg)
75
Linguagem MATLAB
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.
![Page 76: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/76.jpg)
76
Codificação ASCII
7676
Codificação ASCII
![Page 77: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/77.jpg)
77
Codificação ASCII
7777
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
![Page 78: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/78.jpg)
78
Codificação ASCII
7878
Codificação ASCII
Dígitos, 48 a 57
![Page 79: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/79.jpg)
79
Codificação ASCII
7979
Codificação ASCII
Letras
Maiúsculas 65 a 90
Minúsculas 97 a 122
![Page 80: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/80.jpg)
80
Linguagem MATLAB
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
![Page 81: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/81.jpg)
81
Linguagem MATLAB
Funções para stringsoctave:1> string='Estudante na FCT/UNL'string = Estudante na FCT/UNLoctave:2> stringRes=lower(string)stringRes = estudante na fct/unloctave:3> stringRes=upper(string)stringRes = ESTUDANTE NA FCT/UNLoctave:4> numEmTexto='3.14'numEmTexto = 3.14octave:5> num=str2num(numEmTexto)num = 3.1400octave:6> outroTexto=num2str(num)outroTexto = 3.14octave:7>
strings
![Page 82: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/82.jpg)
82
Linguagem MATLAB
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)
![Page 83: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/83.jpg)
83
Linguagem MATLAB
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 π
![Page 84: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/84.jpg)
84
Linguagem MATLAB
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.
![Page 85: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/85.jpg)
85
Linguagem MATLAB
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)
![Page 86: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/86.jpg)
86
Linguagem MATLAB
Funções e variáveis 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
funções
![Page 87: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/87.jpg)
87
Exemplo
Cálculo de concentração.• NaCl: massa molar 58.4 g/mol
• Concentração de 2g em 125ml?
![Page 88: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/88.jpg)
88
Exemplo
Cálculo de concentração.• NaCl: massa molar 58.4 g/mol
• Concentração de 2g em 125ml?
mmNaCl=58.4
v=0.125
q=2/mmNaCl
c=q/v
![Page 89: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/89.jpg)
89
Exemplo
Sequências simples de comandos:• Podem usar o editor (e.g. notepad++)
• Escrevam no editor. Depois seleccionam, copy (ctrl+c) e paste no interpretador
• Octave, shift+ins.
• Ou botão da direita, etc
• Depende da versão da consola...
concentração
![Page 90: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/90.jpg)
90
Gestão de Variáveis
who lista as variáveis definidas• whos para mais informação
clear “esquece-se” delas• ou de uma em particular:
• clear x
![Page 91: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/91.jpg)
91
Resumo Comandos básicos do sistema Operadores * / + - ^ Atribuição de valor a variável =
• números e strings Funções nome(argumentos)
![Page 92: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/92.jpg)
92
Estudar esta aula
Recomendado• Physical Modeling in MATLAB
• Capítulo 1 todo
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
![Page 93: Informática para Ciências e Engenharias (B) 2013/14](https://reader031.fdocumentos.tips/reader031/viewer/2022013022/61d1aec6d7711d762576b800/html5/thumbnails/93.jpg)
93
Dúvidas