quinta-feira, 10 de fevereiro de 2011

O que é virtualização?

Ao falar em virtualização, é inevitável que a maioria das pessoas a associem à ideia de vários sistemas operacionais rodando na mesma máquina. Esse é, na verdade, um dos diversos tipos de virtualização: a de hardware. Se por um lado ela não é a única, por outro é, certamente, a mais perceptível.

O presente artigo contempla os aspectos triviais da virtualização, com noções conceituais, aplicações práticas e sua forma de interação com o usuário final.

A VIRTUALIZAÇÃO EM SI

Para entender perfeitamente o conceito da tecnologia, deve-se traçar um paralelo entre o que é real e o que é virtual. Seguindo essa linha de raciocínio, algo real teria características físicas, concretas; já o virtual está associado àquilo que é simulado, abstrato. Dessa forma a virtualização pode ser definida como a criação de um ambiente virtual que simula um ambiente real, propiciando a utilização de diversos sistemas e aplicativos sem a necessidade de acesso físico à máquina na qual estão hospedados.

Isso acaba reduzindo a relação de dependência que os recursos de computação exercem entre si, pois possibilita, por exemplo, a dissociação entre um aplicativo e o sistema operacional que ele utiliza (já imaginou acessar o Microsoft Word através do Linux?).
Simulação do mundo virtual

E qual é a vantagem?

Prioritariamente, econômica. Com a iminente crise ambiental global (principal fomentadora da TI verde) e a crescente necessidade de diminuir o desperdício de recursos (incluída aí a energia elétrica), não há nada mais natural que o surgimento de alternativas para otimizar o uso de tais recursos.

Agora pense em um computador no qual opere um servidor de e-mails: mesmo que o disco rígido seja plenamente utilizado, não se pode dizer o mesmo sobre sua capacidade de processamento: enquanto ela pode chegar ao ápice em horários de pico (como às 15h), também pode se aproximar da ociosidade durante a madrugada. E se essa “sobra” fosse usada para gerar relatórios, aproveitando melhor o tempo e processamento livres? Na teoria, surtiria a tão desejada economia de recursos; na prática, isso é obtido através da virtualização.

OS TIPOS DE VIRTUALIZAÇÃO

Virtualização de Hardware

Como mencionado no começo da matéria, a virtualização de hardware consiste em rodar vários sistemas operacionais na mesma máquina. Isso é possível com o uso de programas específicos, que geram máquinas virtuais (Virtual Machines, ou VMs): estas emulam os componentes físicos de um PC, possibilitando que um sistema operacional diferente seja instalado em cada uma delas.

Há duas grandes vantagens na adoção dessa tecnologia: uma voltada a usuários, outra a servidores. No caso dos primeiros, o trunfo consiste em eliminar a incompatibilidade entre aplicativos e sistemas operacionais; pense em um usuário cujo PC tenha o Windows Vista instalado, mas que deseje rodar um aplicativo que só é compatível com o Windows XP. Isso é possível com a criação, nesse PC, de uma VM que rode o WinXP: depois disso, basta instalar o aplicativo nessa VM e executá-lo normalmente (como se fosse um computador dentro de outro).

Quando aos servidores, sua virtualização permite que, ao invés de se ter diversos subservidores (que utilizam apenas uma porcentagem dos recursos das máquinas em que estão hospedados), os processos sejam distribuídos de forma equânime entre um número menor de computadores (que, com isso, chegam mais próximos do aproveitamento total de sua capacidade). Isso reduz a quantidade de mão-de-obra técnica, o espaço para alocar as máquinas e o gasto com eletricidade necessários; tudo isso incorre em economia.
Problemas de espaço?
Virtualização da Apresentação

A maioria dos programas disponíveis no mercado funciona no mesmo local em que se encontra a instalação. Isso pode parecer óbvio para usuários tradicionais, mas tal barreira foi quebrada com o uso da Virtualização da Apresentação: trata-se do acesso a um ambiente computacional sem a necessidade de estar em contato físico com ele. Isso propicia, entre outras coisas, a utilização de um sistema operacional completo (bem como de seus aplicativos) de qualquer local do planeta, como se estivessem instalados no seu PC. O conceito é bem parecido com o de acesso remoto, com a diferença de que vários usuários podem se beneficiar do mesmo sistema simultaneamente (sem interferir uns aos outros).

