Introdução à
Informática
Conceitos
Conceito Computador
Segundo Farrer
Ferramenta capaz de tomar certas informações,
processá-las e obter resultado
Tipos analógicos de computador: termômetro,
Computadores Digitais
Capazes de fazer aritmética sobre dígitos
Trabalham com informações lógicas e não com grandezas físicas
Sistemas Operacionais
Definição: Conjunto de programas usado para
prover acesso e abstração sobre o hardware
Usuário deve ser capaz de fazer tarefas
independente do hardware
É função do SO gerenciar, esconder e proteger
o hardware
O SO deve prover funcionalidades para outras
Exemplos
Window –
Inicialmente criado com interface gráfica do ms-dos O sistema mais conhecido do mundo
Principais Versões: 98, 2000, xp e 7 Fiascos – 97, Milenium, vista
Linux
Baseado no sistema unix
Diversas distribuições gratuitas e pagas
Principais Distribuições: Ubuntu, Debian, Fedora, RedHat Usado para computação de alto desempenho
Outros Exemplos
Solaris - Desenvolvido para aplicações de
grande porte com recursos múltiplos
ISA – SO usado nos Celulares Nokia
Mac-OS – Desenvolvido para arquiteturas MAC
(hoje em desuso). Voltado para programação e tratamento de imagens
Divisão
Kernel – programas ligados principalmente ao hardware
Shell – Programas ligados aos serviços de baixo nível e suporte para outras
aplicações
Aplicação – Programas de alto nível – browser, editores de texto, etc
Função de gerenciamento
Gerenciamento de Processador(es)
Gerenciamento de Processadores
Programas são divididos em tarefas (instruções)
Processadores possuem um limite
máximo de instruções que podem ser executadas por unidade de tempo
Gerenciamento de Memória
2 tipos básicos – primária e secundária
Primária – conhecida como RAM
Gerenciamento de Memória
Memória é controlada pelo sistema operacional Todos os aplicativos utilizam a memória
principal
Alguns usam memória secundária voluntária ou
Gerenciamento de Memória
O sistema operacional consome memória Ao perceber que a memória principal não é
suficiente para acomodar todos os programas em execução o sistema operacional começa a utilizar memória virtual
Parte dos blocos de memória armazenados na
Analogia
Estoque de documentos em depósitos (fichas médicas) Pacientes mais recentes - fichas nas clínicas
Pacientes com longa ausência - fichas nos depósitos Arquivos nas clínicas - tempo de acesso menor
Gerenciamento de Memória
Escolha dos blocos a serem transferidos é probabilística
Este comportamento pode afetar
programas que fazem uso de grande quantidade de memória
Arquitetura de Von Neumann
Unidade de saída Unidade de entrada Memória Unidade Central de ProcessamentoFunções
Entrada – captar informações para o processo de
computação
Saída – exibir o resultado da computação de maneira
inteligível
UCP (CPU) – realizar as operações necessárias à
computação
Memória – Armazenar dados intermediários para a
FAQ
É possível ter mais de um dispositivo de entrada/saída ao mesmo tempo?
Mecanismos de entrada podem ser usados como mecanismos de saída?
Como realizar computação
Computação é tipicamente feita através de programas de computador
Capazes de analisar as informações Fazer transformações necessárias Realizar a computação
Programas
Mas o que é um programa?
Para entender o conceito de programa é necessário entender o conceito de
Algoritmo - Definição
Descrição de um conjunto de comandos que, obedecidos, resultam em um
Etimologia
A palavra algoritmo tem origem no sobrenome, Al-Khwarizmi, de um matemático persa do século IX Do Árabe Al-goreten - raiz
Definição
Apesar de ser um conceito muito antigo (há relatos de algoritmos na Grécia
antiga), o conceito só foi formalizado na história contemporânea
Funcionamento
Entrada
Algoritmo
Exemplo
Fazer uma Mousse de Maracujá
Entrada:
1 lata de leite condensado
1 lata de creme de leite sem soro
1 lata (a mesma medida) de suco de maracujá concentrado
Exemplo
Algoritmo:
Bata no liquidificador o leite condensado, o creme de leite sem soro e o suco de maracujá
A parte prepare a gelatina em pó, conforme instruções do envelope
Quando amornar, coloque para bater juntamente com os demais ingredientes que estão no liquidificador
Unte uma forma de pudim com margarina e antes de colocar o creme passe água pela forma, como se fosse enxaguá-la
Exemplo
Exemplo
A receita pode ser chamada de algoritmo ambíguo
Quando amornar, coloque para bater juntamente com os demais ingredientes que estão no
liquidificador
Coloque no congelador até estar no ponto para tirar da forma
Exemplo 2
Pedir cerveja por telefone
Entrada:
Lista com os fornecedores de cerveja que entregam no endereço desejado
Exemplo 2
Algoritmo:
Ligue para o primeiro número na lista que não esteja
marcado
Pergunte e anote o preço da caixa de cerveja
Marque o fornecedor para o qual você acabou de ligar Repita os três passos anteriores até que todos os
fornecedores estejam marcados
Localize o fornecedor que possua o menor preço, ligue
Exemplo 2
Representações para algoritmos
Textual
Fluxograma
Representação Textual
O algoritmo para pedir uma caixa de cerveja por telefone possui como entrada uma lista de todos os fornecedores que entregam caixas de cerveja no endereço desejado e procede da seguinte maneira: Primeiramente, deve-se ligar para cada um dos fornecedores presentes na lista e registrar os respectivos preços. Em seguida, após se ter todos os preços, deve-se ligar para o fornecedor que possui o menor preço e fazer a encomenda
Representação por Fluxograma
Entrada
Processo
Decisão
Representação por Fluxograma
Lista
Perguntar e registrar o preço
Todos os Fornecedores Marcados? Fim Ligar Marcar fornecedor Sim Não Encomendar
Procedimento encomendarCerveja(lista de fornecedores) Para cada fornecedor “f” na lista faça
ligar(f) perguntarAnotarPreço(f) Fim Para melhorFornecedor = localizarMenorPreço(lista) ligar(melhorFornecedor) encomendar(melhorFornecedor) Fim Procedimento
Programa de computador
Segundo Wirth
Formulações concretas de algoritmos abstratos,
baseados em representações e estruturas específicas de dados
Um algoritmo escrito da forma que um
O que um computador entende?
01011101001000100100100010010001 Linguagem de máquina não são inteligíveis
Necessidade de uma linguagem de mais alto nível
O que um computador entende?
Expressar ideias de maneira mais natural
Não ambígua
O que um computador entende
Fluxogramas não são facilmente processáveis por computadores E os pseudocódigos?
São mais naturais para os programadores Não possuem ambiguidades
Pseudocódigos x linguagem de
programação
Pseudocódigo são representação de algoritmos
Podem ser convertidos para linguagens de programação
Compilação
Transformação de um programa fonte (escrito em linguagem de programação) para um programa objeto (código binário)
Código
fonte compilador
Código objeto
Linguagem de Programação
Uma linguagem de programação é um
método padronizado para expressar instruções para um computador
É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador
Regras de sintaxe
Verificação das regras gramaticais da linguagem
Exemplo: verifica se uma operação de soma possui os 2 termos
Regras de semântica
Verifica a corretude e das operações
Exemplo: verifica se uma operação de
soma possui os termos corretos (número + número, texto + texto)
Revisão
Conceitos: computador, algoritmo, programa Estrutura de um computador digital
Exemplos de algoritmos
Representação de algoritmos
Modo mais adequado de dar instruções ao
computador