quinta-feira, 30 de junho de 2016

A memória do computador - parte 3 de 3

Posição de Memória

Um computador, tendo bytes de 8 bits, tem cada posição de memória constituída por um grupo de 8 núcleos de memória.


esquema didático
word de 32 bits / 4 bytes










Acima estão representadas onze posições (referentes á onze bytes) da memória de um computador.

Posição = Endereço

Poderíamos alocar a representação do número 469 nos três últimos bytes desse esquema:.









Tipos de Memória

RAM: Random Access Memory
ROM: Read Only Memory
EPROM: Erasable Programmable Read Only Memory
EAROM: Electrically Alterable Read Only Memory

A memória do computador - parte 2 de 3

Unidades


No que se refere aos bits e bytes, tem-se as seguintes medidas:
1 Byte = 8 bits
1 kilobyte (KB ou Kbytes) = 1024 bytes
1 megabyte (MB ou Mbytes) = 1024 kilobytes
1 gigabyte (GB ou Gbytes) = 1024 megabytes
1 terabyte (TB ou Tbytes) = 1024 gigabytes
1 petabyte (PB ou Pbytes) = 1024 terabytes
1 exabyte (EB ou Ebytes) = 1024 petabytes
1 zettabyte (ZB ou Zbytes) = 1024 exabytes
1 yottabyte (YB ou Ybytes) = 1024 zettabytes
É também por meio dos bytes que se determina o comprimento da palavra de um computador, ou seja, a quantidade de bits que o dispositivo utiliza na composição das instruções internas, como por exemplo:
8 bits => palavra de 1 byte
16 bits => palavra de 2 bytes
32 bits => palavra de 4 bytes
Na transmissão de dados entre dispositivos, geralmente usa-se medições relacionadas a bits e não a bytes. Assim, há também os seguintes termos:
1 kilobit (Kb ou Kbit) = 1024 bits
1 megabit (Mb ou Mbit) = 1024 Kilobits
1 gigabit (Gb ou Gbit) = 1024 Megabits
1 terabit (Tb ou Tbit) = 1024 Gigabits
E assim por diante. Você já deve ter percebido que, quando a medição é baseada em bytes, a letra 'b' da sigla é maiúscula (como em GB). Quando a medição é feita em bits, o 'b' da sigla fica em minúsculo (como em Gb).
Como já dito, a utilização de medições em bits é comum para informar o volume de dados em transmissões. Geralmente, indica-se a quantidade de bits transmitidos por segundo. Assim, quando queremos dizer que um determinado dispositivo é capaz de trabalhar, por exemplo, com 54 megabits por segundo, usa-se a expressão 54 Mb/s:
1 Kb/s = 1 kilobit por segundo
1 Mb/s = 1 megabit por segundo
1 Gb/s = 1 gigabit por segundo
E assim por diante.
Nos Estados Unidos, é comum o uso de KbpsMbps ou Gbps para expressar a quantidade de bits transferidos, com a terminação "ps" se referindo a "per second (por segundo)". No entanto, "ps" é uma sigla para picossegundo, de acordo com o Sistema Internacional de Unidades, assim, o uso de "/s" é mais adequado para expressar bits transferidos por segundo.

Kibibit, kibibyte e afins

Se você adquirir, por exemplo, um HD de 500 GB, vai perceber que o sistema operacional do computador mostrará uma capacidade menor que essa em relação ao dispositivo. Isso porque os sistemas operacionais, de modo geral, consideram 1 kilobyte como sendo equivalente a 1024 bytes, e assim se segue com megabytes, gigabytes, terabytes e etc, tal como explicado anteriormente. No entanto, para fabricantes de discos rígidos ou de dispositivos SSD, por exemplo, 1 kilobyte corresponde a 1000 bytes, e assim por diante.
Afinal, o que é correto, 1000 bytes ou 1024 bytes? Há organizações que defendem tanto um quanto o outro.
Uma possível solução para esse impasse está nas terminologias e abreviações que a International Electrotechnical Commission (IEC) criou para indicar as medições baseadas em 1024 bytes, que são as seguintes:
1 kibibyte (ou KiB) = 1024 bytes
1 mebibyte (ou MiB) = 1024 kibibytes
1 gibibyte (ou GiB) = 1024 mebibytes
1 tebibyte (ou TiB) = 1024 gibibytes
1 pebibyte (ou PiB) = 1024 tebibytes
1 exbibyte (ou EiB) = 1024 pebibytes
1 zebibyte (ou ZiB) = 1024 exbibytes
1 yobibyte (ou YiB) = 1024 zebibytes
Os mesmo prefixos dos nomes acima são empregados também nas medições baseadas em bits: kibibit, mebibit, gibibit, tebibit e assim por diante.
O sistema de medidas elaborado pela IEC é tido como o correto, deixando os prefixos quilo, mega, giga, tera, peta, exa, zetta e yotta (que são oriundos do Sistema Internacional de Unidades) representando 1000 bytes e seus múltiplos (isto é, potências de 10). Assim, as denominações da IEC equivalem às representações de 1024 bytes e seus múltiplos (potências de 2). Em resumo, essas medições ficam assim:
1 Kilobyte = 1000 bytes1 kibibyte = 1024 bytes
1 Megabyte = 1000 kilobytes1 mebibyte = 1024 kibibytes
1 Gigabyte = 1000 megabytes1 gibibyte = 1024 mebibytes
1 Terabyte = 1000 gigabytes1 tebibyte = 1024 gibibytes
1 Petabyte = 1000 terabytes1 pebibyte = 1024 tebibytes
1 Exabyte = 1000 petabytes1 exbibyte = 1024 pebibytes
1 Zettabyte = 1000 exabytes1 zebibyte = 1024 exbibytes
1 Yottabyte = 1000 zettabytes1 yobibyte = 1024 zebibytes

