Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante   Click to listen highlighted text! Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante

Introdução à Linguagem de Programação – Aula 03

1. Introdução

  • Título da Página: Linguagem de Programação C – Aula 3
  • Autor: Carlos Fernandes
  • E-mail para contato: carlos.fernandes@afogados.ifpe.edu.br
  • Objetivo da Aula: Apresentar a estrutura básica de um programa em C, suas palavras reservadas, inserção de comentários, funcionamento do pré-processador, compilador e linker, além dos tipos básicos de dados.

2. Estrutura Básica de um Programa em C

  • Seções de um programa em C:

    1. Inclusão de bibliotecas (se necessário).
    2. Declaração de constantes (se necessário).
    3. Programa principal (main).
    4. Declaração de variáveis (se necessário).
    5. Sequência de comandos.
  • Exemplo de código básico em C:

#include <stdio.h>

int main(void) {
    int num, c;
    printf("Cubo de um número\n\n");
    printf("Digite o número: ");
    scanf("%d", &num);
    c = num * num * num;
    printf("\nCubo de %d = %d\n", num, c);
    return 0;
}
  • Explicação do código:
    • Inclusão da biblioteca stdio.h.
    • Declaração das variáveis num e c.
    • Uso de printf() para exibir mensagens na tela.
    • Uso de scanf() para capturar a entrada do usuário.
    • Cálculo do cubo do número inserido (num * num * num).
    • Impressão do resultado.
    • Retorno 0 para indicar execução bem-sucedida.

3. Palavras Reservadas em C

  • As palavras reservadas são definidas pelo American National Standards Institute (ANSI).
  • Exemplos:
    auto, break, case, char, const, switch, volatile, continue,
    default, do, double, else, typedef, while, enum, extern,
    float, for, goto, union, if, int, long, register,
    unsigned, return, short, signed, sizeof, static, struct, void
    
  • Essas palavras não podem ser usadas como identificadores de variáveis ou funções.

4. Comentários no Código

  • Facilitam o entendimento e manutenção do código.
  • São ignorados pelo compilador.
  • Tipos de Comentários:
    • Comentário de Linha:
      // Este é um comentário de linha
      
    • Comentário de Bloco:
      /* Este é um comentário de bloco
         Ele pode ocupar várias linhas */
      

