© m@nso 2003 introdução à programaçãocomputadores e programação i manipulação de...

53
© M@nso 2003 Introdução à programação Computadores e programação I Manipulação de Manipulação de informação informação Algoritmos computacionais

Upload: internet

Post on 18-Apr-2015

112 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

© M@nso 2003

Introdução à programação Computadores e programação I

Manipulação de Manipulação de informaçãoinformação

Algoritmos computacionais

Page 2: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

SumárioSumário Algoritmos não computacionais Algoritmos computacionais Computador simplificado

Linguagem assembler Programas em assembler

Bases de Numeração Números binários Programas em linguagem máquina

Linguagem estruturada Variáveis Operadores aritméticos Leitura e escrita Funções

Page 3: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

© M@nso 2003

Introdução à programação Computadores e programação I

Algoritmos não Algoritmos não computacionaiscomputacionais

Page 4: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Algoritmos não computacionaisAlgoritmos não computacionais Missionários e canibais

Algoritmo Escrito numa folha de papel

A4 A5 Duas folhas

Letra manuscrita Possivelmente ilegível

Intruções Numeradas Com marcas Com desenhos

Intruções ambíguas Vai para A Rema para A Navega para A Atravessa o rio

Executor Aluno

Inteligente

Page 5: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Componentes dos algoritmosComponentes dos algoritmos Dados

Nº de missionários no lado A Nº de missionários no lado B Nº de canibais no lado A Nº de canibais no lado B Posição do Barco

Situação inicial (0,0,0) / (3,3,1)

Situação final (3,3,1) / (0,0,0)

Instruções Embarcar

Missionário Canibal

Desembarcar Missionário Canibal

Atravessar o rio

As instruções As instruções manipulam os dadosmanipulam os dados

(1,1,1) / (2,2,0)

(1,0,0) / (3,2,1)

Page 6: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Algoritmos não computacionaisAlgoritmos não computacionais

Formato ambíguo

Instruções ambíguas Definição das instruções disponíveis Escritos em linguagem natural

Passível de várias interpretações

Executado por pessoas Entendem a linguagem natural Inteligentes e conseguem resolver ambiguidades Estão inseridas no contexto do problema Conseguem adivinhar passos intermédios

Page 7: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

© M@nso 2003

Introdução à programação Computadores e programação I

Algoritmos Algoritmos computacionaiscomputacionais

Programação do computadorSIMPLEX

Page 8: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Computador SimplexComputador Simplex

Page 9: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Computador SimplificadoComputador Simplificado Memória

Endereço Local físico da memória

Conteúdo Intruções

Mov Cop

Dados 10 20

Vazias Processador sequencial

1. Executa uma instrução2. Passa para a instrução

seguinte

A0 A1 A2 A3

B0 B1 B2 B3

C0 C1 C2 C3

D0 D1 D2 D3D

C10 20

1

COP

B

STOP

2 30

AMOV

Page 10: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Intruções do processadorIntruções do processador Acções do computador SIMPLEX

Manipular dados Ler Atribuir Copiar Imprimir

Executar instruções Fazer operações aritméticas

Somar , Subtrair, Multiplicar, dividir Fazer operações lógicas

> , = , < Escolha entre várias instruções.

SE Repetir um conjunto de instruções

Saltar

Definir a sintaxe da linguagemDefinir a sintaxe da linguagem

A0 A1 A2 A3

B0 B1 B2 B3

C0 C1 C2 C3

D0 D1 D2 D3D

C10 20

1

COP

B

STOP

2 30

AMOV

Page 11: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

A0 A1 A2 A3

B0 B1 B2 B3

C0 C1 C2 C3

D0 D1 D2 D3D

C10 20

1

COP

B

STOP

2 30

AMOV

Sintaxe da linguagem (assemblex)Sintaxe da linguagem (assemblex)• Nº Mnemômica Descrição• 1 LER Ei Ler a entrada para Ei

• LER c0• 2 COP Ei Ej Copiar conteúdo de Ei para Ej