Finalizando

Você deve estar se perguntando o motivo de não ver (ou raramente ver) o sistema da IEC sendo utilizado, uma vez que ele é tido como o correto para representações de 1024 bytes. A resposta, provavelmente, é "comodidade". Tais medições são relativamente recentes (a primeira aprovação ocorreu em 1998) e, para a maior parte da indústria, adotá-las pode gerar ainda mais divergências e até mesmo elevação de custos. Como consequência, kilobytes, megabytes e etc continuam representando para uns medições em 1024 bytes e, para outros, medições em 1000 bytes. Até o momento, o Engenharia do Futuro se encaixa no primeiro "grupo", uma vez a utilização de kilobytes e subsequentes para representações de 1024 bytes é mais aceita pelos leitores do site e pela maior parte das empresas mais influentes da indústria, como Google e Microsoft.

O homem se tornará inútil.

(...)"O homem se tornará inútil. E como, para viver precisa consumir, tornar-se-á um estorvo. O robot anulará o homem. Dará cabo do homem...

Na lógica da sociedade informatizada, este "roteiro", para um observador superficial dos fenômenos que começam a se desenrolar e que estão destinados a tudo transformar na década de 80, não parecerá absurdo. E, no entanto, o é !

É mais que isso: é o inverso da realidade que vamos viver e que já se forma nos fatos. Quanto mais microprocessadores e telecomunicações existirem, mais a necessidade de uma intensa contribuição humana."

Jean Jacques Servan Schreiber,
in "O Desafio Mortal", Ed. Nova Fronteira

A memória do computador - parte 1 de 3

O Conceito de BIT

O computador só pode identificar a informação através de sua elementar e restrita capacidade de distinguir entre 2 estados; por exemplo: algo está imantado num sentido ou está imantado no sentido oposto. A uma dessas opções o computador associa o valor 1,e ao outro estado, o valor 0. Essa é a essência de um sistema chamado biestável.

Outros exemplos de sistemas biestáveis: uma lâmpada que, se acesa, representaria o estado 1 e, se apagada, representaria o estado 0; um válvula conduzindo ou não o sinal; um transistor deixando ou não passar corrente elétrica.

Os computadores armazenam as informações e fazem todo o seu tratamento baseado em fenômenos eletromagnéticos sobre sistemas biestáveis. Seus símbolos básicos são, pois, 0 e 1.

Os dígitos 0 e 1 são os únicos elementos do sistema de numeração de base 2. Por isso, 0 e 1 receberam o nome de dígitos binários ("binary digit") ou, abreviadamente, BIT - denominação que estendeu a uma posição elementar de memória ou a menor unidade de informação no computador.

"BYTES" e palavras

É intuitivo perceber que cada um dos elementos armazenados na memória do computador fica em um "local" certo e sabido, com um endereço próprio. Só assim torna-se possível a busca na memória exatamente do que se quer. Assim, em termos lógicos, pode-se ver a memória como um conjunto de endereços.

Fisicamente o que se têm na memória são núcleos que podem apresentar um estado binário. Sendo assim, podemos dizer que: um conjunto desses núcleos pode apresentar "n" combinações em relação ao estado cada um.

Denomina-se BYTE - contração de binary term - á unidade básica de tratamento de informação. Um byte é composto por 8 bits - pois, na maioria dos códigos utilizados em computadores, cada letra, algarismo ou símbolo necessita de 8 dígitos binários para ser identificado.

=> 2^8 - bits 0 e 1 elevados á 8 (núcleos ou bits) = 256 representações diferentes.

Os diversos modelos de computadores agrupam, por vezes, os bytes em grupos de 2, 4, 6 e até 8 - esse grupo de bytes recebe o nome de palavra (word) e equivale ao número de bits simultaneamente processados pelo computador.





Homem X Máquina

