Você está na página 1de 29

UNIVERSIDADE FEDERAL DO PIAUÍ – UFPI

Campus Picos

Algoritmos e Programação I
Professor:
Leonardo Pereira de Sousa
INTRODUÇÃO
SLIDE 01
Conteúdo
• Sistemas de computação;
• Representação da informação;
• Sistemas numéricos.
Sistemas de Computação
• Fisicamente, o computador não é mais do
que um conjunto de componentes elétricos,
mecânicos e eletromecânicos capazes de
processar informações, portanto todo e
qualquer sistema de computação são
compostos de componentes
físicos e lógicos.
Sistemas de Computação
• Esses componentes são conhecidos como:
– HARDWARE são partes mecânicas, elétricas
e eletrônicas.
– SOFTWARE são métodos, procedimentos,
normas e documentação necessários ao
funcionamento da parte física.
Sistemas de Computação
• Estrutura lógica
– Unidade Central de Processamento - O
processador é o cérebro do computador, o
componente que calcula operações de lógica
binária (adição, subtração etc.), lê e escreve
informação na memória do computador e que
diz aos outros componentes o que fazer.
Sistemas de Computação
• Unidade Lógica e Aritmética (ULA)
– A ULA - Unidade Lógica Aritmética, efetiva
as operações como adição, subtração, divisão,
multiplicação, comparação etc.
• Unidade de Controle
– A unidade de controle decodifica as instruções
do programador que está na memória, gerando
os sinais necessários para a execução da
instrução. Ela coordena o funcionamento de
todas as outras unidades.
Sistemas de Computação
• Estrutura lógica
– Dispositivos de Entrada e Saída:
• As unidades de entrada de dados realizam a interface
entre homem e máquina, exemplo: o teclado, o
mouse etc.
• Já as Unidades de saída de dados devolvem a
informação processada entre a máquina e o homem,
exemplo: a impressora, o vídeo etc.
Sistemas de Computação
• Estrutura lógica
– Programas (software) - Apesar de não terem
qualquer tipo de implementação física, os
softwares dão vida aos diversos componentes
do computador e os fazem trabalhar para um
fim comum.
– Isto só é possível, através de instruções
específicas de operação agrupadas em unidades
lógicas ou programas.
Sistemas de Computação
• Estrutura lógica
– Unidades de Memória - É o principal local de
operação do computador, pois armazena toda a
informação associada ao programa a ser
executado.
Sistemas de Computação
• Tipos de Memória:
– A memória pode ser dividida quanto a sua
funcionalidade em três tipos distintos:
• RAM (random access memory) - é volátil. Todas as
informações introduzidas no computador são armazenadas na
memória RAM.
• ROM (read only memory) - não é volátil, esta memória é
apenas de leitura e de acesso randômico (aleatório), é usada
para iniciar o sistema.
• Memória de Massa ou Secundária - São as fitas magnéticas,
discos magnéticos ou ópticos. Este tipo de memória contém
componentes eletromecânicos o que a torna mais lenta. Sua
principal característica é o baixo custo e a sua grande
capacidade.
Organização Básica de um Computador

00110
010011001

Instruções de
00110

Programa
0011001101

Dados de Entrada Dados de Saída


12
Componentes de Software
• Nos primeiros computadores o usuário interagia
muito com a máquina, atualmente os detalhes de
operação do hardware não são vistos pelo usuário.
• O usuário trabalha em um nível de abstração mais
alto, deixando detalhes de acionamento da
máquina para um programa especial chamado
Sistema Operacional.
Classificação dos Sistemas
• Sistemas Operacionais (S.0.):
– O Sistema Operacional nada mais é do que um
conjunto de programas que auxiliam o
desenvolvimento ou a execução de uma
determinada aplicação sendo responsável pelo
seu processamento.
– Ele também assegura que os recursos físicos do
sistema estejam disponíveis quando necessários,
e que os recursos de software sejam fornecidos
quando requisitados.
Classificação dos Sistemas
• Softwares de Aplicação:
– são criados, em regra, para executar tarefas
específicas como o processamento de texto,
reprodução de áudio etc.
– Para se criar estas aplicações são necessárias as
linguagens de programação, que não deixam de
ser um software de aplicação.
– As linguagens de programação permitem a
criação de sequências lógicas que o computador
consegue "entender" e executar.
Representação da Informação
• Para que as instruções sejam processadas
na memória do computador, toda a
informação precisa ser representada de um
modo comum e coerente em todos os tipos
de sistemas e ambientes, o que obrigou a
criação de um modelo geral de
representação numérica.
Linguagem de Máquina
• A linguagem de máquina é a linguagem que o
computador compreende e armazena as instruções
das ações que deve realizar.
• Representada pela ausência e presença de
energia.
• É muito difícil de ser compreendida e utilizada
pelos seres humanos.

