Programação Computacional
Profa. Madeleine Medrano
[email protected]
Motivação
Operação em tempo real de Sistemas Elétricos de Potencia (SEP)
SCADA
2
Objetivos:

Sistemas numéricos: representação e aritmética nas bases: decimal,binária,octal
e hexadecimal;

Introdução à lógica; álgebra e funções booleanas;

Algoritmos estruturados: tipos de dados e variáveis.


0peradores e expressões aritméticas
operadores lógicos e expressões lógicas;

Estruturas de controle de fluxo;

Entrada e saída de dados;

Estruturas de dados;

Organização e manipulação de arquivos.
Programação Computacional


Calendário e Atendimento : Turma 1
Ficha da Disciplina

Aulas Teóricas - Sala C302
 Quinta Feira (10:50-12h40)

Aulas Práticas – Laboratório C102
 Terça Feira (8h50-10h50)

Atendimento aos alunos: Sexta-feira (8h-10h, Sala
dos professores)
Programação Computacional



Calendário e Atendimento : Turma 2
Ficha da Disciplina
Aulas Teóricas - Sala C303
 Quarta Feira (8h50-10h50)

Aulas Práticas – Laboratório C102
 Segunda Feira (10:00-11h40)

Atendimento aos alunos: Sexta-feira (8h-10h, Sala
dos professores)
Programação Computacional



Calendário e Atendimento : Turma 6
Ficha da Disciplina
Aulas Teóricas - Sala C307
 Quarta Feira (10h50-12h50)

Aulas Práticas – Laboratório C102
 Sexta Feira (10:00-11h40)

Atendimento aos alunos: Sexta-feira (8h-10h, Sala
dos professores)
Programação Computacional
Avaliações e Trabalhos
 Avaliações Teóricas 3 provas: 75 pontos

Prova Substitutiva: 24/07/2015
 Hora/Local: 7h30min / Sala 3Q307

Avaliações nas listas de exercícios:
 25 pontos

Bibliografia Básica
1. Introdução a Algoritmos e Programação, por Fabrício Ferrari.
Apostila encontrada em:
http://www.ferrari.pro.br/home/index.php.
2. Aprendendo a Programar Programando na Linguagem C, por Jaime
Evaristo. Apostila encontrada
em: http://professor.ic.ufal.br/jaime/.
3.Curso de Linguagem C –UFMG.
Apostila http://www.ead.cpdee.ufmg.br/cursos/C/home.html.
Bibliografia Complementar

1. ASCÊNCIO, A. F. G., Fundamentos da Programação de Computadores:
Algoritmos, Pascal, C/C++ e Java. 2. ed, Pearson, 2009.

2. ARAÚJO, E. C., Algoritmos - Fundamento e Prática. 3.ed. Visual Books, 2007.

3. JUNIOR, D. P., NAKAMITI, G. S., ENGELBRECHT, A. M., BIANCHI F.,
Algoritmos E Programação de Computadores. Elsevier Brasil, 2011.

4. FORBELLONE, A. L. V., EBERSPÄCHER, H. F.; Lógica de programação: a
construção de algoritmos e estruturas de dados. Prentice Hall, 2013.

5. GNU C Reference Manual.
http://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html. Acessada
Programação Computacional

Material Complementar
 Curso de Linguagem C - Adriano Cruz Nucleo de Computação Eletrônica (UFRJ)
Linguagem C: Descomplicada - Andre Backes
(UFU)
Portal de Video Aulas - Linguagem C - André
Backes (UFU)
Listas de Exercícios - Linguagem C - André
Backes (UFU)
Programação Computacional

Bibliografia Adicional

A. Backes. Linguagem C: Completa e
Descomplicada, Elsevier-Campus, 2013.

L. Damas. Linguagem C, Editora LTC, 2007.

A. M. Tenenbaum et al. Estruturas de dados
usando C , Makron Books, 1995.
Roteiro
Conceitos preliminares
 O computador
 Histórico dos computadores
 Arquitetura Básica
Unidade Central de Processamento
(CPU)
Memória
Dispositivos de entrada e Saída




O computador

É uma maquina que manipula dados a
partir de uma lista de instruções