Virtualização de Aplicativos

Cada aplicativo depende do sistema operacional para uma variedade de serviços, como alocação de memória ou gerenciamento de drivers. Resolver incompatibilidades entre determinado programa e o sistema operacional instalado na máquina é fácil, podendo ser feito uso de qualquer um dos dois tipos de virtualização já citados (hardware e apresentação). Mas e quando o conflito é entre dois aplicativos distintos? Pode ser que cada um deles requeira, por exemplo, uma versão diferente de uma mesma DLL.

Isso é resolvido através da virtualização de aplicativos. A técnica consiste em ter uma única cópia de determinado aplicativo, instalada em um servidor virtual; usuários que desejarem ter acesso a tal aplicativo podem fazê-lo diretamente, sem a necessidade de que ele também esteja instalado na máquina física. A partir daí o programa pode ser executado normalmente, já que as características específicas de cada aplicativo (seus drivers, entradas no registro, DLLs e afins) são compiladas e baixadas diretamente para o PC do usuário, através da geração de um aplicativo virtual que fica à parte.

A VIRTUALIZAÇÃO NO FUTURO

A virtualização está chegando com o vento em popa – suas vantagens econômicas são atrativas demais para serem resistidas. A adoção de tecnologias como a computação nas nunvens só corrobora para seu inevitável progresso. Será que daqui a alguns anos poderemos acessar nossos PCs de qualquer lugar do planeta? Só o tempo dirá.

Por falar em computação nas nuvens, segue um documentário interessante sobre o novo plano ambicioso da Google.



Por: Fabio Eduardo Peganin
Fonte: www.baixaki.com.br

Postado por: Bruno reis

O que é Kernel?

O Kernel é um componente do Sistema Operacional, mas fica tão escondido que a maioria dos usuários domésticos sequer ouviu falar nele. Isso se deve à sua importância: ao contrário do que pode parecer, ele é tão essencial para o funcionamento de um computador que é melhor mantê-lo a salvo de pessoas bisbilhoteiras e inexperientes.

 


O cérebro do S.O.

Um PC divide-se, basicamente, em duas camadas: hardware e software. Até aí, nenhuma novidade. Onde entra o Kernel na história, então? Pois bem: ele é o grande responsável por fazer a interação entre essas camadas. Em outras palavras, é o Kernel que gerencia os recursos do sistema e permite que os programas façam uso deles.

Simples assim?

Na verdade, não. O fato é que o Kernel é complexo demais para ser explicado de forma técnica a um público leigo no assunto. Basicamente, ele começa a funcionar assim que o computador é ligado; nesse momento ele inicia a detecção de todo o hardware indispensável ao funcionamento da máquina (monitor, placa de vídeo etc.). O Sistema Operacional é carregado em seguida e, uma vez que o usuário faça seu login, o Kernel passa a administrar as principais funções dentro do S.O.: isso inclui o gerenciamento da memória, dos processos, dos arquivos e de todos os dispositivos periféricos.

Dessa forma o Kernel pode ser descrito como um grande organizador: é ele o responsável por garantir que todos os programas terão acesso aos recursos de que necessitam (memória RAM, por exemplo) simultaneamente, fazendo com que haja um compartilhamento concorrente – mas sem oferecer riscos à integridade da máquina.

Por: Fabio Eduardo Peganin
Fonte: www.baixaki.com.br

Postado por: Bruno Reis

segunda-feira, 7 de fevereiro de 2011

Bem-vindos a Escola de TI

Olaaa galeraa parabéns a todos nós grandes profissionais da área de T.I, área essa responsável por boa parte das revoluções da humanidade nas últimas décadas. É um prazer imenso pra mim fazer parte desse grupo.

