• Nenhum resultado encontrado

Informática I. Hélio Marques Sobrinho

N/A
N/A
Protected

Academic year: 2021

Share "Informática I. Hélio Marques Sobrinho"

Copied!
29
0
0

Texto

(1)

Informática I

Hélio Marques Sobrinho

(2)

Informática I 2

Informática I - Programa

1. Introdução e Histórico

História da computação

Funcionamento básico de um computador digital

Linguagens de programação

Sistemas de numeração

Representação de dados no computador

2. Noções de Lógica e Álgebra de Boole

Noções de lógica matemática

Princípio da dualidade

Álgebra de Boole

3. Algoritmos e Programação

Representação e Tipos de dados

Estruturas de controle básicas

Noções de abstração de dados

Noções de abstração de controle

Desenvolvimento de algoriitmos

(3)

Informática I 3

Informática – definição

Ciência da informação

ciência da computação

teoria da informação

processo de cálculo

análise numérica

métodos teóricos de representação do conhecimento

modedlangem dos problemas

Origem da palavra

1957 – Karl Steinbuch, Alemanha

“Informatik: Automatische informationsverarbeitung”

Informática: Processamento automático da informação

(4)

Informática I 4

Histórico da Computação

Necessidade de sistema de numeração

Associação de posses a pedras

Aumento das posses

=> símbolos para representar certa quantidade

Escrita cuneiforme

Babilônios e Assírios há mais de 5000 anos

Stonehenge, UK, 2600 a 1799AC

Primeiro computador ?

Ábacos : 300 AC

(5)

Informática I 5

John Napier (logaritmos)

1617 - Máquina de multiplicar através de cilindros

Blaise Pascal

1642 – Máquina de somar e subtrair usando engrenagens

Willhelm Leibniz

1673 – Projeto de máquina para multiplicar usando somas sucessivas

Construida somente em 1694

Basile Bouchon

1728 – Tear mecânico com folha giratória de papel perfurado

Joseph Jacquard

(6)

Informática I 6

Charles Babbage

1812 – Máquina de cálculos de tabelas matemáticas 1859 – Máquina diferencial

W. S. Burroughs

1890 – Máquina com teclado para somar e imprimir

Herman Holerith

1890 – Máquina tabuladora com cartões de papel perfurado Censo dos EUA

(7)

Informática I 7

Howard Aiken

1937 – Mark I: Cálculos integrais e diferenciais

Alan Turing

1943 – Colossus 1800 válvulas

(8)

Informática I 8

John von Neumann

1946 – ENIAC

Electronic Numeric Integrator and Calculator 18800 válvulas

30 ton

3 salas totalizando 72m2

1948 – EDVAC

Electronic Discrete Variable Automatic Computer

IBM – International Business Machines

1960 – IBM System/360

Marco histórico dos mainframes Padrões:

Byte de 8 bits

CPU com micro código

DEC – Digital Equipment Corporation

1970 – PDP – Programmed Data Processor Minicomputador

Influenciou a criação dos primeiros microcomputadores Origem do UNIX - PDP-7

(9)

Informática I 9 Intel 1972 – Altair – processador 8080 Microcomputadores de 8 bits CP/M-80 1979 – 8086 e 8088 Microcomputadores de 16 bits IBM PC/DOS 1983 – 80286 IBM PC/AT 1985 – 80386 Arquitetura i386 Proteção de memória Paginação e Segmentação

Sistemas multiprogramados e multiusuários Unix em microcomputadors !

1992 – Pentium 1997 – Pentium II 1999 – Pentium III 2000 – Pentium IV 2002 – Xeon 2005 – Dual core 2008– Quad core 2008/20098 – i7 2010 - i5

(10)

Informática I 10

Evolução do software

Computadores mecânicos e eletromecânicos Computadores analógicos

alteração do hardware

Computadores eletrônicos - digitais Computadores programáveis

single job

monitores / batch

sistemas operacionais monousuário/monoprogramáveis sistemas operacionais monousuário/multiprogramáveis sistemas operacionais multiusuários

sistemas multiprocessados sistemas distribuídos clusters e grids Virtualização software simulação hardware emulação

(11)

Informática I 11

Sistemas de Numeração

Motivação:

Associação de posses a pedras Aumento das posses

Números cuneiformes: Babilônia

Notação posicional base 60 3400 BC

Base 10

3200 BC

O zero – número 0 36 BC

(12)

Informática I 12

Notação Posicional

Conceitos

Quantidade : Q

Representação numérica : N em uma base β, usando símbolos para valores de 0 a β-1 Nβ = ... DCBA.abcd...β

Q = ... Dβ3 + Cβ2 +Bβ1 +Aβ0 + aβ -1 +bβ-2 +cβ-3 + dβ-4 + ...

Os símbolos { ..., D, C, B, A, a, b. c, d, ... } representam quantidades de 0 a β–1 Exemplo:

A quantidade “cento e vinte e três” é representada na base 10 por: N10 = 12310 → Q = 1*102 + 2*101 + 1*100 = 123