Os computadores podem ser:
Mecânicos (computador analógico)
 Eletrônicos (computador digital)

Histórico dos Computadores

MECÂNICOS


Ábaco 1000 A.C
O ábaco é um antigo instrumento de cálculo que pode ser considerado como uma
extensão do ato natural de se contar nos dedos.
É uma calculadora decimal e manual, que consiste em uma moldura retangular com
cordas ou arames transversais, que correspondem a posições digitais (unidades,
dezenas, centenas,…), em que ficam os elementos que são contados (contas, bolas,
fichas, …), os quais podem ser deslizados livremente.

No final, de acordo com o número de elementos, há um valor representado.
Histórico dos Computadores



Ossos de Napier 1612
No início do século XVII, o escocês John Napier inventou um dispositivo que são tabelas de
multiplicação gravadas em bastão, o que evitava a memorização da tabuada, e que trouxe
grande auxílio ao uso de logaritmos, em execução de operações aritméticas como
multiplicações e divisões longas.
Hoje, o dispositivo aperfeiçoado é empregado tão freqüentemente pelos engenheiros, através
da régua de cálculo.
Histórico dos Computadores







Pascaline, Pascal 1642
La pascaline foi a primeira calculadora mecânica do mundo, planejada por Blaise Pascal em
1642.
Originalmente, ele pretendia construir uma máquina que realizasse as quatro operações
fundamentais, mas apenas conseguia fazer diretamente operações de adição e subtração.
As operações de multiplicação e divisão podiam ser feitas por repetição.
Blaise Pascal se motivou a criar esta máquina porque seu pai era contador e precisava de
ajuda com cálculos mais avançados.
Pascal então,com seu conhecimento em física e em matemática criou uma máquina com um
engenhoso sistema de engrenagens que fazia contas de adição e subtração.
Quando a engrenagem vira-se a direita era feito adição,quando vira-se a esquerda era feito a
subtração dos valores armazenados em 2 ou 3 engrenagens anteriores

Histórico dos Computadores

Tear automático, Joseph-Marie Jacquard 1801

Em 1804, Joseph Marie Jacquard construiu um tear inteiramente automatizado, que podia
fazer desenhos muito complicados.

Esse tear era programado por uma série de cartões perfurados, cada um deles controlando
um único movimento da lançadeira.

Jacquard sentiu-se incomodado com a monótona tarefa que lhe fora confiada na
adolescência: alimentar os teares com novelos de linhas coloridas para formar os desenhos
no pano que estava sendo fiado.

Como toda a operação era manual, a tarefa de Jacquard era interminável: a cada segundo,
ele tinha que mudar o novelo, seguindo as determinações do contratante. Com o tempo,
Jacquard foi percebendo que as mudanças eram sempre sequenciais
Histórico dos Computadores
. E inventou um processo simples: cartões
perfurados, onde o contratante poderia
registrar, ponto a ponto, a receita para a
confecção de um tecido.
.Os mesmos cartões perfurados de Jacquard,
que mudaram a rotina da industria têxtil,
teriam, poucos anos depois, uma decisiva
influência no ramo da computação.
Histórico dos Computadores
Máquina de diferenças, Babbage 1882

A máquina diferencial para cálculos com polinómios.

Em plena segunda fase da Revolução Industrial, estavam em progresso muitas tentativas de
automação de processos, com destaque para aqueles envolvendo cálculos para a
composição de tabelas trigonométricas e de logaritmos quer para o emprego na navegação,
na pesquisa científica ou na engenharia.

Um modelo capaz de resolver equações polinômicas através de diferenças entre números, e
assim, de efetuar os cálculos necessários para construir tabelas de logaritmos.

A máquina tinha a capacidade de receber dados, processá-los, armazená-los e exibi-los.
Graças a ela Babbage ficou conhecido como o pai do computador e conseguiu apoio
governamental para criar um modelo mais complexo, o "Engenho Analítico".

Diminuíram-se os erros nas leituras dos resultados, pois ela imprimia-os em cartões
perfurados;
Histórico dos Computadores