O cérebro humano, de um ponto de vista estritamente funcional, pode ser definido como um complexo sistema de 100 bilhões de neurônios.

Para conter um mesmo número de elementos do cérebro, um computador em fins da década de 40, a fase das válvulas, teria o tamanho de São Paulo.

Em fins dos anos 50, com os transistores, bastava um computador com as dimensões do Cristo Redentor.

Nos anos 60: o computador seria do tamanho de um ônibus.

Nos anos 70, com a integração em larga escala (LSI), o computador seria do tamanho de uma televisão.

Estamos nos anos 2000.

O computador analógico mede. O computador digital conta.

Os sistemas de medição, ou de computação de dados, podem ser classificados em dois grupos:

- sistemas analógicos
- sistemas digitais

No painel de um automóvel, o velocímetro é um marcador analógico e o hodômetro, assinalando as distâncias percorridas, é digital.

Nos sistemas analógicos, converte-se a manifestação do fenômeno, que se quer medir, em algum tipo de sinalização visual que se comporta analogamente.

Nos sistemas digitais mede-se com determinada frequência o estado; e os resultados são sempre traduzidos em dígitos.

Existem duas classes de computadores, fundamentalmente diferentes, quanto ao princípio de operação: computadores analógicos e computadores digitais.

O computador analógico representa variáveis por meio de analogias físicas. Trata-se de uma classe de computadores que resolve problemas referentes a condições físicas, por meio de quantidades mecânicas ou elétricas, utilizando circuitos equivalentes como analogia ao fenômeno físico que está sendo tratado.

O computador digital processa informações representadas por combinações de dado discretos os descontínuos. Mais especificamente: trata-se de um dispositivo projetado para executar sequências aritméticas e lógicas.

O computador analógico mede. O computador digital conta.

Gerações

A primeira geração do computador é de 1946 e 1956 - tinham circuitos á válvula e seus tempos de operação mediam-se em milisegundos - 10^-3 segundos.

A segunda geração veio a seguir com circuitos eletrônicos transistorizados e seus tempos de operação mediam-se em microsegundos - 10^-6 segundos.

A terceira geração surgiu por volta de 1967, usando circuitos integrados e tempos de operação da ordem de nanosegundos - 10^-9 segundos.

A quarta geração surgiu na segunda parte da década de 70 - com o avanço da microeletrônica. Utilizam circuitos integrados com tecnologia LSI (até 10.000 componentes em uma única fração de pastilha) e VLSI (mais de 10.000 componentes).

FUNCIONAMENTO DO ALGORITMO

IF ... THEN - Se ... Então





















IF ... THEN ... ELSE - Se ... Então ... Senão

























ESTRUTURA DO ALGORITMO

Constantes

Constante é um determinado valor fixo que não se modifica ao longo do tempo - durante a execução de um algoritmo.

Variável

Variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado. Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando necessário.

As expressões combinam variáveis e constantes para calcular novos valores.

DADO 1              <=VARIÁVEL
      3                    <= CONSTANTE

Um algoritmo deve conter declarações que especificam de que tipo são as variáveis e as constantes que ele utilizará -  Numéricas, Caracteres, ou Lógicas.

Operadores

Os operadores são meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados dentro do algoritmo - executam o processamento daos dados.

Operadores Aritméticos

OPERAÇÃO SÍMBOLO
ADIÇÃO +
SUBTRAÇÃO -
MULTIPLICAÇÃO *
DIVISÃO /
EXPONENCIAÇÃO **

Hierarquia das Operações Aritméticas 
1 º ( ) Parênteses
2 º Exponenciação
3 º Multiplicação, divisão (o que aparecer primeiro)
4 º + ou – (o que aparecer primeiro)


Operadores Relacionais

OPERAÇÃO SÍMBOLO
Igual a =
Diferente de <> ou #
Maior que >
Menor que <
Maior ou igual a >=
Menor ou igual a <=

Operadores Lógicos

E AND
OU OR
NÃO NOT

REPRESENTANDO O ALGORITMO

O Diagrama de Blocos é uma forma padronizada e eficaz para representar os passos lógicos de um determinado processamento. Com o diagrama podemos definir uma seqüência de símbolos, com significado bem definido, portanto, sua principal função é a de facilitar a visualização dos passos de um processamento.

Simbologia























Exemplo






DESENVOLVENDO O ALGORITMO

A todas as atividades que, a partir de dados conhecidos, através  de processamento, conduzem a resultados procurados, com ou sem o emprego de qualquer equipamento auxiliar, podemos denominar atividades de processamento de dados.





- dados de entrada: elementos conhecidos de um problema / menor parte de uma informação;
- informação: conjunto estruturado de dados;
- instrução: comando que define uma operação a ser executada;
- programa: conjunto de instruções ordenadas logicamente;