Meu nome é Renato sou profissional da área de T.I há pelo menos 3 anos cursei 2 anos de administração na FAPI - Faculdade de Administração São Paulo. Parei o curso na metade pois recebi a proposta de trabalhar na TOTVS - A TOTVS é uma empresa de software, inovação, relacionamento e suporte à gestão, líder absoluta no Brasil, com 49,1%* de share de mercado, e também na América Latina, com 31,2%*, é a maior empresa de softwares aplicativos sediada em países emergentes e a 7ª maior do mundo no setor.
Fonte: http://www.totvs.com/sobre-a-totvs/quem-somos

Atualmente cursando Análise e Desenvolvimento de Sistema na Bandtec (Faculdade do Colégio Bandeirantes-SP)

De certa forma o mundo da T.I sempre esteve presente na pra mim. Já fui instrutor de informática, vendedor de Telefonia Celular, Auxiliar Administrativo Financeiro com ênfase em gestão de ativos de micro-informática e por ai vai.

Este Blog servirá para postar informações importantíssimas sobre essa área que cresce mais a cada dia que passa e é tão carente de bons profissionais.

O Bruno e eu esperamos que gostem!

Grande abraço e um ótimo curso à todos!

Renato Souza

Sistemas Numéricos Binário

Fala pessoal, tranquilo?

Estes dias aprendi na facul o conceito de sistema binário. Para quem não sabe, sistema binário é um sistema de numeração formado por apenas dois algarismos: 0 (zero) e 1 (um). Ou seja, só admite duas possibilidades, sempre antagônicas, como: tudo / nada; ligado / desligado; presença / ausência, direito / esquerdo, alto / baixo, verdadeiro / falso, aceso / apagado.

Os Sistemas numéricos na informatica são muito utilizados. Basicamente o Micro Computador entende apenas 0 e 1, o qual chamamos de sistema Binário. Além do sistema binário nós temos outros sistemas numericos como Decimal, Hexadecimal, Octal, Binário. Cada sistema numérico é representado por uma base, segue abaixo a tabela de representação de cada número.

Binário: Base 2 (0,1)
Decimal: Base 10 (0,1,2,3,4,5,6,7,8,9)
Octal: Base 8 (0,1,2,3,4,5,6,7)
Hexadecimal: Base 16 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
No caso do hexadecimal é só pensarmos que as letras A corresponde a 10, B corresponde a 11, C corresponde a 12, D corresponde a 13, E corresponde a 14, F corresponde a 15.


Binário

 

Como foi dito logo acima os números binários são de base 2, vamos agora aprender como converter um numero da base decimal (10) para a base binária. Nós temos 2 formas para fazer isso uma mais simples e a outra por divisao.
Bem a Forma mais fácil de se pensar é a seguinte pegamos o numero 26 na base 10 e vamos converter para binário. Para isso basta montar a seguinte estrutura:

16 – 8 – 4 – 2 – 1
1      1    0    1    0

A conversão do número 26 para binário seria: 11010, é bem simples basta montar a tabela acima e vamos fazer uma soma simples, quais números somados dão 26, no caso 16 + 8 + 2 = 26, logo em baixo desses numeros entra 1 que corresponde a soma e nos outos 0, irei pegar outro número:  15 na base 10 que ficaria: 01111, os números que correspondem a soma 15 são 8 + 4 + 2 + 1 = 15.

A outra forma de conversão é por divisão. Para isso vamos montar a estrutura abaixo e vamos converter o mesmo número acima 26 decimal para binário.

26/2 = 13 e resto da divisao 0
13/2 = 6 e resto da divisao 1
6/2 = 3 e resto da divisao 0
3/2 = 1 e resto da divisao 1
1/2 = 0 e resto da divisao 1

Bem vamos entender o que foi feito. Pegamos o número 26 e fomos dividindo ele por 2 como repararam. Agora por que por 2 ? Simples porque a base que nós queremos é a base Binária que é 2, então se queremos converter decimal para binário basta dividir o número para a base correspondente no caso 2 e juntar os número de cima para baixo:  1 1 0 1 0 = 26 decimal. Como podem observar é sempre o resto da divisao que é o importante.

