Arquivo da categoria ‘Diferenças’

h1

Comandos break e continue

Agosto 18, 2009

Bom, vamos começar a adiantar as coisas… não sei quando, mas vamos começar. Já peguei o cd da MSDN AA pra instalar o Windows no meu note, que teve que ser formatado… logo, espero, eu volto a postar sobre XNA.

Bem, hoje vamos falar sobre uns comandinhos legais: break e continue.

BREAK

O comando break para um laço de repetição. Bem, pelo menos é isso que vamos ver hoje. Ele para sem dó nem piedade.

Exemplo:

#include <iostream.h>

void main ()

{

int x,i;

for(x=1;x<=100;x++)

{

cout<<x<<endl;

}

for (i=1; i<=100; i++)

{

cout<<i<<endl;

if(i=50)

{

break;

}

}

}

O que acontece a cima?

Primeiro FOR imprime na tela os números de 1 a 100. O segundo FOR vai imprimir de 1 a 50. Por que ele para? O BREAK mandou parar o laço. Num programa maior quando chega no BREAK o programa pula para a próxima linha do programa.

CONTINUE

Agora o continue é um pouquinho parecido. Ao invés de parar o laço e pular fora, indo pro próximo comando, o continue manda continuar o laço ignorando a linha depois deste.

Exemplo:

#include <iostream.h>
void main ()
{

int x,i;

for(x=1;x<=100;x++)

{

cout<<x<<endl;

}

for (i=1; i<=100; i++)

{

if(i=50)

{

continue;

}

cout<<i<<endl;

}

}

Nesse exemplo o programa roda o FOR, mas quando chega no CONTINUE, quando o valor de i for 50, ele ignora o COUT e não imprime o valor de i, porém, só naquela vez. Depois retorna ao laço, normalmente.

Bom, é isso.. não sei se fui muito clara… é que estou sem inspiração XD preciso voltar a postar.

Até mais

h1

Diferenças: = e ==

Agosto 16, 2009

As vezes até mesmo os mestres fazem coisas erradas… descuido… e nós mortais também nos descuidamos. Um dia um programa não estava rodando direito, e quando eu fui ver era um problema simples: um if estava usando somente um sinal de “igual” (=).

Qual a diferença?

Bem, de um modo simples você usa o sinal de = quando vai atribuir um valor (ou outra coisa) a uma variável, ou objeto, ou ao estanciar algo. Sinais de == juntos é verificação. Juntos significam “igual a”.

Tanto é que o sinal = é um operador de atribuição, ele atribui um valor. Os == se chama operador relacional. Quando usar cada um?

Você usa = quando vai atribuir um valor. Dãa. Por exemplo:

int x;

x = 4;

int u;

u = x;

Você usa == quando quer… verificar se algo é igual a outra coisa. Exemplo:

int x, u;

x = 4;

u = 5;

if ( x == u)

{

cout<<”Eles são iguais”;

}

Se você usar = num if vai dar erro de compilação. Apesar que um dia a muito tempo aconteceu o milagre de não dar erro. Digo, eu deixei um = só no if, e na hora que o programa chegava na linha do if ele atribuía um tal valor a variável ao invés de verificar se eram iguais. Nunca mais isso aconteceu comigo. Mágica. Do mesmo jeito, não façam isso em casa. E nem no trabalho.

h1

FAQ: O que são números de ponto flutuante, float e double?

Julho 2, 2009

Olá meus leitores queridos. Esta é a primeira semana de julho, e resolvi fazer um post mega sobre o que mais os meus leitores imaginários perguntaram. Como ninguém pergunta nada, só fala “legal”, então não tem o que eu responder. Porém eu pensei: vou fazer um post sobre o que as pessoas perguntam pro tio Google.

A maior dúvida parece ser sobre ponto flutuante, ou, números quebrados.

O que são números quebrados?

