Você está na página 1de 11

Hardware - Conjunto de componentes físicos.

Software - Conjunto de instruções (programas) que fazem funcionar o hardware.

Processador (CPU) que manipula os dados e utiliza as instruções, ambos armazenados na


memória principal.

Memória principal, como a RAM e o ROM, que armazena os dados e as instruções de um


programa;

Entradas e as saídas que controlam e executam as operações de leitura e de escrita da


informação através dos periféricos que englobam os dispositivos: auxiliares de armazenamento
de software e dados como, por exemplo, as unidades de disco; de saída como, por exemplo, a
impressora e o monitor; de entrada como, por exemplo, o rato e o teclado.

Sistema operativo - Serve de interface entre a máquina e os programas de aplicação.

1 Geração – válvulas
2 Geracao – transistor

Vantagens em relação às válvulas

➢ Menor energia consumida


• Menor aquecimento
➢ Maior velocidade de processamento

3 Geração – circuitos integrados

➢ Componentes miniaturizados
➢ Transístores
➢ Resistores
• Diodos
➢ Chips
• Conjunto de componentes
➢ Circuitos integrados
• Conjunto de chips
➢ Sistema Operativo - MS-DOS
➢ Gráficos EGA – 16 cores

4 Geração – VLSI

Integração de circuitos em larga escala

➢ Slots ISA de 16 bits


➢ Slots PCI
➢ Placas VGA e SVGA

5 Geração – ULSI

➢ Integração em muito larga escala


➢ Processamento paralelo
➢ Slots AGP
➢ USB
➢ SATA
Quanto ao tamanho e capacidade

➢ Grande Porte
• Supercomputador
• Mainframes
➢ Médio Porte
• Workstations
• Minicomputadores
➢ Pequeno Porte
• Microcomputadores
• Ultra- Microcomputadores

Quanto ao número de utilizadores e de tarefas

➢ Mono utilizador
• Monotarefa ○ Ex. PC com MS- DOS
• Multitarefas ○ Ex. PC com Windows
➢ Multi-Utilizador
• Multi-posto
o Servidor UNIX
o Terminais
• Redes de
Computadores
o Internet
1º Geração - Linguagem, máquinas

Conjunto de dígitos binários do “instruction set” do processador

➢ Os programas correm apenas no computador para o qual


foram projetados

2ºgeração - Assembler Assembly para o IBM-PC

➢ Mnemónicas do “instruction set” do processador


• Assembler - Programas que traduz o código
assembly para linguagem de máquina
➢ Os Programas funcionam apenas num tipo processador
• Mov -> 00001100
• int -> 10001101
➢ Desenvolvimento de programas muito difícil e demorado

Desvantagens
Assembly 680x0 on an Atari
computer
➢ Pequeno número de instruções
• Programas longos
• Pouco legíveis
• Difíceis de modificar
➢ Utilizar diretamente os recursos da máquina
• Os programas não são portáteis entre
computadores
Assembly on an Commodore 64
Vantagens

➢ Código otimizado
• Velocidade de processamento elevado
➢ Controlo total do hardware

3º Geração - Linguagem de Alto nível

➢ Uma instrução pode corresponder a um, grande número de instruções em assembly


• Instruções em linguagem natural
o Write, read, print, repeat…
o Ler, escrever, imprimir, repetir…
➢ Linguagem, de propósito geral
• Cálculo Matemático
• Gestão de documentos
• Controlo
➢ Exemplos
• Basic
• Pascal
• C
• Cobol
• Fortran

4º Geração - Linguagem, de alto nível com aplicações a área concretas

➢ Função muito específicas


• Gestão de bases dos dados
• Elaboração de relatórios
• Geração de ecrãs
➢ Exemplo
• DBASE ….SQL …CLIPPER

5º Geração - Linguagem, d e muito alto nível

➢ Programação declarativa
• Declaração dos problemas
• Métodos específicos de resolução
dos problemas
➢ Linguagem de Inteligência Artificial
• Prolog

Linguagem - Associação de formas com significado.

Sintaxe - Especificação da combinação das formas.

Semântica - Especificação dos significados.

Linguagem natural - Não projetada pelas pessoas. Passível de várias interpretações.

Linguagem formal - Previamente projetada para determinados fins. Evita ambiguidades e


redundância.

Linguagem de programação - Sistema de escrita formal, constituído por um conjunto de regras


para a escrita de programas de computador.

Programa (código) - Conjunto de instruções numa linguagem de programação.

Instrução - Especificação ao processador da ação a executar.

Problema

➢ Conjunto das possíveis entradas


➢ Conjunto das saídas
➢ Conjunto de operações válidas

Solução Algorítmica

➢ Conjunto ordenado de operações válidas que transformam o conjunto de entradas na


saída desejada
Como se constroem algoritmos?

Problema

➢ Trocar uma lâmpada fundida

Algoritmo 1

1. Retirar a lâmpada fundida


2. Colocar a lâmpada boa

Trocar uma lâmpada fundida

Entrada

➢ Lâmpada fundida
➢ Lâmpada nova
➢ Escada

Saída

➢ Lâmpada nova a funcionar

Operações válidas

1. Retirar a lâmpada
2. Colocar a lâmpada
3. Subir a escada
4. Descer a escada

Algoritmo 2

1. Subir a escada
2. Retirar a lâmpada fundida
3. Colocar a lâmpada boa
4. Descer a escada