Vamos agora aprender a converter de Binário para Decimal. A fórmula é a seguinte:
M x 2*

Vamos pegar como exemplo o 11010.
11010 = 1×2⁴ + 1×2³ + 0×2² + 1×2¹ + 0×2⁰=  16 + 8 + 2 = 26

Para entender essa equação é muito simples basta multiplicar o primeiro número binário no caso 1 pela base binária 2 e ver quantos números vem depois do primeiro 1 e elevar eles. Exemplo 1 é o primeiro número e restam o 1010 ou seja 4 números então elevamos ele o 2 a ⁴ e depois vemos o segundo numero que é 1 e resta 010 ou seja 3 numeros então elevamos ele a ³ sempre diminuindo até zero.

Exemplo:


Fonte: www.kretcheu.com.br

Decimal

 

Bom agoras mudamos completamente de base e vamos focar a base 10 que é a decimal. Bem já vimos a conversao de decimal para  binário e binário para decimal, vamos ver agora a conversao de decimal para octal e octal para decimal.

26/8 = 3 e resto 2
3/8 = 0 e resto 3

Bem simples agora pegamos de cima para baixo dando 328 . Reparem que na conversão nós pegamos o resto como conversao de decimal para binario, porém dividimos o número pela base a qual queremos a conversão no caso para a base 8.

Vamos agora ver a conversão de octal para decimal, segue a mesma fóruma de binario para decimal:
M x 2*

Vamos pegar o exemplo 32.
32 = 3 x 8¹ + 2 x 8⁰ = 24 + 2 = 2610

Octal

 

Os números Octais como foi mostrando anteriormente a sua base é 8. Estaremos agora mostrando a conversao de octal para binário.
Vamos pegar como exemplo o 3210 .

3/2 = 1 e resto 1
1/2  = 0 e resto 1

Bem dividimos o 3 agora vamos fazer o mesmo com o 2.
2/2 = 1 e resto 0
1/2 = 0 e resto 1
Ficando então 11010

Lembrando somando sempre de cima para baixo. Agora alguns vão perguntar mais e o 0 da terceira casa por que dele? Simples pois em casos de conversão de octal ele ocupa 3 bits . É necessário fazer par de 3 contando da esquerda para a direita no caso do 2 é 10 e precisamos fazer um par de 3 então acresentaremos um zero ficando 010, já no caso do 11 não é necessário pois o primeiro par pode ficar com 2.
Agora já conhecemos como funciona a conversão de octal para binario vamos ver como converter binario para octal. Vamos usar como exemplo o mesmo valor acima 110102 .

11 0102 =
11 = 1×2¹ + 1×2⁰ = 2 + 1 = 3
010 = 0×2² + 1×2¹ + 0×2⁰ = 2
Resultando no valor: 328

Hexadecimal

 

A base Hexadecimal como foi mostrado na introdução é de base 16. Vamos mostra a conversao de decimal para hexadecimal, iremos usar como exemplo agora um valor alto no caso pegaremos o 47810.

478/16 = 29 e resto 14
29/16 = 1 e resto 13
1/16 = 0 e resto 1

Bem simples agora pegaremos o resto da divisao de cima para baixo ficando: 1DE16, lembrando que os numeros 10,11,12,13,14,15 correspondem as letras A,B,C,D,E,F .
Agora iremos fazer uma conversao de Hexadecimal para Binário, iremos usar como exemplo o 1DE16, no sistema hexadecimal é necessário 4 Bits para representar em binário.

1/2 = 0 e resto 1

Bem sabemos que o 1 em hexadecimal corresponde a 1 binario. Agora iremos fazer o D (13).
13/2 = 6 e resto 1
6/2 = 3 e resto 0
3/2 = 0 e resto 1

Por: Marcelo Moraes
Fonte: www.compilandoideias.com.br

O que é Algoritmo? Para que serve?

Nos dias atuais e com a evolução galopante da tecnologia, dificilmente encontramos pessoas que nunca tenham utilizado um computador. Os propósitos podem variar bastante, seja para edição de textos, jogos ou atividades mais complexas. Já é difícil de imaginar nossas vidas sem o uso desta ferramenta.

