... amn |e B(nXt)| b11 b12 ... b1t |B = | b21 b22 ... b2t || : || bn1 bn2 ... bnt |O elemento ij da matriz C e resultante da multiplicacao da linha i de A pela coluna j de B.Portanto, a matriz C (mXt) = A*B sera da seguinte forma:C =| a11*b11 +a12*b21 + ... +a1n*bn1 a11*b12 +a12*b22 + ... + a1n*bn2 ... a11+b1t+a12*b2t + ... + a1n*bnt || a21*b11 +a22*b21 + ... +a2n*bn1 a21*b12 +a22*b22 + ... + a2n*bn2 ... a21+b1t+a22*b2t + ... + a2n*bnt || ... ...... ... || am1*b11 +am2*b21 +...+amn*bn1 am1*b12 +am2*b22 +...+ amn*bn2 ... am1+b1t+am2*b2t +...+amn*bnt |99Capitulo . 10 (Tipos de Dados Definidos Pelo Usuario)Estruturas - Primeira parteUma estrutura agrupa varias variaveis numa so. Funciona como uma ficha pessoal quetenha nome, telefone e endereco. A ficha seria uma estrutura. A estrutura, entao, serve paraagrupar um conjunto de dados nao similares, formando um novo tipo de dados.CriandoPara se criar uma estrutura usa-se o comando struct. Sua forma geral e:struct nome_do_tipo_da_estrutura{tipo_1 nome_1;tipo_2 nome_2;...tipo_n nome_n;} variaveis_estrutura;O nome_do_tipo_da_estrutura e o nome para a estrutura. As variaveis_estrutura saoopcionais e seriam nomes de variaveis que o usuario ja estaria declarando e que seriam do tiponome_do_tipo_da_estrutura. Um primeiro exemplo:struct est{int i;float f;} a, b;Neste caso, est e uma estrutura com dois campos, i e f. Foram tambem declaradas duasvariaveis, a e b que sao do tipo da estrutura, isto e, a possui os campos i e f, o mesmoacontecendo com b.Vamos criar uma estrutura de endereco:struct tipo_endereco{char rua [50];int numero;char bairro [20];char cidade [30];char sigla_estado [3];long int CEP;};100Vamos agora criar uma estrutura chamada ficha_pessoal com os dados pessoais de umapessoa:struct ficha_pessoal{char nome [50];long int telefone;struct tipo_endereco endereco;};Vemos, pelos exemplos acima, que uma estrutura pode fazer parte de outra ( a structtipo_endereco e usada pela struct ficha_pessoal).UsandoVamos agora utilizar as estruturas declaradas na secao anterior para escrever umprograma que preencha uma ficha.#include <stdio.h>#include <string.h>struct tipo_endereco{char rua [50];int numero;char bairro [20];char cidade [30];char sigla_estado [3];long int CEP;};struct ficha_pessoal{char nome [50];long int telefone;struct tipo_endereco endereco;};main (void){struct ficha_pessoal ficha;strcpy (ficha.nome,"Luiz Osvaldo Silva");ficha.telefone=4921234;strcpy (ficha.endereco.rua,"Rua das Flores");ficha.endereco.numero=10;strcpy (ficha.endereco.bairro,"Cidade Velha");strcpy (ficha.endereco.cidade,"Belo Horizonte");strcpy (ficha.endereco.sigla_estado,"MG");ficha.endereco.CEP=31340230;return 0;}O programa declara uma variavel ficha do tipo ficha_pessoal e preenche os seus dados.O exemplo mostra como podemos acessar um elemento de uma estrutura: basta usar o ponto(.). Assim, para acessar o campo telefone de ficha, escrevemos:ficha.telefone = 4921234;101Como a struct ficha pessoal possui um campo, endereco, que tambem e uma struct,podemos fazer acesso aos campos desta struct interna da seguinte maneira:ficha.endereco.numero = 10;ficha.endereco.CEP=31340230;Desta forma, estamos acessando, primeiramente, o campo endereco da struct ficha e,dentro deste campo, estamos acessando o campo numero e o campo CEP.Matrizes de estruturasUm estrutura e como qualquer outro tipo de dado no C. Podemos, portanto, criarmatrizes de estruturas. Vamos ver como ficaria a declaracao de um vetor de 100 fichaspessoais:struct ficha_pessoal fichas [100];Poderiamos entao acessar a segunda letra da sigla de estado da decima terceira fichafazendo:fichas[12].endereco.sigla_estado[1];Analise atentamente como isto esta sendo feito ...AUTO AVALIACAOVeja como voce esta. Escreva um programa fazendo o uso de structs. Voce devera criaruma struct chamada Ponto, contendo apenas a posicao x e y (inteiros) do ponto.