Manipulação de informação

Slides:



Advertisements
Apresentações semelhantes
Organização de Computadores I
Advertisements

INTRODUÇÃO A INFORMÁTICA
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
A Arquitetura: conjunto de instruções
Introdução aos Computadores e à Programação
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 03: Computador.
Assembly Language for Intel-Based Computers, 5th Edition
Operadores Aritméticos
Algoritmos e Programação Linguagens de Programação Teoria Aula 5 (05/05) Universidade Federal do Vale do São.
ICC 2. Sistema de Computação
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
Maria Aparecida Castro Livi
Introdução à Informática
Sistemas Digitais Microprocessados
Esquema básico do hardware
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Registradores de deslocamento (Shift Register)
Registradores de deslocamento (Shift Register)
Organização da Memória Principal
Implementação da CPU Análise de um computador simplificado Implementação da Unidade de Controle para o computador simplificado.
Princípios de funcionamento
Unidades de Armazenamento
1 4.6 – Variáveis - introdução Nesta altura (ao nível da programação) interessa saber que um computador tem: Nesta altura (ao nível da programação) interessa.
As aulas não cobrem toda a matéria! Há que ler as folhas teóricas!
Tecnologias Especificas Informática
PROGRAMAÇÃO I UNIDADE 1.
Funcionamento básico de um computador
Representação de Instruções
Operações Aritméticas em Binário
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Qualificadores.
© 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4.
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
Linguagens de programação
Introdução a Linguagem de Programação C
Representação Digital da Informação
Algoritmos e Programação de Computadores
Algoritmos e Programação de Computadores
Fábio de Oliveira Borges
Arquitetura de computadores
História dos computadores e da programação
Computador Simplificado Conceitos p.ex. FLUXO de execução
Numeração.
Aula de apoio aos feras: Arquitetura de Computadores e
Tópicos em Arquitetura de Computadores João Angelo Martini Universidade Estadual de Maringá Departamento de Informática Mestrado em Ciência.
Programação em C++ Compiladores
Representação de dados
Organização e Arquitetura de Computadores
Processamento de dados na UCP e memória UCP
Linguagem e Ambiente Scratch
Sistemas Numéricos SISTEMA DECIMAL
Prof. Remy Eskinazi - Microcontroladores
Sistemas de Numeração.
Organização de Computadores
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Representação de Dados
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
REPRESENTAÇÃO BINÁRIA E CONVERSÃO
Arquitetura básica de um Computador
Programação de Computadores - 1
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 2 Variáveis e Atribuições.
Algoritmos e Programação MC102
ORGANIZAÇÃO DE COMPUTADORES
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
Algoritmo e Estrutura de Dados I Aula 2 – Computador Simplificado Márcia Marra
Linguagem de Programação I PARTE i
Introdução à Computação
Algoritmo e Estrutura de Dados I Introdução ao conceito de algoritmo Márcia Marra
Organização e Arquitetura de Computadores A.L.Lapolli – Organização e Arquitetura de Computadores Objetivo: Objetivo: Conhecer os sistemas.
|PAULANINA| Byte Bits. Bits/Bytes Os computadores só “percebem ” o que lhes dizemos através de impulsos elétricos, que PODEM SER representados por: 1.
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

Manipulação de informação Algoritmos computacionais

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

Algoritmos não computacionais

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

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

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

Algoritmos computacionais Programação do computador SIMPLEX

Computador Simplex

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

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

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

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

Execução de um programa 10 20 200 10 200 20 Programa Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM

Nova Execução de um programa 5 10 50 5 50 10 Programa Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM

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

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

Exercício 10 20 16

Transformar instruções, dados e endereços em números Bases de Numeração Transformar instruções, dados e endereços em números

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

Representação digital Acesa Dois Bits Apagada Bit 2 estados Acesa Apagada 4 estados

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

Conversão de decimal para binário 8 bits = 8 divisões

Conversão de binário para decimal 1 BYTE 0 *27 + 1*26 + 0*25 + 1*24 + 1*23 + 1*22 + 1*21 + 0 = 94 2 BYTES Conversor de Bases

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

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

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

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)

Representação de números reais

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

Conversão de Instruções Endereços de memória

Conversão de Instruções Endereços de memória Instruções

Programa em linguagem máquina Assembler Ler C0 Ler C1 MUL C0 C1 C2 IMP C2 FIM Linguagem máquina 0000 0100 0000 0101 0110 0100 0101 0110 0011 0110 0110

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

Linguagens de alto nível Linguagem estruturada

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 0000 0100 0000 0101 0110 0100 0101 0110 0011 0110 0110

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 0000 0101

Tipos de dados

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

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

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

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

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

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

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

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)

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)

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

Á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

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

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

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

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

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