Linguagem C - Aula 6.1 - Domine vetores (arrays) em linguagem C (2022)

Linguagem C - Aula 6.1 - Domine vetores (arrays) em linguagem C (2022)

Introdução aos Vetores e Laços de Repetição

Importância dos Laços de Repetição

  • O instrutor reitera a importância de dominar os laços de repetição antes de avançar para o estudo dos vetores, pois eles são fundamentais para manipular dados em várias posições.
  • A falta de compreensão sobre laços pode dificultar o entendimento do funcionamento dos vetores, que requerem acesso a múltiplas posições automaticamente.

Transição para Vetores

  • O domínio prévio dos laços proporciona confiança ao aluno, facilitando a aprendizagem de conceitos mais complexos relacionados aos vetores.
  • É sugerido que alunos revisitem exercícios sobre laços se ainda não se sentirem confortáveis com o tema.

O Que São Vetores?

Estrutura e Funcionamento

  • Os vetores são apresentados como estruturas de dados mais complexas que permitem armazenar múltiplos valores sob um único nome, diferentemente das variáveis simples.
  • Um vetor é descrito como um aglomerado de variáveis simples, permitindo armazenar vários dados distintos dentro da mesma estrutura.

Acesso às Posições do Vetor

  • Para acessar diferentes elementos em um vetor, utiliza-se índices que controlam as posições na memória.
  • A declaração de um vetor segue uma sintaxe semelhante à das variáveis simples, mas inclui especificação do tamanho entre colchetes.

Declaração e Armazenamento em Memória

Comparação com Variáveis Simples

  • Ao declarar um vetor, é necessário definir seu tipo, nome e tamanho. Essa estrutura permite alocar uma região maior na memória comparada às variáveis simples.
  • O instrutor ilustra como a memória é organizada: enquanto uma variável simples ocupa espaço fixo (exemplo: 32 bits), um vetor pode ocupar múltiplas regiões contíguas na memória.

Visualização da Memória

  • Uma comparação visual é feita entre a ocupação da memória por uma variável simples e por um vetor com várias posições.

Introdução aos Vetores em Linguagem C

Conceitos Básicos de Vetores

  • Um vetor ocupa 8 bits e pode armazenar caracteres simples, como uma letra. A última posição de memória pode conter um caractere específico.
  • Em C, a primeira posição de um vetor é indexada como zero, a segunda como um e assim por diante. Para um vetor com três posições, os índices vão de 0 a 2.
  • A última posição de um vetor de tamanho n está no índice n - 1. Por exemplo, para n = 3, o último índice é 2.

Acesso às Posições do Vetor

  • O acesso às posições do vetor deve ser feito individualmente; não é possível acessar todo o vetor ao mesmo tempo em C.
  • É importante entender que cada elemento do vetor deve ser processado conforme a lógica do programa, especialmente em vetores inteiros.
  • O acesso a uma posição específica é feito utilizando o nome do vetor seguido pelo índice entre colchetes.

Inicialização e Declaração de Vetores

  • A única forma de acessar todos os elementos de um vetor ao mesmo tempo em C é através da lista de inicialização durante sua declaração.
  • Ao declarar um vetor, podemos preenchê-lo com valores conhecidos imediatamente para evitar lixo na memória.
  • A sintaxe para declarar um vetor inclui especificar o tipo, nome e tamanho dentro dos colchetes, seguidos pela lista de valores entre chaves.

Exemplo Prático: Cálculo da Média

  • No exemplo apresentado, foi declarado um vetor chamado "ver" com tamanho cinco. Os elementos foram atribuídos nas respectivas posições.
  • O cálculo da média aritmética simples envolve somar todos os elementos do vetor e dividir pela quantidade total (neste caso, cinco).
  • Após calcular a soma dos elementos (150), dividindo por cinco resulta na média correta (30).

Considerações Finais sobre Acesso a Elementos

  • Com vetores maiores (como com mil posições), torna-se inviável acessar cada elemento manualmente; automatizar esse processo é crucial.

Melhorias no Código: Redução de Linhas e Práticas de Clean Code

Redução de Linhas de Código

  • O código anterior tinha 18 linhas, enquanto a nova versão foi reduzida para 13 linhas. Essa redução não impacta significativamente o desempenho, mas torna o código mais elegante.
  • A prática de manter menos linhas é uma das boas práticas do Clean Code, facilitando a compreensão do código.

Cálculo da Média

  • O código anterior calculava a média dos elementos em um vetor com valores decrescentes (de 50 a 10). A nova versão utiliza uma ordem crescente (de 10 a 50), mas ainda assim produz o mesmo resultado na média.
  • A lista de inicialização é utilizada para declarar e inicializar o vetor ao mesmo tempo, evitando problemas que surgiriam se tentasse atribuir valores após a declaração.

