introdução a informática software eduardo figueiredo 12 de março de 2010 gem03: algoritmos e...

55
Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Upload: internet

Post on 18-Apr-2015

105 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Introdução a InformáticaSoftware

Eduardo Figueiredo

12 de Março de 2010

GEM03: Algoritmos e Programação de Computadores Aula 03

Page 2: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Monitor CRT vs. LCD

Page 3: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Monitores CRT

Page 4: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Monitores LCD

Page 5: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

O Problema da Radiação

Monitores CRT emitem radiação

Usuários mais preocupados com a saúde usam filtros anti-radiação

Problemas causados a saúde humana ainda não estão comprovados

Page 6: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Filtros Anti-Radiação em LCD

Também existem filtros para monitores LCD

Page 7: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Sistema Computacional

Pessoas

Page 8: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Sistema Computacional

Pessoas

Page 9: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Sistema Computacional: Software

Componente lógico de um sistema computacional Ponte entre os usuários e a máquina Séries de instruções Indicam passo a passo o que o computador deve

fazer Importância

Realizam tarefas rotineiras e/ou periódicas Aumentam a produtividade Reduzem os custos de uma organização

Page 10: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

O que é software?

Programa de computador + Documentação

Classificação fundamental Produtos genéricos

(ex. Microsoft Office) Produtos encomendados

(ex. Locadora do Zé)

Page 11: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Crise do Software (1968)

Custos de hardware caindo Custos do software subindo

Avanços em hardware Permitem desenvolvimento de sistemas

cada vez mais complexos Resultado (software)

Custos altos, projetos atrasados, sistemas não confiáveis, desempenho insatisfatório, etc...

Page 12: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Software está em todo lugar

Page 13: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Sistemas Críticos

Equipamentos médicos Extremamente críticos Lidam com vidas

Caixas eletrônicos Prejuízos financeiros

Page 14: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Confiabilidade de Software

Exemplo: Vôo Air France Rio - Paris1. Dados conflitantes (falha nos sensores)

2. Sistema assume o controle (piloto automático)

3. Piloto tenta reiniciar o sistema (boot)

4. Em 4 minutos o avião mergulha no oceano

The Last Four Minutes of Air France Flight 447. http://www.spiegel.de/international/world/0,1518,679980,00.html

Page 15: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Preço e Desempenho

Celular Pouco espaço na memória Grande variação em

características de aparelhos

Page 16: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Alguns Tipos de Software

Page 17: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Classificação de SoftwareQuanto a Função

Infra-estrutura Básica do Sistema Sistema Operacional Utilitários de controle (BIOS, firmwares, drivers...)

Aplicativos Software Comercial Software Científico ou de Engenharia Software de Tempo Real Software de Inteligência Artificial, etc.

Page 18: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Sistema Operacional

Software Básico de um computador

Não existiam nos computadores antigos Exemplo: computadores construídos com

válvulas e painéis Os programadores deviam considerar as

características do hardware

Atualmente, estão presentes em todos os computadores pessoais E também em muitos computadores

pertencentes a outras categorias

Page 19: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Sistema Operacional

Cria um ambiente no qual os usuários podem construir e executar programas

Executam programas internos de controle do computador de forma transparente Sem que o usuário saiba ou precise se

preocupar em saber

Exemplos de Sistemas Operacionais Windows, Linux, Solaris, Mac OS

Page 20: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Tarefas do Sistema Operacional

Gerenciamento da memória do computador

Administração dos dados Acionamento dos dispositivos de

entrada e saída Teclado, mouse, disquetes, CDs, DVDs,

etc. Execução de programas utilitários ou

construídos pelo usuário

Page 21: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Aplicações Específicas

Negócios e Comércio Comércio eletrônico, bolsa de valores,

planejamento de gastos, etc.

Medicina Análise de imagens médicas como ultra-som Acompanhamento de atletas e pacientes Detecção de anomalias genéticas

