Introdução a Computação
• O que é um computador?
“Um computador é uma coleção de componentes
que realizam operações lógicas e aritméticas
sobre um grande volume de dados.” (F. K. Miyazawa)
Introdução a Computação
Um computador é composto por:
• Unidades de entrada de dados: Ex.: teclado,
mouse, câmera de vídeo, etc…
• Unidades de saída de dados Ex.: monitor,
impressora, etc…
• Unidades de armazenamento Ex.: memória RAM,
memória ROM, discos rígidos, cache. etc...
• Unidade Central de Processamento – CPU
• Unidade Lógica Aritmética – ULA
Introdução a Computação
Introdução a Computação
Termos técnicos:
• Hardware: Componentes mecânicos e eletro-
eletrônicos (Parte dura do computador).
• Software: Seqüência de instrucões e comandos que
fazem o computador realizar determinada tarefa
(Programas de computador).
• Sistema Operacional: Coleção de programas que
gerencia e aloca recursos de hardware e software
(Linux, Unix, Windows).
Introdução a Computação
• Linguagem de Máquina: Conjunto de instruções
que podem ser interpretados e executados
diretamente pela CPU.
• Linguagem de alto nível: Linguagem que
independe do conjunto de instrucões da linguagem de
máquina (Pascal, C, Algol, BASIC).
• Compilador: Tradutor de programas escritos em
uma linguagem de programação para programas em
linguagem de máquina (GCC).
Introdução a Computação
Introdução a Computação
Bits e Bytes:
• A menor unidade de informação de um computador
é o Bit, um Bit pode assumir os valores 0 ou 1.
• Um Byte é um conjunto de oito Bits.
• Dados são armazenados na base binária não na
decimal.
0 = 00000000
1 = 00000001
10 = 00001010
255 = 11111111
Introdução a Computação
Desafio:
Você possui dez caixas vazias e deve distribuir
nessas caixas 1000 moedas de tal forma que, quando
solicitado, você possa retornar um número qualquer
de moedas sem retirá-las das caixas.
Cada caixa comporta pelo menos 1000 moedas e os
valores solicitados serão todos maiores que zero.
Introdução a Computação
Solução:
Usando a base binária…
Caixas com:
1 moeda 256 moedas
2 moedas 488 moedas
4 moedas
8 moedas
16 moedas
32 moedas
64 moedas
128 moedas
Introdução a Computação
Existem 10 tipos de pessoas…
aquelas que entendem binário…
e as que não entendem.
Introdução a Computação
Desafio:
Em um lado de um rio se encontram, você, um lobo
um coelho e um repolho.
Você possui uma canoa que te permite levar apenas
um deles de cada vez, sabendo que caso o lobo fique
sozinho com o coelho o lobo o come e o mesmo
acontece quando o coelho fica sozinho com o repolho.
Como fazer para atravessar todos eles em segurança
para a outra margem do rio?
Introdução a Computação
Desafio:
Suponha que você possui 3 pinos, A, B e C e que no
pino A estão dispostos 3 discos de tamanhos
diferentes em ordem crescente de cima para baixo
(menor em cima). O objetivo é levar os 3 discos do
pino A para o pino C, usando o pino B como auxiliar
e obedecendo as seguintes restrições:
•Pode-se mover apenas 1 pino de cada vez
•Não se pode colocar um pino maior sobre um
menor.
Introdução a Computação
http://freeweb.supereva.com/nessunoforever/flash/hanoi/index.htm?p
Introdução a Computação
Algoritmos:
• Um algoritmo é uma seqüência de passos com o
objetivo de executar uma tarefa.
• São muito comuns, receitas, manuais
• As soluções para os problemas anteriores são
algoritmos.
• Computacionalmente:
“Um procedimento computacional que recebe
valores de entrada e produz valores de saída.”
Introdução a Computação
Exemplo:
• Entrada: Uma seqüência aleatória de números.
• Saída: A mesma seqüência de números ordenada.
Se a entrada é :
(8, 49, 12, 23)
o seu algoritmo deve produzir como saída:
(8, 12, 23, 49)
• Algoritmo Correto: Sempre termina e para
qualquer instância de entrada produz uma saída
correta
Introdução a Computação
Algoritmo de Euclides (Cálculo do MDC):
• Entrada: 2 valores inteiros positivos m e n (m > n).
• Saída: O Máximo Divisor Comum de m e n.
• Passo 1: Faça x = m e y = n
• Passo 2: Calcule o resto de x por y, isto é
r = x mod y
• Passo 3: Faça x = y e y = r
• Passo 4: Se r != 0 (r diferente de zero) volte para o
passo 2, senão retorne x como resposta.
mdc(x, y) = mdc(y, x mod y)
mdc(x, 0) = x
Introdução a Computação
Computacionalmente:
x recebe m
y recebe n
Repita
r recebe x mod y
x recebe y
y recebe r
Até que r == 0
Imprime x
Introdução a Computação
Na linguagem C:
x = m;
y = n;
do {
r = x % y;
x = y;
y = r;
}while( r != 0 );
printf(“%d”, x);
Introdução a Computação
Para ver depois:
• JL Hennessy e DA Patterson, “Arquitetura de
Computadores – Uma Abordagem Quantitativa”
Ed Campus.
• Mais desafios:
http://www2.fundao.pro.br/pages/desafios.asp
• Torre de Hanoi:
http://freeweb.supereva.com/nessunoforever/flash/hanoi/index.htm?p
• Página da disciplina:
http://www.las.ic.unicamp.br/~chenca/mc102/mc102.html