Bom, lembra da época da escola? Apesar de que… deixa pra lá. Enfim, e a professora explicou sobre números Q? Números Racionais? Os números racionais são os obtidos através de uma razão (para mais detalhes vai um site de ensino fundamental mesmo XD http://pessoal.sercomtel.com.br/matematica/fundam/fracoes/racionais.htm ). Uma razão é uma divisão. Pense comigo: 1,5 nada mais é que 3 dividido por 2. Normalmente nós escrevemos os números racionais com um número seguido de vírgula e depois outro número ou de uma fração. Uma fração pode se transformar nesse negocio de número seguido de vírgula com outro número depois (não vamos entrar em detalhes matemáticos). Existem cálculos para transformar um número assim>>1,5 em uma fração 3/2. E para transformar o 3/2 em 1,5 é só dividir o 3 por 2.

Bom, sabendo o que para seres normais são os números racionais podemos continuar nosso estudo.

Muita gente chama os números racionais de números quebradinhos, talvez porque eles são quebrados mesmo.

número quebrado, racional

número quebrado, racional

Bom, mas para o computador eles não são “números quebrados”.

Em computação chamamos os números quebrados de ponto flutuante ou vírgula flutuante.

NOTA: Agora eu só vou dar uma por cima. Por enquanto não vamos falar do cálculo de ponto flutuante, certo?

Esses números são definidos por uma Mantissa que multiplica 2 elevado a um certo expoente. Em um ambiente de 32 bits (provavelmente o seu) o ponto flutuante consiste num bit de sinal, 8 bites de expoente e uma mantissa de 23 bits. O bit de sinal é zero para números positivos e 1 para números negativos. Por que um número de sinal? Oras, esqueceu que existem números acima do zero e números abaixo do zero?  O campo expoente é 128 menos alguma coisa. Não se preocupe com isso, e lembre-se que esse número pode ser zero. O campo da mantissa é correspondente à parte fracionária do número Considera-se a mantissa entre o número 1 e 2 (existem infinitos aqui no mundo real).

Eu li um conteúdo legal feito por um professor da Universidade Católica de Brasília. Não sei se tenho autorização pra divulgá-lo… mas tava lá livre… na internet… Resolvi mostrar para vocês. Relaxem, o material é forte. Digo, muito bom e difícil pra quem é newbie como nós, meros mortais. Mas vale a pena dar uma olhada: http://www.ucb.br/prg/professores/gualeve/disciplinas/2006_1/ac1bcc/05_PtoFlutuante.pdf

Bom, voltando ao foco, você quer saber como declará-lo né?

Tem alguns tipos de ponto flutuante. Por hoje vamos falar do float e do double. O float é o que vamos costumar usar. Comporta valores desde 1.40239846e-46 até 3.40282347e+38. Muita coisa né? Lembre-se que o e-46 significa elevado a -46. Adivinha só o que significa e+38. Sim, além de comportar números quebradinhos ainda comporta números muito, mas muito grandes. Significa que se você quiser fazer contas com números grandes pode usar o float no lugar do int, e não só para números quebradinhos.

Um exemplo é que int cabe desde -2.147.483.647  até  2.147.483.648

Bom, o Double é quase igual, a diferença é que cabem muito mais números. Vai de 4.94065645841246544e-324  até  1.7976931348623157e+308. Nunca parei pra pensar como esse número é grande.

Mas por que então o float é mais usado que o Double se o double é maior? Essa é justamente a resposta: o Double é grande demais. Normalmente não precisamos de números tão grandes, e criar uma  variável dessas faz o programa ficar mais pesado e lento. Como estamos só fazendo coisas simples nem dá muita diferença, mas quando você for fazer um programa grande vai fazer diferença sim. É por isso que o float é mais usado que o double.

Existem variações desses tipos de variáveis, mas fica pra outro dia.

Bem, agora considerações importantes: quando você cria uma variável int ela sempre vai mostrar números inteiros, e nunca números quebrados. Se você fizer um programa que divida 1 por 3 e o resultado for colocado em uma variável inteira você terá o resultado 1. A parte decimal é ignorada. Se você pegar essa variável resultado e dividir por 2 o resultado via ser 0. Sempre é ignorada a parte decimal.

Porém se você cria uma variável de ponto flutuante você pode mostrar tantos números inteiros como números decimais.

Contas são realizadas normalmente.

Bom, alguma dúvida é só falar. Ainda sinto que não respondi a todas as perguntas dos leitores imaginários pára-quedistas do Google.

h1

Por que existem tantas linguagens?

Maio 25, 2009

“Uma pergunta bastante relevante que surge na cabeça de quase todos os programadores certa hora da vida é: por que existem tantas linguagens de programação? Outra bastante comum é: qual delas é melhor? Alguém poderia responder: existem tantas porque uma vem para corrigir as falhas das outras, e a melhor é a que tem menos falhas. Certo? Errado.”

É assim que começa o post do VidaGeek. O post original você encontra em: http://vidageek.net/2008/08/11/linguagens-de-programacao/#more-356

Eu achei o texto muito bom. Concordo na parte sobre começar com C(eu acrescento o C++ no meio). Uma boa leitura para quem já se fez esta pergunta titulo-do-post.

Aliais, feliz dia do orgulho nerd!!!