Posts com Tag ‘If’

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

Operadores aritméticos

Agosto 16, 2009

Não falamos muito sobre os operadores aritméticos, né?

Se você lembra que aritmética é um campo de estudo da matemática você deve imaginar do que estamos falando.

As operações em C/C++ (e em C# também) são:

+ adição

- subtração

* multiplicação

/ divição

% módulo

Bom, soma e subtração já usamos, né? Multiplicação e divisão são sinais diferentes dos que já conhecemos, mas tudo bem, né?

E o módulo?

Módulo é o resto de uma divisão. Pra que usar isso?

Bom, se você precisar de uma aplicação que verifique se o número é par você pode usar:

resto=numero%2;

if(resto == 0)

{

cout<<”Numero eh par”;

}

else

{

cout<<”Numero impar”;

}

Muito bem, se você sabe o que é um número par sabe que quando dividimos ele por 2 o resto é 0. Quando o resto é 1 ele é impar. Quando o resto não for nem 0 e nem 1? Bom… se você atribuiu essas variáveis como inteiras isso não pode acontecer… se acontecer você conseguiu uma coisa incrível, meu caro!

Eu sei que deveria ter feito esse post antes… mas eu tinha esquecido dele. Sinto muito. Qualquer sugestão…

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

Dois códigos… um em C e outro em C++

Junho 29, 2009

Uhn, foi mal não postar o resto de XNA… semana péssima…começou com um mal sábado…

Charada: qual desses dois códigos é melhor? Por que um deles não tá funcionando direito? Qual era o objetivo?

#include <stdio.h>
#include <conio.h>
#include <math.h>
main()
{
int M[4];
int I;
for (I = 1; I <=4; I++)
{
printf(” Entre com o %d numero: “, I); scanf(“%f”, &M[I]);

if ((M[I] %2 == 0)||(M[I] %3 == 0))
{
printf(“Numero divizivel por 2 ou 3  “, M[I]);
}        }

getch();
}

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int M[4], I;
for(I=1; I<=4; I++)
{
cout<<”Entre com numero  “<<I<<endl;
cin>>M[I];
if((M[I]%2==0)||(M[I]%3==0))
{
cout<<”Numero “<<M[I]<<” eh divisivel por 2 ou 3″<<endl;
}
}
system(“PAUSE”);
return EXIT_SUCCESS;
}

resposta…?

adivinha quando sai

h1

O código do joguinho de while

Junho 20, 2009

Vou postar a resposta do joguinho. Amanhã vejo se posto sobre blocos de repetição (a continuação) ou a primeira parte do PFXNA.

Ah, logo posto o código denovo comentado.