Tabulador eletromecânico, Hollerith 1890
foi um empresário norte-americano e o principal impulsionador do leitor
de cartões perfurados, instrumento essencial para a entrada de
informação para os computadores da época.
 Foi também um dos fundadores da IBM, precursor do processamento de
dados[2] .
 Elaborado para calcular as estatísticas dos censos dos EUA, o
dispositivo tornaria-se o precursor dos computadores atuais
Histórico dos Computadores
1a GERAÇÃO – eletro-eletrônico
Z1, Z2, Z3,Z4 (relés), Konrad Zuse 1935
Na Alemanha criaram modelos teste
que utilizavam interruptores eletromecânicos
e que consistia num dispositivo controlado
por um programa baseado no sistema binário.
Por ultimo desenvolveram o Z4 que era
1000 vezes mais rápido que qualquer
máquina existente. Esta maquina era
constituída por válvulas eletrônicas
e por um teclado de introdução de dados,
com vista à descodificação de mensagens dos aliados.
Histórico dos Computadores


MARK-1, 1941, 120 m2, 10 multiplicações em 3 segundos
Em 1941, Howard H. Aiken, da universidade de Harvard, desenvolve
a ideia de Babbage junto com cientistas de seu departamento e
engenheiros da IBM. Como resultado desse desenvolvimento,
construíram o primeiro computador eletromecânico baseado em
relês e engrenagens, denominado Calculadora Automática de
Sequencia controlada – ASCC) que recebeu o nome de Mark I
Histórico dos Computadores
ENIAC, (1946-1955)
30 toneladas, 18000 válvulas, 5000 somas/s

John W. Mauchly e J. Prester Eckert Jr.,
junto com os cientistas
da Universidade da Pensylvânia,
construíram, na Escola Moore
de Eng. Elétrica, o primeiro
computador eletrônico,
foi o ENIAC (Eletronic Numerical
Integrator and Calculator).
Era um projeto militar americano
para o cálculo da trajetória
de morteiros através de tabelas.
Evolução dos Computadores

2a GERAÇÃO – transistores 1947
 TX-0, 1957

PDP-1, Digital, 1o computador comercial
Evolução dos Computadores

3a GERAÇÃO – circuitos integrados 1958

IBM 360, 1965

PDP-11, sucesso universitário
Evolução dos Computadores

4a GERAÇÃO – microprocessadores 1970
 Intel 4004, 1971, 4 bits
 Altair 8800, 1974, montado em kits
Intel 8008, 1972


.
Evolução dos Computadores

Apple, 1976, TV+Teclado, BASIC escrito por Bill Gates
Com um processador MOS de baixo
custo, desenvolvido pelo mesmo time
Que criara processadores para a Motorola, o Apple II conseguiu ser
mais rápido e mais baratos que seus concorrentes na época.
Evolução dos Computadores