Nesta atividade tão comum ao nosso cotidiano, você algum dia deve ter parado para pensar como os programas funcionam. Como é que o computador faz todas as tarefas exatamente da forma com a qual você pede? A resposta para esta pergunta é mais simples do que parece: ele segue as instruções que você passa.

Mas para que ele consiga entender o que você fala, ele precisa de uma linguagem mais específica. Para fazer esta interpretação entre homem e máquina, foram desenvolvidas as linguagens de programação. Mas mesmo estas linguagens utilizam uma lógica para serem escritas e é aí que entram os algoritmos.


Embora você não perceba, utiliza algoritmos de forma intuitiva e automática diariamente quando executa tarefas comuns. Como estas atividades são simples e dispensam ficar pensando nas instruções necessárias para fazê-las, o algoritmo presente nelas acaba passando despercebido. Por exemplo, quando precisa trocar uma lâmpada, você:


 Início
   Verifica se o interruptor está desligado;
   Procura uma lâmpada nova;
   Pega uma escada;
   Leva a escada até o local;
   Posiciona a escada;
   Sobe os degraus;
   Para na altura apropriada;
   Retira a lâmpada queimada;
   Coloca a lâmpada nova;
   Desce da escada;
   Aciona o interruptor;
     Se a lâmpada não acender, então:
         Retira a lâmpada queimada;
         Coloca outra lâmpada nova
     Senão
         Tarefa terminada;
   Joga a lâmpada queimada no lixo;
  Guarda a escada;
 Fim

Formas de escrever um algoritmo
Os algoritmos são muito utilizados na área de programação, descrevendo as etapas que precisam ser efetuadas para que um programa execute as tarefas que lhe são designadas. Existem diversas formas de escrever um algoritmo, podendo ser citadas o pseudocódigo (ou português estruturado), fluxograma, diagrama de Chapin e descrição narrativa.

A sequência escrita no exemplo da troca da lâmpada estava em descrição narrativa, por exemplo. Esta forma não é muito utilizada em informática porque pode ser ambígua e dar margem a interpretações erradas.
Os dois tipos mais comuns são o pseudocódigo que utiliza uma forma mais estruturada, assemelhando-se àquelas utilizadas pelas linguagens de programação e o fluxograma que emprega figuras geométricas para ilustrar os passos a serem seguidos.

O Diagrama de Chapin, Diagrama Nassi-Shneiderman ou Diagrama N-S mostra a solução por meio de quadros organizados hierárquica e estruturadamente. Este tipo não é muito utilizado, pois vários procedimentos tornam-se difíceis de serem mostrados por meio deste diagrama.

Um algoritmo é algo que você já utilizava o tempo todo e nem percebia. Uma forma bem interessante de exercitar a lógica seria algum dia parar para pensar em sua rotina ao acordar, por exemplo. Você perceberia o quanto ela é mais complexa do que parece, se fosse para colocar no papel e como a execução disto é automática.
Fonte: www.baixaki.com.br



Tipos de Dados

  1. Dados Numéricos
    1. Dados Numéricos Inteiros
    2. Dados Numéricos Reais
  2. Dados Literais
    1. Constantes Caracter
    2. Cadeias de Caracteres
  3. Dados Lógicos
  4. Ponteiros

  • Dados numéricos
  • Dados literais ou alfa-numérico
  • Dados lógicos
  • Ponteiros
Existem 4 tipos de Dados:

Cada um destes tipos de dados será detalhado nas próximas seções.


1 - Dados Numéricos