#include <iostream.h>
#include <stdlib.h>
#include <time.h>
void main()
{
int numero, memoria, contador, cont2, max=100, min=1;
char resposta, asci;
asci=198;
do{
cout<<ascc<<ascc<<”   BEM VINDO AO JOGO DE ADIVINHAC”<<asci<<”O   \n\n”;
contador=0;
srand(time(NULL));
memoria=rand()%(max-min+1)+min;
cont2=1;
cout<<”**Digite um numero** \n”;
while(contador!=1)
{
cout<<”\n    “;
cin>>numero;
while(!(numero<=100 && numero>=1))
{
cout<<”**Entrada invalida, tente novamente**\n   “;
cin>>numero;
}
if(numero==memoria && cont2<=6)
{
cout<<”\n   PARABENS!!! Voce acertou em “<<cont2<<” tentativas! \n\n”;
contador=1;
}
if (numero==memoria && cont2>6)
{
cout<<”\nOpa! Voce acertou o numero, mas tentou em “<<cont2<<” vezes, por isso voce perdeu. \n\n”;
contador=1;
}
if ( numero>memoria )
{
cout<<”   Digite um numero menor.\n”;
}
if ( numero < memoria)
{
cout<<”   Digite um numero maior.\n”;
}
cont2++;
}
do {
cout<<”\nDeseja jogar novamente? Digite S para sim ou N para nao. \n\n”;
cin>>resposta;
}
while ((resposta!=’n') && (resposta!=’N') && (resposta!=’s’) && (resposta!=’S'));
}
while((resposta==’s’) || (resposta==’S'));
}
h1

Um joguinho com wilhe

Junho 18, 2009

Bem, antes que me matem, eu voltei!!! Desculpem, eu precisava de um tempo para me habituar a minha nova rotina. Bom, antes de continuar as aulas, que as de programação pararam em laço while, eu vou passar um exercício para os apressadinhos.
O exercício é simples: fazer um joguinho de adivinhação. Estes exercício foi passado pela professora Silva para a turma de Sistemas da Informação na Universidade Metodista de São Paulo campus Rudge Ramos.

Aqui ta o exercício (se alguém pedir eu dou a resposta…brincadeira, eu vou dar a resposta semana que vem…ou quando pedirem):

ADIVINHAÇÃO
Tradicional jogo de adivinhação: o computador irá pensar num número entre 1
e 100 e você deverá acertar em até 6 vezes para ser declarado o vencedor.
Para te ajudar a pensar uma mensagem será mostrada na tela, informando se
seu número é mais alto ou mais baixo do que o pensado pelo computador.
Independente de perder ou ganhar ao final de cada rodada o jogo deve
perguntar se você deseja continuar.
Simulações:
Digite valores entre 1 e 100:
> 50
Chute um numero mais baixo!
> 24
Chute um numero mais alto!
> 38
Chute um numero mais baixo!
> 32
Chute um numero mais alto!
> 36
Chute um numero mais baixo!
> 34
Chute um numero mais alto!
> 35
Voce acertou em 7 vezes
Voce deveria tera acertado em 6 vezes
Vamos jogar de novo?
S ou s para sim: s
Digite valores entre 1 e 100:
> 50
Chute um numero mais baixo!
> 24
Chute um numero mais baixo!
> 12
Chute um numero mais baixo!
> 6
Chute um numero mais alto!
> 9
Chute um numero mais alto!
> 11
Chute um numero mais baixo!
> 10
Voce acertou em 7 vezes
Voce deveria tera acertado em 6 vezes
Vamos jogar de novo?
S ou s para sim: n

h1

Blocos condicionais: If e Else

Maio 24, 2009

Olá!!! Eu não morri. Pô, um dia e meio de descaço, quase dois, ué XD

Bem, esta semana agente começa com o nosso jogo em XNA. Eu tava desistindo de brigar com as bibliotecas do Palib (no DeviKitPro), até que li que ajudaria eu não instalar ela, e só descompaquitar tudo lá dentro. Ainda não funcionou. ò.ó

Bem, eu queria brincar com vocês sobre com uns programinhas mais legais, mas pra isso ainda tem alguns passos. Bem, hoje vou falar sobre blocos condicionais.

O que é um bloco condicional?

Bloco condicional é um bloco de instruções que só é feito se for atendida uma certa condição. Vou explicar com um exemplo normal:

SE o despertador tocar:

Eu vou levantar;

SE NÂO

Eu vou enrolar na cama até ele tocar;

Bem, é simples né? Se a condição do despertador tocar for atendida (se for verdadeira) vai acontecer algo (levantar), se o despertador não tocar acontece outra (não levanto!!).

Não precisa ter o SE NÂO. As vezes não precisamos de uma contra-condição, digo, se a primeira não for verdadeira não precisamos fazer nada.

E como falar isso em programação? Bem, SE em inglês é IF, certo? Em programação é ele que vamos usar. E o SE NÃO é o ELSE. Tudo com letra minuscula. Exemplo:

int numero;

cout<<”Digite um numero”<<endl;

cin>>numero;

if(numero==1)

{

cout<<”Voce acertou”<<endl;

}

else

{

cout<<”Voce errou”<<endl;

}

Seguinte: a condição que deve ser atendida deve estar entre parênteses. Os dois sinais de igual é uma comparação. Se (o numero for igual 1)… entenderam?

DUAS NOTAS:

1-Quando usamos um só sinal de igual é por que estamos atribuindo uma valor a algo.

int numero;

numero=5;

(cria a variável numérica chamada numero; a variável numero terá o valor de 5)

Quando usamos dois sinais de igual é por que estamos comparando;

int numero;

cin>>numero;

if(numero==0)

2-Quando começamos um bloco de condições usamos as chaves. Elas indicam quando começa o bloco que pertence ao if e quando acaba o bloco do if. É obrigatório, a não ser que se tenha só uma linha de condição. Se tiver mais de uma precisa ter as chaves. Mas para ajudar a enxergarmos melhor o programa iremos usar sempre, okay?

int numero;

cin>>numero;

if(numero==0)

{

cout<<”Voce acertou”<<endl;

}

Bem, vamos lá!! Treine agora!!