• COP C0 C2 • 3 ATR Ei Val Atribuir a Ei o valor Val

• ATR C2 3.14• 4 IMP Ei Imprimir Ei

• IMP C0• 5 SOM Ei Ej Ek Somar Ei e Ej e guardar em Ek

• SOM C0 C1 C2• 6 SUB Ei Ej Ek Subtrair Ei por Ej e guardar em Ek

• SUB C0 C1 C2• 7 MUL Ei Ej Ek Multiplicar Ei e Ej e guardar em Ek

• MUL C0 C1 C2• 8 DIV Ei Ej Ek Dividir Ei por Ej e guardar em Ek

• DIV C0 C1 C2• 9 SLT Ei Saltar para a célula Ei

• SLT AO• 10 SE Ei > Ej Ek Se Ei maior que Ej, saltar para Ek

• SE C0 > C1 A0• 11 SE Ei < Ej Ek Se Ei menor que Ej, saltar para Ek

• SE C0 < C1 A0• 12 SE Ei = Ej Ek Se Ei igual Ej, saltar para Ek

• SE C0 = C1 A0• 13 FIM Parar a execução das instruções

Page 12: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Exemplo de um programaExemplo de um programa Calcular a área do

rectangulo Algoritmo

Ler lado 1 Ler lado 2 Area = lado1 * lado 2 Imprimir area

A0 A1 A2 A3

B0 B1 B2 B3

C0 C1 C2 C3

D0 D1 D2 D3

Ler C1

FIM

Ler C0 MUL C0 C1 C3 IMP C3 AssemblexAssemblex

Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM

Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM

Lado 1

Lado 2

Page 13: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Execução de um programaExecução de um programa

ProgramaPrograma

Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM

Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM

20010

20

A0 A1 A2 A3

B0 B1 B2 B3

C0 C1 C2 C3

D0 D1 D2 D3

Ler C1

FIM

Ler C0 MUL C0 C1 C3 IMP C3

10 20 200

Page 14: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Nova Execução de um programaNova Execução de um programa

ProgramaPrograma

Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM

Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM

505

10

A0 A1 A2 A3

B0 B1 B2 B3

C0 C1 C2 C3

D0 D1 D2 D3

Ler C1

FIM

Ler C0 MUL C0 C1 C3 IMP C3

5 10 50

Page 15: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Calcular a nota Final da disciplina de IP dada a nota prática e a nota teórica Algoritmo

Ler nota prática Ler nota teórica nota final

nota prática 40% nota teórica 60%

Imprimir nota final

• Nº INSTRUÇÃO• 1 LER Ei• 2 COP Ei Ej• 3 ATR Ei Val• 4 IMP Ei• 5 SOM Ei Ej Ek• 6 SUB Ei Ej Ek• 7 MUL Ei Ej Ek• 8 DIV Ei Ej Ek• 9 SLT Ei• 10 SE Ei > Ej Ek• 11 SE Ei < Ej Ek• 12 SE Ei = Ej Ek• 14 FIM

A0 A1 A2 A3

B0 B1 B2 B3

C0 C1 C2 C3

D0 D1 D2 D3

E0 E1 E2 E3

F0 F1 F2 F3F

E

D

0 1 2 3

A

B

C

A0 A1 A2 A3

B0 B1 B2 B3

C0 C1 C2 C3

D0 D1 D2 D3

E0 E1 E2 E3

F0 F1 F2 F3F

E

D

0 1 2 3

A

B

C

Page 16: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

AssemblexAssemblex

Ler D0Ler D0Ler D1Ler D1ATR D2 0.4ATR D2 0.4ATR D3 0.6ATR D3 0.6MUL D0 D2 E0MUL D0 D2 E0MUL D1 D3 E1MUL D1 D3 E1SOM E1 E2 E3SOM E1 E2 E3IMP E3IMP E3FIMFIM

