A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

© 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais.

Apresentações semelhantes


Apresentação em tema: "© 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais."— Transcrição da apresentação:

1 © 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais

2 Introdução à programaçãoComputadores e programação I © 2003 Sumá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

3 © 2003 Introdução à programaçãoComputadores e programação I Algoritmos não computacionais

4 Introdução à programaçãoComputadores e programação I © 2003 Algoritmos 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

5 Introdução à programaçãoComputadores e programação I © 2003 Componentes 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 manipulam os dados (1,1,1) / (2,2,0) (1,0,0) / (3,2,1)

6 Introdução à programaçãoComputadores e programação I © 2003 Algoritmos 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

7 © 2003 Introdução à programaçãoComputadores e programação I Algoritmos computacionais Programação do computador SIMPLEX

8 Introdução à programaçãoComputadores e programação I © 2003 Computador Simplex

9 Introdução à programaçãoComputadores e programação I © 2003 Computador Simplificado Memória Endereço Local físico da memória Conteúdo Intruções Mov Cop Dados Vazias Processador sequencial 1. Executa uma instrução 2. Passa para a instrução seguinte

10 Introdução à programaçãoComputadores e programação I © 2003 Intruçõ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 linguagem

11 Introdução à programaçãoComputadores e programação I © 2003 Sintaxe da linguagem (assemblex) NºMnemômicaDescrição 1LER EiLer a entrada para Ei LER c0 2COP Ei EjCopiar conteúdo de Ei para Ej COP C0 C2 3ATR Ei ValAtribuir a Ei o valor Val ATR C IMP EiImprimir Ei IMP C0 5SOM Ei Ej EkSomar Ei e Ej e guardar em Ek SOM C0 C1 C2 6SUB Ei Ej EkSubtrair Ei por Ej e guardar em Ek SUB C0 C1 C2 7MUL Ei Ej EkMultiplicar Ei e Ej e guardar em Ek MUL C0 C1 C2 8DIV Ei Ej EkDividir Ei por Ej e guardar em Ek DIV C0 C1 C2 9SLT EiSaltar para a célula Ei SLT AO 10SE Ei > Ej EkSe Ei maior que Ej, saltar para Ek SE C0 > C1 A0 11SE Ei < Ej EkSe Ei menor que Ej, saltar para Ek SE C0 < C1 A0 12SE Ei = Ej EkSe Ei igual Ej, saltar para Ek SE C0 = C1 A0 13FIMParar a execução das instruções

12 Introdução à programaçãoComputadores e programação I © 2003 Exemplo de um programa Calcular a área do rectangulo Algoritmo Ler lado 1 Ler lado 2 Area = lado1 * lado 2 Imprimir area Assemblex Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM Lado 1 Lado 2

13 Introdução à programaçãoComputadores e programação I © 2003 Execução de um programa Programa Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM

14 Introdução à programaçãoComputadores e programação I © 2003 Nova Execução de um programa Programa Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM

15 Introdução à programaçãoComputadores e programação I © 2003 Exercí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 1LER Ei 2COP Ei Ej 3ATR Ei Val 4IMP Ei 5SOM Ei Ej Ek 6SUB Ei Ej Ek 7MUL Ei Ej Ek 8DIV Ei Ej Ek 9SLT Ei 10SE Ei > Ej Ek 11SE Ei < Ej Ek 12SE Ei = Ej Ek 14FIM

16 Introdução à programaçãoComputadores e programação I © 2003 Exercício Assemblex Ler D0 Ler D1 ATR D2 0.4 ATR D3 0.6 MUL D0 D2 E0 MUL D1 D3 E1 SOM E1 E2 E3 IMP E3 FIM Ler D0 Ler D1 ATR D2 0.4 ATR D3 0.6 MUL D0 D2 E0 MUL D1 D3 E1 SOM E1 E2 E3 IMP E3 FIM

17 Introdução à programaçãoComputadores e programação I © 2003 Exercício

18 © 2003 Introdução à programaçãoComputadores e programação I Bases de Numeração Transformar instruções, dados e endereços em números

19 Introdução à programaçãoComputadores e programação I © 2003 Computador 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

20 Introdução à programaçãoComputadores e programação I © 2003 Representação digital Acesa Apagada 4 estados Bit 2 estados Acesa Apagada Dois Bits

21 Introdução à programaçãoComputadores e programação I © 2003 Representação digital da informação (byte) 1 BYTE 2 8 = 256 Estados diferentes n bites representam 2 n estados 1 byte = 8 bits Unidade fundamental de informação

22 Introdução à programaçãoComputadores e programação I © 2003 Conversão de decimal para binário 8 bits = 8 divisões

23 Introdução à programaçãoComputadores e programação I © 2003 Conversão de binário para decimal 0 * * * * * * * = 94 1 BYTE 2 BYTES Conversor de Bases

24 Introdução à programaçãoComputadores e programação I © 2003 Overflow 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 144 Conversor de Bases

25 Introdução à programaçãoComputadores e programação I © 2003 Representação binária de números 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 Conversor de Bases

26 Introdução à programaçãoComputadores e programação I © 2003 Representação binária de números negativos

27 Introdução à programaçãoComputadores e programação I © 2003 Representaçã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)

28 Introdução à programaçãoComputadores e programação I © 2003 Representação de números reais

29 Introdução à programaçãoComputadores e programação I © 2003 Conversão de caracteres Tabela ASCII NULL – 0 Espaço – 32 Zero – 48 A – 65 a - 97 Á – 143 á - 160

30 Introdução à programaçãoComputadores e programação I © 2003 Conversão de Instruções Endereços de memória

31 Introdução à programaçãoComputadores e programação I © 2003 Conversão de Instruções Endereços de memória Instruções