10 (cento e vinte e três unidades).

Se fizermos os cálculos de Q em outra base, obteremos o número N nesta base. Exemplo: N4 → Q = 1*222 + 2*221 + 3*220 = 1210 + 110 + 3 = 1323

4

(13)

Informática I 13

Simplificações

Conversão de números na base 10 para base β

Seja Q representado por N na base 10.

1. Divida N por β, o quer produz um quociente Q0 e um resto R0 2. Divida o quociente Q0 por β produzindo Q1 e R1

3. Continue o processo de divisão até que o quociente Qi seja 0. Isto é Qi-1 < β.

4. O número na base β será RiRi-1Ri-2...R1R0

Conversão de números da base β para a base βn

Cada dígito do número na base βn será representado por n dígitos na base β

Exemplos:

3548 = 0111011002 4FB916 = 103323214

(14)

Informática I 14

Simplificações

Parte fracionária: f = 0.abcd...

1. Multiplique f por β produzindo X0.yzkw...

2. Peque a parte fracionária 0.yzkw... e multiplique por β produzindo X1.mnop...

3. Repita até que o resultado seja 0 ou o número de dígitos seja satisfatório. O resultado será N β= 0.X0X1X2X3... Exemplo: 0.17510 => Y2 0.175 * 2 = 0.35 0.35 * 2 = 0.7 0.7 * 2 = 1.4 0.4 * 2 = 0.8 0.8 * 2 = 1.6 0.6 * 2 = 1.2 0.2 * 2 = 0.4 0.4 * 2 = 0.8 0.8 * 2 = 1.6 0.6 * 2 = 1.2 ... Repetição “dízima periódica” Y2 = 0.0010110011001100...

(15)

Informática I 15

Representação de dados em um computador digital

Números no mundo real

Naturais ℕ 0 + ε=1 Inteiros ℤ - + ε=1 ℝ - + Reais ε0

Computador digital: N bits

...

N-1 0

(16)

Informática I 16 Números Naturais

N bits : números de 0 a 2N-1

Números inteiros

1. Sinal magnitude

1 bit de sinal e N-1 bits para a magnitude. [ -127 ... -0, +0 ... +127 ] Exemplo com 8 bits : +1010 = 00001010

-1010 = 10001010 2. Complemento de 1

Positivos  N, Negativos  N [ -127 ... -0, +0 ... +127 ] Exemplo com 8 bits : +1010 = 00001010

-1010 = 11110101 3. Complemento de 2

Positivos  N, Negativos  N + 1 [ -128 ... 0 ... +127 ] Exemplo com 8 bits : +1010 = 00001010

(17)

Informática I 17 Números de ponto flutuante

Valor +/- A.bcdef... x 10k

Normalização: +/- 0.xyzkw... x 2E

N-1 0

S ... ...

1 bit e bits m bits

mantissa expoente

sinal

Faixa de valores

definidos pelo expoente e bits

Precisão

definida pela mantissa m bits

N = 1 + e + m

Expoente: excesso de 2e-1 - 1

(18)

Informática I 18

Formatos padrão de representação de ponto flutuante - IEEE

Números de 32 bits

1 bit para o sinal

8 bits para o expoente, excesso de 127 (-126 a +127) 23 bits para a mantissa

Números de 64 bits

1 bit para o sinal

11 bits para o expoente, excesso de 1023 (-1022 a +1023) 52 bits para a mantissa

Números de 80 bits

1 bit para o sinal

15 bits para o expoente, excesso de 16383 (-16382 a +16383) 64 bits para a mantissa

Números de 128 bits

1 bit para o sinal

15 bits para o expoente, excesso de 16383 (-16382 a +16383) 112 bits para a mantissa

 : todos os bits do expoente = 1, todos os bits da mantissa = 0

(19)

Informática I 19

Caracteres

Códigos numéricos para símbolos gráficos

A B C a b c 1 2 3 4 . , $ # ( { @ } _ = | < > / \ ق ش ز җ Ể ╙ ╛ ╜ ☻ ♀ ☼ ♠ ♣ ♥ ♦ ♪ ♫ ₤ ₧

H e l i o M a r q u e s

Alguns códigos de caracteres

ASCII American Standard Code for Information Interchange (ANSI) 7 ou 8 bits

EBCDIC Extended Binary Coded Decimal Interchange Code (IBM) 8 bits

Unicode

UTF Unicode Transformation Format 8 (utf8) ou 16 (utf16) bits

ISO/IEC

ISO-8859-1 ISO Latin-1 8 bits

Strings (cadeias de caracteres)

(20)

Informática I 20

Linguagens humana

Complexa

Ambígua

Linguagens de programação

Especializadas ou de uso geral

Alto nível

Algoritmicas e não algoritmicas

Baixo nível

Instruções, microinstruções

Linguagens de montagem

ISA – Instruction Set Architecture

Linguagem de montagem

Linguagens de hardware

Nível de lógica digital

(21)

Informática I 21

Representação de dados

Mapeamento de objetos

Objetos do mundo real

Entidades abstratas

