Programação de Computadores
Aula 02
Conteúdo da aula
•Princípios da Organização dos computadores:
Organização do Computador
Arquitetura básica de um computador
Programação de Computadores
Justificativa
Os conceitos apresentados nessa aula
servirão de base para um bom
entendimento de como as informações
são trabalhadas num programa de
computadores
Princípios da Organização de
Computadores
Organização do Computador
A representação da informação em um computador:
Os circuitos eletrônicos de um computador moderno operam com
sinais de 2 níveis distintos ou binários. Esta é uma solução
simples e de baixo custo.
Os circuitos do computador são formados por chips que possuem
como ingredientes básicos os transistores. O transistor funciona
como uma “chave”:
Se a tensão de entrada for alta, a resposta será um nível baixo (0);
Se a tensão de entrada for baixa, a resposta será um nível alto (1);
Agrupando vários transistores de forma conveniente pode se
obter várias funções lógicas.
Os dados armazenados e processados em um computador são
traduzidos em sinais elétricos binários, ou seja, em um conjunto
finito de 0 e 1. O que nos conduz ao conceito de bits.
Organização do Computador
Bits e Bytes
A palavra bit ou binary digit representa de forma lógica
um estado ligado/desligado ou binário existentes em
dispositivos eletrônicos digitais dos circuitos de um
computador como em registradores e memórias.
Convenciona-se que um bit “ligado” é representado
pelo símbolo 1 e “desligado”, por zero.
Organização do Computador
O uso e manipulação de números binários é
similar ao dos números decimais: a posição de
cada dígito de um número representa a potência
na base que ele está figurado.
Exemplo:
101012 = 1 x 24 + 0 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = 2110
2110 = 2 x 101 + 1 x 100
Organização do Computador
De forma semelhante, pode-se converter um
número decimal em binário, dividindo-se esse
número sucessivamente por 2, até que o
quociente seja zero.
O número binário corresponde é obtido lendo-se
os restos das divisões, da última para a primeira.
Organização do Computador
• Exemplo:2510
25 / 2 = 12 RESTO = 1
12 / 2 = 6 RESTO = 0
6 / 2 = 3 RESTO = 0
3 / 2 = 1 RESTO = 1
1 / 2 = 0 RESTO = 1
2510 = 110012
• Assim, o número binário correspondente ao decimal 2510 é 110012
Organização do computador
• Um byte representa o mesmo que 8 bits e para
fins de programação é o menor dado que se pode
manipular diretamente.
• Os múltiplos do byte também são utilizados para
representar as quantidades manipuladas.
o Exemplo:
Nome Valor
Quilobyte (Kb) 1.024 (2 ) bytes
10
Megabyte (Mb) 1.048.576 (220) bytes
Gigabyte (Gb) [Link] (230) bytes
Organização do Computador
Os tipos de informação manipulados pelo
computador durante a execução de um programa
são os dados e as instruções que operam esses
dados.
Na memória são sempre representados por bits.
Dentre os tipos mais usados temos:
Caracteres;
Cadeias de caracteres;
Imagens
sons
Organização do Computador
A arquitetura de um computador representa a
maneira na qual seus componentes estão
organizados.
Existem diversos modelos de arquiteturas
apresentados durante a evolução do computador.
A mais consagrada é conhecida como Arquitetura
de von Neumann, criada em 1946 e definia os
componentes básicos de seu computador:
CPU, BUS, dispositivos de entrada e saída (I/O Devices).
Organização do Computador
CPU (Processador): executa
programas armazenados na
memória.
Memória RAM (principal) é volátil
e é usada para armazenar
instruções e dados de um
programa.
BUS (caminhos): representam
uma “fiação” e seu propósito é
transmitir dados, que podem ser
endereços de memória, dados de
um programa e sinais de controle
para/de outros componentes
externos
Dispositivos de E/S: representam
interfaces para os dispositivos de
entrada e saída como teclado,
impressora, video, mouse, etc.
Programação de Computadores
Programação de Computadores
•Programação de Computadores é o processo de
escrita, teste e manutenção de um programa de
computador.
•O programa é escrito em uma linguagem de
programação, embora seja possível, com alguma
dificuldade, escrevê-lo diretamente em
linguagem de máquina.
•Diferentes partes de um programa podem ser
escritas em diferentes linguagens.
Linguagem de Programação
Uma linguagem de programação é um método
padronizado para comunicar instruções para um
computador.
É um conjunto de regras sintáticas e semânticas usadas
para definir um programa de computador.
Permite que um programador especifique precisamente
sobre quais dados um computador vai atuar, como
serão armazenados ou transmitidos e quais ações
devem ser tomadas sob várias circunstâncias.
Linguagens de Programação mais
populares (2015)
1. C
2. Java
3. Objective-C
4. C++
5. C#
6. PHP
7. JavaScript
8. Phyton
9. Perl
10. PL/SQL
A execução dos programas de computador
Memória:
A memória é uma sequência de “células numeradas”,
cada uma contendo uma pequena quantidade de
informação.
A informação pode ser uma instrução para dizer ao
computador o que fazer.
O tamanho de cada célula, e o número de células, varia
de computador para computador, e as tecnologias
utilizadas para implementar a memória variam
bastante.
A execução dos programas de computador
Entradas e Saídas
A E/S permite ao computador obter informações do
mundo externo e envia os resultados do trabalho para o
mundo externo. Existe uma infinidade de tipos de
dispositivos de E/S.
O que todos os dispositivos de E/S tem em comum é
que eles precisam codificar a informação coletada em
dados que podem ser processados pelo sistema digital.
Dispositivos de saída, por outro lado, decodificam os
dados em informação que é entendida pelo usuário do
computador.
A execução dos programas de computador
Processamento:
Dentro da CPU:
ULA (Unidade Lógico/Aritmética): faz as operações
elementares (adição, subtração, etc), operações lógicas
(AND, OR, NOT) e operações de comparação. É nessa
unidade que o trabalho é realmente feito.
UC (Unidade de Controle): armazena a posição de memória
que contém a instrução corrente que o computador está
executando, informando a ULA qual operação executar,
buscando a informação (da memória) que a ULA precisa
para executa-la e transferindo o resultado de volta para o
local apropriado da memória.
A execução dos programas de computador
Instruções do Computador:
O computador possui um limitado número de instruções
bem definidas. Por exemplo:
copie o conteúdo da posição de memória 123 para a
posição de memória 456
adicione o conteúdo da posição de memória 510 ao
conteúdo da posição 511 e coloque o resultado na posição
507
se o conteúdo da posição 012 é igual a 0, a próxima
instrução está na posição 678
A execução de programas de computador
• Instruções são representadas no computador como
números - o código para "copiar" poderia ser 007,
por exemplo.
• O conjunto particular de instruções que um
computador possui é conhecido como a linguagem
de máquina do computador.
• Na prática, as pessoas não escrevem instruções
diretamente na linguagem de máquina mas em uma
linguagem de programação, que é posteriormente
traduzida na linguagem de máquina através de
programas especiais (interpretadores e
compiladores).
Algoritmos
Longas jornadas começam com um pequeno passo
Algoritmos
A programação de computadores visa, numa
visão mais simplória, a resolução de
problemas utilizando meios computacionais.
Os algoritmos são uma ferramenta que
possibilitam ao desenvolvedor uma “pré-
visualização” ou um planejamento do que
posteriormente pode ser passado para uma
linguagem de computador.
Algoritmos
Formamente falando:
Algoritmo:
Mat.: Processo de cálculo ou de resolução de um grupo
de problemas semelhantes, em que se estipulam, com
generalidade e sem restrições, regras formais para a
obtenção do resultado ou da solução do problema
Inform.: Conjunto de regras e operações bem-definidas
e ordenadas, destinadas à solução de um problema ou
uma classe de problemas em um número finito de
etapas
Formas de Representação
Existem diversas formas de representação de
Algoritmos,
O Critério usado para classificar hierarquicamente
estas formas está diretamente ligado ao nível de
detalhe ou, inversamente, ao grau de abstração
oferecido.
Níveis de abstração:
Alto:
tratam os problemas apenas em nível lógico, evitando detalhes
de implementação muitas vezes relacionados com alguma
linguagem de programação específica.
Baixo:
possuem uma maior riqueza de detalhes e muitas vezes
acabam por obscurecer a idéia principal, o Algoritmos,
Formas de Representação
Dentre as formas de representação de Algoritmos
mais conhecidas destacam-se:
A Descrição Narrativa: Nesta forma de representação os
algoritmos são expressos diretamente em linguagem
natural:
Média de 3 números:
Somar 3 números
Dividir a soma obtida por 3
Apresentar o resultado
Vantagem: de fácil entendimento, permitindo uma fácil
comunicação do que se pretende.
Desvantagem: Dá oportunidade a segundas
interpretações
Formas de Representação
Fluxograma: tipo de diagrama
que pode ser entendido como INÍCIO
uma representação
esquemática de um processo, N1,N2,N3,MEDI
muitas vezes feita através de A,SOMA
gráficos que ilustram de forma
descomplicada a transição de
Ler N1, N2, N3
informações entre os elementos
que o compõem
Vantagem: o entendimento dos
gráficos é mais simples que o SOMA = N1+N2+N3
entendimento dos textos MEDIA = SOMA/3
Desvantagem: é necessário
aprender a simbologia dos MEDIA
fluxogramas, alem disso, o
algoritmo resultante não FIM
apresenta muitos detalhes,
dificultando a transcrição para
um programa
Formas de Apresentação
Pseudo-código: consiste em analisar o enunciado
do problema e escrever, por meio de regras pre-
definidas, os passos seguidos para a resolução:
Inicio
inteiro n1,n2,n3,soma,media;
ESCREVA(“Escreva 3 numeros”);
LEIA (n1,n2,n3);
soma <= n1+n2+n3;
media <= soma/3
ESCREVA (“A media e “ ,media);
fim
Formas de Apresentação
Vantagem: a passagem do algoritmo para qualquer
linguagem de programação é quase imediata, bastando
conhecer as palavras reservadas da linguagem que será
utilizada
Desvantagem: é necessário aprender as regras do
pseudo-código.