• Nenhum resultado encontrado

Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Pedro Barahona 2018 / 19

N/A
N/A
Protected

Academic year: 2021

Share "Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Pedro Barahona 2018 / 19"

Copied!
56
0
0

Texto

(1)

Informá(ca para as Ciências e Engenharias

Versão : C

(Engenharia Civil)

Pedro Barahona 2018 / 19

(2)

Introdução

• Esta unidade curricular, é uma variante de outras similares lecionadas a outros cursos da FCT/NOVA, sendo lecionada 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

imperativa para resolver problemas simples das áreas das Ciências e Engenharias.

§ É feita uma introdução muito sucinta às bases de dados relacionais, às

(3)

Informação Geral

• Docentes, obje4vos e tópicos do programa • Funcionamento e trabalho dos alunos

Avaliação • Bibliografia

(4)

Docentes e Objectivos

• Docentes

§ Teóricas e Teórico-Prá5cas

« Pedro Barahona

§ Prá5cas

« Pedro Barahona (Turno P1)

« Susana Nascimento (Turnos P2 e P3) • Objec5vos

§ Adquirir uma visão em largura das metodologias e ferramentas que

a Informá5ca disponibiliza para a resolução de problemas das áreas das Ciências e Engenharias.

(5)

Tópicos do Programa

1. Introdução.

2. Conceitos básicos sobre Sistemas Informá>cos.

3. Conceitos fundamentais da Programação (1ª parte). 4. Redes de computadores. A Web.

5. Conceitos fundamentais da Programação (2ª parte). 6. Breve introdução às Bases de Dados.

(6)

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 2 horas por semana.

§ A aula é preparada na correspondente Teórico-Prá;ca

A presença nas aulas é muito recomendada mas não é obrigatória.

(7)

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 teórico-práticas (1h por semana) § Aulas práticas (2h por semana)

§ Esclarecimento de dúvidas (no horário de atendimento)

• Horas em autonomia

§ Estudo da matéria das aulas teóricas e práticas, preparação para os testes

(8)

Trabalho do Aluno

6 ECTS * 28 horas / ECTS = 168 horas • Horas em contacto

§ Aulas teóricas: 12 semanas * 2 h /semana = 24horas § Aulas teó-prát: 12 semanas * 1 h /semana = 12 horas § Aulas práDcas: 12 semanas * 2 h /semana = 24 horas

• Horas de estudo por semana

§ Estudo: 14 semanas * 4 h /semana = 56 horas

• Avaliação

§ Realização dos trabalhos práDcos: = 38 horas

§ Testes e Exame = 4 horas

(9)

Avaliação (Teórica)

• 2 Testes ou Exame (de Recurso)

§ T1 – sábado, 28 de Abril às 9h00; § T2 – sábado, 8 de Junho às 11h30; § Ex – 3ª feira, 25 de Junho às 9h00.

• Nota da Comp. Teórico-Prática (CompTP):

§ CompTP = (T1 + T2) / 2 ou CompTP = Ex

• Para obter aprovação:

(10)

Avaliação (Prá-ca)

• 2 Trabalhos Práticos (grupos de 2 alunos – ou 1)

§ EP (exercício programação):

« publicação: 8 Abril, 12:00; entrega: 27 Abril, 23:59. § TP (trabalho prático):

« publicação: 17 Maio, 12:00; entrega: 7 Junho, 23:59. § Entregues via Web

§ “Discutidos” nos testes

• Nota da Componente Laboratorial (CompL):

§ CompL = (0.4 EP + 0.6 TP)

• Para obter frequência:

(11)

Avaliação (Aprovação)

• Nota final (NF) dos alunos com frequência:

§ NF = CompTP (seCompTP< 8.0) § NF = 0.4 CompL + 0.6 CompTP (se CompTP≥ 8.0)

Notas Anteriores

Os alunos que obKveram frequência a ICE após 2015/16:

§ Estão dispensados de realizar os trabalhos;

§ Nesse caso, não deverão inscrever-se nas aulas práKcas;

(12)

Bibliografia

• Bibliografia

§ Slides das Teóricas

§ Allen B. Downey. Think Python: How to Think Like a Computer ScienCst

(version 2.0.17).

§ Versão PDF disponível em

« hOp://greenteapress.com/wp/think-python-2e/

§ John V. GuOag. IntroducCon to ComputaCon and Programming Using

Python, MIT PRESS, 2016

hOps://mitpress.mit.edu/books/introducCon-computaCon-and-programming-using-python-second-ediCon • Bibliografia Complementar

§ Ernesto Costa. Programação em Python - Fundamentos e Resolução de

(13)

Informação Adicional

• So0ware

§ Anaconda

« Python 3.x: Linguagem e Interpretador « iPython: consola intera:va

« Spyder: Sistema de desenvolvimento que integra o Interpretador, a consola e o

sistema de ficheiros (IDE - Integrated Development Environment)

§ Descarregável para PCs (Windows / Mac)

« hKps://www.anaconda.com www.anaconda.com

• Página Web de ICE-c

(14)

Sumário

• Sistema computacional

§ Componentes

§ Execução de programas

• Python

§ Modelo de execução – interpretador.

§ Expressões aritmé?cas e atribuição. Strings.

(15)

Informática

• É o ramo da Ciência e da Engenharia que estuda o processamento automático de informação

§ os sistemas computacionais

§ a conceção e desenvolvimento de programas § os ambientes de programação, etc.

• A Informática 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.

(16)

Sistema computacional

• Hardware

§ Disposi4vos eletrónicos que compõem um computador e restantes

componentes do sistema • So9ware

§ Programas executados pelo hardware

« So9ware de sistema: controla a execução de aplicações

« Aplicações: executam as mais variadas funcionalidades, incuindo o desenvolvimento de novas aplicações

• Dados

(17)

Hardware: princípios elementares

• Construído a partir de dispositivos eletrónicos que operam sobre sequências de elementos que podem ter dois estados diferentes (zero e um) – bit (binary digit).

Um conjunto de oito bits designa-se por byte.

• Toda a informação é codificada em (sequências de) bits/bytes, incluindo:

§ Programas – conjunto de ações simples (instruções) § Dados manipulados pelos programas

(18)

Hardware

Unidade Central de Processamento (CPU) Memória Armazenamento volá9l 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

(19)

Tipos de memória

Memória central (RAM)

§ Armazena dados e programas em funcionamento.

§ Volá9l: conteúdo perde-se quando o computador é desligado.

Memória de arquivo (ex. discos)

§ Maior capacidade / Menor velocidade de acesso.

§ Conteúdo preservado mesmo quando o computador é desligado. § A informação está arrumada em ficheiros.

(20)

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 identificador único (nome).

(21)

• 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. 101: 102: 103: 104: 105:

Endereço

Conteúdo

0000 0001 1001 0111 1111 0110

(22)

Memória (RAM)

Endereço E

Funcionamento do CPU

• O CPU executa as

instruções guardadas na memória central, de uma forma sequencial.

• Em cada momento, o CPU mantém a posição de memória da instrução que está a executar.

CPU PC: 104 IR: 1111 0110 A: 1111 0110 B: 1111 0110 C: 1111 0110 0000 0001 1001 0111 1111 0110 101: 102: 103: 104: 105: 100:

(23)

CPU PC: 104 IR: 1111 0110 A: 1111 0110 B: 1111 0110 C: 1111 0110 104 Endereço E

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 Lê instrução 0000 0001 1001 0111 1111 0110 IR: 1111 0110 101: 102: 103: 104: 105: 100:

(24)

100

Memória (RAM)

Endereço E

Funcionamento do CPU

Lê dados:

posição 100 CPU PC: 104 IR: 1111 0110 A: 1111 0110 B: 1111 0110 C: 1111 0110

• A instrução define a ação elementar a executar

§ Ações atuam sobre dados

armazenados em memória central ou num dispositivo 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 1001 0111 1111 0110 101: 102: 103: 104: 105: 100: 0000 0001

(25)

101

Endereço E

Funcionamento do CPU

Lê dados:

posição 101 CPU PC: 104 IR: 1111 0110 A: 1111 0110 B: 1111 0110 C: 1111 0110 0000 0001 1001 0111 1111 0110 101: 102: 103: 104: 105: 100: 0000 0001 1001 0111

• A instrução define a ação elementar a executar

§ Ações atuam sobre dados

armazenados em memória central ou num dispositivo de entrada/saída.

Exemplo

somar 100 101 102

§ Soma o conteúdo das

posições 100 e 101 e armazena o resultado na

(26)

0000 0001 1001 0111 1111 0110 102 Memória (RAM) Endereço E

Funcionamento do CPU

Executa operação eescreve resultado:

posição 102 • A instrução define a ação

elementar a executar

§ Ações atuam sobre dados

armazenados em memória central ou num dispositivo 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. CPU PC: 104 IR: 1111 0110 A: 1111 0110 B: 1111 0110 C: 1111 0110 101: 102: 103: 104: 105: 100: 0000 0001 1001 0111 IR: 1111 0110 1001 1000 1001 1000

(27)

Software de sistema

Sistema opera+vo (SO):

§ Programa sempre residente no hardware e que gere o

acesso ao hardware e a execução de programas.

§ Executado assim que se liga o computador e sempre

residente no hardware. • Interpretador de comandos:

(28)

Funções de um SO

• Funções essenciais

§ Supervisionar a utilização do hardware pelos programas

« Controlar o acesso ao CPU « Controlar os periféricos « Gerir a memória central « Gerir o disco (os ficheiros)

§ Oferecer aos programas funções para usarem o hardware

• Carregador

§ Usando as funções anteriores, carrega programas guardados no

(29)

Interpretador de comandos

Linha de comando (ou interface de texto)

Interface Gráfica

(30)

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

(31)

Interpretador de comandos [2]

Interface Gráfica (Graphical User Interface-GUI)

§ Exemplos de ações: « click, « duplo-click, « arrastar-largar, « copiar/colar, « etc.

§ Duplo-click num ícone que representa o programa:

« O programa associado a esses dados é executado.

§ Duplo-click num ícone que representa dados:

(32)

Intodução a Python

• Sistema computacional.

§ Componentes.

§ Execução de programas.

• Python.

§ Modelo de execução - interpretador.

« Expressões aritméticas e atribuição. « Strings.

(33)

Programar

• Para quê?

§ Versatilidade

« Resolver mais problemas e melhor § Automatização « Reprodutibilidade « Fiabilidade § Conveniência « Facilidade e produtividade • Python

§ Linguagem generalista mas simples § Desenhada para ser interpretada

(34)

Programas em linguagens de alto nível

Programa: um conjunto de instruções, escritas numa

determinada linguagem, e que devem ser executadas para desempenhar determinada tarefa.

Linguagem: um método normalizado (por exemplo, baseado em texto) para descrever instruções.

§ Estas não são normalmente executáveis diretamente pelo

hardware.

§ Necessitam de tradução (compilação ou interpretação) para

(35)

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 num ficheiro (e.g. com extensão “.exe”)

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 (Python) e vamos usar um interpretador (a partir da consola

(36)

Operação de um interpretador

Leitura de linha

Análise do conteúdo

(37)

O Intepretador é um programa

Memória Código e dados do Interpretador CPU Execução das instruções Teclado Ecrã In [1]: 5+2 Out[1]: 7 A azul o que é escrito pelo interpretador A vermelho o que é escrito

(38)

Sistema usado em ICE

Python: linguagem (Python3.x) e Interpretador

Spyder: Ambiente integrado de programação que gere

ficheiros, consola e Interpretador

(39)

Python – Objetos

Python manipula objetos.

§ Todos os dados manipulados por Python são objetos.

Um objeto tem um 'po, que define as operações que podem ser feitas com esse objeto.

(40)

Python – Constantes

• Muitos objetos podem ser representados por literais (i.e. constantes) no texto dum programa.

5 é um literal que representa um

objeto do ?po int (inteiro) com o valor 5.

-4.6 é um literal que representa

um objeto do ?po float (número real) com o valor -4.6.

A função type/1 permite saber o ?po de um objeto. In : 5 Out: 5 In : -4.6 Out: -4.6 In : type(5) Out: int In : type(-4.6) Out: float

(41)

Python – Expressões aritméticas

• Operadores aritmé7cos básicos: +, -, *, /, //, **

• Uma expressão aritmé7ca é avaliada e o resultado da avaliação é um objeto com um

valor numérico do &po:

§ int, quando se usam os

operadores +, -, *, **, // e todos os objetos são do 7po int

In : 5 + 14 Out: 19 In : -4.6 * (3 - 5) Out: 9.2 In : 5**2 + 4 / 2 Out: 27.0 In : 7 // 2 Out: 3

(42)

Python – Variáveis

Uma variável é um nome que refere um objeto.

Atribui-se um valor a um objeto com a instrução de afetação ou atribuição:

variável = expressão

• A expressão é avaliada, sendo o resultado um objeto com o

valor obNdo.

(43)

Python – Nomes de Variáveis

Nome de uma variável: sequência de letras, algarismos e ‘_’, que

começa por uma letra (Nota: o caráter ‘_’ é considerado uma letra). § Exemplos: « x « taxa_maxima « valorMinimo « y1 « _8

(44)

Python – Variáveis e Atribuições

In : x = 1 + 3 In : x Out: x = 4 In : y = 2 ** x In : y Out: y = 16 In : x = y In : x Out: x = 16 In : x = x + 2.0 In : x Out: x = 18.0 • Alguns exemplos:

• Nota 1: o novo valor da variável só é mostrado se tal for explicitamente solicitado. • Nota 2: o operador = denota

afetação, não denota uma comparação.

Nota 3: o Qpo da variável é modificado de acordo com o Qpo da expressão calculada.

(45)

Python – Variáveis e Atribuições

As instruções do CPU especificam endereços de memória. O CPU executa operações com os conteúdos desses endereços.

• Em Python (e nas outras linguagens de alto nível), as variáveis são nomes para endereços de memória, onde é guardado o endereço de memória do objeto.

• O valor de um objeto é guardado em memória.

(46)

In : x = 3 * 6

In : y = 4 ** 2

Python – Variáveis e endereços

101: 102: 103: 104: 105: 100:

18

16

x

y

0001 0010 0001 0000

(47)

Tipos de dados manipulados

pelos programas

Inteiros e reais:

§ Como nos exemplos anteriores.

String (Texto):

§ Composto por sequências de símbolos – caracteres – que

representam letras (maiúsculas e minúsculas), algarismos e sinais de pontuação.

§ Cada caracter é armazenado no computador usando uma dada

codificação (sequência de bits).

(48)

Strings

Uma string (,po str) é uma sequência de caracteres. • Em Python,

§ escreve-se a sequência de caracteres entre plicas (‘) ou

pareênteses (“);

§ as variáveis podem armazenar strings.

• Exemplo:

In : s = Estudante na FCT/UNL.

In : s

Out: Estudante na FCT/UNL. s

(49)

Exemplos de Atribuições

x = ‘abc’ é muito diferente de x = abc

In : x = ‘abc’

In : x

Out: abc

§ x = ‘abc’

§ atribui a x um objeto de Fpo

str com valor ’abc’

§ x = abc

§ atribui a x um objeto com o

mesmo Fpo e valor da variável com nome abc

§ Nota: Se não exisFr uma

In : x = abc

NameError: name 'abc' is not defined In : abc = 6.7

In : x = abc

(50)

Conversão de Tipos

número = int( string )

§ Converte a string no número inteiro correspondente.

§ Ex.: int (‘12’) é um objeto int com valor 12

número = float( string )

§ Converte a string no número real correspondente.

§ Ex.: float (’12.5’) é um objeto float com valor 12.5

string = str( número )

§ Converte o número na string correspondente.

(51)

Funções (Métodos) associados a Tipos

• Um 7po (de objetos) tem associado um conjunto de funções. • Para listar as funções dum 7po pode-se usar a função

dir

As funções com nome ‘__...__’ são especiais.

• Para saber mais informação sobre as funções, deve-se consultar a informação online.

(52)

Strings – Funções pré-definidas [1]

stringRes = s.lower( string )

§ Converte as letras maiúsculas da string s em minúsculas.

§ Ex.: s.lower(‘na FCT/UNL.’) faz a string s tomar o valor ‘na fct/unl.’

stringRes = str.upper( string )

§ Converte as letras maiúsculas da string s em maiúsculas.

(53)

Bibliotecas

• Uma biblioteca define um conjunto de funções e 5pos que podem ser usadas por um programa

Para usar uma função duma biblioteca, deve-se antes importá-la, executando o comando:

import nome_da_biblioteca

Nota: Para u5lizar essas funções deve usar-se um prefixo com

o nome da biblioteca

• Para obter informação sobre as funções duma biblioteca, deve aceder à sua documentação, normalmente disponível online.

(54)

Funções Matemá.cas

A biblioteca math define as funções matemá.cas básicas.

• Antes de se poder usá-la deve ser importada.

Para listar as funções de uma biblioteca pode-se usar a função dir.

In : import math In : dir(math) Out: ['__doc__’, '__file__’, '__loader__’, '__name__’, '__package__’, '__spec__’, 'acos’, 'acosh’, 'asin', ...

(55)

Funções Matemáticas

Alguns exemplos de funções da biblioteca math : cos, sqrt e exp.

• O resultado de cada chamada a cos, sqrt e exp é um objeto do In : import math In : math.cos(0) Out: 1.0 In : math.sqrt(26 – math.cos(0)) Out: 5 In : math.exp(1) + math.sqrt(16) Out: 6.718281828459045

(56)

Para saber Mais

• Consultar um dos livros de texto aconselhados • Por exemplo:

§ “Think Python: How to Think Like a Computer Scien@st ”:

cap. 1 e cap. 2.

§ “Introduc@on to Computa@on and Programming Using Python”:

Referências

Documentos relacionados

· 4.3 Indicações sobre cuidados médicos urgentes e tratamentos especiais necessários Não existe mais nenhuma informação relevante disponível.. SECÇÃO 5: Medidas de combate

l  As consultas em SQL podem originar muitas repe(ções nas respostas, nomeadamente se §   vários registos sa(sfaçam as condições; e §   apenas se pretendam alguns

•  Em ICE, vamos fazer programas numa linguagem de alto nível (Matlab) e vamos usar um interpretador (Octave ou Matlab) para os executar.. Operação de

Soares do Curso de Graduação em Administração, contra decisão do Conselho da Faculdade 96. de Gestão e Negócios, referente ao indeferimento de pedido de dilação de prazo

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

Quero ir com o avô Markus buscar a Boneca-Mais-Linda-do-Mundo, quero andar de trenó, comer maçãs assadas e pão escuro com geleia (17) de framboesa (18).... – Porque é tão

O/A discente que, após as três Avaliações Regulares, alcançar nota média final inferior a sete e igual ou superior a cinco, será submetido a uma Avaliação Final que

A cada 03 (três) anos de serviço prestado ininterruptamente à Sulmed, perceberá o médico o adicional mensal de 5% (cinco por cento) do seu salário base.. CLÁUSULA