+ All Categories
Home > Documents > Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... ·...

Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... ·...

Date post: 23-Mar-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
35
PROGRAMAÇÃO (PRG34) Prof. Rafael Berti Schmitz 2017/1
Transcript
Page 1: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

PROGRAMAÇÃO(PRG34)Prof. Rafael Berti Schmitz

2017/1

Page 2: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Computação

1. Contar, fazer o cômputo de, :computar votos.2. Calcular, orçar:Computou a despesa em centenas de reais.3. Comparar, confrontar, cotejar:Dispôs-se a computar a receita com as despesas.4. Incluir:Computou este delito entre os passíveis de pena de morte.

5. Processar em computador.

Page 3: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

História da computaçãoA ciência é cumulativa.

As pesquisas normalmente evoluem com base em resultados do passado, constituindo os fundamentos

para um desenvolvimento posterior.

Page 4: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Pré-história

Ábaco• Mesopotâmia, 5.500 a.C.

• Cálculo de colheitas e construção civil

• Operações de adição e subtração

• Babilônia

• Egito

• Grécia

• Roma -> "Calculus"

• Índia

• China

• Japão

Page 5: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Pré-história

Régua de Cálculo

• William Oughtred, Inglaterra, 1630

• Grandes navegações e projeto de máquinas a vapor

• Tabela baseada na teoria de logaritmosMultiplicação -> Adição

Divisão -> Subtração

Page 6: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Blaise Pascal, França, 1642

“Pascalina”

• Primeira calculadora mecânica

• Adição e subtração

Pré-história

Page 7: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Pré-história

Charles Babbage, Inglaterra, 1821-1834

Máquina de diferenças• Projetada para calcular tabelas

trigonométricas e logarítmicas com elevada exatidão

• Fornecia os resultados perfurando um prato de cobre

• Não foi implementada completamente em função de limitações tecnológicas e financeiras (engrenagens não suportavam esforços elevados e se deformavam com o calor)

• Primeira réplica construída em 1991

Page 8: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Pré-história

Charles Babbage, Inglaterra, 1821-1834

Máquina analítica

• “Primeiro computador programável”

• Funcionava a vapor

• Permitia alterar a sequência de operações

• Nunca foi totalmente implementada

Page 9: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Pré-história

Máquina Analítica de Babbage - Anteviu os passos que são a base do funcionamento de um computador:

• Unidade de entrada (input section) – entrada de dados via cartão perfurado;

• Unidade de saída (output section) – saída de dados via cartão perfurado;

• Unidade de memória (store) – capaz de armazenar variáveis e resultados;

• Unidade de computação (mill) – recebe os operandos da memória, efetua as operações (soma, subtração, multiplicação e divisão) e envia o resultado para a memória;

Page 10: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Pré-história

Ada Byron King, Inglaterra, 1842-1843

• Condessa de Lovelace e companheira de Babbage

• Compreendeu o funcionamento da Máquina Analítica e escreveu os melhores relatos sobre o seu funcionamento

• Suas anotações descrevem o primeiro algoritmo especificamente criado para ser implementado em um computador (primeira programadora)

• Calcular os números de Bernoulli

• "Ele não tem pretensões de originar nada, mas pode processar qualquer coisa que nós soubermos programá-lo para realizar." - Ada, falando sobre o Engenho Analítico

Page 11: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Pré-história

Hermann Hollerith, EUA, 1887

Máquina de Hollerith• Entrada de dados por cartão

perfurado

• Máquina capaz de interpretar, classificar e manipular as somas aritméticas representadas pelas perfurações

• Componentes eletromecânicos

• Usada no censo dos EUA (1/3 do tempo de processamento comum)

• Fundador da IBM

Page 12: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Berço da computação

Alan Turing, Inglaterra, 1935• Formalizou o conceito de algoritmo

Máquina de Turing

• Modelo abstrato do computador, que descreve os aspectos lógicos do seu funcionamento (memória, estados e transições) e não sua implementação física

• Fundamental para o desenvolvimento do computador moderno