O conjunto de dados mais comuns é o de números naturais, que é representado por N. Este conjunto é definido como
N = {0,1,2,3,...}
Este conjunto de números é usado quando queremos falar sobre o número de amigos que temos ou quantos CDs musicais temos na nossa coleção. Embora seja fácil imaginar que um pastor de ovelhas há 3000 anos pudesse usar este conjunto com facilidade, é bom lembrar que o conceito do número zero é difícil de ser entendido. O conjunto dos números naturais usado pelos primeiros seres humanos não incluía o zero. Os pastores sabiam que se 20 ovelhas tinham ido para os campos, eles tinha de esperar pelas mesma 20 ovelhas na volta à noite. Agora se não havia ovelhas para que precisassem contar, somar ou subtrair? A natureza tem horror ao vácuo e o nada é um conceito complicado para os seres humanos. O número zero é uma invenção dos matemáticos hindus e é recente, sendo introduzido em XXXX aproximadamente.
O conjunto dos números naturais é subconjunto dos conjunto dos números inteiros que é definido como
Z = {...,-3,-2,-1,0,+1,+2,+3,...}
Aqui estamos falando de conceitos mais complicados que hoje em dia já fazem parte do nosso dia a dia. Estamos no domínio dos números relativos, que incluem os números positivos, o zero e os números negativos. A mente humana teve de atingir graus de abstração maiores para imaginar operações que incluíam números negativos. Hoje em dia não é necessário ser um matemático pós-graduado para trabalhar facilmente com este tipo de números. Todos nós somos capazes de perceber que uma temperatura de -3 graus centígrados e mais fria do que +3 graus. Quem não fica preocupado quando sabe que sua conta corrente no banco está com saldo de -300 reais. Rapidamente iremos tentar transformar este número negativo em número positivo, e o que mais importante sabemos que precisamos de pelo menos 300 reais para sair do vermelho.
O próximo conjunto na nossa curta viagem pelos domínios dos números é o conjunto dos números fracionários, que é representado por Q. Este conjunto é composto por todos os números que podem ser escritos como uma fração da forma p/q onde p e q pertencem ao conjunto dos números inteiros. Este conjunto pode ser definido como:
Q = {p/q | p, q pertencem a Z}
Continuando nesta excursão vamos para o conjunto dos números reais (R) que é a união do conjunto dos números fracionários e o dos números irracionais. Números irracionais não são os números que não conseguem pensar, mas sim aqueles que não podem ser expressos por uma fração p/q. Um exemplo muito conhecido de número irracional é o PI que é igual a 3.14159...
O último conjunto é o dos números complexos. Neste conjunto os números são representados da seguinte maneira
n = a + ib
Os números a e b são números reais e i representa a raiz quadrada do número inteiro -1. Quando b é igual a 0 o número é um número pertencente ao conjunto dos reais. Como pode-se ver, a medida que fomos passando de um conjunto para outro, aumentou o nível de abstração das quantidades que os números pertencentes aos conjuntos representam.
A Figura a seguir é uma representação das relações de pertinência entre os conjuntos de números que analisamos até aqui. 

Os dados numéricos que os algoritmos que iremos criar e que a maioria dos computadores manipulam são de dois tipos:
  • Dados inteiros
  • Dados reais
Neste ponto é importante assinalar dois fatos importantes. Primeiro computadores trabalham com uma base diferente da base que usamos todos dias que é a base 10. Computadores usam a base 2, e no processo de conversão entre bases podem ocorrer problemas de perda de dígitos significativos. Por exemplo, o número real 0.6 ao ser convertido para a base dois gera uma dízima periódica.
Outro fato importante é que a largura das palavras de memória do computador é limitada e portanto o número de dígitos binários que podem ser armazenados é função deste tamanho. Isto é similar ao que aconteceria se tivéssemos que limitar o número o dígitos decimais que usamos para representar os números de nossas contas no banco. Por exemplo, assuma que só podemos armazenar quantias com 6 dígitos inteiros e dois decimais, deste modo se ganhássemos na loteria R$ 1.000.000,00 não seria possível representar este valor no extrato do banco. Portanto no processo de conversão e desconversão entre bases pode haver perda de informação.

Dados Numéricos Inteiros


O conjunto dos dados inteiros pode ser definido como

