Assunto
Nesta aula abordaremos os primeiros exemplos de código.
Quebrando a maldição do Hello World!
Nessa aula veremos alguns exemplos de algoritmos desenvolvidos em C e executaremos o passo a passo de cada exemplo para podermos avançar no assunto.
// arquivo: programa.c
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
O código apresentado é um exemplo clássico de um programa escrito em C que exibe a mensagem “Hello world!” na saída padrão. Vamos analisá-lo detalhadamente:
Explicação do Código
// arquivo: programa.c
- Esse é um comentário de linha em C. O compilador ignora tudo o que está após
//
, servindo apenas para documentar o código.
#include <stdio.h>
- Esse é um pré-processador que inclui a biblioteca
stdio.h
(Standard Input Output). Essa biblioteca contém funções para entrada e saída padrão, comoprintf()
.
int main()
- Declaração da função principal do programa. O padrão da linguagem C define que a execução sempre começa pela função
main()
. - O tipo de retorno
int
indica que a função deve retornar um número inteiro ao sistema operacional.
{
- Início do bloco de código da função
main
.
printf("Hello world!\n");
printf()
é uma função da bibliotecastdio.h
que imprime mensagens na tela.- A string
"Hello world!\n"
contém:"Hello world!"
→ O texto a ser exibido.\n
→ Uma quebra de linha para que o cursor vá para a próxima linha após a exibição.
return 0;
- Retorna
0
, indicando que o programa foi executado com sucesso. Em C, um retorno0
da funçãomain
é uma convenção que sinaliza que o programa terminou corretamente.
}
- Fecha o bloco da função
main
.
Compilação e Execução
-
Compilação:
- Suponha que o código esteja salvo em um arquivo chamado
programa.c
. - Para compilar no terminal (usando GCC):
gcc programa.c -o programa
- O comando acima gera um executável chamado
programa
.
- Suponha que o código esteja salvo em um arquivo chamado
-
Execução:
- No Linux/macOS:
./programa
- No Windows (cmd ou PowerShell):
programa.exe
- No Linux/macOS:
Compilando na IDE Code::Blocks

Problema 01
Construa um algoritmo em C que dado dois números descubra qual é o maior e imprima em tela, os números são fornecidos no código do programa.
Abordagem do problema
Números:
num1 = 25
num2 = 40
Como saber qual o maior? Todo computador tem em seu processador instruções capazes de executar operações aritméticas simples, operações de comparação, além de outras funções que não discutiremos agora.
Se pedirmos para o computador imprimir o resultado da operação:
num1 > num2
teremos como resposta:
Falso
Pois o computador pegará os valores armazenados nos endereços de memória num1 (25) e no endereço de memória num2 (40), substituirá os valores na operação num1 > num2
tornando 25 > 40
que é uma comparação lógica que tem como resposta o resultado Falso (operações lógicas tem apenas Verdadeiro ou Falso como respostas). Uma vez que temos o resultado da operação, precisamos dar continuidade ao programa. Veja abaixo o fluxograma desse nosso programa.