“Bombe”

• Decodificar a criptografia de mensagens nazistas

• Componentes eletromecânicos

Filme: O jogo da imitação, 2014

Page 13: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Computadores eletrônicos

1ª Geração (1940-1952)

• Válvulas

• Projeto para uso dedicado e específico

• Programação manual

Page 14: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

1ª Geração

Colossus• Inglaterra, 1939

• Primeiro computador eletrônico, baseado no conceito de Turing

• Projetado para decifrar códigos nazistas

• “Programação manual”, através de chaves e conexões (configuração)

Page 15: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

1ª Geração

ENIAC - Electronic Numerical Integrator and Computer• EUA, 1943-1946

• Entrada de dados via cartão perfurado

• Projetado para efetuar cálculos de balística

• “Programação manual”, através de chaves e conexões

• Executava desvios condicionais

Page 16: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

1ª Geração

• Poder computacional limitado pela tecnologia da época

• Configuração tediosa (limitava a versatilidade dos primeiros computadores)

Page 17: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Adolescência da computação

John von Neumann, EUA, 1952Observou que programar computadores manualmente era uma tarefa mecânica e tediosa, que poderia ser representada em forma digital, junto com os dados

• Introduziu o conceito de programa armazenado

• Emprego do sistema binário para cálculos aritméticos

• Estabeleceu o paradigma de projetos de computadores - “arquitetura de von Neumann”

Page 18: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

2ª Geração (1952-1964)

Transistores

• Não exigiam tempo de pré-aquecimento

• Menor consumo de energia

• Mais rápidos e confiáveis;

Máquinas de uso universal

• Arquitetura de von Neumann

• Linguagem de programação (Assembly)

Page 19: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

2ª Geração

• Mémorias: Núcleos de ferrite, fitas magnéticas

• Linguagem Assembly

• Utilização de mnemônicos para representar as instruções de máquina;

• Linguagens de alto nível (Fortran e Cobol)

• Armazenamento em disco, complementando os sistemas de fita magnética e possibilitando ao usuário acesso rápido aos dados desejados.

Page 20: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

3ª Geração (1964-1977)

Circuitos Integrados

• Integração de centenas de transistores

• Equipamentos menores e mais baratos

• Produção em massa

Computador Pessoal (PC)

Page 21: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

4ª Geração (1977-1991)

• Microprocessadores

• Sistemas operacionais: MS-DOS, Macintosh, UNIX

• Linguagens de programação orientadas a objeto (C++ e Smalltalk)

• Internet

• Mais confiáveis, mais rápidos, menores e com maior capacidade de armazenamento.

• Filme: Piratas do Vale do Silício, 1999

Page 22: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Tendências• A cada ano ou dois seguintes aproximadamente o

dobro:– Quantidade de memória para executar programas

– Quantidade de armazenamento de dados secundário (tais como o armazenamento em disco)• Usado para segurar os programas e os dados a longo prazo

– Velocidades de processador• A velocidade a que os computadores executam seus

programas

Page 23: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Hardware

Page 24: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

O que é um computador?• Computador

– Dispositivo capaz de executar cálculos e tomar decisões lógicas

• Hardware– Parte física do sistema de computação

– Componentes eletrônicos

– Circuitos integrados e placas, que se comunicam através de barramentos)

• Software– Parte lógica do sistema de computação.

– Conjunto de instruções, organizados em um ou mais arquivos, que ordenam o computador na execução de tarefas

Page 25: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Organização1. Unidade de entrada de dados

• Obtém informações de dispositivos de entrada (teclado, mouse)

2. Unidade de Saída • Informações de saída (monitor, impressora)

3. Unidade de memória• Acesso rápido, baixa capacidade, armazena informações de

entrada

4. Unidade aritmética e lógica (ALU)• Executa cálculos aritméticos e lógica de decisões

5. Unidade central de processamento (CPU) • Supervisiona e coordena as demais unidades do computador

6. Unidade de armazenamento secundário• Barato e de longo prazo e de alta capacidade de

armazenamento de dados

