Porém, fizemos testes de condições simples e sem muita utilidade. Vamos aprender agora, em nossa apostila de C, a usar alguns operadores que nos permitirão fazer coisas bem interessantes apenas com IF ELSE.
Clique aqui e saiba como obter seu certificado de programação C! Entre já no Mercado de Trabalho!
Testar e comparar, testar e comparar...a essência da programação
Quando você entra em um site de conteúdo adulto e te perguntam sua idade: se você clicar em 'tenho mais de 18 anos', você entra, se clicar em 'tenho menos de 18 anos', eles te encaminham pro site do Restart.
- Baixar nossa apostila: Apostila de C
Pois bem, eles fizeram um teste: se fizer isso, acontece isso, se fizer aquilo acontece outra coisa.
As vezes é perguntada nossa data de nascimento, em alguns sites. Informamos os números, eles guardam em alguma variável e depois comparam: se o número for menor que uma data específica, você é de maior. Caso os números que você forneceu sejam maiores que essa data, é porque você ainda é de menor.
Isso foi uma comparação: pegamos um dado (sua data de nascimento) e comparamos com outro (a data de 18 anos atrás).
Durante um jogo, o programa fica o tempo inteiro testando o que o jogador digitou. Se digitou a tecla pra direita, vai pra direita, se foi pra cima, vai pra cima, se não apertar nada, nada ocorre e assim a vida segue.
Se convenceu da importância dos testes e comparações? Então vamos testar e comparar.
Se convenceu da importância dos testes e comparações? Então vamos testar e comparar.
O operador de igualdade em C: ==
Se quisermos comparar uma variável x com uma variável y fazemos:
x == y
Sempre que ver isso, leia como se fosse uma pergunta: x é igual a y?
Ou seja, se é uma pergunta (comparação), sempre retorna um valor booleano. Ou seja, ou é falso ou é verdadeiro.
É comum que alguns estudantes e iniciantes em programação confundam o '=' com o '=='.
O '=' é uma atribuição, estamos atribuindo um valor, estamos dizendo que aquela variável vai receber um valor, e ponto final.
Já o '==' é um teste, queremos saber se o valor é igual ou não.
Ou seja, ele vai retornar TRUE ou FALSE. É como se estivéssemos fazendo uma pergunta, e que estamos esperando uma resposta.
É comum que alguns estudantes e iniciantes em programação confundam o '=' com o '=='.
O '=' é uma atribuição, estamos atribuindo um valor, estamos dizendo que aquela variável vai receber um valor, e ponto final.
Já o '==' é um teste, queremos saber se o valor é igual ou não.
Ou seja, ele vai retornar TRUE ou FALSE. É como se estivéssemos fazendo uma pergunta, e que estamos esperando uma resposta.
Exemplo de código:
Faça um programa em C que pergunte ao usuário quanto é 1 + 1, usando o teste condicional IF ELSE, e que responda se ele acertou ou errou.
Faça um programa em C que pergunte ao usuário quanto é 1 + 1, usando o teste condicional IF ELSE, e que responda se ele acertou ou errou.
#include <stdio.h> int main(void) { int resultado; printf("Quanto eh 1 + 1? "); scanf("%d",&resultado); if(resultado == 2) { printf("Parabens, voce nao usa drogas\n"); } else { printf("Amigo, pare de fumar isso...\n"); } }
Ou seja, nós perguntamos o valor de 1+1 e armazenamos na variável inteira resultado.
Depois comparamos esse resultado com 2.
Se o usuário tiver digitado 2, a comparação resultado == 2 retornará valor booleano VERDADEIRO (true) e o IF ocorre.
Caso o que o usuário digitou não seja 2, a comparação retornará valor booleano FALSO (false) e será o ELSE que o nosso programa em C irá rodar.
Simples, não? Continuemos...
Depois comparamos esse resultado com 2.
Se o usuário tiver digitado 2, a comparação resultado == 2 retornará valor booleano VERDADEIRO (true) e o IF ocorre.
Caso o que o usuário digitou não seja 2, a comparação retornará valor booleano FALSO (false) e será o ELSE que o nosso programa em C irá rodar.
Simples, não? Continuemos...
O operador maior que em C: >
Se quisermos saber se uma variável x é maior que uma variável y fazemos:
x > y
Caso x seja maior que y, essa comparação retornará valor lógico VERDADEIRO (true).
Caso x seja menor, ou igual, a y, essa comparação retornará valor lógico FALSO (false).
Exemplo de código:
Crie um aplicativo em C que pergunte a idade do usuário e diga se ele é maior ou menor de idade, usando o comparador maior que.
Caso x seja maior que y, essa comparação retornará valor lógico VERDADEIRO (true).
Caso x seja menor, ou igual, a y, essa comparação retornará valor lógico FALSO (false).
Exemplo de código:
Crie um aplicativo em C que pergunte a idade do usuário e diga se ele é maior ou menor de idade, usando o comparador maior que.
#include <stdio.h> int main(void) { int idade; printf("Digite sua idade: "); scanf("%d",&idade); if(idade > 17) { printf("Voce eh de maior, pode entrar! \n"); } else { printf("Sinto muito, voce nao pode entrar\n"); } }
A explicação do código C é bem simples: para ser de maior, você deve ter mais que 17 anos, se tiver, a comparação idade > 17 retornará TRUE e o IF irá rodar.
Caso você tenha 17 anos ou menos, você é de menor e o código salta para rodar o ELSE.
Pronto, agora você já pode criar aqueles sistemas de sites que perguntam se você é de maior ou não.
Muito útil essa linguagem de programação C, não?
O operador menor que em C: <
Se quisermos saber se uma variável x é menor que uma variável y fazemos:
x < y
Caso x seja menor que y, essa comparação retornará valor lógico VERDADEIRO (true).
Caso x seja maior, ou igual, a y, essa comparação retornará valor lógico FALSO (false).
Exemplo de código:
Crie um aplicativo em C que pergunte a idade do usuário e diga se ele é maior ou menor de idade, usando o comparador menor que.
Caso x seja menor que y, essa comparação retornará valor lógico VERDADEIRO (true).
Caso x seja maior, ou igual, a y, essa comparação retornará valor lógico FALSO (false).
Exemplo de código:
Crie um aplicativo em C que pergunte a idade do usuário e diga se ele é maior ou menor de idade, usando o comparador menor que.
#include <stdio.h> int main(void) { int idade; printf("Digite sua idade: "); scanf("%d",&idade); if(idade < 18) { printf("Sinto muito, voce nao pode entrar\n");
} else { printf("Voce eh de maior, pode entrar!\n"); } }
A explicação do código C é o oposto da explicação do exemplo anterior, note a lógica inversa: se você tiver menos que 18 anos, você será menor e o teste idade < 18 retornará valor lógico VERDADEIRO e o IF será executado.
Se você não tem menos que 18 anos, é porque tem mais ora. Então, nosso programa em C executará o ELSE.
O operador maior igual a em C: >=
Até o momento fizemos somente a análise do tipo 'maior ou menor'. Porém, as vezes queremos incluir o próprio número na comparação...ou seja, queremos saber se uma variável é maior ou igual que outra.
Se quisermos saber se uma variável x é maior ou igual que uma variável y fazemos:
Se quisermos saber se uma variável x é maior ou igual que uma variável y fazemos:
x >= y
Caso x seja maior ou igual que y, essa comparação retornará valor lógico VERDADEIRO (true).
Caso x seja menor a y, essa comparação retornará valor lógico FALSO (false).
Exemplo de código:
Crie um aplicativo em C que pergunte a idade do usuário e diga se ele tem que fazer ou não o exame de próstata, usando o operador maior igual a. Lembrando que é recomendável fazer o exame a partir dos 45 anos.
Note quem tem mais de 45 anos é necessário fazer o exame. Porém, quem também TEM, exatos, 45 anos, também precisa fazer!
Também poderíamos ter feito: idade > 44
Porém não fica muito legal o número 44 aparecer. Por quê?
Ora, a informação que temos da idade é 45, então vamos trabalhar com 45. É uma questão de organização apenas, mas que pode facilitar muito a vida de quem lê um código em C.
Por exemplo, suponha que você foi contratado por uma empresa para ser programador C e vai substituir outro programador (que não sabia muito a linguagem C, por isso perdeu o emprego).
Se você bater o olho no código e ver o número 18 logo você associa com maioridade.
Porém, se tiver o número 17 no meio do código fica difícil deduzir o que o antigo programador tentou fazer...aí você vai ter que quebrar a cabeça pra entender o código dele.
Mas como você está cursando o C Progressivo, você será treinado para ser um programador organizado também. Vamos continuar...
Caso x seja maior ou igual que y, essa comparação retornará valor lógico VERDADEIRO (true).
Caso x seja menor a y, essa comparação retornará valor lógico FALSO (false).
Exemplo de código:
Crie um aplicativo em C que pergunte a idade do usuário e diga se ele tem que fazer ou não o exame de próstata, usando o operador maior igual a. Lembrando que é recomendável fazer o exame a partir dos 45 anos.
#include <stdio.h> int main(void) { int idade; printf("Digite sua idade: "); scanf("%d",&idade); if(idade >= 45) { printf("Eh amigo, ja era, tem que fazer o exame da prostata...\n"); } else { printf("Voce nao precisa fazer o exame de prostata...ainda\n"); } }
Note quem tem mais de 45 anos é necessário fazer o exame. Porém, quem também TEM, exatos, 45 anos, também precisa fazer!
Também poderíamos ter feito: idade > 44
Porém não fica muito legal o número 44 aparecer. Por quê?
Ora, a informação que temos da idade é 45, então vamos trabalhar com 45. É uma questão de organização apenas, mas que pode facilitar muito a vida de quem lê um código em C.
Por exemplo, suponha que você foi contratado por uma empresa para ser programador C e vai substituir outro programador (que não sabia muito a linguagem C, por isso perdeu o emprego).
Se você bater o olho no código e ver o número 18 logo você associa com maioridade.
Porém, se tiver o número 17 no meio do código fica difícil deduzir o que o antigo programador tentou fazer...aí você vai ter que quebrar a cabeça pra entender o código dele.
Mas como você está cursando o C Progressivo, você será treinado para ser um programador organizado também. Vamos continuar...
O operador menor igual a em C: <=
Se quisermos saber se uma variável x é menor ou igual que uma variável y fazemos:
x <= y
Caso x seja menor ou igual que y, essa comparação retornará valor lógico VERDADEIRO (true).
Caso x seja maior a y, essa comparação retornará valor lógico FALSO (false).
Exemplo de código:
Crie um aplicativo em C que pergunte a idade do usuário e diga se ele tem que fazer ou não o exame de próstata, usando o operador menor igual a. Lembrando que é recomendável fazer o exame a partir dos 45 anos.
Agora fizemos o contrário. Comparamos usando a expressão idade <= 44 para verificar que o usuário não tem 45 anos ou mais.
Analisando esse código e o do exemplo passado, qual você usaria para criar tal programa?
Arraste o mouse aqui para ver a resposta -> O anterior, pois ele lida com o número 45.
O símbolo de resto da divisão é %.
Veja, o que está em vermelho é o resto inteiro da divisão:
5 % 2 = 2*2 + 1
7 % 3 = 3*2 + 1
7 % 4 = 1*4 + 3
8 % 3 = 2. Pois: 8 = 3*2 + 2
Em matemática chamamos de 'mod', de módulo: 5 mod 3 = 2
No Brasil, é aquele 'resto' que deixávamos lá embaixo nas continhas do colégio:
Sem dúvidas, a maior utilidade desse operador é saber a multiplicidade de um número (ou seja, se é múltiplo de 2, 3, 5, 7, etc).
Por exemplo, um número par é aquele que, quando dividido por 2, deixa resto nulo.
Exemplo de código:
Crie um programa em C que pergunte um número ao usuário e diga se ele é par. Use o operador módulo ou resto da divisão %.
Em programação, para saber se um número é par, escrevemos: numero % 2 == 0
Leia: se o resto da divisão de 'numero' por 2 deixar resto 0, retorne valor TRUE.
Caso x seja menor ou igual que y, essa comparação retornará valor lógico VERDADEIRO (true).
Caso x seja maior a y, essa comparação retornará valor lógico FALSO (false).
Exemplo de código:
Crie um aplicativo em C que pergunte a idade do usuário e diga se ele tem que fazer ou não o exame de próstata, usando o operador menor igual a. Lembrando que é recomendável fazer o exame a partir dos 45 anos.
#include <stdio.h> int main(void) { int idade; printf("Digite sua idade: "); scanf("%d",&idade); if(idade <= 44) { printf("Voce nao precisa fazer o exame de prostata...ainda\n");
} else { printf("Eh amigo, ja era, tem que fazer o exame da prostata...\n"); } }
Agora fizemos o contrário. Comparamos usando a expressão idade <= 44 para verificar que o usuário não tem 45 anos ou mais.
Analisando esse código e o do exemplo passado, qual você usaria para criar tal programa?
Arraste o mouse aqui para ver a resposta -> O anterior, pois ele lida com o número 45.
O operador diferente de em C: !=
Se quisermos saber se uma variável x é diferente de uma variável y fazemos:
x != y
Caso x seja diferente de y, esse teste retorna valor VERDADEIRO.
Caso x seja igual a y, esse teste retorna valor FALSO.
Exemplo de código:
Crie um programa em C que pergunte um número de 1 até 10 ao usuário, e faça com que ele tente acertar o número secreto. No meu caso, o número secreto é 7.
A explicação é simples: enquanto o usuário digitar um número diferente de 7, o programa entra no IF e diz que o usuário errou a senha.
Se ele não digitar um número de 7, é porque ele digitou o 7, ora! Então, a comparação numero != 7 retorna falso e o ELSE que será executado.
Caso x seja diferente de y, esse teste retorna valor VERDADEIRO.
Caso x seja igual a y, esse teste retorna valor FALSO.
Exemplo de código:
Crie um programa em C que pergunte um número de 1 até 10 ao usuário, e faça com que ele tente acertar o número secreto. No meu caso, o número secreto é 7.
#include <stdio.h> int main(void) { int numero; printf("Adivinha a senha, entre 1 e 10: "); scanf("%d",&numero); if(numero != 7) { printf("Errado! Saia da Matrix!\n"); } else { printf("Parabens, voce entrou no sistema\n"); } }
A explicação é simples: enquanto o usuário digitar um número diferente de 7, o programa entra no IF e diz que o usuário errou a senha.
Se ele não digitar um número de 7, é porque ele digitou o 7, ora! Então, a comparação numero != 7 retorna falso e o ELSE que será executado.
O operador módulo ou resto da divisão em C: %
Resto da divisão é o valor que sobra/resta da divisão para que o quociente permaneça inteiro.O símbolo de resto da divisão é %.
Veja, o que está em vermelho é o resto inteiro da divisão:
5 % 2 = 2*2 + 1
7 % 3 = 3*2 + 1
7 % 4 = 1*4 + 3
8 % 3 = 2. Pois: 8 = 3*2 + 2
Em matemática chamamos de 'mod', de módulo: 5 mod 3 = 2
No Brasil, é aquele 'resto' que deixávamos lá embaixo nas continhas do colégio:
Sem dúvidas, a maior utilidade desse operador é saber a multiplicidade de um número (ou seja, se é múltiplo de 2, 3, 5, 7, etc).
Por exemplo, um número par é aquele que, quando dividido por 2, deixa resto nulo.
Exemplo de código:
Crie um programa em C que pergunte um número ao usuário e diga se ele é par. Use o operador módulo ou resto da divisão %.
#include <stdio.h> int main(void) { int numero; printf("Digite um inteiro: "); scanf("%d",&numero); if( (numero % 2) == 0) { printf("Eh par\n"); } else { printf("Nao eh par\n"); } }
Em programação, para saber se um número é par, escrevemos: numero % 2 == 0
Leia: se o resto da divisão de 'numero' por 2 deixar resto 0, retorne valor TRUE.
Erro comum de iniciantes em programação C
Praticamente todos os programadores, quando estão iniciando seus estudos, cometem o erro de confundir o operador de atribuição com o operador de comparação de igualdade.
Por exemplo, qual a diferença entre:
x = 1
x == 1
?
A resposta é simples: no primeiro exemplo estamos atribuindo, no segundo estamos comparando.
Leia assim:
x = 1: 'Hey C, faça com que a variável x receba o valor 1, atribua 1 ao x'
x == 1: "Hey C, o valor armazenado na variável x é 1'?
Ou seja, na comparação há o retorno de valor lógico VERDADEIRO ou FALSO.
Na atribuição não, simplesmente atribuímos um valor e essa operação retorna sempre true.
Exercícios sobre operadores de comparação em C:
- Faça o programa do exemplo do != , mas com o operador ==
- Faça o programa do exame de próstata usando o operador <
- Faça o programa do exame de próstata usando o operador >
- Faça o programa do teste de maioridade usando o operador <=
- Faça o programa do teste de maioridade usando o operador >=
- Faça um programa que pergunte um número ao usuário e diga se ele é ímpar. Use o operador %.
14 comentários:
parabéns, esse curso esta salvando meu semestre na faculdade. em um ida eu aprendi bem mais que em um mês de aula.
É incrível como a "pedagogia descomplicada" de vocês aqui do C Prog é fantástica. Muito melhor que a de muitos "doutores" que vão pra uma sala de aula com peito estufado mas que só sabem para eles mesmos. Parabéns e continuem com o ótimo trabalho.
"Resto da divisão é o valor que sobra/resta da divisão para que o cociente permaneça inteiro."
O correto é --> quociente.
Feliz em ajudar quem tem me ajudado tanto.
Salvou minha vida, estou aprendendo + do que na faculdade rssrsrs
Mais claro que a água
Ola, boa noite a todos, tenho gostado das aulas e espero conseguir montar meu codigo que salvara minha pele na faculdade e que nao consegui aprender com os professores.
e se minha variavel estiver entre 0 e 17, como eu mando no comando.. if ( x >=0 <=17)? vlw
#include
int main()
{
int idade;
printf("digite sua idade:");
scanf("%d",&idade);
if(idade <18)
{
printf("sito muito vc nao pode entarar ");
}
else
{
printf("voce pode entrar:");
}
}
#include
int main(void)
{
int idade;
printf("digite sua idade: ");
scanf(" %d",&idade);
if(idade>= 45)
{
printf("Eh amigo, ja era, tem que fazer o exame da prostata...\n");
}
else
{
printf("Voce nao precisa fazer o exame de prostata...ainda\n");
}
}
#include
int main()
{
int numero;
printf("Digite um Inteiro : ");
scanf("%d",&numero);
if( (numero %2)==0)
{
printf("Eh par\n");
}
else
{
printf("Nao e Par\n");
}
}
/*Faca um programa que receba dois valores e verifique se eles sao iguais ou
diferentes*/
Aluem pode me ajudar nesse
No topo da página onde diz "clique aqui!" a exclamação quer dizer que não é para clicar?
Como faço isso, mas com palavras?
Muito bom!
Postar um comentário