Explicação do Fluxograma
1. Início
-
O programa começa sua execução.
-
No fluxograma, o início é representado por um elipse com a palavra
"Início"
.
2. Definir os valores de num1
e num2
-
Os valores dos dois números são previamente definidos no código.
-
No fluxograma, essa etapa é representada por um paralelogramo com
"Definir
.
num1 e num2"
3. Comparação entre num1
e num2
-
O programa verifica se
num1
é maior quenum2
. -
No fluxograma, essa decisão é representada por um losango com a condição
"num1 > num2?"
.
4. Se num1
for maior
-
Se a condição for verdadeira (
Sim
), o programa imprime"num1
.
é o maior número." -
No fluxograma, essa etapa é representada por um paralelogramo.
5. Se num1
não for maior (num2
é maior ou igual)
-
Se a condição for falsa (
Não
), há uma segunda verificação:-
Se
num1
for menor quenum2
, imprime"num2
.
é o maior número." -
Caso contrário (
num1 == num2
), imprime"Os números são iguais."
.
-
6. Fim
-
O programa encerra a execução.
-
No fluxograma, o fim do programa é representado por um elipse com a palavra
"Fim"
.
O Comando if
na Linguagem C – Explicação Detalhada
O comando if
em C é uma estrutura de controle de fluxo condicional que permite que um bloco de código seja executado somente se uma determinada condição for verdadeira (true). Ele é essencial para a tomada de decisões dentro dos programas e pode ser combinado com outras estruturas, como else
e else if
, para lidar com múltiplos cenários.
1. Sintaxe Básica do if
A sintaxe geral do if
é a seguinte:
if (condição) {
// Bloco de código executado se a condição for verdadeira
}
- A
condição
é uma expressão lógica que retorna um valor verdadeiro (true
) ou falso (false
). - Se a condição for verdadeira (
true
), o bloco de código dentro das chaves{}
será executado. - Se a condição for falsa (
false
), o bloco de código será ignorado.
Exemplo Simples
#include <stdio.h>
int main() {
int idade = 18;
if (idade >= 18) {
printf("Você é maior de idade.\n");
}
return 0;
}
Saída no console:
Você é maior de idade.
- O bloco
if
verifica seidade
é maior ou igual a18
. Como a condição é verdadeira, a mensagem é exibida.
2. Usando if
com else
Quando queremos executar um bloco alternativo caso a condição do if
seja falsa, usamos o else
.
Sintaxe do if-else
if (condição) {
// Executado se a condição for verdadeira
} else {
// Executado se a condição for falsa
}
Exemplo com else
#include <stdio.h>
int main() {
int idade = 16;
if (idade >= 18) {
printf("Você é maior de idade.\n");
} else {
printf("Você é menor de idade.\n");
}
return 0;
}
Saída no console:
Você é menor de idade.
- Como
idade
é16
, a condiçãoidade >= 18
é falsa, e o bloco doelse
é executado.
3. Usando if
, else if
e else
Quando temos múltiplas condições a serem testadas, podemos utilizar else if
entre if
e else
.
Sintaxe do if-else if-else
if (condição1) {
// Executado se condição1 for verdadeira
} else if (condição2) {
// Executado se condição1 for falsa e condição2 for verdadeira
} else {
// Executado se nenhuma das condições anteriores for verdadeira
}
Exemplo com else if
#include <stdio.h>
int main() {
int nota = 75;
if (nota >= 90) {
printf("Sua nota é A.\n");
} else if (nota >= 80) {
printf("Sua nota é B.\n");
} else if (nota >= 70) {
printf("Sua nota é C.\n");
} else {
printf("Você foi reprovado.\n");
}
return 0;
}
Saída no console:
Sua nota é C.
- O programa avalia cada condição sequencialmente até encontrar uma verdadeira.
4. Usando Operadores Lógicos no if
Podemos combinar múltiplas condições em um único if
utilizando operadores lógicos:
Operador | Significado | Exemplo | Avaliação |
---|---|---|---|
&& |
E lógico (AND) | (a > 10 && b < 20) |
Verdadeiro apenas se ambas as condições forem verdadeiras |
` | ` | OU lógico (OR) | |
! |
NÃO lógico (NOT) | !(a == b) |
Inverte o valor lógico |
Exemplo com &&
#include <stdio.h>
int main() {
int idade = 25;
int temCarteira = 1; // 1 representa verdadeiro
if (idade >= 18 && temCarteira) {
printf("Você pode dirigir.\n");
} else {
printf("Você não pode dirigir.\n");
}
return 0;
}
Saída no console:
Você pode dirigir.
- O programa verifica duas condições ao mesmo tempo: se a idade é maior ou igual a 18 E se
temCarteira
é verdadeiro.
5. Usando if
sem chaves {}
Se houver apenas uma linha de código dentro do if
, as chaves {}
podem ser omitidas. Porém, essa prática não é recomendada por questões de legibilidade.
Exemplo sem {}
if (idade >= 18)
printf("Você é maior de idade.\n");
Se precisarmos adicionar outra instrução no bloco, é obrigatório usar as chaves:
if (idade >= 18) {
printf("Você é maior de idade.\n");
printf("Agora você pode tirar sua carteira de motorista.\n");
}
6. if
Aninhado (Nested if
)
Podemos colocar um if
dentro de outro if
, criando condições mais específicas.
Exemplo de if
aninhado
#include <stdio.h>
int main() {
int idade = 20;
char possuiCNH = 'S';
if (idade >= 18) {
if (possuiCNH == 'S') {
printf("Você pode dirigir legalmente.\n");
} else {
printf("Você tem idade, mas precisa tirar a CNH.\n");
}
} else {
printf("Você ainda não tem idade para dirigir.\n");
}
return 0;
}
Saída no console:
Você pode dirigir legalmente.
- O primeiro
if
verifica se a idade é suficiente. - O segundo
if
verifica se a pessoa já possui CNH.
Conclusão
O if
é um dos pilares da programação em C e em qualquer outra linguagem. Ele permite a criação de programas dinâmicos, que podem tomar decisões baseadas em entradas e variáveis.
Materiais para Estudo
- Livros
- “The C Programming Language” – Brian W. Kernighan & Dennis M. Ritchie.
- “C: Como Programar” – Deitel & Deitel.
- Sites
- Vídeos
Se precisar de mais detalhes, posso aprofundar qualquer ponto! 🚀
Código em C
#include <stdio.h>
int main() {
// Declaração e inicialização das variáveis com valores fixos
int num1 = 25;
int num2 = 40;
// Exibe os números fornecidos
printf("Número 1: %d\n", num1);
printf("Número 2: %d\n", num2);
// Comparação entre os dois números
if (num1 > num2) {
printf("O maior número é: %d\n", num1);
} else if (num2 > num1) {
printf("O maior número é: %d\n", num2);
} else {
printf("Os números são iguais.\n");
}
return 0;
}
Explicação Detalhada
1. Inclusão da Biblioteca
#include <stdio.h>
- A biblioteca
stdio.h
(Standard Input Output) é fundamental para permitir o uso da funçãoprintf()
, que será utilizada para exibir mensagens na tela.
2. Declaração e Inicialização de Variáveis
int num1 = 25;
int num2 = 40;
- Aqui, duas variáveis inteiras (
num1
enum2
) são declaradas e inicializadas com valores fixos. - No exemplo,
num1
recebe o valor25
enum2
recebe40
. Esses valores podem ser alterados para testar diferentes cenários.
3. Impressão dos Números na Tela
printf("Número 1: %d\n", num1);
printf("Número 2: %d\n", num2);
printf()
é usado para exibir os valores armazenados nas variáveisnum1
enum2
.- O especificador de formato
%d
é utilizado para imprimir números inteiros.
4. Estrutura de Decisão para Comparação
if (num1 > num2) {
printf("O maior número é: %d\n", num1);
} else if (num2 > num1) {
printf("O maior número é: %d\n", num2);
} else {
printf("Os números são iguais.\n");
}
if (num1 > num2)
→ Senum1
for maior quenum2
, então ele será exibido como o maior número.else if (num2 > num1)
→ Senum2
for maior quenum1
, então ele será exibido como o maior número.else
→ Senum1
enum2
forem iguais, uma mensagem indicará que os dois números são idênticos.
5. Finalização do Programa
return 0;
- O retorno
0
indica que o programa foi executado com sucesso.
Exemplo de Saída no Terminal
Quando executado com os valores num1 = 25
e num2 = 40
, o programa produzirá a seguinte saída:
Número 1: 25
Número 2: 40
O maior número é: 40
Se os valores fossem num1 = 100
e num2 = 50
, a saída seria:
Número 1: 100
Número 2: 50
O maior número é: 100
Se num1
e num2
forem iguais, como num1 = 30
e num2 = 30
, o programa exibirá:
Número 1: 30
Número 2: 30
Os números são iguais.
Possíveis Melhorias
-
Permitir entrada do usuário
- Modificar o código para que o usuário possa digitar os números em tempo de execução:
printf("Digite o primeiro número: "); scanf("%d", &num1); printf("Digite o segundo número: "); scanf("%d", &num2);
-
Implementação com
switch-case
- Embora a estrutura
if-else
seja ideal aqui, podemos utilizarswitch-case
para algumas variantes do problema.
- Embora a estrutura
-
Criação de uma Função Separada
- Criar uma função específica para comparar os números e modularizar o código.