17
Linguagem de Máquina
• A Linguagem de Máquina é formada por um conjunto de
bits (Binary Digit ou Dígito Binário).
• Um bit é representado numericamente por:
– 0 (zero) ou;
– 1 (um).
• Exemplo:
– 0100 0001 (letra A)
• A CPU contém um conjunto de instruções que usam a
linguagem de máquina. Cada instrução é um conjunto de
bits que dizem a CPU como executar os programas (outro
conjunto de bits) juntamente com os dados de entrada 18
(também outro conjunto de bits).
Linguagem de Programação
• A linguagem de programação é uma linguagem mais
facilmente compreendida pelos seres humanos, onde
algoritmos são escritos com o objetivo de prover a
comunicação com o computador.
• Algoritmo é uma seqüência de passos (instruções ou
comandos) finitos e bem definidos que visam solucionar
um problema.
• Representações:
– linguagem natural;
– fluxogramas;
– linguagem algorítmica. 19
Classificação das Linguagens de
Programação
• Linguagens de Alto Nível: • Linguagens de Baixo
– mais próxima do ser Nível:
humano; – mais próxima da
– alto poder de máquina;
expressividade; – pouco expressiva e
– ex: Pascal, C, C++, Java, legível;
etc. – ex: Assembly.
if (fimDeSemana)
printf (“sair”); mvmm ar1, ar3
else rpt #10
printf (“estudar”); mvdd *ar3+, *ar5+
STM #1, ar1

20
Compilação & Interpretação
• O compilador e o interpretador são programas que
transformam as instruções de um algoritmo (escrito em
linguagem de programação) em instruções de um programa
(escrito em linguagem de máquina).
• Compilador:
– Traduz todo o código-fonte da linguagem de programação
para código em linguagem de máquina (código-objeto). É o
código-objeto que deve ser executado quando for necessário.
• Interpretador:
– Não gera código-objeto. Cada instrução do código-fonte é
traduzida, em tempo de execução, e executada logo em
seguida. 21
Compilador
Código-fonte
if (fimDeSemana)
0111 1110
printf (“sair”);
0111 0100
else Compilador 0101 0010
printf
1101 0000
(“estudar”);
0111 1110

Executar

CPU
22
Lógica de Programação
• A lógica de programação é uma técnica
utilizada para desenvolver algoritmos.
• Essa técnica é utilizada para organizar os
comandos (ou passos) a fim de atingir um
determinado objetivo. Ou seja, é a especificação
passo a passo das tarefas necessárias à solução de
um problema.
• Obs.: A ordem dos passos é importante para se
atingir o objetivo desejado e o algoritmo deve ter
um fim. 23
Algoritmo: Fritar um Ovo
1. Pegar frigideira, ovo, óleo e sal;
2. Colocar óleo na frigideira;
3. Acender o fogo;
4. Colocar a frigideira no fogo;
5. Esperar o óleo esquentar;
Seqüência de instruções.
6. Colocar o ovo na frigideira;
7. Retirar o ovo quando pronto.
24
Algoritmo: Trocar Lâmpadas
1. Se (lâmpada estiver alta)
pegar escada; Instruções de
seleção se.
2. Pegar lâmpada nova;
3. Se (lâmpada estiver quente)
pegar pano;
4. Tirar lâmpada queimada;
5. Colocar lâmpada nova.
25
Algoritmo: Fazer um Bolo
1. Pegar ingredientes;
2. Se (roupa for branca) Instrução de
seleção se-senão.
colocar avental;
3. Se (tiver batedeira)
bater ingredientes na batedeira;
Senão
bater ingredientes à mão;
4. Colocar a massa na forma;
5. Colocar forma no forno;
6. Esperar o bolo assar;
7. Retirar o bolo do forno 26
Algoritmo: Descascar Batatas
1. Pegar faca, bacia e batatas;
2. Se (roupa for branca)
Instrução de
colocar avental; repetição enquanto.

3. Enquanto (houver batatas)


descascar uma batata;
4. Limpar e guardar faca e bacia.

27
Algoritmo
• Deve-se analisar todas as possibilidades possiveis
no enunciado do problema.
FIM