Boa noite pessoal, conseguiram compilar o código ? Espero que sim !!
Vamos dar sequência no nosso Cursinho vendo como fazemos uma condição.
Utilizamos isso quando queremos que um bloco de comandos seja executado, somente se uma condição for verdadeira. Se a condição não for verdadeira, ele executará outro bloco de comandos.
Existem várias formas de trabalharmos com condições, e iremos ver as principais delas, mas hoje, especificamente, veremos o comando if .
If em inglês significa se, ou seja, somente se algo for verdadeiro, executará.
Else significa "senão". No nosso contexto, ficaria algo parecido com :
Se ( x é igual a y) executa
Senão não executa.
Vamos há um exemplo em C.
Ex:
int x,y=10;
if ( x==y ) {
printf("Os numeros sao iguais");
}else {
printf("Os numeros sao diferentes");
}
Observações :
Lembram-se que o sinal == serve para comparação e não para atribuição;
Todos os blocos são abertos e fechados com "chaves";
Primeiro será lido o if, se x e y são iguais, ele mostrará "Os números sao iguais", e sai do bloco, sem passar pelo comando else, ele vai ignorar completamente o que esta dentro o else.
Não há limites em programação, contanto que a lógica esteja correta, por isso que é possível encadear ifs dentro de ifs, ou ifs dentro de elses, e assim por diante....Basta não esquecer que o else só será lido quando a condição do if for falsa.
Podemos fazer mais de uma comparação dentro do if.Pode ser feito, inclusive, comparações onde os dois termos são equiparados ou somente um deles.
Vamos utilizar bastante os operadores lógicos, que já vimos anteriormente.
Para ficar mais fácil :
int x,y=10;
if ( x==y && x > 0 ) {
printf("Os numeros sao iguais, e x eh maior que zero");
}else {
printf("Um dos testes anteriores resultou falso");
}
Nota-se que os dois & estão no meio da condição.
Isso significa que somente se "x for igual a y" E "x for maior que zero" a sentença será verdadeira. Somente se os dois casos forem verdadeiros é que a instrução continuará, caso contrário, se algum dos dois for "mentira", entrará no else .
Estas condições devem ser estudadas á parte. Existe cadeiras na faculdade que tratam basicamente somente disso. Isso é muito estudado em Lógica de Programação, que infelizmente não é o nosso foco, mas deve ser estudado á parte. Se for solicitado eu posso encaminhar por email algumas apostilas. Pode parecer complicado, mas depois que se aprende, não há como esquecer.
Os operadores lógicos ( e, ou ) são justamente para estas necessidades. Quando há && significa que os todos elementos que estão sendo testados com o operador devem ser verdadeiros, se um for falso, todo o if será falso.
ex:
if ( 1<2 && 2<4 && 1>0 ) {
printf("O if eh verdadeiro");
// Neste caso acima, todos os testes estão ok, portanto, o if é verdadeiro.
Vamos a um exemplo onde o if resulta falso
ex:
if ( 1>2 && 2<3 && 1>2 ) {
printf("O if eh verdadeiro");
}else {
printf("O if eh falso");
}
// Neste caso a expressão caiu no else, pois no último teste ( 1>2 ) resultou falso, e todo o if resultou falso, consequentemente, passou direto para o else e imprimiu na tela "O if eh falso";
Existe outro operador lógico que podemos usar dentro do if, que é o "ou". No C, utilizaremos pipe duplo, " || ".
O ou, or, || significa que se um dos testes resultar verdadeiro, toda a expressão será verdadeira.
Vamos há um exemplo:
if ( 1>2 || 2>1 || 0>2 || 1 == 0 ) {
printf(" Pelo menos um dos testes resultou verdadeiro ");
} else {
printf("Todos os testes foram falsos");
}
Neste caso acima, houve apenas um teste verdadeiro ( 2>1 ) , portanto, toda a expressao foi verdadeira.
Existe situações onde pode ser utilizado os operadores && e || no mesmo if.
Ex:
if ( ( 1<2 && ( 2 == (1+1) ) ) or ( 9 == ( 3*3) ) ){
printf("O if eh verdadeiro ) ;
}
else {
printf("O if eh falso");
}
Fiz aquela coisa colorida acima para deixar mais claro ( não sei se ficou mais claro, mas tentei...), que é possível fazer diversos testes...
Vamos então ir por partes :
( ( 1<2 && ( 2 == (1+1) ) ) or ( 9 == ( 3*3) ) )
1<2 = verdadeiro
2==(1+1) = verdadeiro
Nestes testes, ambos resultaram verdadeiro
9==(3*3) = verdadeiro.
Nota-se que tudo deu verdadeiro, mas imagine que no parenteses da direira estivesse ( 9==(3*2) )
O que aconteceria com toda a expressão ?
Resultaria verdadeiro igual á antes. Porque?
Por que o teste feito é :
( ( 1<2 && ( 2 == (1+1) ) ) or ( 9 == ( 3*2) ) )
tudo aqui é verdadeiro ou este falso
Neste caso imaginamos o resultado de ( 1<2 && ( 2 == (1+1) ) ) OU o resultado de ( 9 == ( 3*2) ).
Entenderam ?
Pessoal, o que mais me deixa grilado, é que com certeza vai ter gente que não entendeu. E isso é normal. É difícil mesmo aprender por texto desta forma, ainda mais quem nunca teve contato. Agora que ja conhece alguma outra linguagem, ou já fez algum cursinho de lógica, vai encontrar mais facilidade com tudo isso.
Acho que por enquanto podemos parar.
Veremos nos próximo capítulos "Laços de Repetição", mais especificamente os comandos While e For.
Mas antes disso quero pedir o desafio deste capítulo.
Como eu havia falado anteriormente, vamos usar nosso programinha de IMC para continuar colocando em prática oque aprendemos.
Vamos fazer o seguinte:
Vocês devem pesquisar na internet, se é utilizado o mesmo parametro para calcular o IMC entre homens e mulheres.
Há uma pequena diferença no cálculo. Coisa bem simples.
Pesquisem então o que quer dizer cada número do IMC, ou seja, qual é o número dos magros, dos normais, dos obesos...etc.
Nesta hora que vai entrar o if.
Segue as dicas para realizar o exercício :
Faça mais uma pergunta, desta vez podem perguntar o sexo.
Obs : Vocês podem fazer uma pergunta onde apareca por opcoes
1 - masculino
2- feminino
Atribuir á uma variável int fica mais fácil.
Apoś isso deixem o resto como esta, perguntando altura e peso.
Antes de mostrar o resultado, vocês fazem o if, testando se o numero foi maior que "tantos" e menor que "tantos", o resultado é magro, e vocês vçao mostrar na tela uma mensagem informando que a pessoa esta com um peso abaixo do IMC.
Se estiver normal mostra outra coisa, e se estiver maior, mostra outra coisa...
Eu vi certa vez que existe uns 5 níveis, baseados no numero do IMC.
Beleza moçada ?
Vou aguardar uns dias e postar a correção do exercício.
Este por ser um pouco mais complexo, deixarei mais de 3 dias.
Ok ??
Abraço e não tenham vergonha de perguntar alguma coisa...o que eu não souber, eu pesquiso pro nosso Google !!
Abraços!!!
Até o próximo capítulo !
Nenhum comentário:
Postar um comentário