IBM-PC, 1981, computador pessoal, (projeto aberto, processador
8088 Intel,16 bits, 4.77 MHz, 16 kb RAM, US$ 4400
Evolução dos Computadores
Computador All in One LG V545 com Intel Core i5 4GB 500GB TV
Digital LED 23" Windows 8.1
Evolução dos Computadores
Arquitetura Básica (Von Neumann)

Internamente os computadores modernos podem ser caracterizados por
três partes distintas, a unidade central de processamento (UCP), a
memória (MEM) e os dispositivos de entrada e saída (E/S).
Organização Básica de um
Computador Sequencial

A seguir descreveremos cada uma destas partes
Unidade de Entrada

Os dispositivos de entrada e saída de dados (E/S) são
de suma importância pois qualquer informação que
deva entrar ou sair do computador será feita através
deles. Dentre os dispositivos de entrada podemos
citar: teclado, mouse, câmera, digitalizador.

O dispositivo de entrada padrão é o teclado,
enquanto que a saída padrão é o monitor.

Isto significa que sempre que não for explicitamente
especificado, um programa tentará ler do teclado e
escrever para o monitor.
Unidade de Saída

Os dispositivos de saída podem ser: monitor,
impressora, saída de som, por exemplo.

Os dispositivos de E/S se comunicam com o
computador através de portas específicas de
comunicação, como porta paralela, porta serial, porta
USB, porta SCSI, porta Firewire, porta PS/2, e assim
por diante.
Cada porta compreende um tipo de conector
específico, porém mais do que isso um protocolo de
comunicação entre dispositivos.

Unidade Central de
Processamento (UCP)

A UCP (ou CPU da sigla em inglês, Central Processing Unit) é
um conjunto de dispositivos eletrônicos responsável pelas
operações de processamento referentes aos cálculos lógicos e
matemáticos. Além disso é responsável pela execução dos
programas e pelo comportamento das outras unidades no
sistema. Para execução das operações de processamento
citadas, a UCP realiza sempre as seguintes tarefas:
1. busca de uma instrução na memória;
2. interpretação de uma instrução;
3. execução de uma operação representada na instrução;
4. gravação de eventuais resultados do processamento;
5. reinício de todo o processo (caso necessário)
Unidade Central de
Processamento (UCP)

As principais partes da UCP são:

A Unidade Lógica e Aritmética

Unidade de Controle

Memórias (Registradores, Memória Principal (ou
Memória RAM), Memória ROM e Cache).
Unidade Lógica e Aritmética
(UAL)

Parte da CPU que realiza operações
aritméticas (soma, subtração, multiplicação,
divisão, resto, troca de sinal, etc) e operações
lógicas (and, or, not, xor, etc).

responsável por realizar cálculos
matemáticos mais complexos de maneira
mais rápida.
Memória Principal
A memória é o dispositivo responsável por armazenar dados.
Os vários tipos de memória no computador são classificadas de
maneira geral de acordo com a sua capacidade de leitura, escrita
e volatilidade. São divididas em:
RAM sigla para memória de acesso aleatório, é uma memória
em que se pode ler e escrever, mas cujo conteúdo é perdido
uma vez que o computador é desligado.
É a memória principal do computador e a mais usada pelos
aplicativos e sistema Operacional.
Memória Principal

RAM (Random Access Memory). A
recuperação dos dados é feita através de
circuitos lógicos e por isso é rápida. Não é tão
grande, já que depende muito da tecnologia
de integração destes circuitos.

É uma memória volátil, i.e., quando o
computador é desligado, todos os dados nesta
memória se perdem.
Memória ROM

ROM (Read Only Memory) sigla para memória
somente-leitura, como o nome diz só é
possível ler seu conteúdo.
 É uma memoria que contém dados e códigos
de execução que não podem ser alterados
 Uma das aplicações desta memória é manter
código de execução para a leitura e execução
de um sistema operacional.
 Não se altera se o computador é desligado.
Memória Cache

Memória rápida projetada para guardar dados
que foram recentemente acessados.
 Para buscar um certo dado na memória RAM,
é considerado se este pode estar na memória
cache, e em caso positivo a busca na
memória RAM é interrompido e este é
recuperado diretamente da memória cache.

Tem tempo de acesso mais rápido que a
memória RAM.
Registradores

Memórias de alta velocidade ligada a
operações de cálculos lógicos e
aritméticos. Em geral em quantidade e
tamanhos pequenos.
Unidade de Controle
Parte da CPU que busca na memória a
próxima instrução e a decodifica para
ser executada.
 Dependendo da instrução, pode-se ter
uma transferência do controle para a
unidade lógica e aritmética ou o envio de
dados para os componentes externos à
CPU.

Memória Secundária

Memória para armazenamento a longo prazo.
Os dados armazenados nesta memória não
são perdidos quando se desliga o
computador.

Em geral de dimensões maiores que a
Memória RAM mas de acesso mais lento, já
que envolvem o uso de dispositivos
mecânicos. Ex. Discos rígidos,disquetes, fitas
magnéticas, etc.
Resumo


Podemos ver que há diversos tipos de memórias em
um computador. Cada uma destas memórias usa
tecnologia que reflete no custo, na velocidade de
acesso e na quantidade de armazenamento.
A seguinte ordem apresenta algumas memórias
ordenadas, de maneira crescente, pela quantidade de
armazenamento:


Registrador – Memória Cache – Memória RAM – Discos
Rígidos.
Esta mesma ordem apresenta o custo relativo e a
velocidade de acesso de maneira decrescente.
Fim da apresentação

Obrigada pela atenção
Download

baixar slides