Estruturas de Repetição

  • Ao criar um vetor preenchido desde o início, uma variável i é introduzida para ajudar na iteração através das posições do vetor.
  • Utiliza-se laços de repetição para acessar cada índice do vetor. Isso substitui a necessidade de hardcoding dos índices diretamente no código.

Cálculo da Soma

  • Em vez de calcular a soma e média em uma única linha, usa-se um laço que incrementa i e permite somar os valores do vetor iterativamente.
  • A variável S inicia com valor 10 e acumula os valores do vetor conforme i avança nas iterações.

Resultado Final

Entendendo Vetores em C

Introdução aos Vetores

  • O apresentador introduz a ideia de trabalhar com vetores, mostrando um exemplo visual do código que declara um vetor de 5 posições.
  • O vetor é nomeado como "ver" e possui índices de 0 a 4, totalizando 5 posições. Uma variável "ir" é inicializada em 10.

Inicialização e Soma dos Elementos

  • O vetor "ver" é preenchido com os valores: 10, 20, 30, 40 e 50. A variável "s" também começa em zero.
  • A soma dos elementos do vetor começa com o índice zero; o valor de "s" se torna 10 após somar o primeiro elemento.
  • À medida que avança pelos índices do vetor, a variável "s" acumula os valores: s passa a ser 30 ao somar o segundo elemento (20).

Continuação da Soma

  • No índice três, soma-se o valor atual de "s" (30) com o valor no índice três (40), resultando em s igual a 70.
  • Finalmente, ao somar o último elemento (50), "s" chega a um total de 150. O número de iterações é contado para calcular a média.

Exibição do Resultado

  • O resultado final exibido ao usuário é calculado como resultado = 150 / 5 = 30. É enfatizado que os índices vão até n -1.

Problemas Potenciais na Linguagem C

  • É discutido que acessar uma posição fora dos limites do vetor não gera erro imediato na linguagem C, mas pode causar problemas futuros durante a execução.
  • Um exemplo prático ilustra como tentar acessar uma posição inválida pode levar a falhas no programa após várias execuções.

Interação com Usuário

  • O próximo passo envolve criar um novo vetor onde o usuário insere dados manualmente através de um loop for.
  • Após coletar as entradas do usuário para preencher as posições do vetor, ele exibe os dados inseridos.

Teste e Validação do Código

  • Ao testar o código compilado, são inseridos valores sequenciais pelo usuário: 10, 20, 30, até chegar à última posição disponível no vetor.

Considerações Finais sobre Limites de Vetores

Compreendendo o Comportamento de Vetores em C

Problemas com Limites de Vetores

  • O vetor foi definido para ter cinco posições, mas ao tentar inserir mais elementos, o programa permitiu a inserção além do limite.
  • Ao tentar adicionar um sexto elemento (999), o programa não parou como esperado, indicando que há uma falha na verificação dos limites do vetor.
  • A inserção de valores fora do limite pode resultar em comportamentos aleatórios, como a impressão de números inesperados ou lixo de memória.

Consequências da Extrapolação

  • O comportamento observado é perigoso e pode levar a resultados imprevisíveis. Isso ocorre porque o programador não implementou verificações adequadas para os limites do vetor.
  • Exemplos práticos mostram que mesmo após preencher corretamente as cinco posições, valores adicionais foram armazenados incorretamente no vetor.

Estruturas de Dados e Raciocínio

  • Trabalhar com vetores exige um raciocínio mais complexo e a combinação com estruturas de repetição para manipulação eficaz dos dados.
  • A aula aborda como declarar vetores, acessar suas posições e navegar entre eles utilizando estruturas de repetição.

Próximos Passos no Aprendizado

  • Na próxima aula, será discutido sobre strings e manipulação de texto em C, facilitando a transição para outras linguagens onde trabalhar com texto pode ser mais intuitivo.
Video description

👨🏻‍💻 QUER TER ACESSO ÀS LISTAS DE EXERCÍCIOS E SLIDES DA AULA ⁉️ 👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻 ⚠️ADQUIRA A LISTA DE EXERCÍCIOS através deste link: 👉🏻 https://profpietro.com/curso-exercicios-c/ Neste link você ainda terá direito de: ✅ Garantir acesso vitalício a este curso de Linguagem C, dentro da minha plataforma de hospedagem de cursos; ✅ Ter acesso aos exercícios resolvidos; ✅ Ter acesso aos slides utilizados nas aulas; ✅ Emissão do seu certificado de conclusão do curso para comprovar que realizou e teve o aproveitamento necessário no curso. Está com muita dificuldade em programação? MARQUE UMA AULA PARTICULAR COMIGO: 🎯contato@profpietro.com Estou no Linked-in: https://www.linkedin.com/in/profpietromartins Estou no GitHub: https://github.com/pietromartinso/ Estou no Instagram: https://www.instagram.com/profpietromartins/