Ler D0Ler D0Ler D1Ler D1ATR D2 0.4ATR D2 0.4ATR D3 0.6ATR D3 0.6MUL D0 D2 E0MUL D0 D2 E0MUL D1 D3 E1MUL D1 D3 E1SOM E1 E2 E3SOM E1 E2 E3IMP E3IMP E3FIMFIM

A0 A1 A2 A3

B0 B1 B2 B3

C0 C1 C2 C3

D0 D1 D2 D3

E0 E1 E2 E3

F0 F1 F2 F3F

E

D

0 1 2 3

A

B

C

A0 A1 A2 A3

B0 B1 B2 B3

C0 C1 C2 C3

D0 D1 D2 D3

E0 E1 E2 E3

F0 F1 F2 F3F

E

D

0 1 2 3

A

B

C

Page 17: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

A0 A1 A2 A3

B0 B1 B2 B3

C0 C1 C2 C3

D0 D1 D2 D3

E0 E1 E2 E3

F0 F1 F2 F3F

E4 12 16

D10 20 0,4 0,6

CFIM

ATR D3 0.6

BMUL D0 D2 E0 MUL D1 D3 E1 SOM E0 E1 E2 IMP E2

ALer D0 Ler D1 ATR D2 0.4

0 1 2 3

16

10

20

Page 18: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

© M@nso 2003

Introdução à programação Computadores e programação I

Bases de NumeraçãoBases de Numeração

Transformar instruções, dados e endereços em números

Page 19: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Computador digitalComputador digital O computador para processar e armazenar informação utiliza a

linguagem binária Converter para binário

Instruções – número da instrução Endereços – endereços sequenciais Dados - são sempre numeros

Linguagem binária Bit = digito binário Pode assumir dos valores

0 diferença de potencial baixo Ausência de energia Campo magnético negativo buraco

1 diferença de potencial Alto presença de energia Campo magnético positrivo Sem buraco

AssemblexAssemblex

Ler D0Ler D1ATR D3 0.4ATR E0 0.6MUL D0 D3 E1MUL D1 E0 E2SOM E1 E2 E3IMP E3FIM

Ler D0Ler D0Ler D1Ler D1ATR D3 0.4ATR D3 0.4ATR E0 0.6ATR E0 0.6MUL D0 D3 E1MUL D0 D3 E1MUL D1 E0 E2MUL D1 E0 E2SOM E1 E2 E3SOM E1 E2 E3IMP E3IMP E3FIMFIM

AssemblexAssemblex

Ler D0Ler D1ATR D3 0.4ATR E0 0.6MUL D0 D3 E1MUL D1 E0 E2SOM E1 E2 E3IMP E3FIM

Ler D0Ler D0Ler D1Ler D1ATR D3 0.4ATR D3 0.4ATR E0 0.6ATR E0 0.6MUL D0 D3 E1MUL D0 D3 E1MUL D1 E0 E2MUL D1 E0 E2SOM E1 E2 E3SOM E1 E2 E3IMP E3IMP E3FIMFIM

Page 20: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Representação digitalRepresentação digital

AcesaAcesa

ApagadaApagada

4 estados

Bit

2 estados •Acesa•Apagada

Dois Bits

Page 21: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Representação digital da informação Representação digital da informação (byte)(byte)

1 bit 2bits 3 bits 4 bits 0 1

00 01 10 11

000 001 010 011 100 101 110 111

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

1 BYTE1 BYTE

2288= 256= 256 Estados Estados diferentesdiferentes

n bites representam 2n bites representam 2n n estadosestados

1 byte = 8 bits

Unidade fundamental de

informação

Page 22: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Conversão de decimal para Conversão de decimal para bináriobinário

94 2

0 47 2

1 23 2

1 11 2

1 5 2

1 2 2

0 1 2

1 0 2

0 0

0 1 0 1 1 1 1 0

8 bits=

8 divisões

Page 23: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Conversão de binário para Conversão de binário para decimal decimal

0 *27 + 1*26 + 0*25 + 1*24 + 1*23 + 1*22 + 1*21 + 0 = 94

32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1

0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 4101