Page 22: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Aplicações Específicas

Exército Simula estratégias de ataque/defesa Treinamento de soldados Calcula trajetórias de projéteis

E muito mais... Usinas nucleares e hidrelétricas Portos e aeroportos Previsões meteorológicas Atividades geológicas

Page 23: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Desenvolvimento de Software

Page 24: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Fases do Desenvolvimento

Modelo Cascata Define atividades seqüenciais Outras abordagens são

baseadas nesta idéia

Especificação de Requisitos

ProjetoImplementação

Testes

Manutenção

Page 25: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Fases do Desenvolvimento

Modelo Cascata Define atividades seqüenciais Outras abordagens são

baseadas nesta idéia

Especificação de Requisitos

ProjetoImplementação

Testes

Manutenção

Page 26: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Especificação de Requisitos

Um sistema de programação deve satisfazer as necessidades de seus usuários Tais necessidades são expressas na forma de

requisitos Requisito = ação que deve ser executada

pelo sistema Ex: registrar as notas dos alunos, calcular a

média final, etc.

Page 27: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Fases do Desenvolvimento

Modelo Cascata Define atividades seqüenciais Outras abordagens são

baseadas nesta idéia

Especificação de Requisitos

ProjetoImplementação

Testes

Manutenção

Page 28: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Da Análise ao Projeto

A partir do documento de análise de requisitos, projeta-se o sistema

PROBLEMAPROBLEMA

EncontrarEncontrarSoluçãoSolução

Programa dePrograma deComputadorComputador

1ª Fase: Resolução do Problema

2ª Fase: Implementação (codificação)

Page 29: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Projeto do Sistema

Dividido em duas etapas Projeto Preliminar define a estrutura

modular do software, as interfaces e as estruturas de dados utilizadas Saída: Diagramas

Projeto Detalhado descreve detalhadamente cada módulo definido no projeto preliminar Saída: algoritmos

Page 30: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Projeto de uma Casa

Page 31: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Projeto Preliminar de Software

Page 32: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Fases do Desenvolvimento

Modelo Cascata Define atividades seqüenciais Outras abordagens são

baseadas nesta idéia

Especificação de Requisitos

ProjetoImplementação

Testes

Manutenção

Page 33: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Implementação do Sistema

A implementação segue as definições do projeto preliminar

Transcreve as instruções do algoritmo para uma linguagem de programação Exemplo: Linguagem C

Page 34: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Fases do Desenvolvimento

Modelo Cascata Define atividades seqüenciais Outras abordagens são

baseadas nesta idéia

Especificação de Requisitos

ProjetoImplementação

Testes

Manutenção

Page 35: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Teste e Validação

Tem por objetivo garantir que o sistema satisfaça os requisitos

Consiste da realização de alguns tipos de testes para encontrar erros

A inexistência de erros não representa a adequação operacional do sistema Deve ser feita a validação com o cliente

Page 36: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Linguagem CUm Pouco de História

Page 37: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Evolução das Linguagens

Linguagens de Máquina +1300042774

(traduzido depois para 0 e 1) Linguagens Assembly

load basepay / add overpay / store grosspay Linguagens de Alto Nível

grosspay = basepay + overpay

Page 38: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Linguagens de Máquina

Definem instruções a serem executadas pelo computador São especificas para o hardware

Código de máquina: uma seqüência de números significa uma instrução a ser executada “+1300042774” significa “load basepay”

Atualmente, programar em linguagens de máquina é pouco comum São usadas linguagens de alto nível como C

Page 39: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Linguagens de Alto Nível

Programadores geralmente utilizam linguagens de alto nível Mais próximo da compreensão humana

Programas de alto nível são traduzidos para a linguagem da máquina por compiladores Arquivo .EXE é gerado

O programa compilado pode então ser executado pelo computador

Page 40: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

De onde veio C?

BCLP (1967) por Martin Richards

Linguagem C (1972) por Dennis Ritchie