Pseudocódigo

Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando formos programar em uma linguagem, por exemplo Visual Basic, estaremos gerando código em Visual Basic. Por isso os algoritmos são independentes das linguagens de programação. Ao contrário de uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o algoritmo.

O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação.

Regras para construção do Algoritmo

• Usar somente um verbo por frase
• Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática
• Usar frases curtas e simples
• Ser objetivo
• Procurar usar palavras que não tenham sentido dúbio

Sistemática para elaboração do Algoritmo

Imagine o seguinte problema:
- Calcular a média final dos alunos da 3ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4.

Para montar o algoritmo proposto, faremos três perguntas:

a) Quais são os dados de entrada?
R: Os dados de entrada são P1, P2, P3 e P4

b) Qual será o processamento a ser utilizado?
R: O procedimento será somar todos os dados de entrada e dividi-los por 4 (quatro)

c) Quais serão os dados de saída?
R: O dado de saída será a média final

Algoritmo

1. INICIO algoritmo

2. Receba a nota da prova1
3. Receba a nota de prova2
4. Receba a nota de prova3
5. Receba a nota da prova4

6. Some todas as notas e divida o resultado por 4

7. Mostre o resultado da divisão

8. FIM Algoritimo


ALGORITMO

Um algoritmo nada mais é do que uma receita que mostra passo a passo os procedimentos necessários para a resolução de uma tarefa. Ele não responde a pergunta “o que fazer?”, mas sim “como fazer”. Em termos mais técnicos, um algoritmo é uma sequência lógica, finita e definida de instruções que devem ser seguidas para resolver um problema ou executar uma tarefa.

EXEMPLO: ALGORITMO PARA TROCAR UMA LÂMPADA QUEIMADA

1.   Início
2.   Verifica se o interruptor está desligado;
3.   Posicionar a escada no local;
4.   Subir os degraus da escada;
5.   Parar na altura apropriada;
6.   Retirar a lâmpada queimada;
7.   Colocar a lâmpada nova;
8.   Descer da escada;
9.   Aciona o interruptor;
10. Se a lâmpada não acender, então:
11.           Refazer os passos 2 á 9;
12.           Senão
13.           Tarefa terminada;
14. Joga a lâmpada queimada no lixo;
15. Guarda a escada;
16. Fim

Etimologia

Os historiadores da palavra algoritmo encontraram a origem no sobrenome, Al-Khwarizmi (se diz Algorithmi), matemático persa do século IX. Álgebra e algorismo também formam formas corrompidas da palavra. O dicionário Vollständiges Mathematisches Lexicon (Leipzig, 1747) refere a palavra "Algorithmus" combinado as noções de quatro cálculos aritméticos, nomeadamente a adição, multiplicação, subtração e divisão. A frase "algorithmus infinitesimalis" foi utilizado para significar; "maneiras de calcular com quantidades infinitésimas" (pequenas), uma invenção de Leibnitz.

Algoritmo no computador

Um programa de computador é essencialmente um algoritmo que diz ao computador os passos específicos e em que ordem eles devem ser executados, como por exemplo, os passos a serem tomados para calcular as notas que serão impressas nos boletins dos alunos de uma escola.

Quando os procedimentos de um algoritmo envolvem o processamento de dados, a informação é lida de uma fonte de entrada, processada e retornada sob novo valor após processamento.

Para qualquer processo computacional, o algoritmo precisa estar rigorosamente definido, especificando a maneira que ele se comportará em todas as circunstâncias. A corretividade do algoritmo pode ser provada matematicamente.

A maneira mais simples de se pensar um algoritmo é por uma lista de procedimentos bem definida, na qual as instruções são executadas passo a passo a partir do começo da lista, uma ideia que pode ser facilmente visualizada através de um fluxograma.

quinta-feira, 23 de junho de 2016

Isto é para os loucos...

Isto é para os loucos. Os desajustados. Os rebeldes. Os criadores de caso. Os que são peças redondas nos buracos quadrados.Os que vêem as coisas de forma diferente. Eles não gostam de regras. E eles não têm nenhum respeito pelo status quo. Você pode citá-los, discorda-los, glorificá-los ou difamá-los.
A única coisa que você não pode fazer é ignorá-los. Porque eles mudam as coisas.
Eles inventam. Eles imaginam. Eles curam. Eles exploram. Eles criam. Eles inspiram.
Eles empurram a raça humana para frente.
Talvez eles tenham que ser loucos.
Como você pode olhar para uma tela em branco e ver uma obra de arte? Ou sentar em silêncio e ouvir uma música jamais composta? Ou olhar para um planeta vermelho e ver um laboratório sobre rodas?
Enquanto alguns os vêem como loucos, nós vemos gênios. Porque as pessoas que são loucos o suficiente para achar que podem mudar o mundo, são as que de fato, mudam.