1 BYTE1 BYTE

2 BYTES2 BYTES

0 1 0 1 1 1 1 0128 64 32 16 8 4 2 1

0 64 0 16 8 4 2 0 94

Conversor de Bases

Page 24: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

OverflowOverflow

Ocorre quando a número a armazenar excede a capacidade de armazenamento

Dá origem a erros Exemplo de armazenamento num byte

Numero a armazenar 400 Número armazenado 144400 2

0 200 2

0 100 2

0 50 2

0 25 2

1 12 2

0 6 2

0 3 2

1 1

1 0 0 1 0 0 0 0128 64 32 16 8 4 2 1

128 0 0 16 0 0 0 0 144

Conversor de Bases

Page 25: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Representação binária de números Representação binária de números negativos negativos

Algoritmo para conversão de números negativos para binário Subtrair uma unidade ao número positivo Fazer a conversão para binário Inverter os bits - 70

69 2

1 34 2

0 17 2

1 8 2

0 4 2

0 2 2

0 1 2

1 0 2

0 0

0 1 0 0 0 1 0 164 32 16 8 4 2 1

1 0 1 1 1 0 1 0 - 70sinal Número Negativo

Conversor de Bases

Page 26: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Representação binária de números Representação binária de números negativos negativos

Valor decimal

Representação binária

Valor decimal

Representação binária

0 0 0 0 0 0 0 0 0 -1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 -2 1 1 1 1 1 1 1 0 2 0 0 0 0 0 0 1 0 -3 1 1 1 1 1 1 0 1 3 0 0 0 0 0 0 1 1 -4 1 1 1 1 1 1 0 0 4 0 0 0 0 0 1 0 0 -5 1 1 1 1 1 0 1 1 5 0 0 0 0 0 1 0 1 -6 1 1 1 1 1 0 1 0 6 0 0 0 0 0 1 1 0 -7 1 1 1 1 1 0 0 1 7 0 0 0 0 0 1 1 1 -8 1 1 1 1 1 0 0 0

Page 27: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Representação de números reaisRepresentação de números reais Parte decimal,parte fraccionária

120,35 Parte decimal

Número inteiro Parte fraccionária

Número inteiro Notação científica

1,2035 E 2 IEEE Standard 754 Floating Point Numbers

Mantissa Parte decimal

Número inteiro (1) Parte fraccionária

Representação fraccionária do número inteiro (0,2035) Expoente

Número inteiro (2) Sinal (0)

Page 28: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Representação de números reaisRepresentação de números reais

Page 29: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Conversão de caracteresConversão de caracteres

Tabela ASCII NULL – 0 Espaço – 32 Zero – 48 A – 65 a - 97 Á – 143 á - 160

Page 30: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Conversão de InstruçõesConversão de Instruções

Endereços de memória

0 0000 1 0001 2 0010 3 0011

40100

50101

60110

70111

81000

91001

101010

111011

121100

131101

141110

151111

2 310

A

D

C

B

Page 31: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Conversão de InstruçõesConversão de Instruções

Endereços de memória Instruções

Nº Mnemômica Binário Par. 1 Par. 2 Par. 31 LER Ei 0000 XXXX

2 COP Ei Ej 0001 XXXX YYYY

3 ATR Ei Val 0010 XXXX YYYY

4 IMP Ei 0011 XXXX

5 SOM Ei Ej Ek 0100 XXXX YYYY ZZZZ

6 SUB Ei Ej Ek 0101 XXXX YYYY ZZZZ

7 MUL Ei Ej Ek 0110 XXXX YYYY ZZZZ

8 DIV Ei Ej Ek 0111 XXXX YYYY ZZZZ

9 SLT Ei 1000 XXXX

10 SE Ei > Ej Ek 1001 XXXX YYYY ZZZZ

11 SE Ei < Ej Ek 1010 XXXX YYYY ZZZZ

12 SE Ei = Ej Ek 1011 XXXX YYYY ZZZZ

13 IMP Ei 1100 XXXX