Características dos bons algoritmos

➢ Interagir com o utilizador

Realiza uma tarefa útil ao utilizador

Resolve o problema

➢ Ser finito
• Termina sempre e com o resultado previsto
➢ Ser corretamente definido
• Instruções claras que o utilizador consegue compreender e seguir
➢ Ser eficaz
• Resolve sempre o problema mesmo nas situações mais problemáticas
➢ Ser eficiente
• Utiliza o mínimo de recursos possível
Interagir com o Utilizador

➢ Ser finito
➢ Ser corretamente definido
➢ Ser eficaz
➢ Ser eficiente

Algoritmo 3

1. Colocar a escada debaixo da lâmpada


2. Colocar a lâmpada boa no bolso
3. Subir a escada
4. Retirar a lâmpada fundida
5. Colocar a lâmpada boa
6. Descer a escada
7. Colocar a lâmpada fundida na reciclagem
8. Arrumar a escada

Conclusão

O algoritmo não é a solução de um problema

➢ É uma forma de chegar à solução

Não se aprende

➢ A copiar algoritmos
➢ Ler algoritmos prontos
➢ A decorar algoritmos

Aprende-se

➢ Construindo algoritmos
➢ Testando algoritmos

Conclusão – construir Algoritmos

Qual é o problema.

➢ O que pretendemos do algoritmo

Definir quais são os dados que entram

➢ Qual a situação inicial


➢ O que é necessário para resolver o problema

Definir quais são os dados que saem

➢ Qual a situação final


➢ Que resultados devem ser apresentados

Definir o Algoritmo

➢ Definir quais as instruções disponíveis/necessárias


➢ Organizar as instruções de forma a resolver o problema
• Transformar as entradas na saída
Testar o algoritmo

➢ Verificar se resolve o problema


➢ Verificar se resolve todos os casos

Otimizar os algoritmos

➢ Verificar se não utiliza recursos supérfluos

Algoritmos

➢ Escreva um algoritmo para trocar o pneu de um carro


➢ Escreva um algoritmo par meter gasolina num posto de abastecimento Self-service.
➢ Escreva um algoritmo para telefonar de uma cabine pública.

Problema - O que se pretende resolver.

Algoritmo - Sequência finita de instruções descritas de forma lógica, ordenada, clara e precisa a
fim de resolver o problema.

Programa Algoritmo - codificado numa linguagem de programação.


Bloco de Comentário

Serve para explicar um determinado trecho do algoritmo, para torna-lo mais claro, facilitando
seu entendimento por outras pessoas ou posteriormente. { <comentário> }

Exemplo:

{ Isto é um exemplo de comentário }

/* Isto é um exemplo de comentário */

Instrução de entrada

Usada para ler dados de entrada do algoritmo.

ler(<variáveis>);

onde: <variáveis> - conterão os dados lidos.

Exemplos:

➢ ler(a,b,c);
➢ ler(nome);
➢ ler(sexo);
➢ ler(pratica_desporto);

Instrução de saída

Usada para mostrar os resultados do processamento dos dados de entrada.

escrever(<resultados>);

onde:

<resultados> - geralmente é o conteúdo de uma ou mais variáveis com a resposta do problema.

Exemplos:

➢ escrever(“O valor de D é: ”, D);


➢ escrever(nome, sexo);
➢ escrever(“Pratica desporto.”);

instrução de atribuição

Utilizado para atribuir um determinado valor a uma variável.

<variável> ← <expressão>;

onde:

<variável> - nome de uma variável

<expressão> - um valor do mesmo tipo da variável ou uma expressão lógica ou aritmética.

Exemplos

D ← B^2-4*A*C; nome ← “Paulo”; Pratica_Desporto ← TRUE; Sexo ← ‘M’;


Lógica de Programação & Algoritmo

Estruturas básicas de um algoritmo:

Sequência - Início/Fim

➢ Define uma estrutura onde as instruções serão executadas na ordem que aparecem.

Seleção - Se-Então/Senão

➢ Define uma estrutura condicional que dada a sua avaliação (V ou F) determina qual
"caminho" do algoritmo será executado

Repetição - Repetir, enquanto ou para

➢ Define uma estrutura de iteração condicional (V ou F) ou contada (pré-definida) de


instruções

Algoritmo para ligar de um telefone público - Sequência

Início

1. Tirar o telefone do gancho;


2. Ouvir o sinal de linha;
3. Introduzir o cartão;
4. Teclar o número desejado;
5. Conversar;
6. Desligar;
7. Retirar o cartão;

Fim.

Algoritmo para ligar de um telefone público – Seleção

E se o telefone público não funcionar?

Início

1. Tirar o telefone do gancho;


2. Se ouvir o sinal de linha, então
1) Introduzir o cartão;
2) Teclar o número desejado;
3) Conversar;
4) Desligar;
5) Retirar o cartão;
3. Senão
1) ir para o próximo telefone;

Fim.
Algoritmo para ligar de um telefone público – Repetição

E se o próximo telefone público também estiver avariado?

Início

1.Repita

1. Tirar o telefone do gancho;


2. Se ouvir o sinal de linha então
2) Introduzir o cartão;
3) Teclar o número desejado;
4) Conversar;
5) Desligar;
6) Retirar o cartão;
3. Senão
1) Ir para o próximo telefone;

2.Até ouvir o sinal de linha

Fim.

Você também pode gostar