Escolar Documentos
Profissional Documentos
Cultura Documentos
da Computação
1
Ciências da Computação
1. História e fundamentos;
2. Arquitetura genérica de sistemas
computacionais;
3. Método para resolução dos enunciados;
4. Algoritmo e suas representações;
2
1 - História da Computação
Ábaco; Charles Babbage; George Boole;
Hollerith; MARK I; ENIAC; John von Neumann;
Alan Turing; Mainframes; Inteligência Artificial;
IBM; Oracle; Bill Gates; Microsoft; Steve Jobs;
Apple; Computador Pessoal; Internet; Google;
Computação em Nuvem; Redes Sociais;
Computação Embarcada; Dispositivos Móveis; ...
3
Exercícios de Fixação
• Acessar o website da disciplina no Ambiente
Virtual de Aprendizagem (AVA) da UFSC:
http://moodle.ufsc.br
• Ler um dos materiais sobre a história da
computação e fazer um resumo.
4
Sistema Computacional
5
Sistema Computacional
6
Esquema geral de funcionamento
em qualquer nível SC
Exemplos:
Instruções (programas)
Controle Periféricos
(p.e. memórias
secundárias, visor,
Botão, teclado,
Entradas
monitor de vídeo, etc) Persistente
ou saídas
8
Pessoas, processadores e suas
linguagens
• O processador não entende a linguagem natural (das
pessoas), entende apenas o seu código de máquina;
• O conjunto de instruções (código de máquina) do
processador é difícil de ser entendido pelas pessoas;
• Solução: linguagens de programação. Quanto mais
alto o nível, normalmente mais fácil para as pessoas
entenderem;
• Contudo é necessário um programa compilador para
converter o código-fonte da linguagem de
programação utilizada em código executável (código
de máquina) do processador.
Do código-fonte ao código do
processador
Escrita do código-fonte
(p.e. Linguagem C)
Compilador de C
para um determinado
processador
(p.e. Intel, AMD)
Código executável
Erros (para o processador
determinado)
Programas de computador para
Resolver Problemas
• Um programa de computador é normalmente modelado e escrito
(codificado) por pessoas para a resolução de um problema;
• O programa operacionaliza a obtenção dos valor(es) da entrada, a
realização do processamento usando esse(s) e outros valores e a
devolução de um ou vários resultado, a saída;
• Ex1: Problema: executar um programa escolhido pelo usuário usando-se
uma tela touch:
toque da tela; processamento da posição e do ícone do programa e
execução do programa.
• Ex2: Problema: ajustar o consumo de combustível e o desempenho do
motor:
valor da sensor de queirma e da massa de ar; cálculo da riqueza da
mistura e geração do valor de ajuste; e controle dos bicos injetores.
Passos para a resolução de
problemas
• Diversas vezes nos deparamos com situações que exigiram
pensarmos em passos para resolvê-los.
• É tão natural que não nos damos conta:
Fazer um bolo;
Aproveitar a ida no centro da cidade para fazer tarefas;
Resolver um problema de matemática;
Andar de um ponto até outro;
• A sequência lógica dos passos é fundamental.
• As instruções devem ser claras e não ambíguas.
• Esse sequência é um algoritmo e é especificada em algum
nível de abstração.
Algoritmos
• Algoritmo é uma sequência lógica finita de passos não
ambíguos para a solução de um problema.
• Transformam uma determinada entrada em uma determinada
saída.
• Algoritmo formal: deve ser descrito precisamente em
linguagem matemática.
• Algoritmo informal: pode ser descrito em linguagem natural,
mas não pode deixar de ter passos finitos e ambíguo.
Ex1: mostrar na tela: Alô mundo!
Ex2: receber dois número; somá-los e mostrar o resultado
na tela.
Abstração
• Frequentemente não nos preocupamos com passos menores
de uma tarefa;
Ex1: a condição de estar no centro da cidade para resolver
algo, pode ser descrita sem entrar nos detalhes de como
chegar (carro A, carro B, carona, etc);
Ex2: Quando movimentamos o braço não pensamos nos
músculos e tendões utilizados.
• Todo passo pode ser dividido em passos cada vez mais
detalhados
• Abstrair: não se preocupar com determinado nível de
detalhes.
Exercícios de Fixação
• Acessar o website da disciplina no Ambiente
Virtual de Aprendizagem (AVA) da UFSC:
http://moodle.ufsc.br
• Fazer as atividades de fixação das aulas 1 e 2 e
os das aulas 3 e 4.
3. Método para Resolução dos
Problemas Enunciados
• Método para a resolução de problemas através de programas.
• Em 6 etapas:
1. Interpretar o enunciado e imaginar uma solução sendo
executada (sequência de ações com informações
solicitadas e informações apresentadas).
• Objetivo: levantar informações e organizar
mentalmente uma solução candidata.
2. Estabelecer um Algoritmo informal baseado na etapa 1.
• Objetivo: relacionar uma sequência lógica de passos
para resolver o problema, ainda que abstratos.
Método para Resolução dos
Enunciados
3. Criar um fluxograma baseado no algoritmo informal.
• Objetivo: obter um modelo gráfico das operações,
necessidade de memória (variáveis), estratégias de
repetição e divisão de fluxo de programa.
4. Realizar o teste de mesa.
• Objetivo: avaliar se a lógica algorítmica leva a uma
solução consistente.
5. Codificar em uma linguagem de programação. Compilar o
programa até não obter mais erros de compilação.
• Objetivo: traduzir o modelo para uma linguagem e
obter uma versão do programa sem erros de escrita e
semântica.
Método para Resolução dos
Enunciados
6. Realizar testes de lógica e em caso de erros avaliar a qual
etapa se deve voltar.
• Objetivo: avaliar se o programa conduz a solução
correta do enunciado, senão identificar o problema de
lógica e a etapa que se deve retornar.
4 - Representação de Algoritmos
• Observar estrutura e o fluxo
de programa.
Fluxograma Portugol
Algoritmo A01
Início A01
Programa C
Escreva “Alo Mundo”;
#include <stdio.h>
Alô Fim;
Mundo int main() {
Programa Pascal
program A01; printf(”Alo Mundo\n");
begin
Fim A01 }
writeln(”Alô Mundo");
end; 19
Fluxograma Algoritmo informal do Problema
do Ex2: Receber dois número;
somá-los; e apresentar o resultado.
Modelagem da solução do Problema
do Ex2 utilizando fluxograma:
Início
Início ou fim
Declaração e N1 ← 0
Entrada de dados inicialização
das variáveis N2 ← 0
Processamento S←0
Não importa se
N1
vem do teclado,
Tomada de decisão rede, arquivo,
N2
Sensor, etc
Saída de dados S ← N1 + N2
Não importa se S
vai para a tela,
Fluxo de programa rede, arquivo,
Fim
atuador, etc 20
Problema 3
Problema: Indicar se um número recebido é maior que
10.
Como identificar a sequência de passos e ter noção das
ações?
- Iniciar a modelagem com o algoritmo informal, depois
modelar com o fluxograma e então codificar em um
código fonte de uma linguagem de programação.
- Compilar, testar, corrigir e obter o código executável
final.
Algoritmo Informal e Fluxograma
para solução do Problema 3
Início
Algoritmo Informal de uma
X←0
possível solução para o
problema 3: X
Receber um número
Avaliar se ele é maior que 10 S
X > 10
e se for mostrar a mensagem
“é maior que 10” “X é maior
N que 10.”
Verbo no infinitivo:
indica ação →
provavelmente
terá um comando
Fim
22
Problema 4
Problema: Indicar se um número recebido é
maior, menor ou igual a 10.
1. Análise do enunciado e imaginar uma solução
sendo executada.
2. Algoritmo informal.
3. Fluxograma.
4. Teste de mesa.
5. Codificação.
6. Testes.
Algoritmo Informal e Fluxograma
para solução do Problema 4
Início
Algoritmo Informal de uma
possível solução para o N←0
problema 4: N
Receber um número; S
N > 10
Avaliar se ele é maior que 10
e se for mostrar a mensagem N
“N é maior que 10”, senão; S N, “ é maior
N < 10 que 10.”
Avaliar se ele é menor que 10
e se for mostrar a mensagem N N, ” é menor
“N é menor que 10”, senão N, “ é igual que 10.”
mostrar a mensagem “N é a 10.”
igual a 10”.
Fim
24
Problema 5
Problema: Apresentar a média de 3 números
fornecidos.
1. Análise do enunciado e imaginar uma solução
sendo executada.
2. Algoritmo informal.
3. Fluxograma.
4. Teste de mesa.
5. Codificação.
6. Testes.
Algoritmo Informal e Fluxograma
para solução do Problema 5
Algoritmo Informal de uma
Início
possível solução para o
Simplificação
problema 5: N1,N2,N3 ← 0 na descrição
do fluxograma
Receber três número; Med ← 0.0
Avaliar se ele é maior que 10 Identifica um
e se for mostrar a mensagem N1,N2,N3 número real
“N é maior que 10”, senão; (ponto flutuante)
Avaliar se ele é menor que 10 Med ←(N1+N2+N3)/3 ao invés de
inteiro
e se for mostrar a mensagem
“N é menor que 10”, senão Med
mostrar a mensagem “N é
Fim
igual a 10”.
26
Problema 5 versão 2
Problema: Apresentar a média de 3 números
fornecidos e mostrar “Aprovado” se for maior ou
igual a 7.
1. Análise do enunciado e imaginar uma solução
sendo executada.
2. Algoritmo informal.
3. Fluxograma.
4. Teste de mesa.
5. Codificação.
6. Testes.
Algoritmo Informal e Fluxograma
para solução do Problema 5 v2
Início
Algoritmo Informal de uma
N1,N2,N3 ← 0
possível solução para o
problema 5 versão 2:
Med ← 0.0
Fim
28
Problema 5 versão 3
Problema: Apresentar a média de 3 números
fornecidos e mostrar “Aprovado” se for maior ou
igual a 7.
Restrição: usar estrutura de repetição para a
entrada de dados.
Usar as 6 etapas.
Algoritmo Informal e Fluxograma
para solução do Problema 5 v3
O Algoritmo Informal é o mesmo da versão 3.
32