14 FIM 1101

Endereços de memória

0 0000 1 0001 2 0010 3 0011

40100

50101

60110

70111

81000

91001

101010

111011

121100

131101

141110

151111

2 310

A

D

C

B

Page 32: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Programa em linguagem máquinaPrograma em linguagem máquinaA0 A1 A2 A3

B0 B1 B2 B3

C0 C1 C2 C3

D0 D1 D2 D3

10 20 200

IMP C3

FIM

Ler C0 Ler C1 SOM C0 C1 C3 AssemblerAssembler

Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM

Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM

Nº Mnemômica Binário Par. 1 Par. 2 Par. 31 LER Ei 0000 XXXX

2 COP Ei Ej 0001 XXXX YYYY

3 ATR Ei Val 0010 XXXX YYYY

4 IMP Ei 0011 XXXX

5 SOM Ei Ej Ek 0100 XXXX YYYY ZZZZ

6 SUB Ei Ej Ek 0101 XXXX YYYY ZZZZ

7 MUL Ei Ej Ek 0110 XXXX YYYY ZZZZ

8 DIV Ei Ej Ek 0111 XXXX YYYY ZZZZ

9 SLT Ei 1000 XXXX

10 SE Ei > Ej Ek 1001 XXXX YYYY ZZZZ

11 SE Ei < Ej Ek 1010 XXXX YYYY ZZZZ

12 SE Ei = Ej Ek 1011 XXXX YYYY ZZZZ

13 IMP Ei 1100 XXXX

14 FIM 1101

Endereços de memória

Linguagem máquinaLinguagem máquina

0000 01000000 01000000 01010000 01010110 0100 0101 0110 0100 0101 011001100011 0110 0011 0110 01100110

0000 01000000 01000000 01010000 01010110 0100 0101 0110 0100 0101 011001100011 0110 0011 0110 01100110

00000

10001

20010

30011

40100

50101

60110

70111

81000

91001

101010

111011

121100

131101

141110

151111

D

C0010 0011 0110

0110 0100 0101 0110 0011 0110

B110

0 1 2 3

A0000 0100 0000 0101

Page 33: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Representação física dos dadosRepresentação física dos dados Memória

Níveis de tensão Maior tensão corresponde a 1 Menor tensão corresponde a 0

Disco ou fita magnética Inversão da orientação do campo magnético numa camada

de oxido de ferro Orientação positiva corresponde a 1 Orientação negativacorresponde a 0

Discos ópticos (CD , DVD) Pequenos buracos queimados pelo lases num filme de

telúrio Buraco corresponde a 1 Sem buraco correspinde a 0

Page 34: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

© M@nso 2003

Introdução à programação Computadores e programação I

Linguagens de alto nívelLinguagens de alto nível

Linguagem estruturada

Page 35: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Substituição de endereços por Substituição de endereços por nomesnomes

Calcular a área do rectângulo

Algoritmo Ler lado 1 Ler lado 2 Area = lado1 * lado 2 Imprimir area

AssemblerAssembler

Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM

Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM

Linguagem de alto nívelLinguagem de alto nível

Ler lado1Ler lado1Ler lado2Ler lado2area <- lado1 * lado2area <- lado1 * lado2Escrever areaEscrever area

Ler lado1Ler lado1Ler lado2Ler lado2area <- lado1 * lado2area <- lado1 * lado2Escrever areaEscrever area

A0 A1 A2 A3

B0 B1 B2 B3

C0lado1

C1lado2

C2area

C3

D0 D1 D2 D3

C10 20 200

B

1

Ler lado2

0

ALer lado1

Area = lado1 * lado2

Imprime area

2 3

D

Linguagem máquinaLinguagem máquina

0000 01000000 01000000 01010000 01010110 0100 0101 0110 0100 0101 011001100011 0110 0011 0110 01100110

0000 01000000 01000000 01010000 01010110 0100 0101 0110 0100 0101 011001100011 0110 0011 0110 01100110

Page 36: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Tipos de dadosTipos de dados

