29
1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

Embed Size (px)

Citation preview

Page 1: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

1

Introdução aos Computadores e Programação(ICP)

Programação para as Ciências Experimentais(PCE)

DI/FCT/UNL

1º Semestre 2004/2005

Page 2: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

2

• Teóricas:

– Jorge Cruz ([email protected] / http://ssdi.di.fct.unl.pt/~jc)

• Práticas: – Miguel Maurício ([email protected])

– Joaquim Ferreira da Silva ([email protected] / http://ssdi.di.fct.unl.pt/~jfs)

– Alexandre Pinto ([email protected] / http://centria.di.fct.unl.pt/~amp/)

• Objectivos– Introdução aos Computadores

– Introdução à Algoritmia

– Familiarização com uma linguagem imperativa (Octave/MATLAB)

– Aplicação a problemas de engenharia

Page 3: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

3

Avaliação

• Avaliação das Práticas: – Mini-teste de Octave

– Trabalho de Octave (1)

– Trabalho de Octave (2)

– Mini-teste de Excel

• Nota Final: – 25% - Nota Prática– 75% - Exame

http://ssdi.di.fct.unl.pt/cursos/icp/ http://ssdi.di.fct.unl.pt/cursos/pce/

Page 4: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

4

Introdução aos Computadores

• Um programa é a materialização para uma dada máquina (computador e linguagem de programação) de um algoritmo.

• Um computador é uma máquina capaz de executar determinadas tarefas.

• Para uma máquina poder executar uma determinada tarefa é necessário: – Um algoritmo adequado para executar essa tarefa

– Uma representação do algoritmo compreensível pela máquina

• Um algoritmo é um conjunto ordenado de passos que definem como uma tarefa deve ser executada.

Page 5: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

5

ExemploTarefa:

Calcular o maior divisor comum de dois inteiros positivos x e y

Algoritmo:

1º Passo: atribuir a M o maior valor entre x e y;

2º Passo: atribuir a N o menor valor entre x e y;

3º Passo: chamar R ao resto da divisão inteira de M por N;

4º Passo: se R=0 então o maior divisor comum é N;

senão atribuir a M o valor de N;

atribuir a N o valor de R;

voltar ao 3º Passo;

Page 6: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

6

ExemploTarefa:

Calcular o maior divisor comum de dois inteiros positivos x e y

Programa (Octave): x=input(“Qual o valor de x?”); y=input(“Qual o valor de y?”); M = max(x,y);N = min(x,y);

doR = mod(M,N);if (R <> 0)

M = N;N = R;

endif;until (R == 0);disp(“O maior divisor comum é:”);disp(N);

Page 7: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

7

Introdução aos Computadores

• Os programas e os algoritmos que eles representam são genéricamente denominados por software.

• A máquina e os seus componentes físicos são genéricamente denominados por hardware.

Page 8: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

8

Representação da Informação

• Toda a informação necessária ao funcionamento de um computador é representada por conjuntos de bits.

• Um bit (binary digit) é um valor simbólico (0/1) que fisicamente é armazenado em componentes (circuitos) que podem estar num de dois estados (ex: ligado → 1; desligado → 0).

Page 9: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

9

Memória Principal

A memória principal é organizada numa sequência de células (palavras), cada uma com um tamanho típico de 8 bits (byte) e que pode ser acedida individualmente especificando o seu endereço (RAM → random access memory)

Memória Principal

Memória Secundária

Disco RígidoDisquetesCDsDVDs...

Armazenamento de Dados

Page 10: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

10

Memória Principal

O número de células da memória principal é geralmente grande, variando de computador para computador, e expressa-se normalmente em potências de 2:

0:

1:

2:

3:

4:

??:

endereço

01101101

10101110

00001111

01011100

10110011

00110011

células

......

210 bytes = 1024 bytes = 1 Kilobyte = 1 KB

220 bytes = 1024 KB = 1 Megabyte = 1 MB

230 bytes = 1024 MB = 1 Gigabyte = 1 GB

Armazenamento de Dados

Page 11: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

11

Memória Principal

Em cada célula os bits são ordenados.

0:

1:

2:

3:

4:

??:

endereço

01101101

10101110

00001111

01011100

10110011

00110011

células

......

0 0 0 0 1 1 1 1

bit mais significativo

bit menos significativo

A memória principal pode ser considerada uma longa sequência de bits, permitindo representações com um tamanho arbitrário de bits. (ex: uma sequência de 16 bits pode ser representada por 2 células consecutivas)

Armazenamento de Dados

Page 12: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

12

Memória Secundária

A memória secundária (discos rígidos, disquetes, CDs, DVDs, ...) complementa a memória principal, proporcionando num meio menos volátil (não se apaga quando se desliga o computador):

A maior desvantagem destes sistemas relativamente à memória principal é a velocidade de acesso (usa meios mecânicos muito mais lentos).

• mais espaço de armazenamento;

• possibilidade de separação física da máquina.

Armazenamento de Dados

Page 13: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

13

Representação da Informação como Sequência de bits

Representação de Texto

Cada símbolo é normalmente representado por 1 byte de acordo com o código ASCII (American Standard Code for Information Interchange).

01000010011011110110110100100000011001000110100101100001

B o m d i a

01000010

01101111

01101101

00100000

01100100

01100001

...

01101001

...

B

o

m

d

a

i

memória principal

Page 14: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

14

Representação da Informação como Sequência de bits

Representação de Valores Numéricos

Sistema Decimal

239

9×100 = 93×101 = 302×102 = 200 239

Sistema Binário

11101111

1×20 = 11×21 = 21×22 = 4

239

1×23 = 80×24 = 01×25 = 321×26 = 641×27 = 128

Sequência de números binários:

0, 1, 10, 11, 100, 101, 110, 111, 1000, ...

Page 15: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

15

Representação da Informação como Sequência de bits

Representação de Imagens

Mapas de bits

Uma imagem é um conjunto de pontos (pixel – picture element) representado por uma longa sequência de bits:

• imagens a preto e branco (pixel→1 bit): 1→preto ; 0→branco

• imagens a cores (pixel→3 bytes): vermelho+verde+azul (RGB)

Os mapas de bits ocupam muito espaço pelo que se usam frequentemente técnicas de compressão (ex: GIF e JPEG).

Uma desvantagem adicional é a dificuldade de aumentar ou diminuir as imagens.

Page 16: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

16

Representação da Informação como Sequência de bits

Representação de Imagens

Técnicas de Vectores

As técnicas de vectores representam uma imagem como um conjunto de linhas e curvas deixando os detalhes do seu desenho para a componente que produz a imagem (monitor, impressora).

Uma característica destas técnicas é a facilidade de aumentar ou diminuir as imagens.

As técnicas de vectores são usadas frequentemente para representar tipos de letra (escaláveis) e em aplicações de desenho (ex: CAD – Computer-Aided Design).

Page 17: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

17

Manipulação da Informação

O computador, além de ser capaz de armazenar os dados, tem também que os saber manipular para poder executar os algoritmos.

A manipulação dos dados requer um mecanismo para executar operações sobre os dados e coordenar a sequência dessas operações.

Num computador típico este mecanismo é denominado unidade central de processamento (CPU – Central Processing Unit).

Page 18: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

18

Manipulação da Informação

A unidade central de processamento é constituida por:

Unidade Central de Processamento (CPU)

• Uma unidade lógica/aritmética que contém os circuitos que executam a manipulação de dados;

• Uma unidade de controle que contém os circuitos para a coordenação da actividade da máquina;

• Um conjunto de registos gerais que servem para armazenar temporariamente os dados que são manipulados na CPU;

• Dois registos especiais:

-Um contador (program counter) que contém o endereço da próxima instrução a ser executada;

-Um registo de instrução (instruction register) que contém a instrução que está a ser correntemente executada.

Page 19: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

19

Manipulação da Informação

Unidade Central de Processamento (CPU)CPU

0:

1:

2:

10100100

00000000

00000000

...

registos

00000010

0110110110101110

contador

registo de instrução

Unidade de ControleUnidade Lógica/Aritmética

A CPU está ligada com a memória principal (RAM) por um circuito (BUS) através do qual é capaz de transferir dados entre a RAM e os seus registos.

RAM

0:

1:

2:

3:

4:

01101101

10101110

00001111

01011100

10110011

...

BUS

Actualmente quase todos os CPUs contêm uma memória de alta velocidade (semelhante à dos registos) denominada Memória Cache.

Nestes casos, a máquina tenta manter na Memória Cache uma cópia da parte da RAM que esteja correntemente a ser utilizada.

Page 20: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

20

Manipulação da Informação

Execução de Programas

Um programa para poder ser executado tem que ser codificado e armazenado na memória principal.

A unidade de controle é responsável pela extração do programa da memória principal, descodificação das suas instruções e sua execução.

A unidade de controle repete continuamente o seguinte ciclo (machine cycle):

Fetch

Decode

Execute

Transferir da RAM a instrução indicada pelo contador para o registo de instrução e incrementar o contador.

Descodificar o conteúdo do registo de instrução, identificando a operação requerida e os respectivos operandos.

Executar a operação requerida pela instrução activando os circuitos apropriados.

Page 21: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

21

Manipulação da Informação

Comunicação com os Periféricos

A memória principal (RAM) conjuntamente com a unidade de processamento central (CPU) constituem o núcleo do computador que comunica com os periféricos através de dispositivos intermediários denominados controladores.

Nos PCs os controladores correspondem às placas que se podem inserir na placa principal (motherboard) e às quais se ligam os periféricos.

CPU

Controlador

BUSRAM

Controlador

Monitor Disco Rígido

Cada controlador trata da comunicação com determinado tipo de periférico.

O controlador está electronicamente ligado ao BUS que liga a CPU à RAM.

A comunicação entre a CPU e um controlador é feita de um modo idêntico à comunicação da CPU com a RAM (o endereço identifica o controlador).

Page 22: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

22

O Sistema Operativo

A coordenação entre as diferentes actividades que podem ser executadas num computador é realizada por um conjunto de software globalmente denominado Sistema Operativo (ex: Microsoft Windows XP, UNIX, Linux, ...).

Um sistema operativo é constituido por duas camadas: o interpretador de comandos (Shell) e o núcleo (Kernel):

Shell

Kernel

Page 23: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

23

O Sistema Operativo

A Shell é a parte do sistema operativo responsável pela interface com os utilizadores.

Shell

Normalmente disponibiliza uma interface gráfica (GUI – Graphical User Interface) cujos objectos (ficheiros, programas...), são representados e manipulados graficamente no monitor como icones.

Uma componente importante das interfaces gráficas é o gestor de janelas, responsável pela divisão do ecrã em espaços denominados janelas e pela sua associação com as respectivas aplicações.

Gestor de Janelas

Page 24: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

24

O Sistema Operativo

A Kernel do sistema operativo contém o software capaz de executar as funções mais básicas.

Kernel

As suas componentes principais são: • o gestor de ficheiros (file manager);

• os gestores dos periféricos (device drivers);

• o gestor de memória (memory manager);

• os gestores dos processos (scheduler e dispatcher).

Page 25: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

25

O Sistema Operativo

Kernel

A função do gestor de ficheiros é a coordenação das capacidades de armazenamento da máquina.

Gestor de Ficheiros

A informação é armazenada em ficheiros que normalmente são agrupados em directorias organizadas hierarquicamente:

A:\

Ficheiro_1 Ficheiro_2 Directoria

Ficheiro_3

C:\

Program Files

Programa_1.exe

...

...

C:\Program Files\Programa_1.exe A:\Directoria\Ficheiro_3

Page 26: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

26

O Sistema Operativo

Kernel

Os gestores de periféricos (device drivers) são as unidades de software que comunicam com os controladores dos periféricos.

Gestores de Periféricos

Cada device driver é especializado num determinado periférico (uma impressora, um disco rígido, um monitor, ...).

Assim, temos um sistema operativo genérico que pode ser configurado para um conjunto particular de periféricos com a instalação dos respectivos device drivers.

Page 27: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

27

O Sistema Operativo

Kernel

O gestor de memória é responsável pela coordenação da utilização da memória principal (RAM).

Gestor de Memória

É necessário coordenar a utilização do espaço disponível, e eventualmente, criar a ilusão de um espaço de memória maior (memória virtual) usando por exemplo espaço do disco rígido.

Vários programas e blocos de dados podem estar simultaneamente na memoria principal.

Page 28: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

28

O Sistema Operativo

Kernel

Um processo é um programa em execução.

Gestores dos Processos

Os gestores dos processos são componentes do sistema operativo responsáveis pela manutenção de uma lista dos processos em execução e dos respectivos estados, e pela atribuição de tempo de CPU a cada processo.

Os computadores actuais possibilitam a execução de vários processos concurrentemente, isto é, o tempo de CPU é partilhado (time-sharing) pelos respectivos processos.

Page 29: 1 Introdução aos Computadores e Programação (ICP) Programação para as Ciências Experimentais (PCE) DI/FCT/UNL 1º Semestre 2004/2005

29

O Sistema Operativo

O Arranque do Sistema Operativo

Quando o computador é ligado um pequeno programa de inicialização é executado automaticamente.

O objectivo do programa de inicialização é fazer a transferência para a memória principal do sistema operativo que se encontra armazenado numa zona prédeterminada do disco rígido (ou outro periférico) e iniciar a sua execução.

Este programa está armazenado permanentemente numa parte não volátil da memória principal (ROM – Read Only Memory).

Uma vez iniciada a sua execução, o sistema operativo passa a controlar todas as actividades da máquina.