• Armazena os programas inativos

Page 26: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Arquitetura de von Neumann

Page 27: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Ciclo de execução• Descreve como o hardware trabalha com as instruções que serão executadas

• Ciclo de execução de Von Neumann:

1) Busca uma instrução,

2) Decodifica

3) Executa

Instrução de operação aritmética

1. A unidade de controle busca a próxima instrução do programa na memória principal;2. O contador de programa é usado pela unidade de controle para determinar onde a instrução está localizada;3. A instrução é decodificada para uma linguagem que a unidade lógica aritmética possa entender;4. Os operandos de dados requeridos para executar a instrução são carregados da memória e colocados em registradores;5. A unidade lógica aritmética executa a instrução e coloca os resultados em registradores ou na memória.

Page 28: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Software

Page 29: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Linguagens• Três tipos de linguagens de programação

Linguagem de máquina• Linguagem natural do computador

• Dependente do hardware

• Não padronizada

• Cadeia de caracteres que fornece instruções específicas para a máquina

Exemplo:+1300042774

+1400593419

+1200274027

Page 30: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Linguagens• Três tipos de linguagens de programação

Linguagem Assembly• Humanamente compreensível

• Abreviaturas que representam as operações elementares de computador

• Muitas instruções para realizar tarefas simples

• Para ser executada, exige uma tradução, realizada pelos assemblers

Exemplo:LOAD BASE

ADD EXTRA

STORE BRUTO

Page 31: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Linguagens• Três tipos de linguagens de programação

Linguagem de alto nívelUma linguagem é considerada de alto nível quando ela pode representar ideias abstratas de forma simples, diferente da linguagem de baixo nível que representa as próprias instruções de máquina.

• Códigos semelhantes ao inglês

• Permite notação matemática (traduzida pelos compiladores)

Exemplo:Bruto = Base + Extra

Page 32: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Linguagens de alto nível– FORTRAN (FORmula TRANslator)

• Desenvolvido pela IBM entre 1954 e 1957 • Utilizado para aplicações científicas e de engenharia• Ainda é usado

– COBOL (COmmon Business Oriented Language) • Desenvolvido em 1959 por um consórcio entre indústrias,

fabricantes de computadores e governo• Usado para manipular grandes quantidades de dados• Mais de um milhão de pessoas empregadas como programadores

de COBOL

– Pascal• Desenvolvido ao mesmo tempo que o C• Destinava-se ao ensino da programação em ambientes

acadêmicos • Carecia de recursos para torná-la útil em aplicações comerciais,

industriais e governamentais (pouco aceita)

32

Page 33: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Linguagem C– Evoluiu a partir de duas linguagens anteriores (BCPL e

B)– Incluiu tipos de dados (número inteiro, ponto

flutuante, etc)– Usado para a gravação de sistemas operacionais

modernos (Unix)– Independente do hardware (portátil)

– Aplicações escritas em C podem ser executadas com pouca ou nenhuma modificação em uma grande variedade de sistemas computacionais

– Padronização– Muitas pequenas variações de C existiam e eram

incompatíveis– ANSI/ISO 9899:1990– Fornecer à linguagem uma definição inequívoca e

independente de equipamento33

Page 34: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Labview

• Sintaxe de programação gráfica facilita a criação, a visualização e codificação de sistemas de engenharia

• Aplicações• Aquisição de dados

• Controle e monitoramento

• Automação de testes e validação

Page 35: Chapter 1 – Introduction to Computers and C++ Programmingrafael.berti/Programação/1... · 2017-03-14 · •Primeira calculadora mecânica •Adição e subtração Pré-história.

Dicas• Clareza e simplicidade

– Programas complicados são difíceis de ler, compreender e modificar

– Perda de tempo para testar e depurar erros

– Elevam a probabilidade de gerarem comportamentos imprevistos

• Software reutilizável– Método dos blocos de construção

– Evite reinventar a roda. Use os elementos existentes

– Se uma função preexistente existe, geralmente é melhor usa-lá do que escrever uma própria


Recommended