Inteiro Real Caracter Texto Lógico

Variáveis Um nome Um Tipo Um só valor

AssemblerAssembler

Ler C0Ler C0Ler C0Ler C0

Linguagem de alto nívelLinguagem de alto nível

Ler lado1Ler lado1Ler lado1Ler lado1

D0logico repetente

FALSO0

D0inteiro Idade

650100 00010

real PI

650100 0001001110010

D0 caracter sexo

M0100 0001

máquinamáquina

0000 01010000 01010000 01010000 0101

Page 37: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Tipos de dadosTipos de dados

Page 38: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Declaração de variáveisDeclaração de variáveis

Onde ? Antes da sua utilização

Porquê? Para o compilador reservar um espaço de

memória Como ?

Definir utilizando a instrução variavel Variavel tipo nome Variavel tipo nome1, nome2, …

Omitindo a instrução variavel tipo nome tipo nome1, nome2, …

ExemplosExemplos

Variavel inteiro ladoVariavel inteiro ladoVariavelVariavel real lado1 , lado2real lado1 , lado2Caracter sexoCaracter sexoLogico repetente, Logico repetente, trabalhadortrabalhador

Variavel inteiro ladoVariavel inteiro ladoVariavelVariavel real lado1 , lado2real lado1 , lado2Caracter sexoCaracter sexoLogico repetente, Logico repetente, trabalhadortrabalhador

Page 39: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Regras dos nomes de variáveisRegras dos nomes de variáveis Pode ser constituído por letras do alfabeto por

dígitos e pelo caracter _ (underscore) O primeiro caracter não pode ser um dígito As letras maiúsculas e minúsculas representam

caracteres diferentes Não pode ter o nome de uma palavra reservado da

linguagem Deve ser descritivo daquilo que armazena

Caso tenha mais que uma palavra utilizar o caracter _ para unir as palavras ou capitular as iniciais

Não é aconselhado A utilização de caracteres acentuados Começar por _ Ter apenas letras maiúsculas

Page 40: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Quais dos seguintes nomes são nomes válidos de variáveis? idade Num_Cliente A1b2c3 7dias Vinte% Sim?não _alfa Variavel Nome Principal Cliente NomePrincipalCliente Nome_Principal_Cliente

Page 41: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Ler e escrever Ler e escrever

Instrução ler Utilização

Ler nome_da_variável

Instrução escrever Utilização

escrever nome_da_variável escrever “texto” escrever “texto” , nome_da_variável escrever nome_da_variável, “texto” , . . . . .

Separar os elementos por virgulas

Page 42: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Exemplo de Ler e escrever Exemplo de Ler e escrever

Programa Ola MundoPrograma Ola Mundo

inicioinicio escrever "ola mundo"escrever "ola mundo"fimfim

inicioinicio escrever "ola mundo"escrever "ola mundo"fimfim

Programa cordialPrograma cordial

inicioinicio Texto nomeTexto nome escrever " Qual o seu nome"escrever " Qual o seu nome" ler nomeler nome escrever "Benvindo " , nomeescrever "Benvindo " , nomefimfim

inicioinicio Texto nomeTexto nome escrever " Qual o seu nome"escrever " Qual o seu nome" ler nomeler nome escrever "Benvindo " , nomeescrever "Benvindo " , nomefimfim

Page 43: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Atribuição de Valores – operador <-Atribuição de Valores – operador <-

NOTANOTA

O operador = (igual) é o operador de comparação e devolve verdadeiro ou falso

O operado <- é o operador de atribuição e significa que a variável passa a ter um novo valor

O operador = (igual) é o operador de comparação e devolve verdadeiro ou falso

O operado <- é o operador de atribuição e significa que a variável passa a ter um novo valor

ExemplosExemplos

Soma Soma <-<- 10 10

saldo saldo <-<- soma + 1soma + 1

area area <- <- lado1 * lado2lado1 * lado2

Soma Soma <-<- 10 10

saldo saldo <-<- soma + 1soma + 1