C++ (1980) por Bjarne Stroustrup Bell Labs

Page 41: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Sistema de NumeraçãoConceitos Básicos

Page 42: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

O Sistemas de Numeração

Objetivos Prover símbolos e convenções para

representar quantidades Registrar processar informação

quantitativa

Tradicionalmente feita com números

Page 43: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Método Tradicional

Chamado numeração posicional

Inventado pelos chineses

O valor representado pelo algarismo no número depende da posição em que ele aparece na representação

Page 44: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Sistema Decimal (base 10)

A posição à esquerda altera seu valor de uma potência de 10

Exemplo 125 1 representa 100 (102) 2 representa 20 (2x101) 5 representa 5 (5x100) 125 = 1x102  + 2x101 + 5x100

Page 45: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Base em Sistemas de Numeração

Define a quantidade de algarismos disponível na representação

A base 10 é usualmente empregada Mas, não é a única Outros exemplos: pedimos uma dúzia de ovos (12),

marcamos o tempo em minutos e segundos (60), etc.

Computadores utilizam a base 2 Sistema binário

Page 46: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Exemplos de Bases

Algumas bases importantes na computação Base 2 0 e 1 Base 8 0 a 7 Base 10 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 Base 16 0 a 9, A, B, C, D, E e F

Em geral, uma base b terá b algarismos Variando entre 0 e (b - 1)

A representação 125,38 (base 10) 1x102  + 2x101 + 5x100 + 3x10-1 + 8x10-2

Page 47: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Identificando a Base

Em qual base está o número 9B3? Resposta óbvia, pois o algarismo B só existe na

base 16 (hexadecimal)

Em qual base está o número 11? Pode estar em qualquer base conhecida Portanto, a base deve ser especificada

Para diferenciar as bases, utiliza-se um número situado à direita inferior Exemplo: 112

Page 48: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Representação de um Número

Representamos um número N (de n casas), numa dada base b, como segue Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-

2.b-2 + .... + a-n.b-n

Parte inteira an.bn + .... + a2.b2 + a1.b1 + a0.b0

Parte fracionária a-1.b-1 + a-2.b-2 + .... + a-n.b-n

Page 49: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Quantidade de Algarismos

O maior número que pode ser representado na base 10 usando 3 algarismos é 999 103 - 1 = 999

O maior número que pode ser representado na base 2 usando 8 algarismos é 255 28 - 1 = 255

Generalizando, o maior número inteiro N que pode ser representado em uma dada base b com n algarismos é N = bn – 1

Page 50: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Resumo:Regras do Sistemas de Numeração

A base B indica à quantidade de algarismos distintos que podem ser utilizados

O algarismo mais a direita tem peso um O algarismo imediatamente a sua esquerda tem

peso B O seguinte B2, depois B3 ...

O valor de um número é determinado pela soma dos valores de cada algarismo multiplicado com seu peso

Page 51: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Representação Binária

Page 52: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Linguagem do Computador

Os computadores utilizam o sistema binário Todas as informações armazenadas ou

processadas no computador são representadas por 0 e 1

Dígito binário são chamados bit Do inglês, binary digit

Um bit pode assumir os valores 0 ou 1 Analogia à tensões elétricas / sinais

eletrônicos

Page 53: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Sistema do Computador

Um Byte é um conjunto de oito bits

Dados são armazenados na base binária, não na decimal 0 = 00000000 1 = 00000001 2 = 00000010 255 = 11111111

Na base 2, o número "10" vale dois 102 = 210

Page 54: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Representação Binária

Page 55: Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03

Referências

Joseana Macêdo Fechine, Introdução à Computação, Departamento de Sistemas e Computação, Universidade Federal de Campina Grande

INFOWESTER, Mouses: funcionamento, tipos e principais características, disponível em http://www.infowester.com/mouse.php

Rui Mano, Organização de Computadoreshttp://wwwusers.rdc.puc-rio.br/rmano/index.html