32 Introdução à programaçãoComputadores e programação I © 2003 Programa em linguagem máquina Assembler Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM Linguagem máquina

33 Introdução à programaçãoComputadores e programação I © 2003 Representaçã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

34 © 2003 Introdução à programaçãoComputadores e programação I Linguagens de alto nível Linguagem estruturada

35 Introdução à programaçãoComputadores e programação I © 2003 Substituição de endereços por nomes Calcular a área do rectângulo Algoritmo Ler lado 1 Ler lado 2 Area = lado1 * lado 2 Imprimir area Assembler Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM Linguagem de alto nível Ler lado1 Ler lado2 area <- lado1 * lado2 Escrever area Ler lado1 Ler lado2 area <- lado1 * lado2 Escrever area Linguagem máquina

36 Introdução à programaçãoComputadores e programação I © 2003 Tipos de dados Inteiro Real Caracter Texto Lógico Variáveis Um nome Um Tipo Um só valor Assembler Ler C0 Linguagem de alto nível Ler lado1 máquina

37 Introdução à programaçãoComputadores e programação I © 2003 Tipos de dados

38 Introdução à programaçãoComputadores e programação I © 2003 Declaraçã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, … Exemplos Variavel inteiro lado Variavelreal lado1, lado2 Variavel real lado1, lado2 Caracter sexo Logico repetente, trabalhador Variavel inteiro lado Variavelreal lado1, lado2 Variavel real lado1, lado2 Caracter sexo Logico repetente, trabalhador

39 Introdução à programaçãoComputadores e programação I © 2003 Regras 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

40 Introdução à programaçãoComputadores e programação I © 2003 Exercí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 Nome_Principal_Cliente

41 Introdução à programaçãoComputadores e programação I © 2003 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

42 Introdução à programaçãoComputadores e programação I © 2003 Exemplo de Ler e escrever Programa Ola Mundo inicio escrever "ola mundo" escrever "ola mundo"fiminicio fim Programa cordial inicio Texto nome Texto nome escrever " Qual o seu nome" escrever " Qual o seu nome" ler nome ler nome escrever "Benvindo ", nome escrever "Benvindo ", nomefiminicio Texto nome Texto nome escrever " Qual o seu nome" escrever " Qual o seu nome" ler nome ler nome escrever "Benvindo ", nome escrever "Benvindo ", nomefim

43 Introdução à programaçãoComputadores e programação I © 2003 Atribuição de Valores – operador <- NOTA 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 Exemplos Soma <- 10 saldo <- soma + 1 area <- lado1 * lado2 Soma <- 10 saldo <- soma + 1 area <- lado1 * lado2 variavel <- expressão

44 Introdução à programaçãoComputadores e programação I © 2003 Operadores 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 Os parêntesis alteram a prioridade

45 Introdução à programaçãoComputadores e programação I © 2003 Expressões matemáticas/Computacionais Distancia entre dois pontos Matemática Computacional <- D <- ( (x1 – x2)^2 + (y1 – y2) ^2 ) ^0.5 (x1,y1) (x2,y2)

46 Introdução à programaçãoComputadores e programação I © 2003 Expressões matemá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)

47 Introdução à programaçãoComputadores e programação I © 2003 Expressões matemá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

48 Introdução à programaçãoComputadores e programação I © 2003 Área do rectangulo Programa Área do rectângulo inicio real lado1, lado2, area real lado1, lado2, area escrever "introduza o lado 1" escrever "introduza o lado 1" ler lado1 ler lado1 escrever "Introduza o lado 2" escrever "Introduza o lado 2" ler lado2 ler lado2 area <- lado1 * lado2 area <- lado1 * lado2 escrever " A área é ", area escrever " A área é ", areafim inicio real lado1, lado2, area real lado1, lado2, area escrever "introduza o lado 1" escrever "introduza o lado 1" ler lado1 ler lado1 escrever "Introduza o lado 2" escrever "Introduza o lado 2" ler lado2 ler lado2 area <- lado1 * lado2 area <- lado1 * lado2 escrever " A área é ", area escrever " A área é ", areafim

49 Introdução à programaçãoComputadores e programação I © 2003 Exemplo de Concatenação Programa cordial inicio Texto nome, apelido, nome_completo Texto nome, apelido, nome_completo escrever "Qual o seu primeiro nome" escrever "Qual o seu primeiro nome" ler nome ler nome escrever "Qual o seu apelido" escrever "Qual o seu apelido" ler apelido ler apelido nome_completo <- nome + " " + apelido nome_completo <- nome + " " + apelido escrever "Benvindo ", nome_completo escrever "Benvindo ", nome_completofiminicio Texto nome, apelido, nome_completo Texto nome, apelido, nome_completo escrever "Qual o seu primeiro nome" escrever "Qual o seu primeiro nome" ler nome ler nome escrever "Qual o seu apelido" escrever "Qual o seu apelido" ler apelido ler apelido nome_completo <- nome + " " + apelido nome_completo <- nome + " " + apelido escrever "Benvindo ", nome_completo escrever "Benvindo ", nome_completofim

50 Introdução à programaçãoComputadores e programação I © 2003 Exercício Construa um programa que calcule a área e o perímetro de um círculo

51 Introdução à programaçãoComputadores e programação I © 2003 Exercício Construa um programa que calcule a área e o volume de um paralelepípedo

52 Introdução à programaçãoComputadores e programação I © 2003 Exercício Construa um programa que calcule a distância de um ponto à origem num plano 2D

53 Introdução à programaçãoComputadores e programação I © 2003 Exercí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:00 Entrada 13:00:10 Saída 4:30:10 Tempo de trabalho


Carregar ppt "© 2003 Introdução à programaçãoComputadores e programação I Manipulação de informação Algoritmos computacionais."

Apresentações semelhantes


Anúncios Google