area area <- <- lado1 * lado2lado1 * lado2

variavel <- expressão

Page 44: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Operadores AritméticosOperadores Aritméticos

Variáveis numéricas Unários

- (menos) Binários

+ (adição) - (subtracção) * (multiplicação) / (divisão) ^(potenciação)

Variáveis Texto Binário

+ ( concatenação)

Prioridade dos operadores Prioridade 1

^ Prioridade 2

* /

Prioridade 3 + -

Os parêntesis alteram a prioridade

Page 45: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Expressões Expressões matemáticas/Computacionaismatemáticas/Computacionais

Distancia entre dois pontos

Matemática

Computacional D <-<- ( (x1 – x2)^2 + (y1 – y2) ^2 ) ^0.5

2 22 )21()21( yyxxd

(x1,y1)

(x2,y2)

Page 46: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Expressões Expressões matemáticas/Computacionaismatemáticas/Computacionais

Zeros de uma equação de segundo grau

Matemática

Computacional X1 <- ( -b + ( b^2 – 4*a*c) ^0.5 )/ ( 2 *

a) X2 <- ( -b - ( b^2 – 4*a*c) ^0.5 ) / ( 2 *

a)

Page 47: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Expressões Expressões matemáticas/Computacionaismatemáticas/Computacionais

Fórmula Matemática

Expressão Computacional X <- (2*3.14*R^2 -5)/ ((3.14*R)/6)^(1/3) + (4/3)*

3.14*R^3

3

3

2

3

4

6

52R

R

Rx

Page 48: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Área do rectanguloÁrea do rectangulo

Programa Área do rectânguloPrograma Área do rectângulo

inicioinicio real lado1, lado2, areareal lado1, lado2, area escrever "introduza o lado 1"escrever "introduza o lado 1" ler lado1ler lado1 escrever "Introduza o lado 2"escrever "Introduza o lado 2" ler lado2ler lado2 area <- lado1 * lado2area <- lado1 * lado2 escrever " A área é " , areaescrever " A área é " , areafimfim

inicioinicio real lado1, lado2, areareal lado1, lado2, area escrever "introduza o lado 1"escrever "introduza o lado 1" ler lado1ler lado1 escrever "Introduza o lado 2"escrever "Introduza o lado 2" ler lado2ler lado2 area <- lado1 * lado2area <- lado1 * lado2 escrever " A área é " , areaescrever " A área é " , areafimfim

Page 49: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

Exemplo de ConcatenaçãoExemplo de Concatenação

Programa cordialPrograma cordial

inicioinicio Texto nome, apelido, nome_completoTexto nome, apelido, nome_completo escrever "Qual o seu primeiro nome"escrever "Qual o seu primeiro nome" ler nomeler nome escrever "Qual o seu apelido"escrever "Qual o seu apelido" ler apelidoler apelido nome_completo <- nome + " " + apelidonome_completo <- nome + " " + apelido escrever "Benvindo " , nome_completoescrever "Benvindo " , nome_completofimfim

inicioinicio Texto nome, apelido, nome_completoTexto nome, apelido, nome_completo escrever "Qual o seu primeiro nome"escrever "Qual o seu primeiro nome" ler nomeler nome escrever "Qual o seu apelido"escrever "Qual o seu apelido" ler apelidoler apelido nome_completo <- nome + " " + apelidonome_completo <- nome + " " + apelido escrever "Benvindo " , nome_completoescrever "Benvindo " , nome_completofimfim

Page 50: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Construa um programa que calcule a área e o perímetro de um círculo

RPerimetro 2

2RArea

Page 51: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Construa um programa que calcule a área e o volume de um paralelepípedo

Page 52: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Construa um programa que calcule a distância de um ponto à origem num plano 2D

Page 53: © M@nso 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Construa um programa que calcule o tempo de trabalho de um trabalhador dado a hora de entrada e a hora de saída.

08:30:00Entrada

13:00:10Saída

4:30:10Tempo detrabalho