Z={...,-3,-2,0,1,2,...}.
As linguagens usadas para programar computadores são muito exigentes com a maneira com que os dados são representados. Por esta razão vamos passar a definir como deveremos representar os dados nos algoritmos. Os dados inteiros tem a seguinte forma:
NúmeroInteiro = [+,-]algarismo{algarismo}
Neste texto iremos usar uma notação especial para definir como iremos representar os elementos da linguagem. A medida que formos apresentando os elementos a notação será também explicada. No caso da definição dos dados inteiros temos os seguintes elementos. O elemento básico é o algarismo que é um dos seguintes caracteres:
algarismo = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Os elementos entre colchetes são opcionais. Portanto, o sinal de + e - entre colchetes significa que um número inteiro pode ou não ter sínal. Em seguida temos um algarismo que é obrigatório. Isto é dados inteiros tem de ter pelo menos um algarismo. A seguir temos a palavra algarismo entre chaves, o que significa que um número inteiro deve ter pelo menos um algarismo e pode ser seguido por uma sequência de algarismos. Deste modo elementos que aparecem entre chaves são elementos que podem ser repetidos.
São portanto exemplos de números inteiros:
a)
+3
b)
3
c)
-324
Como exemplos de formas erradas de representação de números inteiros, temos:
a)
+3.0
Não é possível usar ponto decimal
b)
+ 123
Espaços em branco não são permitidos


Dados Numéricos Reais


Os dados reais tem a seguinte forma:
[+,-]algarismo{algarismo}.algarismo{algarismo}.
Ou seja um número real pode ou não ter sinal, em seguida um conjunto de pelo menos um algarismo, um ponto decimal e depois um conjunto de pelo menos um algarismo. É importante notar que o separador entre a parte inteira e a fracionário é o ponto e não a vírgula.
São exemplos de números reais:
a)
0.5
a)
+0.5
a)
-3.1415
Abaixo mostramos exemplos de formas erradas de representação de números reais, temos:
a)
+3,0
Vírgula não pode ser separador entre as partes real e inteira
b)
0.333...
Não é possível usar representação de dízimas



2 - Dados Literais


Dados literais servem para tratamento de textos. Por exemplo, um algoritmo pode necessitar de imprimir um aviso para os usuários, ou um comentário junto com um resultado numérico. Outra possibilidade é a necessidade de ler dados tais como nomes, letras, etc.
Este tipo de dados pode ser composto por um único caracter ou por um conjunto de pelo menos um destes elementos. Conjuntos são conhecidos como cadeias de caracteres, tradução da expressão em inglês, "character string".
Um ponto importante que deve ser abordado agora é o que se entende por caractere. Caracteres são basicamente as letras minúsculas, maiúsculas, algarismos, sinais de pontuação, etc. Em computação caracteres são representados por códigos binários e o mais disseminado de todos é o código ASCII. Este padrão foi definido nos Estados Unidos e é empregado pela quase totalidade dos fabricantes de computadores e programas. O apêndice mostra a tabela ASCII com estes códigos.
Os caracteres que normalmente são empregados nos algoritmos são os seguintes:
Letras maiúsculas:
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Letras minúsculas:
a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z
Algarismos:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Caracteres de pontuação:
; | : | ! | ? | * | ( | ) | \ | / | + | - | = | < | >


Constantes Caracter


Caracteres podem aparecer sozinhos, e neste caso são chamados de constante caracter e são representados entre o caracter '. Abaixo mostramos exemplos de constantes caracter:
  • 'a'
  • 'A'
  • ';'
  • '+'
Cadeias de Caracter
Cadeias de caracteres são conjuntos de um ou mais caracteres e são cercados pelo caracter ". Por exemplo:
  • "Linguagem de programação"
  • "Qual é o seu nome?"
  • "12345"


3 - Dados Lógicos


Este tipo de dados é intensamente aplicado durante o processo de tomada de decisões que o computador freqüentemente é obrigado a fazer. Em muitos textos este tipo de dados também é chamado de dados booleanos, devido a George Boole, 
matemático que deu ao nome à álgebra (álgebra booleana) que manipula este tipo de dados. Os dados deste tipo somente podem assumir dois valores: verdadeiro e falso.
Computadores tomam decisões, durante o processamento de um algoritmo, baseados nestes dois valores. Por exemplo, considere a sentença a seguir que é um caso típico de decisão que o computador é capaz de tomar sem intervenção humana.
Se está chovendo então procurar guarda-chuva.
Nesta sentença temos a questão lógica "Se está chovendo". Esta expressão somente pode ter como resultado um de dois valores: verdade ou falso. Nos nossos algoritmos estes valores serão representados por verdade e falso. Mais adiante ficará claro como este tipo de dados será empregado nos algoritmos.


