Olá e bem-vindo.
Nesta palestra, eu quero falar sobre o conceito de uma matriz.
Um array é um conceito que permite você pode armazenar muitos valores diferentes
em uma única variável essencialmente.
Matrizes são comuns na maioria linguagens de programação.
Eles ajudam a simplificar e tornar seu programa muito mais eficiente.
Então, vamos falar sobre criar e usar matrizes em c.
Então, uma matriz.
É muito comum em um programa armazenar muitos valores de dados de um tipo especificado.
Em um programa de esportes, por exemplo, você pode querer
armazenar as pontuações de todos os jogos ou a pontuação de cada jogador.
Até este ponto, poderíamos facilmente implementar isso, mas teríamos que escrever uma variável diferente
para cada pontuação.
Então imagine se houver uma tonelada de jogos.
Quero dizer, no beisebol há 162 jogos.
Se tivéssemos que escrever um programa que era um programa de
beisebol que queria armazenar algumas estatísticas ou algo assim, nós teria que criar
162 variáveis para cada jogo para manter o placar.
Agora isso é um pé no saco.
Seria muito tedioso.
e é realmente demais.
Então é aqui que array entrar em jogo, um array
resolverá esse problema.
Você não tem que crie 162 variáveis.
Você pode criar uma única variável e acessá-lo de uma determinada maneira.
Então, os arrays permitem que você agrupe valores juntos sob um único nome.
Você não precisa separar variáveis para cada item de dados.
Então, vai permitir que você se torne um programador muito mais eficiente.
Uma matriz é um número fixo de dados itens são todos do mesmo tipo.
Portanto, apenas um problema com um array é que você não pode alterar
o tamanho do array.
Depois de criar a matriz, é sempre será desse tamanho.
E a outra restrição é que você não pode armazenar
vários tipos de dados.
Se você declarar uma matriz e for ainda vai armazenar números e
ints, ele tem que armazenar ints.
Portanto, algumas limitações.
Como você declara uma matriz.
Lembre-se disso quando você declara uma variável o que você está fazendo?
Você está dizendo que isso variável existe no programa.
E quando você está declarando esses tipos de dados primitivos, você
está alocando forma de memória.
Quando você declara uma matriz, os itens de dados na matriz
são chamados de elementos.
Portanto, este é outro conceito quando você pensa em uma matriz.
Se estou dizendo o termo elemento isso significa que estou me referindo
a um item na matriz.
Porque lembre-se de que um array é vai ter muitos, muitos valores
diferentes, mas com o mesmo nome.
E como mencionamos os elementos em o array tem que ser do mesmo
tipo, você não pode misturar e combinar tipos de dados.
Você não pode ter uma matriz de 5 ints e 5 longos.
Não existe tal coisa como um único matriz de vários tipos de dados.
Declarar um uso de uma matriz em um programa é semelhante
a uma declaração de variável normal.
Tudo que você precisa fazer é especificar o nome e, em seguida, use colchetes.
Então essa é a única diferença, essa ideia de
colchetes após o nome.
Aqui está um exemplo deste parece uma declaração de
variável normal, mas o que você vê aqui está você tem esses colchetes.
Essa é a única coisa que é não é normal, e há
um número dentro deles.
O número dentro dos colchetes estão especificando o tamanho.
Então, aqui estamos apenas dizendo que estamos vai criar
uma matriz chamada números de tipo longo que é vai conter 10 elementos.
Portanto, é muito simples.
Este é um número uma declaração porque o ponto-e-vírgula está no final, é como
uma declaração de variável mas você tem esses
colchetes e um número, e este é o tamanho de a matriz ou a dimensão da matriz.
Depois de declarar uma matriz, você está em seguida, vou querer começar a usá-lo.
Você vai querer começar acessar
os dados dentro dele ou gravar dados nele.
Para fazer isso, você tem para entender como a matriz
é armazenada na memória e como é realmente vai ser acessado.
Portanto, uma matriz com cada um dos elementos na matriz, cada um dos itens de dados, eles são
acessados usando o mesmo nome.
Então você ainda vai acessar com o nome da variável.
No entanto, se você quiser um específico valor naquele raio,
agora você vai ter que usar algo chamado índice ou subscrito, ambos os termos
são usados indistintamente.
Este índice ou valor subscrito é vai ser um número e
vai estar entre parênteses também para acessar um elemento na matriz ou direito a
esse ponto na gravação da matriz um valor, após o nome da matriz.
Portanto, os valores do índice são sequenciais inteiros que começam em 0.
Então, quando falamos sobre um array e seus
elementos e falamos sobre os índices em uma matriz ou os subscritos, todas essas inscrições podem começar de 0.
Isso é basicamente dizer que seus raios são baseados em 0.
Portanto, índices de valores para elementos em um array de tamanho 10 seria de 0 a 9.
0 vai representar isso primeiro elemento da matriz, e 9 vai se referir ao
último elemento em uma matriz de tamanho 10.
Então você tem que entender isso conceito de matrizes baseadas em 0.
Intuitivamente, você pode pensar oh eu deseja acessar o
primeiro ponto na matriz, ok, eu forneço o índice um, não porque eles começam em 0.
Portanto, é muito, muito comum por engano tentar acessar uma matriz e perder por
1 porque você acha que eles começam em um e
não começam em 0.
Isso é referido como um erro desligado por 1.
Você pode usar um número inteiro simples para referenciar explicitamente
o elemento que você deseja acessar.
Por exemplo, se você deseja acessar o quarto valor em
uma matriz, você diria o nome da matriz e então dentro dos colchetes, você diria 3.
Então, o nome da matriz sub-3 vai para acessar o quarto valor porque
o nome da matriz é baseado em 0.
Então você só tem que fornecer um número para o elemento
que você deseja acessar.
E, novamente, lembre-se de que é base 0.
Então, para acessar o 4º elemento, são 3.
Se você deseja acessar o 8º elemento, você faz o índice 7.
Você também pode especificar um índice para um elemento da matriz usando a expressão.
Portanto, agora você só precisa usar um número.
Você pode usar uma expressão em quadrado colchetes após o nome também.
No entanto, a expressão deve resultar em um valor inteiro, que corresponde a um
dos valores de índice possíveis.
Então, se você tem uma matriz de tamanho 10 e você
usa uma expressão, essa expressão deve ser avaliada como ou 0, quaisquer números de 0 a 9.
É muito comum também quando você está armazenar elementos em uma matriz para usar um
loop para acessá-los e vamos para lançar um exemplo disso também.
Então, por exemplo, aqui, temos um para loop e estamos inicializando nossa variável de controle de loop para 0
I e estamos sair assim que I for menor que 10.
E o que estamos fazendo aqui é que estamos
apenas exibindo os números na matriz.
E então estamos dizendo printf o número é por cento de
então os números são sub-I, I é uma variável.
Você pode usar uma variável em um expressão de variável, desde
que essa variável represente um número de 0 a 9, e neste caso é.
É muito comum usar para loops para iterar em
uma matriz para acessar os elementos ou gravar dados nesses elementos.
Então, para resumir, aqui está um bom pequena ilustração que encontrei.
É assim que um array é estruturado.
Se eu tiver um array chamado números, você
terá o nome do array seguido por colchetes que identificam os elementos
individuais na matriz.
Então, posso declarar uma matriz apenas especificando o tipo e o nome
e, a seguir, especifique o tamanho entre colchetes.
E então quando eu quero acessar , eu apenas uso o nome do array
seguido pelo valor do índice.
E assim, para uma matriz
que tem um tamanho 10, você terá índices válidos de 0 a 9.
Então, o que acontece se você tentar acessar um elemento na
matriz com um índice inválido, por exemplo, tentando para acessar uma matriz de tamanho 10 usando 11 como
índice ou 10 como índice.
Você vai ter uma variedade erro fora dos limites.
Então, se você usar uma expressão ou uma variável ou constante para
um valor de índice que está fora do intervalo do array e fora do intervalo
array significa o quê?
Bem, isso significa que é um negativo número ou é um número
maior que o tamanho, realmente maior que o tamanho menos um porque há 0 base.
Então, se você tem uma matriz de tamanho 10, tamanho menos 1, se for maior que 9,
você terá um erro de matriz fora dos limites.
E o problema com um array de erro
de limites, pode fazer com que seu programa falhe, ou mesmo pior, pode
fazer com que seu programa pareça estar funcionando normalmente, mas então ele não age normalmente.
Portanto, não produz resultados consistentes.
Às vezes você vai ter lixo dados, dados que não
significam nada na matriz.
Novamente, é muito imprevisível quando você tem uma matriz de erro de limites.
E o problema é que o erro fora dos limites não pode
ser verificado pelo compilador porque o compilador não vai saber
se você está atribuindo algo maior ou se você está acessando algo
maior que o tamanho.
Ainda vai compilar mesmo que você tenha esse erro de
área fora dos limites.
Essencialmente, a matriz de limites erro é um erro de tempo de execução.
Você não vai descobrir isso erro até que você execute o programa.
E mais uma vez, pode causar o seu programa para ser muito imprevisível.
Então você quer ser muito, muito ciente de como você está acessando a matriz, quais valores de
índice você está usando e como você está gravando dados na matriz com
o valor do índice.
Preste muita atenção ao índices de matriz e também os limites.
Se você quiser gravar dados em um array, é muito, muito simples.
Você vai fazer basicamente apenas use o índice.
Portanto, um valor pode ser armazenado na matriz elemento simplesmente especificando o elemento da matriz
à esquerda lado do sinal de igual e, em seguida, usando os colchetes
para especificar o elemento para o qual você deseja escrever.
Portanto, neste exemplo, temos um array chamado classes, não sabemos qual é o tamanho, tem que ser
maior do que 100 ou então teríamos um erro de array
fora dos limites aqui.
Mas neste exemplo, estamos dizendo grau sub 100 é igual a 95.
O valor 95 é armazenado em o elemento número 100
do array grades, muito simples.
Você apenas especifica o índice e então qualquer valor que você queira assinar,
você o faz
Você também pode usar variáveis para atribuir valores a uma matriz.
Então, 95 podem ser armazenados em uma variável, assim como você atribui outras variáveis.
Agora vamos examinar um exemplo de uso de uma matriz.
Aqui está um exemplo de como usar um array que vai
somar a leitura em 10 números e então me dar a média desses 10 números.
Enquanto os estamos lendo, estamos vamos calcular a soma,
então vamos mostrar a média.
Então, neste ponto, eu quero pegar este exemplo e
eu quero colocá-lo em blocos de código e tentar executar e mostrar como funciona.
Estamos em nossa visão normal, estamos em um projeto simples e vamos mostrar como uma matriz
funciona em blocos de código.
Você notará que estamos em nossa função principal.
Esta é a entrada aponte para o programa.
E na linha 12, estamos declarar uma matriz.
Vamos declarar um array do tipo int de tamanho 10.
O tamanho está entre colchetes, terminamos com um ponto e vírgula.
Esta é uma matriz que é vai armazenar 10 valores.
Se não tivéssemos esta
matriz armazenado, o que teríamos que fazer é dizer a primeira int, grau 2 int, grau 3.
Você vê como é problemático é e como é tedioso.
É muito bom podermos simplesmente crie uma única variável que
armazena 10 itens, e eles estão agrupados.
Quando você armazena itens em uma matriz, você não quer que os valores dos dados
sejam diferentes, todas coisas diferentes.
Como neste exemplo, estamos armazenando notas, então são todas as notas.
Você não quer nomear um array algo e então dizer
que vou armazenar minhas notas, vou armazene meu ...
minha... minha... tanto faz, minha idade lá dentro e qualquer coisa.
Certifique-se de armazenar o mesmo tipo de dados quando você é um array.
A próxima variável da linha 13 é uma variável de contagem.
É igual a 10.
Vai ser o numero de valores a serem lidos porque estamos
percorrendo a matriz.
A soma é longa, vamos somar os números conforme analisamos os valores e, em
seguida, a média está indo para ser um float porque queremos obter
a média dos números.
Primeira coisa que vamos fazer linha 17 diremos
ao usuário que queremos que ele insira 10 notas e então iremos
ler os valores.
Então, nas linhas 20, você percebe como estou recuo e
estou usando boa nomenclatura, recuo e uso bom bloqueio de código para blocos de recuo de código.
Aqui na linha 20, estou declarando minha variável de controle de loop.
Estou executando um compilador mais antigo, c compilador 89, então não posso declará-lo e
inicializar a mesma linha.
Normalmente, você apenas faria isso.
Mas quando eu faço isso porque estou correndo Erro do compilador C89.
Então eu declaro minha variável online 20 e, em seguida, uso um loop for.
Estamos familiarizados com os loops for de nossas palestras anteriores permite que
você repita o código.
Aqui estamos apenas dizendo que vamos tem um loop for controlado
por contador, vamos começar em 0 e vamos indo até as 10h.
Então nós vamos através de 10 iterações, mas você observa
que o índice é 0.
Isso é importante porque vamos acessar um
array, usando aquela variável I.
E então você notará no final do loop for, modificamos
a variável de controle do loop incrementando-a.
Então, vamos imprimir o valor de I mais 1 à medida
que percorremos a matriz para mostrar a você onde você está para os números.
Então, basicamente vai dizer como entrar no grau 1 grau 2 grau 3 grau 4.
Ele então vai pedir a você para entre no grau usando scanf.
Vamos armazená-lo em nosso array.
Você perceberá que quando você armazená-lo no array,
é como um acesso normal à variável.
Você apenas usa notas, e então você especifica o índice.
Aqui, estamos usando I como nosso índice.
Então isso vai ser igual a 0 a primeira iteração, 1 a
segunda iteração, 2 a terceira iteração.
E é bom começarmos com 0 porque as matrizes são baseadas
em 0 e então usamos apenas o endereço do operador, o "e" comercial.
Conforme avançamos, estamos vai somar as notas.
Então, vamos dizer soma é igual a soma mais nota sub I.
Cada série vai para basicamente calcule um total.
E então, uma vez que saímos do circuito depois de
correr 10 vezes, vamos definir nossa média igual ao soma dividida pela contagem e
convertida em um flutuador, estamos lançando aqui.
Isso está mudando o tipo de dados.
Lembre-se, soma dividida por contagem, soma é longo e conta como um int e queremos convertê-lo em
um float.
E então, no final, estamos vai imprimir a média.
Então, vamos prosseguir e executar isso e certifique-se de que não haja erros, pois temos 0 erros
e 0 avisos.
Então agora vamos executá-lo.
E então vai fazer exatamente o que mencionei.
Vai dizer entre as 10 séries e então coloca um 1 em uma pequena marca ali para que
saibamos em que número estamos.
Vai render cerca de 95 32 55, vai entrar e apenas colocar qualquer
número aqui.
Eles não fazem sentido necessariamente, tudo bem, e meu último número 23.
A média desses 10 as notas vão ser 51. 20
Mas é muito bom porque nós não precisa criar 10 variáveis.
Acessamos a matriz usando o subscrito, e podemos atribuir valores ao
array usando o subscrito.
Isso está realmente atribuindo quando fazemos o scanf.
Estamos atribuindo dados para isso a esse subscrito.
Agora, se nós mudássemos isso e digamos que começamos em 1 e em
vez de contar qual é 10, nós o definimos igual.
Então, na verdade, vamos não altere isso para 1.
Digamos que vamos começar em 0, mas agora iremos
até o índice 10.
Lembre-se, o índice 10 está fora dos limites porque o tamanho da matriz
é 10, mas o valor do índice é 0 com base para que o índice máximo seja 9.
E, novamente, seremos capazes para compilar isso porque
os compiladores não detectam erros fora dos limites, o problema é quando o executamos.
Agora, quando executamos o programa, vamos ter um grande problema que
tentamos entrar no 11º ano.
Então vamos ficar bem.
Quando entramos em 10 notas, o problema vai acontecer quando
chegarmos ao 11.
Agora temos 11, e estamos vai tentar armazenar dados.
Não aconteceu nada de ruim, mas nosso a média não vai ser correta.
E é um comportamento muito imprevisível quando você tem um erro fora dos limites.
Então você quer ter certeza de que você tem a contagem de aulas de
visão e quer ter certeza de que quando você acessa as informações, não sai
dos limites também.
E este é o básico do array, declarando a
matriz, especificando o tamanho, apenas o tipo de dados e então o tamanho e os colchetes, acessando
a matriz ou armazenando dados no array, atribuindo valores, usando
o subscrito I dentro dos índices.
E podemos até imprimir o índices usando subscrito também.
Matrizes vão ser usado um pouco.
Teremos muitos exemplos com matrizes porque simplifica as coisas.
Lembre-se de que as matrizes têm tamanho fixo.
Você não pode mudar o tamanho das notas.
Sempre vai ser 10 ao executar o programa.
Então, se você atribuir algum dado acima isso, não vai se expandir.
E lembre-se também de que as notas tem que ser do mesmo tipo de dados.
Não consigo armazenar strings ou palavras no grau, só posso armazenar ints.
Eu não posso armazenar carros alegóricos em lá, apenas armazene ints.
Obrigada.