Relembrando
No curso de algoritmos vimos que no paradigma de programação estruturada os dados seguem um fluxo sequencial contínuo em uma direção de acordo com as instruções do meu algoritmo. Porém, em determinadas circunstâncias torna-se necessário mudar essa direção de acordo com uma dada condição.
Nesses casos precisamos incluir no algoritmo uma estrutura de controle de fluxo do tipo condicional que em Portugol era representada pela instrução SE e que na maioria das outras linguagens de alto nível é representado pela instrução IF.
No Portugol tínhamos a seguinte estrutura:
instruções caso a condição seja verdadeira ou satisfeita
}
Lembrando que a condição era uma expressão matemática que podia ser descrita com operadores condicionais e lógicos. Quando a condição era satisfeita dizíamos que ela era verdadeira e o algoritmos executava as instruções em uma ou mais linhas que estavam delimitadas entres as chaves {}.
Eventualmente, o SE do Portugol podia ser acompanhado de um SENÃO que permitia o direcionamento do fluxo do algoritmo para instruções caso a condição do SE não fosse satisfeita. Nas outras linguagens geralmente o ELSE é o equivalente ao SENÃO. Assim teríamos a estrutura completa dessa forma:
instruções caso a condição seja verdadeira ou satisfeita
}
instruções caso a condição seja falsa ou NÃO satisfeita
}
Relembrou?
Estrutura do IF/ ELSE no C
Na linguagem C o IF também vem acompanhado de um abre e fecha parenteses () dentro do qual vai a nossa condição, sendo o ELSE opcional. Assim teríamos uma estrutura condicional dessa forma:
instruções caso a condição seja verdadeira ou satisfeita
}
instruções caso a condição seja falsa ou NÃO satisfeita
}
Programa de Exemplo
Digamos que eu queira que o usuário digite um número inteiro "x" e o programa deverá analisar se o número é par ou impar. Se um número "x" for par, deverá sair na tela a mensagem "Esse número é Par!", se não for par deverá sair na tela a mensagem "Esse número é Impar!".
Lembrando que os números pares são aqueles que ao serem divididos por dois resultam em um resto de divisão igual a zero. Lembrando também que o operador na linguagem C que determina o resto de uma divisão é %. Assim, para calcular o resto da divisão por 2 de um número x teríamos a fórmula x%2.
Então, para ser par, x%2 tem que ser igual a zero. No entanto essa fórmula precisa ser escrita dentro de uma condição e precisaremos de um operador que teste essa igualdade. Vamos relembrar os operadores da aula passada:
![]() |
Operadores aritméticos, condicionais e lógicos da Linguagem C |
Como já dissemos na aula anterior, para testar igualdades em um condição utilizamos o operador == no lugar de igual. Assim, x%2==0 será a condição que determina se o número for par. Agora ficou fácil escrever o programa:
- #include <stdio.h>
- int main()
- {
- int x;
- printf("Digite um número inteiro: ");
- scanf("%d",&x);
- if (x%2==0){
- printf("Esse número é Par!");
- }
- else{
- printf("Esse número é Impar!");
- }
- return 0;
- }
Outro exemplo
Digamos que eu queira usar novamente o programa da aula passada que pega a nota de duas provas, calcula a média aritmética das notas e mostra o resultado em tela. Só que agora eu quero que ele também seja capaz de dizer que "Aluno foi Aprovado!" se média for maior ou igual a 5. Caso a condição de aprovação não seja satisfeita, o programa deverá dizer que "Aluno foi Reprovado!".
Fácil não? Vamos a uma possível solução:
- #include <stdio.h>
- int main()
- {
- float nota1,nota2,media;
- printf("Digite a nota1: ");
- scanf("%f",¬a1);
- printf("Digite a nota2: ");
- scanf("%f",¬a2);
- media=(nota1+nota2)/2;
- printf("Média Final: %.1f\n",media);
- if (media>=5){
- printf("Aluno foi Aprovado!");
- }
- else{
- printf("Aluno foi Reprovado!");
- }
- return 0;
- }
Se você foi atrás do programa da aula passada e tentou reutilizar o código anterior deve ter visto que eu mudei algumas coisas. Por exemplo, eu criei uma variável média que eu não tinha criado antes.
O que justificou criar essa variável foi o fato da média ter sido acionada duas vezes: Uma para aparecer na tela e outra na análise da condição. Nesse caso a criação da variável facilitou a codificação, pois evitou a digitação da fórmula do cálculo de média duas vezes.
No entanto a criação de variáveis deve ser bem criteriosa, pois o excesso de variáveis sobrecarrega desnecessariamente a memória do sistema e lembre-se que em Sistemas Embarcados os recursos de hardware são escassos.
Que outra novidade nós temos em relação ao programa da aula anterior? Se você respondeu o uso do código especial \n na saída da média na linha 11, acertou! Esse \n nessa posição faz com que após o valor da média o programa quebre uma linha e mostre o aprovado ou reprovado na linha debaixo, evitando que tudo fique grudado.
Na próxima aula vamos complicar mais um pouquinho.
Referências
DAMAS, L. Linguagem C. Rio de Janeiro: LTC Editora, 2007.
GBD ONLINE. C for Beginners. Disponível em: <https://learn.onlinegdb.com/c_for_beginners> Acesso em 05 ago. 2024.
GBD ONLINE. C Programming Examples Disponível em: <https://learn.onlinegdb.com/c_program_examples> Acesso em 05 ago. 2024.
W3SCHOOLS. C Tutorial. Disponível em: <https://www.w3schools.com/c/index.php> Acesso em 05 ago. 2024.