5. Fundamentos da Compilação em C

  • O ciclo de desenvolvimento em C envolve quatro etapas principais:

    1. Edição: O programador escreve o código-fonte (.c).
    2. Pré-processamento: O pré-processador analisa o código e expande diretivas (#include, #define).
    3. Compilação: O compilador traduz o código C para código objeto.
    4. Linkagem: O linker conecta o código objeto com bibliotecas necessárias, gerando o executável.
  • Fluxo do Processo de Compilação:

    Código-fonte (.c) → Pré-processador → Compilador → Código objeto (.o) → Linker → Executável
    

6. Tipos Básicos de Dados em C

  • Inteiros:

    Tipo Tamanho Faixa de Valores
    short 16 bits -32.768 a +32.767
    int 32 bits -2.147.483.648 a +2.147.483.647
    long 64 bits -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807
  • Reais (Ponto Flutuante):

    Tipo Tamanho Faixa de Valores
    float 32 bits 3.4E-38 a 3.4E+38
    double 64 bits 1.7E-308 a 1.7E+308
  • Caracteres:

    char (8 bits)
    
  • Tipo void:

    void // Representa ausência de valor
    

7. Exercícios de Fixação

  • Perguntas para reforçar o aprendizado:

    1. Quais são os componentes básicos de um programa em C?
    2. Qual é o nome da função principal em um programa C?
    3. Como inserir comentários em um código C?
    4. Quais são as etapas da compilação de um código C?
    5. Quais são os tipos básicos de dados em C e seus respectivos tamanhos e faixas de valores?
  • Exemplo prático:

    #include <stdio.h>
    
    int main() {
        int num1, num2;
    
        printf("Digite dois números inteiros: ");
        scanf("%d %d", &num1, &num2);
    
        if (num1 > num2) {
            printf("%d é maior que %d\n", num1, num2);
        } else if (num2 > num1) {
            printf("%d é maior que %d\n", num2, num1);
        } else {
            printf("Os números são iguais\n");
        }
    
        return 0;
    }
    
    • Objetivo do código: Comparar dois números e exibir qual é o maior.

Código em C com Comentários

#include <stdio.h>  // Inclui a biblioteca padrão de entrada e saída, necessária para usar printf() e scanf()

int main() {  // Define a função principal do programa, onde a execução começa

    int num1, num2;  // Declara duas variáveis inteiras para armazenar os números digitados pelo usuário

    printf("Digite dois números inteiros: ");  // Exibe uma mensagem pedindo ao usuário para inserir dois números

    scanf("%d %d", &num1, &num2);  // Lê dois números inteiros digitados pelo usuário e armazena em num1 e num2

    // Estrutura condicional para comparar os dois números
    if (num1 > num2) {  
        // Se num1 for maior que num2, imprime que num1 é maior
        printf("%d é maior que %d\n", num1, num2);  
    } 
    else if (num2 > num1) {  
        // Se num2 for maior que num1, imprime que num2 é maior
        printf("%d é maior que %d\n", num2, num1);  
    } 
    else {  
        // Se nenhum dos casos acima for verdadeiro (ou seja, os números são iguais), imprime que são iguais
        printf("Os números são iguais\n");  
    }

    return 0;  // Retorna 0 para indicar que o programa foi executado com sucesso
}

Explicação Passo a Passo

  1. Inclusão da Biblioteca (#include <stdio.h>)

    • Necessária para usar funções de entrada e saída, como printf() e scanf().
  2. Declaração da Função Principal (int main())

    • Todo programa em C começa pela função main().
  3. Declaração das Variáveis (int num1, num2;)

    • num1 e num2 são inteiros usados para armazenar os valores fornecidos pelo usuário.
  4. Exibição da Mensagem (printf("Digite dois números inteiros: ");)

    • Pede ao usuário para inserir dois números.
  5. Leitura dos Números (scanf("%d %d", &num1, &num2);)

    • O scanf() captura dois valores inteiros e os armazena em num1 e num2.
  6. Comparação dos Números (if (num1 > num2))

    • Se num1 for maior que num2, imprime que num1 é o maior.
  7. Segunda Condição (else if (num2 > num1))

    • Se num2 for maior que num1, imprime que num2 é o maior.
  8. Caso os Números Sejam Iguais (else)

    • Se nenhuma das condições anteriores for verdadeira, imprime que os números são iguais.
  9. Finalização (return 0;)

    • Indica que o programa foi executado corretamente.

Fluxograma do código

Fluxograma do código (feito pelo autor)

Explicação breve sobre o comando if.

O comando if em C é uma estrutura de controle condicional que permite executar um bloco de código apenas se uma determinada condição for verdadeira (veremos em detalhes mais adiante). Ele segue a seguinte sintaxe básica:

if (condição) {
    // Bloco de código executado se a condição for verdadeira
}

Caso seja necessário tratar diferentes possibilidades, podem ser utilizados else if e else:

if (condição1) {
    // Executa se condição1 for verdadeira
} else if (condição2) {
    // Executa se condição1 for falsa e condição2 for verdadeira
} else {
    // Executa se todas as condições anteriores forem falsas
}

Exemplo de Uso

#include <stdio.h>

int main() {
    int num = 10;

    if (num > 0) {
        printf("O número é positivo.\n");
    } else if (num < 0) {
        printf("O número é negativo.\n");
    } else {
        printf("O número é zero.\n");
    }

    return 0;
}

Saída no console:

O número é positivo.

O if também pode usar operadores lógicos (&&, ||, !, que serão vistos mais adiante) para combinar múltiplas condições. É uma estrutura essencial para a tomada de decisões na programação em C. 


Exemplo de Execução

Entrada do Usuário

Digite dois números inteiros: 10 20

Saída do Programa

20 é maior que 10

Entrada do Usuário

Digite dois números inteiros: 15 15

Saída do Programa

Os números são iguais

Outro exemplo prático

Aqui está um programa em C que converte um valor de Fahrenheit para Celsius, com o valor a ser convertido definido diretamente no código.


Código em C

#include <stdio.h>

int main() {
    // Definição do valor em Fahrenheit
    float fahrenheit = 98.6; // Valor a ser convertido (exemplo: temperatura corporal normal)

    // Conversão para Celsius usando a fórmula
    float celsius = (fahrenheit - 32) * 5.0 / 9.0;

    // Exibição do resultado
    printf("%.2f Fahrenheit equivale a %.2f Celsius\n", fahrenheit, celsius);

    return 0;
}

Explicação do Código

  1. Inclusão da Biblioteca (#include <stdio.h>)

    • Necessária para usar printf() e exibir resultados na tela.
  2. Declaração da Função Principal (int main())

    • Onde o programa inicia sua execução.
  3. Declaração da Variável fahrenheit

    • Definição fixa de um valor em Fahrenheit. No exemplo, 98.6°F representa a temperatura corporal normal.
  4. Cálculo da Conversão para Celsius

    • Utiliza a fórmula:

    \[C=(F - 32)×59C = (F - 32) \times \frac{5}{9}\]

    • O resultado é armazenado na variável celsius.
  1. Impressão do Resultado

    • O printf() exibe o resultado com duas casas decimais para melhor precisão.
  2. Retorno 0

    • Indica que o programa foi executado corretamente.

Exemplo de Saída

98.60 Fahrenheit equivale a 37.00 Celsius

8. Recursos Complementares

Respostas dos Exercícios de Fixação

1. Quais são os componentes básicos de um programa em C?

Um programa em C possui cinco componentes principais:

1.1. Inclusão de Bibliotecas (#include)

Permite importar funções prontas, como printf() e scanf(), contidas em bibliotecas.

#include <stdio.h> // Biblioteca padrão de entrada e saída

1.2. Declaração de Constantes (#define)

Define valores fixos que não podem ser alterados.

#define PI 3.14159

1.3. Função Principal (main())

Ponto de entrada da execução do programa.

int main() {
    return 0;
}

1.4. Declaração de Variáveis

Armazena dados temporários usados pelo programa.

int idade = 25;
float altura = 1.75;
char inicial = 'A';

1.5. Sequência de Comandos

Blocos de código que executam ações.

printf("Olá, mundo!\n");

Referências


2. Qual é o nome da função principal em um programa C?

A função principal de um programa em C é main().

Exemplo

#include <stdio.h>

int main() { // Função principal do programa
    printf("Programa em execução.\n");
    return 0; // Indica execução bem-sucedida
}
  • O programa SEMPRE começa executando a função main().
  • O retorno 0 indica ao sistema operacional que o programa terminou corretamente.

Referências


3. Como inserir comentários em um código C?

Os comentários ajudam a documentar o código, tornando-o mais compreensível.

Tipos de Comentários em C

3.1. Comentário de Linha (//)

// Este é um comentário de linha
printf("Olá, mundo!\n"); // Comentário no final da linha

3.2. Comentário de Bloco (/* ... */)

/* 
   Este é um comentário de bloco.
   Ele pode ocupar várias linhas.
*/
printf("Executando o programa.\n");
  • Comentários são ignorados pelo compilador.
  • Não afetam o funcionamento do programa.

Referências


4. Quais são as etapas da compilação de um código em C?

O processo de compilação em C é dividido em quatro etapas:

4.1. Edição (Escrita do Código)

O programador escreve o código-fonte (.c).

#include <stdio.h>

int main() {
    printf("Compilação em andamento...\n");
    return 0;
}

4.2. Pré-processamento (#include, #define)

Expande diretivas de pré-processador antes da compilação.

4.3. Compilação (Código Objeto .o)

Transforma o código-fonte em código objeto.

gcc programa.c -o programa

4.4. Linkagem (Criação do Executável)

Conecta o código objeto com bibliotecas para gerar um arquivo executável.

Fluxo da compilação:

Código-fonte (.c) → Pré-processador → Compilador → Código Objeto (.o) → Linker → Executável

Referências


5. Quais são os tipos básicos de dados em C e seus respectivos tamanhos e faixas de valores?

A tabela abaixo mostra os principais tipos de dados em C com seus tamanhos e faixas de valores:

Tipo Tamanho Faixa de Valores
Inteiros    
short 16 bits -32.768 a 32.767
int 32 bits -2.147.483.648 a 2.147.483.647
long 64 bits -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807
Ponto Flutuante    
float 32 bits 3.4E-38 a 3.4E+38
double 64 bits 1.7E-308 a 1.7E+308
Caractere    
char 8 bits 0 a 255 (ASCII)
Void    
void Nenhum Representa ausência de valor

Exemplo de Uso de Tipos de Dados

#include <stdio.h>

int main() {
    int inteiro = 100;
    float decimal = 5.75;
    char letra = 'A';

    printf("Inteiro: %d\n", inteiro);
    printf("Float: %.2f\n", decimal);
    printf("Char: %c\n", letra);

    return 0;
}

Saída:

Inteiro: 100
Float: 5.75
Char: A

Referências


Para quem quer mais.

Fim da aula 03

Click to listen highlighted text!