Objetos do mundo computacional

Entidades numéricas

int

float

char

Mundo computacional

Limitações

Grandeza e Precisão (limitação de número de dígitos)

Problemas de representação (ex. 0.1

10

→ x

2

)

Entidades abstratas

(22)

Informática I 22

Resolução de um problema em um sistema de computação

Processo de desenvolvimento

Problema: Análise → Método de resolução e estruturas de dados → Algoritmo

Codificação: Linguagem de programação → Programa

Execução do programa

Interpretação: Um programa interpreta o fonte na linguagem diretamente

Tradução: O programa é traduzido para outra linguagem que pode ser

compilada ou interpretada

Compilação : O programa é traduzido para padrões binários correspondentes

à linguagem de montagem da família do processador utilizado

Fonte(s) em linguagem de alto nível Fonte(s) em linguagem de montagem

Compilador / Montador Linkeditor

Módulo(s)

(23)

Informática I 23

Elementos de uma linguagem de programação - exemplo “C”

Constantes (números, caracteres e textos)Representação de dados

Números Inteiros e de ponto flutuante

x ∈ ℕ x ∈ ℤ x ∈ ℝ x ∈ ℂConjunto de caracteres

ASCII, EBCDIC, UTF-8, ISO-8859-1, …Variáveis

Identificadores

Registradores e posições de memóriaDeclareções

Mapeamento em tipos definidos pela linguagemComandos

Sequenciais

Atribuições, expressões, chamadas de funções/procedimentosInterativos - entrada e saída (read, write, scanf, printf, …)Condicionais (if/else)

Seleção múltiplas (switch)Iterativos (while, for, do, ...)

ASCII:

'A' = 41h

EBCDIC:

(24)

Informática I 24

A linguagem C

Tipos básicos

int, unsigned int, long int, unsigned long int, float, double, char, ...

Macros

#define identificador texto

#define identificador( argumentos ) texto

Inclusão de arquivos

#include “arquivo” #include <arquivo>

Declarações

tipo lista de variáveis ;

vetores e matrizes

identificador [ tamanho ]

identificador [ tamanho ] [ tamanho ] ...

Estruturas heterogêneas

struct { lista de declarações }

Definição de tipo

(25)

Informática I 25

Expressões lógicas

Operadores lógicos && ||

Operadores bit a bit

& | ^ Operadores relacionais == != < > <= >= Expressões aritméticas Operadores aritméticos * / + - % Atribuições

variável operador expressão

(26)
(27)

Informática I 27

Chamada de funções e procedimentos

Call

Utilização comum

Int

Utilizado em DOS/Windows (chamadas ao sistema)

Trap

Tratamento de erros/eventos em alguns sistemas

Passagem de parâmetros

Tipo

Valor

(exemplo: C/C++)

Referência

(exemplo: C/C++ usando &v)

Nome

(exemplo: Algol 60)

Valor de retorno

(exemplo: Fortran)

Forma

Blocos em posições absolutas

(alguns mainframes - SVC)

Registradores

(compiladores c/ alta otimização)

(28)

Informática I 28

Chamada de procedimentos e passagem de parâmetros

Função em linguagem C

int f(int a, int b, int c)

{

int m;

/* código da função */

m = a + b * c;

return(m);

} /* Funcao f */

Acesso aos argumentos

mov AX, [BP + 4] ; b

mul AX, [BP + 6] ; c

add AX, [BP + 2] ; a

; --- libera variáveis locais

mov sp, bp

ret

0000,,,0

FFFF...F

(29)

Informática I 29

Chamada de procedimentos e passagem de parâmetros

Pilha e retorno

push z

push y

push x

call f

mov r, ax

Chamada da função

void main()

{

int r;

int x, y, z;

/* ... */

r = f(x, y, z);

/* ... */

} /* main */

Referências

Documentos relacionados

As micotoxinas são compostos químicos tóxicos provenientes do metabolismo secundário de fungos filamentosos e conhecidas pelos danos causados à saúde humana e

onde Qe são as forças de origem externa ao sistema e Qc são as forças de reação. Estas equações não podem ser utilizadas diretamente, pois as forças de

• Árvores são ideais para armazenar hierarquias, além de serem mais rápidas e eficientes do que as estruturas de dados lineares... • É formada por um “conjunto de

– Os elementos devem estar ordenados – Realizar a busca pelo meio do vetor.

• Estas árvore podem assumir diferentes formas quando criadas ou modificadas. – A ordem de inserção ou remoção influem no formato

O participante adjudicado que deixar de cumprir qualquer das exigências deste Edital, perderá em favor da Superintendência Regional da Polícia Rodoviária Federal/BA o correspondente

Apesar de o mercado acionário brasileiro ter se tornado mais importante para a economia brasileira, sobretudo entre o período de 2002 para 2005 (Tabela 3), sua repre- sentatividade

Para análise da susceptibilidade à erosão dos solos que compunham as paredes da voçoroca, foram realizados ensaios de Pinhole (Furo de Agulha), Desagregação e Dispersão