A Tecnologia e o homem

segunda-feira, 4 de junho de 2012

Questões a colocar numa comunicação de dados

Vamos supor que queremos transmitir informação da língua portuguesa entre 2 pontos numa comunicação dedicada.

Suponhamos que queremos transmitir letras - a) apenas minúsculas, b) dígitos de 0 a 9, e os seguintes caracteres --->   ponto final, vírgula, ponto de exclamação e ponto interrogativo, espaço em branco --- .,!?


Ora        a) a b c d e f g h i j l m n o p q r s t u v x y z - 24 elementos diferentes


               b) 0 1 2 3 4 5 6 7 8 9  --- 10 elementos

                 c) . , ! ? - 5 elementos


No total temos 39 elementos diferentes. Neste elemento de comunicação para simplificar não se admite acentos, nem letras maiúsculas.

Este exemplo é didáctico.

Para já temos de codificar os elementos em informação binária -

como temos 39 elementos diferentes, temos de saber quantos bits temos de atribuir a cada elemento para a transmissão ser de qualidade.

2 levantado a n é o número de combinações diferentes para um determinado n. Por exemplo n=3,

2 levantado a 3 =8 ---


logo  
000
001
010
011
100
101
110
111 --- 8 elementos diferentes com 3 bits .

Como temos 39 elementos---

2 levantado a 5 =32   ---   não chega

2 levantado a 6 =64  --- já chega - ---- logo 6 bits para transmitir cada caracter - letra do abecedário, dígito, ou ponto c)


Se por exemplo queremos transmitir a informação:

                    para saber informatica preciso estudar muito.


temos 39 letras do abecedário 5 espaços e 1 ponto de interrogação.

No total temos 45 elementos para transmitir com 6 bits cada um logo ---- 45 X 6= 270 bits a transmitir.

________              ___________________          
   teclado                     codificador                        _________________               
                          ->   cada elemento em 6 bits    ->       canal de transmissão               
                                                                               (50 metros, por exemplo) ->
________            _____________________          __________________      

_________
descodificador
cada 6 bits em elementos                              -> monitor - mostra os 45 elementos transmitidos
__________________







exemplo de codificação de 6 bits:

000000
000001
000010
000011
000100
000101
...
111111 (64 elementos)


Na prática existem formas de dificultar os erros de comunicação (como por exemplo o bit de paridade, etc.).


Isto é uma amostra de como se pode implementar uma comunicação de dados ao longo de 50 metros.

O canal de transmissão pode ser por exemplo linhas de cobre ou cabo coaxial.

Vamos só ver uma última coisa hoje:

Se o débito binário for de 2700 bits/s (velocidade de transmissão) - isto significa que esta mensagem demora:

                                 tempo=270/2700=0,1 segundos

Uma mensagem com 450 elementos demoraria 1 segundo e uma com 4500 elementos demoraria 10 segundos a transmitir.

sexta-feira, 1 de junho de 2012

Linguagens de programação - exemplo assembly


Para um computador ou sistema informático funcionar, é necessário software - programas. Esses programas são criados por um ou mais programadores. Para se criar um programa (software), é preciso utilizar uma linguagem de programação.

Entre 1990 e 1995, altura em que frequentei a faculdade era considerado norma as seguintes linguagens de programação e a sua designação:


Pascal - linguagem de alto nível

C - linguagem de nível intermédio

Assembly - Linguagem de baixo nível.

Para criar software, podia-se utilizar uma linguagem de alto nível ( a forma de programar era mais parecida com a linguagem natural do ser humano), mas o programa tinha tendência a ficar menos eficiente - mais lento por exemplo.

Na linguagem de nível intermédio, o programa tem tendência a ficar mais eficiente, mas a forma de programar assemelha-se mais ao funcionamento do computador.

Na linguagem de baixo nível, a eficiência é máxima, mas é preciso usar uma linguagem praticamente máquina (apenas com mnemónicas). Muito útil para casos em que é preciso um programa rápido, mas é necessário programadores concentrados.

Eu já trabalhei com estes 3 tipos de linguagem e tenho boa consciência do que estou a falar.
O vídeo é interessante e dá uma noção de como programar em linguagem assembly.