Informá(ca para as Ciências e Engenharias Versão : C
(Engenharia Civil)
Pedro Barahona 2016 / 17
Introdução
• Esta unidade curricular, é uma variante de outras similares leccionadas a outros cursos da FCT/NOVA, sendo leccionada a todos os perfis do
« MIEC - Mestrado Integrado em Engenharia Civil
e em que:
§ São introduzidos os conceitos básicos da arquitectura de um computador e do ciclo de vida de um programa.
§ É feita a aprendizagem dos conceitos fundamentais da programação impera(va para resolver problemas simples das áreas das Ciências e Engenharias.
§ É feita uma introdução muito sucinta às bases de dados relacionais, às redes de computadores e, em par(cular, à World Wide Web.
6 Março 2017 ICE-c Aula 1: Introdução 2
Informação Geral
• Docentes, obje(vos e tópicos do programa
• Funcionamento e trabalho dos alunos
• Avaliação
• Bibliografia
6 Março 2017 ICE-c Aula 1: Introdução 3
Docentes e Objec(vos
• Docentes
§ Teóricas
« Pedro Barahona
§ Prá(cas
« Susana Nascimento (Turnos P2 e P3)
« A definir (Turno P1)
• Objec(vos
§ Adquirir uma visão em largura das metodologias e ferramentas que a Informá(ca disponibiliza para a resolução de problemas das áreas das Ciências e Engenharias.
6 Março 2017 ICE-c Aula 1: Introdução 4
Tópicos do Programa
1. Introdução.
2. Conceitos fundamentais da Programação (1ª parte).
3. Redes de computadores. A Web.
4. Conceitos fundamentais da Programação (2ª parte).
5. Introdução às Bases de Dados.
6. Aplicações específicas
6 Março 2017 ICE-c Aula 1: Introdução 5
Funcionamento
• Assume-se que os alunos não têm conhecimentos prévios de Informá(ca
• As aulas teóricas já começaram: Hoje!
§ O estudo deve começar também hoje.
• As aulas prá(cas começam para a semana.
§ Há uma aula prá(ca de 3 horas por semana.
• A presença nas aulas é muito recomendada mas não é obrigatória.
6 Março 2017 ICE-c Aula 1: Introdução 6
Trabalho do Aluno
• 6 créditos segundo o sistema ECTS
• 1 crédito = 28 horas de trabalho
• Horas em contacto
§ Aulas teóricas (2h por semana)
§ Aulas prá(cas (3h por semana)
§ Esclarecimento de dúvidas (no horário de atendimento)
• Horas em autonomia
§ Estudo da matéria das aulas teóricas e prá(cas, preparação para os testes e para os trabalhos prá(cos
§ Realização dos trabalhos prá(cos
6 Março 2017 ICE-c Aula 1: Introdução 7
Trabalho do Aluno
• 6 ECTS * 28 horas / ECTS = 168 horas
• Horas em contacto
§ Aulas teóricas: 14 semanas * 2 h /semana = 28 horas
§ Aulas prá(cas: 14 semanas * 3 h /semana = 42 horas
• Horas de estudo por semana
§ Estudo: 14 semanas * 4 h /semana = 56 horas
• Avaliação
§ Realização dos trabalhos prá(cos: = 40 horas
§ Testes e Exame = 4 horas
6 Março 2017 ICE-c Aula 1: Introdução 8
Avaliação (Teórica)
• 2 Testes ou Exame (de Recurso)
§ T1 – 29 de Abril às 9h00;
§ T2 – 5 de Junho às 18h00;
§ Ex – 7 de Julho às 9h00.
• Nota da Comp. Teórico-Prá(ca (CompTP):
§ CompTP = (T1 + T2) / 2 ou CompTP = Ex
• Para obter aprovação:
§ CompTP ≥ 8.5 (?)
6 Março 2017 ICE-c Aula 1: Introdução 9
Avaliação (Prá(ca)
• 1 Trabalhos Prá(cos (grupos de 1 ou 2 alunos)
§ TP1 – entrega (eletrónica) até ???;
discussões marcadas com o docente.
• 3 Exercícios de Programação pequena dimensão (individuais)
§ EP1, EP2 e EP3 – datas a definir
§ Entregues via Web
• Nota da Componente Laboratorial (CompL):
§ CompL = (4 TP1 + EP1 + EP2 + EP3) / 7
• Para obter frequência:
§ CompL ≥ 8.5 (?)
6 Março 2017 ICE-c Aula 1: Introdução 10
Avaliação (Aprovação)
• Nota final (NF) dos alunos com frequência:
§ NF = CompTP (se CompTP < 8.5)
§ NF = 0.4 CompL + 0.6 CompTP (se CompTP ≥ 8.5)
Notas Anteriores
• Os alunos que ob(veram frequência a ICE após 2013/14:
§ Estão dispensados de realizar os trabalhos;
§ Se os realizarem, CompL é o máximo entre a CompL anterior e a ob(da este ano.
• Os alunos com CompTP ≥ 8.5 a ICE após 2013/14:
§ Estão dispensados de realizar os testes e o exame;
§ Se os realizarem, CompTP é o máximo entre a CompTP anterior e a ob(da este ano.
6 Março 2017 ICE-c Aula 1: Introdução 11
Informação Adicional
• Bibliografia
§ Allen B. Downey. Physical Modeling in MATLAB (version 1.1.3).
« Versão PDF disponível em hvp://greenteapress.com/matlab/
§ Slides das Teóricas
• Sowware
§ Octave – versão gratuita do sistema MATLAB
§ Descarregável para PCs (windows / Mac) – consultar a página de ICE-c
• Página Web de iCE-c
§ 2013/14:hvp://icec.ssdi.di.fct.unl.pt
6 Março 2017 ICE-c Aula 1: Introdução 12
Sumário
• Sistema computacional
§ Componentes
§ Execução de programas
• Matlab
§ Modelo de execução – interpretador.
§ Expressões aritmé(cas e atribuição. Strings.
6 Março 2017 ICE-c Aula 1: Introdução 13
Informá(ca
• É o ramo da Ciência e da Engenharia que estuda o processamento automá(co de informação
§ os sistemas computacionais
§ a conceção e desenvolvimento de programas
§ os ambientes de programação, etc.
• A Informá(ca contribui para a resolução de problemas de todas as áreas, nomeadamente ciências e engenharias.
• Os computadores são usados para executar programas e também para os desenvolver.
6 Março 2017 ICE-c Aula 1: Introdução 14
Sistema computacional
• Hardware
§ Disposi(vos eletrónicos que compõem um computador
• Sowware
§ Programas executados pelo hardware
« Sowware de sistema: controla a execução de aplicações
« Aplicações: executam as mais variadas funcionalidades
• Dados
§ Informação que é lida ou escrita por uma aplicação
6 Março 2017 ICE-c Aula 1: Introdução 15
Hardware: princípios elementares
• Construído a par(r de disposi(vos eletrónicos que operam sobre sequências de elementos que podem ter dois estados diferentes (zero e um) – bit.
• Um conjunto de oito bits designa-se por byte.
• Toda a informação é codificada em (sequências de) bytes, incluindo:
§ Programas – conjunto de ações simples (instruções)
§ Dados manipulados pelos programas
6 Março 2017 ICE-c Aula 1: Introdução 16
Hardware
Unidade Central de Processamento (CPU)
Memória
Armazenamento volá(l de bytes que
representam instruções e dados
Execução de instruções armazenadas na memória e envio de ordens para o teclado,
ecrã e disco
Eletrónica de controlo do teclado
Entrada de dados (e programas)
Eletrónica de controlo do disco
Armazenamento
permanente de bytes que representam dados e
programas
Eletrónica de controlo do ecrã
Saída de resultados
6 Março 2017 ICE-c Aula 1: Introdução 17
Tipos de memória
• Memória central (RAM)
§ Armazena dados e programas.
§ Volá(l: conteúdo perde-se quando o computador é desligado.
• Memória de arquivo (discos)
§ Conteúdo preservado mesmo quando o computador é desligado.
§ A informação está arrumada em ficheiros.
6 Março 2017 ICE-c Aula 1: Introdução 18
Ficheiro
• Do ponto de vista lógico, um ficheiro contém uma sequência de bytes, que pode representar um texto, números, uma imagem, sons, etc.
• Um ficheiro é guardado no disco (para que a informação não se perca quando o computador não está a funcionar) e é acessível através de um iden(ficador único (nome).
6 Março 2017 ICE-c Aula 1: Introdução 19
Conteúdo
101:
102:
103:
104:
105:
Cada posição de memória tem um endereço (que é fixo e único) e um conteúdo (que pode variar).
O endereço permite identificar (sem ambiguidade) cada posição da memória.
Endereço
O conteúdo da posição de memória com o endereço 104 é 1111 0110
0000 0001 1001 0111
1111 0110
Memória central (RAM): endereços e conteúdos
6 Março 2017 ICE-c Aula 1: Introdução 20
Memória (RAM)
Endereço E
0000 0001 1001 0111
1111 0110
Funcionamento do CPU
• O CPU executa as instruções guardadas na memória central, sequencialmente.
• Em cada momento, o CPU m a n t é m a p o s i ç ã o d e memória da instrução que está a executar.
CPU
101:
102:
103:
104:
105:
PC:
104
6 Março 2017 ICE-c Aula 1: Introdução 21
104
Memória (RAM)
Endereço E
1111 0110
Funcionamento do CPU
• A instrução define a ação elementar a executar
§ Ações atuam sobre dados armazenados em memória central ou num disposi(vo de entrada/saída
• Exemplo:
somar 100 101 102
Soma o conteúdo das posições 100 e 101 e armazena o resultado na posição 102
Lê instrução
6 Março 2017 ICE-c Aula 1: Introdução 22
CPU
PC:
104
0000 0001 1001 0111
1111 0110
100
Memória (RAM)
Endereço E
0000 0001
0000 0001 1001 0111
1111 0110
Funcionamento do CPU
• A instrução define a ação elementar a executar
§ Ações atuam sobre dados armazenados em memória central ou num disposi(vo de entrada/saída
• Exemplo:
somar 100 101 102
Soma o conteúdo das posições 100 e 101 e armazena o resultado na posição 102
0000 0001
Lê dados:
posição 100
6 Março 2017 ICE-c Aula 1: Introdução 23
CPU
PC:
104
101
Memória (RAM)
Endereço E
1001 0111 0000 0001 1001 0111
1111 0110
Funcionamento do CPU
• A instrução define a ação elementar a executar
§ Ações atuam sobre dados armazenados em memória central ou num disposi(vo de entrada/saída
• Exemplo:
somar 100 101 102
Soma o conteúdo das posições 100 e 101 e armazena o resultado na posição 102
1001 0111
Lê dados:
posição 101
6 Março 2017 ICE-c Aula 1: Introdução 24
CPU
PC:
0000 0001 104
102
Memória (RAM)
Endereço E
1001 1000
0000 0001 1001 0111
1111 0110
Funcionamento do CPU
• A instrução define a ação elementar a executar
§ Ações atuam sobre dados armazenados em memória central ou num disposi(vo de entrada/saída
• Exemplo:
somar 100 101 102
Soma o conteúdo das posições 100 e 101 e armazena o resultado na posição 102
1001 0111
0000 0001 1001 0111 1001 1000 1111 0110
Executa operação e escreve resultado:
posição 102
6 Março 2017 ICE-c Aula 1: Introdução 25
CPU
PC:
104
1001 0111 0000 0001
Sowware de sistema
• Sistema opera(vo (SO): programa sempre residente no hardware e que gere o acesso ao hardware e a execução de programas.
• Interpretador de comandos: programa que permite ao u(lizador humano especificar ações a efetuar pelo hardware.
6 Março 2017 ICE-c Aula 1: Introdução 26
Funções de um SO
• Funções essenciais
§ Supervisonar a utilização dos recursos do sistema
§ Controlar o acesso ao CPU
§ Controlar os periféricos
§ Gerir a memória central
§ Gerir o disco (os ficheiros)
• Carregador
§ Usando as funções anteriores, carrega programas guardados no disco e coloca-os em execução
6 Março 2017 ICE-c Aula 1: Introdução 27
Interpretador de comandos
Linha de comando
Gráfico
6 Março 2017 ICE-c Aula 1: Introdução 28
Interpretador de comandos [1]
prompt > comando argumento1 argumento2 …
Comando interno
Executado pelo próprio interpretador. Exemplos:
dir cd print type
…
Comando externo
É o nome de um programa.
Pede-se ao SO para verificar se o programa existe, invoca-se o
carregador e o CPU começa a executar as
instruções que compõem o programa
6 Março 2017 ICE-c Aula 1: Introdução 29
Interpretador de comandos [2]
• Interface Gráfica (Graphical User Interface-GUI)
§ Duplo-click num ícone que representa o programa.
§ Duplo-click num ícone que representa dados. O programa associado a esses dados é executado, tendo os dados como argumento.
6 Março 2017 ICE-c Aula 1: Introdução 30
Intodução ao Matlab
• Sistema computacional.
§ Componentes.
§ Execução de programas.
• Matlab.
§ Modelo de execução - interpretador.
§ Expressões aritméticas e atribuição. Strings.
6 Março 2017 ICE-c Aula 1: Introdução 31
Programas em linguagens de alto nível
• Compilação: um programa (compilador) traduz as instruções de alto nível para as instruções que o CPU entende e guarda- as.
• Interpretação: um programa (interpretador) traduz cada linha (com as instruções de alto nível) num conjunto de ações e manda o CPU executá-las.
• Em ICE, vamos fazer programas numa linguagem de alto nível (Matlab) e vamos usar um interpretador (Octave ou Matlab) para os executar.
6 Março 2017 ICE-c Aula 1: Introdução 32
Operação de um interpretador
Leitura de linha
Análise do conteúdo
Execução das ações
6 Março 2017 ICE-c Aula 1: Introdução 33
O Intepretador é um programa
CPU Memória
Teclado Ecrã
Código e dados do Interpretador Execução das
instruções
>> 5+2 ans = 7
>>
A azul o que é escrito pelo interpretador
A vermelho o que é escrito pelo u(lizador
6 Março 2017 ICE-c Aula 1: Introdução 34
>> 5
ans = 5
>> -4.6
ans = -4.6000 Matlab – Constantes
• 5 e -4.6 são constantes numéricas.
• Uma constante “vale” o seu valor.
6 Março 2017 ICE-c Aula 1: Introdução 35
>> 5 + 14 ans = 19
>> -1.7 * ( 3 – 1 ) ans = -3.4000
>> 5^2 + 5 * 2 ans = 35
Matlab – Expressões aritmé(cas
• Operadores aritmé(cos básicos: +, -, *, /, ^
• Uma expressão aritmé(ca é avaliada e o resultado da avaliação é um valor numérico.
6 Março 2017 ICE-c Aula 1: Introdução 36
>> cos(0) ans = 1
>> sqrt(26 - cos(0)) ans = 5
>> exp(1) + sqrt(16) ans = 6.7183
>> help sin
SIN Sine of … Matlab – Funções pré-definidas
• Há muitas funções pré- definidas.
• O r e s u l t a d o d e c a d a chamada a cos, sqrt e exp é um valor numérico.
• help nomeDaFunção mostra a documentação online da função.
6 Março 2017 ICE-c Aula 1: Introdução 37
>> 9^2 ans = 81
>> ans + 10 ans = 91
Matlab – Variáveis
• Uma variável é um nome de uma posição de memória.
• O valor de uma variável é o conteúdo dessa posição de memória.
• ans é uma variável que é definida de uma forma a u t o m a ( c a p e l o intrepretador da linguagem.
6 Março 2017 ICE-c Aula 1: Introdução 38
Matlab – Nomes de variáveis
• Nome de uma variável: sequência de letras, algarismos e ‘_’, que começa por uma letra.
§ Exemplos: x, taxa_maxima, valorMinimo, y1.
• NOTA: Dis(nguem-se as maiúsculas das minúsculas.
§ Exemplo: as variáveis soma e Soma são diferentes.
6 Março 2017 ICE-c Aula 1: Introdução 39
Matlab – Instrução de atribuição
• Sintaxe:
variável = expressão
• A expressão é avaliada (o resultado é um valor).
• Se a variável não existe, é criada.
• O valor da expressão é colocado na posição da memória iden(ficada pela variável.
6 Março 2017 ICE-c Aula 1: Introdução 40
>> x = cos(0) + 3 x = 4
>> y = 2^x y = 16
>> x = y x = 16
>> x = x + 2 x = 18
Variáveis:
x 4
4 16
x y
16 16
x y
18 16
x y
Matlab – Variáveis e atribuições [1]
6 Março 2017 ICE-c Aula 1: Introdução 41
>> x
ans = 18
>> x = sqrt(y) x = 4
>> x = sqrt(x) x = 2
Matlab – Variáveis e atribuições [2]
18 16
x y ans
18 16 18
x y ans
4 16 18
x y ans
2 16 18
x y ans
6 Março 2017 ICE-c Aula 1: Introdução 42
Variáveis e endereços
• As instruções do CPU especificam endereços de memória. O CPU executa operações com os conteúdos desses endereços.
• Numa linguagem de alto nível, as variáveis são nomes para endereços de memória, nos quais é guardado o valor das variáveis.
• O programador não precisa de conhecer os endereços nos seus programas.
6 Março 2017 ICE-c Aula 1: Introdução 43
>> x = cos(0) + 3 x = 4
>> y = 2^x y = 16
>> x = y x = 16
>> x = x + 2 x = 18
Matlab – Variáveis e endereços
0001 0010 0001 0000 101:
102:
103:
104:
105:
100:
18 16
x y
6 Março 2017 ICE-c Aula 1: Introdução 44
Tipos de dados manipulados pelos programas
• Inteiros e reais: como nos exemplos anteriores.
• Texto: Composto por sequências de símbolos – caracteres – que representam letras (maiúsculas e minúsculas), algarismos e sinais de pontuação.
§ Cada carácter é armazenado no computador usando uma dada codificação (sequência de bits).
6 Março 2017 ICE-c Aula 1: Introdução 45
String
• Uma string é uma sequência de caracteres.
• Em Matlab,
§ escreve-se a sequência de caracteres entre plicas;
§ as variáveis podem armazenar strings.
• Exemplo:
>> str = ‘ Estudante na FCT/UNL. ’ str = Estudante na FCT/UNL.
>>
6 Março 2017 ICE-c Aula 1: Introdução 46
Strings – Funções pré-definidas [1]
• stringRes = lower( string )
§ Converte as letras maiúsculas da string em minúsculas.
§ Ex.: lower(‘na FCT/UNL.’) vale ‘na fct/unl.’
• stringRes = upper( string )
§ Converte as letras minúsculas da string em maiúsculas.
§ Ex: upper(‘na FCT/UNL.’) vale ‘NA FCT/UNL.’
6 Março 2017 ICE-c Aula 1: Introdução 47
Strings – Funções pré-definidas [2]
• número = str2num( string )
§ Converte a string no número correspondente.
§ Ex.: str2num(‘1.234’) vale 1.234
• string = num2str( número )
§ Converte o número na string correspondente.
§ Ex.: num2str(1.234) vale ‘1.234’
6 Março 2017 ICE-c Aula 1: Introdução 48