Aula01 introducao

  • 1.
    Introdução a Computação •O que é um computador? “Um computador é uma coleção de componentes que realizam operações lógicas e aritméticas sobre um grande volume de dados.” (F. K. Miyazawa)
  • 2.
    Introdução a Computação Umcomputador é composto por: • Unidades de entrada de dados: Ex.: teclado, mouse, câmera de vídeo, etc… • Unidades de saída de dados Ex.: monitor, impressora, etc… • Unidades de armazenamento Ex.: memória RAM, memória ROM, discos rígidos, cache. etc... • Unidade Central de Processamento – CPU • Unidade Lógica Aritmética – ULA
  • 3.
  • 4.
    Introdução a Computação Termostécnicos: • Hardware: Componentes mecânicos e eletro- eletrônicos (Parte dura do computador). • Software: Seqüência de instrucões e comandos que fazem o computador realizar determinada tarefa (Programas de computador). • Sistema Operacional: Coleção de programas que gerencia e aloca recursos de hardware e software (Linux, Unix, Windows).
  • 5.
    Introdução a Computação •Linguagem de Máquina: Conjunto de instruções que podem ser interpretados e executados diretamente pela CPU. • Linguagem de alto nível: Linguagem que independe do conjunto de instrucões da linguagem de máquina (Pascal, C, Algol, BASIC). • Compilador: Tradutor de programas escritos em uma linguagem de programação para programas em linguagem de máquina (GCC).
  • 6.
  • 7.
    Introdução a Computação Bitse Bytes: • A menor unidade de informação de um computador é o Bit, um Bit pode assumir os valores 0 ou 1. • Um Byte é um conjunto de oito Bits. • Dados são armazenados na base binária não na decimal. 0 = 00000000 1 = 00000001 10 = 00001010 255 = 11111111
  • 8.
    Introdução a Computação Desafio: Vocêpossui dez caixas vazias e deve distribuir nessas caixas 1000 moedas de tal forma que, quando solicitado, você possa retornar um número qualquer de moedas sem retirá-las das caixas. Cada caixa comporta pelo menos 1000 moedas e os valores solicitados serão todos maiores que zero.
  • 9.
    Introdução a Computação Solução: Usandoa base binária… Caixas com: 1 moeda 256 moedas 2 moedas 488 moedas 4 moedas 8 moedas 16 moedas 32 moedas 64 moedas 128 moedas
  • 10.
    Introdução a Computação Existem10 tipos de pessoas… aquelas que entendem binário… e as que não entendem.
  • 11.
    Introdução a Computação Desafio: Emum lado de um rio se encontram, você, um lobo um coelho e um repolho. Você possui uma canoa que te permite levar apenas um deles de cada vez, sabendo que caso o lobo fique sozinho com o coelho o lobo o come e o mesmo acontece quando o coelho fica sozinho com o repolho. Como fazer para atravessar todos eles em segurança para a outra margem do rio?
  • 12.
    Introdução a Computação Desafio: Suponhaque você possui 3 pinos, A, B e C e que no pino A estão dispostos 3 discos de tamanhos diferentes em ordem crescente de cima para baixo (menor em cima). O objetivo é levar os 3 discos do pino A para o pino C, usando o pino B como auxiliar e obedecendo as seguintes restrições: •Pode-se mover apenas 1 pino de cada vez •Não se pode colocar um pino maior sobre um menor.
  • 13.
  • 14.
    Introdução a Computação Algoritmos: •Um algoritmo é uma seqüência de passos com o objetivo de executar uma tarefa. • São muito comuns, receitas, manuais • As soluções para os problemas anteriores são algoritmos. • Computacionalmente: “Um procedimento computacional que recebe valores de entrada e produz valores de saída.”
  • 15.
    Introdução a Computação Exemplo: •Entrada: Uma seqüência aleatória de números. • Saída: A mesma seqüência de números ordenada. Se a entrada é : (8, 49, 12, 23) o seu algoritmo deve produzir como saída: (8, 12, 23, 49) • Algoritmo Correto: Sempre termina e para qualquer instância de entrada produz uma saída correta
  • 16.
    Introdução a Computação Algoritmode Euclides (Cálculo do MDC): • Entrada: 2 valores inteiros positivos m e n (m > n). • Saída: O Máximo Divisor Comum de m e n. • Passo 1: Faça x = m e y = n • Passo 2: Calcule o resto de x por y, isto é r = x mod y • Passo 3: Faça x = y e y = r • Passo 4: Se r != 0 (r diferente de zero) volte para o passo 2, senão retorne x como resposta. mdc(x, y) = mdc(y, x mod y) mdc(x, 0) = x
  • 17.
    Introdução a Computação Computacionalmente: xrecebe m y recebe n Repita r recebe x mod y x recebe y y recebe r Até que r == 0 Imprime x
  • 18.
    Introdução a Computação Nalinguagem C: x = m; y = n; do { r = x % y; x = y; y = r; }while( r != 0 ); printf(“%d”, x);
  • 19.
    Introdução a Computação Paraver depois: • JL Hennessy e DA Patterson, “Arquitetura de Computadores – Uma Abordagem Quantitativa” Ed Campus. • Mais desafios: http://www2.fundao.pro.br/pages/desafios.asp • Torre de Hanoi: http://freeweb.supereva.com/nessunoforever/flash/hanoi/index.htm?p • Página da disciplina: http://www.las.ic.unicamp.br/~chenca/mc102/mc102.html