Trilha 5: Vetores (Arrays Unidimensionais)

Objetivos de Aprendizagem


Resumo Rápido

Um vetor é como uma estante com várias prateleiras numeradas. Você usa um único nome e acessa cada gaveta pelo número (índice).

Conceito Sintaxe / Regra
Declaração tipo nome[tamanho];
Ex: int notas[5]; (Cria 5 espaços)
Acesso nome[índice]
Ex: notas[0] = 10; (Guarda 10 na primeira posição)
Índices Vão sempre de 0 até tamanho - 1.
Se o vetor tem tamanho 5, os índices são: 0, 1, 2, 3, 4.
Cuidado Vital: O C não avisa se você tentar acessar uma posição que não existe (ex: notas[100] num vetor de 5). Isso causa erros graves de memória (Lixo de memória ou travamento).

Exemplo Comentado

Problema: Ler 4 notas de uma turma, calcular a média e mostrar quais notas ficaram acima da média.


#include <stdio.h>

int main() {
    // 1. Declaração do Vetor
    // vetor 'notas' terá 4 espaços (índices 0 a 3)
    float notas[4]; 
    float soma = 0, media;
    int i;

    // 2. Preenchendo o Vetor (Entrada)
    printf("Digite as 4 notas:\n");
    
    // Usamos o FOR para percorrer as posições 0, 1, 2 e 3
    for(i = 0; i < 4; i++) {
        printf("Nota %d: ", i+1); // Apenas visual (para não mostrar Nota 0)
        scanf("%f", &notas[i]);   // Lê e guarda na posição 'i'
        
        soma = soma + notas[i];   // Já aproveita para somar
    }

    // 3. Cálculo da Média
    media = soma / 4;
    printf("\n--- Média da Turma: %.2f ---\n", media);

    // 4. Verificação (Reutilizando os dados guardados)
    printf("Notas acima da média:\n");
    
    for(i = 0; i < 4; i++) {
        // Verifica cada posição salva no vetor
        if(notas[i] > media) {
            printf("- A nota %.1f (posição %d) foi acima.\n", notas[i], i);
        }
    }

    return 0;
}
            

Lista de Exercícios

1. Teoria dos Índices

Se declararmos um vetor int valores[10];, qual é o índice da última posição válida?

Ver Gabarito

Resposta: Índice 9. (Os índices vão de 0 a 9).

2. Inicialização

Crie um vetor de 5 inteiros e preencha ele manualmente com os valores 10, 20, 30, 40 e 50 na declaração.

Ver Código Resposta

#include <stdio.h>

int main() {
    // Inicialização direta na declaração
    int numeros[5] = {10, 20, 30, 40, 50};
    
    printf("O terceiro número é: %d", numeros[2]); // Imprime 30
    return 0;
}

3. Maior Valor do Vetor

Escreva um programa que leia 5 números inteiros para um vetor e, no final, diga qual é o maior valor armazenado.

Ver Código Resposta

#include <stdio.h>

int main() {
    int vet[5], i, maior;

    // Leitura
    for(i=0; i<5; i++){
        printf("Digite num %d: ", i);
        // Aqui também é bom garantir o & se for copiar
        scanf("%d", &vet[i]);
    }

    // Lógica do Maior:
    // Assumimos que o primeiro é o maior
    maior = vet[0];

    // Comparamos com o resto
    for(i=1; i<5; i++){
        if(vet[i] > maior){
            maior = vet[i]; // Atualiza o "recordista"
        }
    }

    printf("O maior valor é: %d", maior);
    return 0;
}