Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Manipulação de informação
Algoritmos computacionais
2
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
Algoritmos não computacionais
4
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 Problema Resolvido
5
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 Atravessar o rio (1,1,1) / (2,2,0) (1,0,0) / (3,2,1) As instruções manipulam os dados
6
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
Algoritmos computacionais
Programação do computador SIMPLEX
8
Computador Simplex
9
Computador Simplificado
Memória Endereço Local físico da memória Conteúdo Intruções Mov Cop Dados 10 20 Vazias Processador sequencial Executa uma instrução Passa para a instrução seguinte
10
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
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
12
Exemplo de um programa Calcular a área do rectangulo Algoritmo
Ler lado 1 Ler lado 2 Area = lado1 * lado 2 Imprimir area Lado 1 Lado 2 Assemblex Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM
13
Execução de um programa
10 20 200 10 200 20 Programa Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM
14
Nova Execução de um programa
5 10 50 5 50 10 Programa Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM
15
Exercício 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 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
16
Exercício Assemblex Ler D0 Ler D1 ATR D2 0.4 ATR D3 0.6 MUL D0 D2 E0
SOM E1 E2 E3 IMP E3 FIM
17
Exercício 10 20 16
18
Transformar instruções, dados e endereços em números
Bases de Numeração Transformar instruções, dados e endereços em números
19
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 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
Representação digital
Acesa Dois Bits Apagada Bit 2 estados Acesa Apagada 4 estados
21
Representação digital da informação (byte)
28= 256 Estados diferentes 1 byte = 8 bits Unidade fundamental de informação n bites representam 2n estados
22
Conversão de decimal para binário
8 bits = 8 divisões
23
Conversão de binário para decimal
1 BYTE 0 * *26 + 0*25 + 1*24 + 1*23 + 1*22 + 1* = 94 2 BYTES Conversor de Bases
24
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
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
Representação binária de números negativos
27
Representação de números reais
Parte decimal,parte fraccionária 120,35 Parte decimal Número inteiro Parte fraccionária Notação científica 1,2035 E 2 IEEE Standard 754 Floating Point Numbers Mantissa Número inteiro (1) Representação fraccionária do número inteiro (0,2035) Expoente Número inteiro (2) Sinal (0)
28
Representação de números reais
29
Conversão de caracteres
Tabela ASCII NULL – 0 Espaço – 32 Zero – 48 A – 65 a - 97 Á – 143 á - 160
30
Conversão de Instruções
Endereços de memória
31
Conversão de Instruções
Endereços de memória Instruções
32
Programa em linguagem máquina
Assembler Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM Linguagem máquina 0110
33
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
Linguagens de alto nível
Linguagem estruturada
35
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 Linguagem de alto nível Ler lado1 Ler lado2 area <- lado1 * lado2 Escrever area Assembler Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM Linguagem máquina 0110
36
Tipos de dados Variáveis Inteiro Real Caracter Texto Lógico Um nome
Um Tipo Um só valor Linguagem de alto nível Ler lado1 Assembler Ler C0 máquina
37
Tipos de dados
38
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 Variavel real lado1 , lado2 Caracter sexo Logico repetente, trabalhador
39
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
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 NomePrincipalCliente Nome_Principal_Cliente
41
Ler e escrever Instrução ler Instrução escrever Utilização
Ler nome_da_variável Instrução escrever 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
Exemplo de Ler e escrever
Programa Ola Mundo inicio escrever "ola mundo" fim Programa cordial inicio Texto nome escrever " Qual o seu nome" ler nome escrever "Benvindo " , nome fim
43
Atribuição de Valores – operador <-
variavel <- expressão Exemplos Soma <- 10 saldo <- soma + 1 area <- lado1 * lado2 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
44
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 3 + - Os parêntesis alteram a prioridade
45
Expressões matemáticas/Computacionais
Distancia entre dois pontos Matemática Computacional D <- ( (x1 – x2)^2 + (y1 – y2) ^2 ) ^0.5 (x2,y2) (x1,y1)
46
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
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
Área do rectangulo Programa Área do rectângulo inicio
real lado1, lado2, area escrever "introduza o lado 1" ler lado1 escrever "Introduza o lado 2" ler lado2 area <- lado1 * lado2 escrever " A área é " , area fim
49
Exemplo de Concatenação
Programa cordial inicio Texto nome, apelido, nome_completo escrever "Qual o seu primeiro nome" ler nome escrever "Qual o seu apelido" ler apelido nome_completo <- nome + " " + apelido escrever "Benvindo " , nome_completo fim
50
Exercício Construa um programa que calcule a área e o perímetro de um círculo
51
Exercício Construa um programa que calcule a área e o volume de um paralelepípedo
52
Exercício Construa um programa que calcule a distância de um ponto à origem num plano 2D
53
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 4:30:10 Tempo de trabalho 13:00:10 Saída
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.