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

93
Informática para Ciências e Engenharias (B) 2015/16 Teórica 1

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

Page 1: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

2015/16

Teórica 1

Page 2: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Informação

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

l  Outros docentes e mais informação na...

l  ... página de ICE-B: •  http://ssdi.di.fct.unl.pt/ice/b

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

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

Page 3: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 4: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Objectivos

l  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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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, ...

Page 6: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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)

Page 7: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 8: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Aulas Práticas

l  Começam segunda feira (dia 7 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

Page 9: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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.

Page 10: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Avaliação

l  Duas componentes:

•  Laboratorial (trabalhos práticos)

•  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

Page 11: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Avaliação Contínua

l  Dois testes

•  16 de Abril e 6 de Junho

l  Dois trabalhos

•  Grupos de 2 alunos

•  Prazos de entrega terminam a: • P1: 3 de Maio

• discussões conforme necessário • P2: 7 de Junho

• discussões com todos de 8 a 11 de Junho

Page 12: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Avaliação Contínua

l  Condições necessárias para se obter

•  Frequência • P1 ≥ 9.5 ou P2 ≥ 9.5

•  Aprovação • Frequência e CompTP ≥ 8.5

l  Notas •  CompL = (P1+P2) / 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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Avaliação

l  Nota final (para quem obteve frequência)

•  Se CompTP < 8.5 • Nota final = CompTP (reprovação)

•  Caso contrário • NF= 0.4 * CompL + 0.6* CompTP

Page 14: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Avaliação

l  Notas de 2012/13, 2013/14 ou 2014/15

•  Alunos com Frequência

• Dispensados de realizar os trabalhos

• Se os realizarem, ficam com a melhor CompL

•  Alunos com CompTP ≥ 8.5

• Estão dispensados dos testes e exame

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

Page 15: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Avaliação em Recurso

l  Condições

•  Frequência (TP1 ≥ 9.5 ou TP2 ≥ 9.5)

•  Exame ≥ 8.5

•  CompTP = nota do exame

l  Nota final

•  NF= 0.4 * CompL + 0.6 * Nota do Exame

Page 16: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Melhoria na época de recurso

l  Condições

•  Ter aprovado

l  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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Informática (Introdução)

Page 18: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 19: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 20: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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.

Page 21: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 22: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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, ...

Page 23: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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)

Page 24: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Hardware

imagens:

CPU

Page 25: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Hardware

imagens:

CPU

Page 26: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 27: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Hardware

imagens:

CPU

Motherboard •  Electrónica de

comunicação dentro e para fora do PC

Page 28: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Hardware

imagens:

HDD

•  Disco rígido

•  Não volátil, mais lento

CPU

RAM

Page 29: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Hardware

imagens:

010010101 0111101

0100110

0100110

Page 30: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Hardware

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

•  1 byte = 8 bits (normalmente)

l  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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Hardware

l  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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Hardware

l  Leitura

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

10100010010101110100101001011010 00000000000000000000000000000000 00000000000010010100101001001100

00000000000000000000000000000000

106 107 108

110

106

...

... CPU

00010010011000000000000000000000 109

Page 33: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 34: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 35: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 36: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

...

...

Page 37: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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.

Page 38: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 39: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 40: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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, SDD, MC, ...)

•  Gere a interacção com o utilizador

Page 41: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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.

Page 42: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Interpretador de comandos

l  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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Interpretador de comandos

l  Interface Gráfica

•  ícones

•  janelas

•  botões

•  menus

imagem:

Page 44: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 45: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

shell + click

Page 46: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Programar

Page 47: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 48: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Programar

l  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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Programar

l  Para quê? •  Versatilidade •  Reprodutibilidade •  Fiabilidade

• Uma vez testado, se funciona, funciona

Page 50: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Programar

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

• O investimento inicial pode compensar muito

Page 51: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

massamol

Page 52: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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).

Page 53: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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 ...

http://assembly.happycodings.com/code1.html

Page 54: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Programar

l  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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 56: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Programar

l  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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 58: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 59: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Linguagem MATLAB

l  Constantes numéricas 1 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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 61: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

contas e funções

Page 62: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 63: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 64: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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.

Page 65: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 66: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 67: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 68: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 69: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 70: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 71: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 72: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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 ✗

atribuição e binário

Page 73: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Linguagem MATLAB

l  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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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)

Page 75: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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.

Page 76: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Codificação ASCII

Codificação ASCII

Page 77: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 78: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Codificação ASCII

Dígitos, 48 a 57

Codificação ASCII

Page 79: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Codificação ASCII

Letras

Maiúsculas 65 a 90

Minúsculas 97 a 122

Codificação ASCII

Page 80: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 81: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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>

strings

Page 82: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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)

Page 83: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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 π

Page 84: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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.

Page 85: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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)

Page 86: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

funções

Page 87: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Exemplo

l  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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Exemplo

l  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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Exemplo

l  Sequências simples de comandos: •  Podem usar o editor (e.g. notepad++)

• Escrevam no editor. Depois seleccionam, copy (ctrl+c) e paste (ctrl+v) 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) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 91: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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)

Page 92: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

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

Page 93: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t01.pdf · • Precisamos de aprender umas coisas antes l Hoje: • Como dar instruções

Dúvidas?