4 - Ponteiros


Antes de pensarmos em ponteiros, é importante nos lembrarmos 
de alguns aspectos referentes à variáveis. Dependendo do seu conhecimento de programação, você deve saber que variáveis possuem nomes que as identificam durante a execução do programa. Você deve saber também que uma variável armazena um valor (que pode ser fixo, no caso de uma constante, ou pode mudar durante a execução de seus códigos).

O que poucos programadores se lembram é que uma variável possui um endereço, e que o nome da variável não é nada mais que um apelido para a localização deste endereço. Desta forma, um ponteiro não é nada mais que um tipo especial de variável que armazena o endereço de outra. Veja um exemplo:

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
  // variável do tipo int
  int valor = 10;
  // ponteiro para uma variável do tipo int
  int *p = &valor;
  // exibe o valor da variável "valor", apontada
  // pelo ponteiro p
  printf("%d", *p);
  printf("\n\n");

  system("PAUSE");
  return 0;
}
Neste código nós temos a declaração e definição de duas variáveis:
int valor = 10;
int *p = &valor;
A primeira variável é uma variável do tipo int e a segunda é um ponteiro para uma variável do tipo int. Veja que devemos sempre usar "*" antes do nome de um ponteiro em sua declaração. O símbolo "&" serve para indicar que estamos acessando o endereço de uma variável e não o seu conteúdo. O resultado destas duas linhas é que agora temos um ponteiro que nos permite acessar e manipular a variável valor.
Observe a linha:
printf("%d", *p);
Aqui nós estamos acessando o valor da variável apontada por p. Veja o uso do símbolo "*" para acessar o valor da variável. Isso é chamado de desreferenciamento de ponteiros. Pareceu complicado? Veja uma linha de código que altera indiretamente o valor da variável valor para 30:
*p = 30;
Ponteiros são ferramentas muito importantes na programação em C. No entanto, é preciso ter muito cuidado ao lidar com eles. A primeira coisa a ter em mente é que um ponteiro não está apontando para nenhum lugar até que atribuímos a ele o endereço de outra variável. E é aí que mora o perigo. Um programa entra em colapso absoluto se tentarmos acessar um ponteiro que aponta para um local de memória que já foi
liberado novamente ao sistema. No caso menos grave, estaremos tentando acessar locais de memória inválidos ou reservados a outros programas ou tarefas do sistema operacional. Isso nos lembra os velhos tempos da tela azul de morte.

Bem-vindos a Escola de TI


Fala pessoal, prazer em conhecê-los.

Este é o primeiro post do blog Escola de TI, que tem como objetivo de explorar este imenso universo da Tecnologia da Informação.  Aqui vocês terão acesso a novidades sobre TI, dicas, análise sobre o cenário do mercado atual no Brasil e principalmente conceitos técnicos ensinados em um curso superior desta área.

Mas antes, deixa eu me apresentar:

Meu nome é Bruno, sou um publicitário de 25 anos de idade, formado pela PUC-SP.  Trabalhei durante 6 anos em uma agência de comunicação e 1 ano na Semp Toshiba.

Percebendo as infinitas oportunidades e supervalorização da área de TI, resolvi recomeçar e investir nesta área desde janeiro de 2011. Atualmente estou cursando Análise e Desenvolvimento de Sistemas na BANDTEC – Faculdade de Tecnologia do Colégio Bandeirantes. Mudança “louca” né?

Mas a cada dia que passa, tenho mais certeza de que fiz a decisão certa, e se você ainda está com dúvida, vale a pena ficar conectado neste blog.  Nos próximos posts vocês conhecerão o Renato, que também será administrador deste blog.

Sejam bem-vindos ao blog Escola de TI.