Paulo André Castro IEC - ITAIntrodução à Computação
CES-10 Introdução à Computação
Prof. Paulo AndréIEC - ITA
Paulo André Castro IEC - ITAIntrodução à Computação
Estrutura do Curso
• Conceitos Básicos de Programação
• Algoritmos• Estruturas de Controle
• Comandos de Entrada e Saída e Manipulação de Arquivos
• Rotinas, Variáveis Estruturadas e Ponteiros
• Noções de Estruturas de Dados• E Muito mais...
Paulo André Castro IEC - ITAIntrodução à Computação
Estrutura do Curso
• Avaliação– Por bimestre: 2 provas e de 4 a 5 laboratórios– Nota bimestre = (3*média provas + 2*média labs) / 5– Um exame final– As provas, os laboratórios e o exame são individuais
• Bibliografia– Apostila escrita pelo Prof. Fabio Mokarzel– Livro C Completo e Total, Herbert Schildt– Notas de Aulas e outros...
Paulo André Castro IEC - ITAIntrodução à Computação
Computação: Um pouco de História...
• Pré-história– Máquinas de Calcular
• Ábacos Chineses (há mais de 2000 anos)• Calculadoras Mecânicas (Pascal e Leibniz) ~1650
• História– O computador mecânico de Charles Babbage
– A primeira programadora: Ada (~1840)
Paulo André Castro IEC - ITAIntrodução à Computação
Mais um pouco de História...
• A máquina de Herman Hollerith– O censo americano de 1880 levaram 7 anos para serem
compilados, em 1890 Hollerith com sua máquina conseguiu realizá-los em 2 anos e meio.
– Mais tarde, Hollerith fundou uma companhia para produzir máquinas de tabulação, que veio a se chamar IBM
• Lógica Booleana– No século XIX, as máquinas usavam base 10– A lógica booleana (base 2) é usada na
implementação dos computadores do início do século XX até os dias de hoje
Paulo André Castro IEC - ITAIntrodução à Computação
Mais um pouco de História
• O computador Eletrônico: Von Neumman (década de 40)– Instruções na Memória (ao contrário de
cartões perfurados)
– usado até hoje!
• Primeiros Computadores– Z-1(alemão), Mark I (americano), ENIAC
(americano, 500 multiplicações por segundo!)
Paulo André Castro IEC - ITAIntrodução à Computação
Microprocessadores
• Em 1970, a Intel produziu o primeiro microprocessador. Um microprocessador é um circuito integrado do tipo LSI (large scale
integration) que contém todo circuito lógico de uma unidade central de processamento em um chip do tamanho de uma unha.
• Os avanços nessa direção prosseguem até hoje, com os circuitos VLSI (very large scale integration) e os circuitos ULSI (ultra large scale integration) como o Deep Blue, com velocidade superior a 500
MIPS (milhões de instruções por segundo).
Paulo André Castro IEC - ITAIntrodução à Computação
Gerações de Computadores• Primeira geração: (1945-1959): utilizam válvulas eletrônicas, quilômetros
de fios, eram lentos, enormes e esquentavam muito
• Segunda geração: (1959-1964): substituiu as válvulas eletrônicas por transistores e os fios de ligação por circuitos impressos. Isso tornou os computadores mais rápidos, menores e de custo mais baixo.
• Terceira geração: Computadores (1964-1970) utilizam circuitos integrados, proporcionando maior compactação, redução dos custos e processamento da ordem de microsegundos. Tem início a utilização de avançados sistemas operacionais.
• Quarta geração: (1970 – hoje) caracteriza-se por um aperfeiçoamento da tecnologia já existente, proporcionando uma otimização da máquina para os problemas do usuário, maior grau de miniaturização, confiabilidade e velocidade maior, já da ordem de nanosegundos (bilionésima parte do segundo).
Paulo André Castro IEC - ITAIntrodução à Computação
Computador : Uma Analogia
Paulo André Castro IEC - ITAIntrodução à Computação
Principais Componentes
Paulo André Castro IEC - ITAIntrodução à Computação
Um pouco mais sobre Memória....
Paulo André Castro IEC - ITAIntrodução à Computação
Colocando para
Funcionar
Paulo André Castro IEC - ITAIntrodução à Computação
Linguagens• Linguagem de Máquina: sujeita a erros; difícil compreensão; exigem
conhecimento da arquitetura do computador.
• Linguagem Assembly: difícil interpretação; não exigem conhecimento da arquitetura do computador; exige tradutor (Assembler).
• Linguagens de alto nível: Formais; não exigem conhecimento da arquitetura do computador; tradutor mais complexo (Compilador).– Exemplos: C, C++, Pascal, Fortran, Java (interpretada),
• Linguagens aplicativas: interpretadas por programas escritos em linguagens de alto nível;
• Outras– Linguagem de Descrição de Dados e/ou Formatação. Exemplos: XML, HTML,
XHTML, KQML, SGML, KIF, etc. (NÃO são linguagens de programação)
•
Paulo André Castro IEC - ITAIntrodução à Computação
Sistemas de Numeração
• Equivalência entre os sistemas:
(29)base 10 = (11101)base 2 = (35)base 8 = (1D)base 16
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,A,B,C,D,E,F
16Hexadecimal
0, 1, 2, 3, 4, 5, 6, 7, 8Octal
0, 1, 2Binário
0, 1, 2, 3, 4, 5, 6, 7, 8, 910Decimal
AlfabetoBaseSistema
Paulo André Castro IEC - ITAIntrodução à Computação
Conversão de Base
Paulo André Castro IEC - ITAIntrodução à Computação
Computadores e Sistema Binário
• Números Negativos (dois zeros)– Complemento de 2
• Números Fracionários (ponto flutuante)– Mantissa e expoente
Paulo André Castro IEC - ITAIntrodução à Computação
Complemento de 2
Conversão de Base:
• Se Positivo (isto é, bit
de sinal igual a zero):
Conversão Normal
• Se Negativo:
Complementa
número sem sinal,
adiciona 1 e faz a
Conversão Normal
Paulo André Castro IEC - ITAIntrodução à Computação
Números Fracionários (Ponto Flutuante)
• Inteiros– (15)10= (01111)2 = 23+22+21 +20 = 8+4+2+1
• Números binários fracionários– (1,5)10 = (1,1)2 = 20+2-1 = 1+0,5 = (1,5)10
– (0,101)2 = 1*2-1 +0*2-2 + 1*2-3 = 0,5+0+0,125 = (0,625)10
Paulo André Castro IEC - ITAIntrodução à Computação
Deslocamento
Paulo André Castro IEC - ITAIntrodução à Computação
Conversão de Números Fracionários
• De binário para Decimal:– (0.1011)2 = 2-1+2-3+2-4 = 0,5+0,125+0,0625 =
= (0,6875)10– (0.1001)2 = 2-1+2-4 = 0,5+0,0625 = (0,5625)10
– (111.101) = 22 + 21+20 + 2 -1 + 2-3 = 4+2+1 + 0,5+0,125= (7,625)10
• Conversão de Fracionários para base 22,25 -> Parte Inteira: (2)10= (10)2
-> Parte Fracionária (0,25)10 = (0.01)2Número: (2,25)10 = (10,01)2
Paulo André Castro IEC - ITAIntrodução à Computação
Conversão de Base
Paulo André Castro IEC - ITAIntrodução à Computação
Ponto Flutuante
Paulo André Castro IEC - ITAIntrodução à Computação
Passos na Elaboração de um Programa
1. Definição do problema2. Determinação do método de solução3. Desenvolvimento de um algoritmo4. Codificação do algoritmo na linguagem escolhida5. Compilação do programa6. Correção dos erros de sintaxe7. Correção dos erros de lógica8. Execução correta9. Utilização do programa10. Otimização e manutenção
Paulo André Castro IEC - ITAIntrodução à Computação
Exemplo de Programa
1. Definição do problema
– Calcular a integral de uma função f(x) sempre positiva, no intervalo [a, b] com uma precisão p.
2. Determinação do método de solução
– Regra do Trapézio com refinamento
Paulo André Castro IEC - ITAIntrodução à Computação
Exemplo de Programa (Cont.)
3. Desenvolvimento de um algoritmo
4. Codificação do algoritmo na Linguagem C
• Depuração
5. Compilação do programa6. Correção dos erros de sintaxe7. Correção dos erros de lógica8. Execução correta
9. Utilização do programa10. Otimização e manutenção
Paulo André Castro IEC - ITAIntrodução à Computação
Sumário do Capítulo
• Um breve resumo sobre História da Computação
• O computador e seus principais componentes
• Funcionamento de um Computador
• Sistema Numérico
• Passos para elaboração de um Programa
• Exemplo de Algoritmo e Programa