univesp.br
Eixo de Computação - COM210
Univesp - Universidade Virtual do Estado de São Paulo
Profes...
Video Transcript:
E aí [Música] o Olá pessoal bem-vindos à aula 2 da semana 5 da disciplina de sistemas computacionais vamos lá vamos pessoal nessa semana a gente está falando sobre conceitos básicos da linguagem C e na aula de hoje nós vamos falar sobre estruturas typedef cê depois nós vamos juntar até pydev estruturas um pouquinho de bom vamos lá fds é uma ideia de Cera a gente quer compor né outros tipos a partir dos tipos existentes né então ele você não vai criar Na verdade o novo tipo né A ideia é você compor a partir dos tipos que já existem tá Então como que a gente faz isso e em linguagem externa é isso que a gente vai ver na aula agora nós vamos usar palavrinha reservada Type desce o tipo né que já existe em você e aí o novo tipo que você bom então o tipo é qualquer tipo de novo eu identificador aí que você vai dar você vai localizar esse tipo de definição aqui o junto Onde você coloca os inclusos e as macros tá então a gente viu isso na aula passada aqui é a parte onde você vai também fazer o step 10 né lembra que na segunda que você tem a definição de funções e variáveis globais aqui é o corpo da função e essa parte aqui é o programa principal né começando aí pela palavra reservada bem Abrir Chaves e} aqui é o primeiro bloco é o bloco do meio e é aqui vocês vão ver um exemplo para ficar mais fácil entendeu typedef então eu como eu tinha deixado lá para vocês é a palavrinha reservada typedef um tipo que já existe por exemplo flor e o nome do meu novo tipo Então agora eu tenho o tipo que chama número real tá aqui eu tô definido de novo e tô chamando tipo inteiro de medida e agora eu tô brincando né aquele meu medida agora vai chamar altura que é do tipo inteiro né E aí eu tô criando uma variável áudio do tipo altura que é do tipo Medida que é do tipo inteiro e para áudio eu tô dando o valor vim a aí eu tô definido uma variável inteira Xisto atribuindo quatro para ela e tem um ir aí também do tipo inteiro aí lá no meu bloquinho tá então lembra lá o in crude a biblioteca nessa biblioteca esse dia aí o ela inclui alguns comandos que eu tô usando aqui por exemplo cutane print f e há os typedef depois a declaração de variáveis globais lembra lá na estrutura do slide anterior e aqui o meu programa principal que eu tô dizendo que é um uma função né nem que vai retornar o inteira que eu tô retornando o Zé e aí que que eu tô definido dentro do corpo aí desse meu bloco principal eu tô dizendo que ir vai receber o valor de áudio dividido por x né lembra que o áudio é do tipo inteiro e a do tipo altura que é do tipo Medida que a gente tipo inteiro né então eu vou estar dividindo aí 24 bom poderia fazer um outro retorno aqui é a estrutura depois vocês vão entender que a gente vai usar typedef com estrutura aí tem uma lógica mais interessante a estrutura é uma coleção de variáveis Possivelmente de diferentes tipos organizadas em um único conjunto tá então imaginei né usando a metáfora aí que o espaço de memória onde ali você possa guardar diferentes tipos de dados então naquele espaço você vai poder guardar inteiro flaut ponteiros né vários tipos de Aço as variáveis que compõem a sua estrutura é o que a gente chama de elementos da estrutura então aqui para ficar mais claro como definir uma estrutura eu uso a palavrinha reservada Stretch o nome da minha estrutura aí é pessoa e eu tô dizendo que dentro da minha estrutura eu vou ter Campos chá que estão vetores deixar na verdade é é uma uma uma composição né vou ter vários ar aí que vão vai chamar nome é um vetor de 30 posições e um uma variável inteira que é denominada na identificada por idade Então essa definição você vai poder declarar agora variáveis cujo tipo seja a pessoa então agora eu posso dizer que pessoa é uma variável pai o tio irmão né ou eu posso definir assim né usando aquela estrutura lá que eu tinha definido eu posso dizer que pessoa é pai mãe tio irmão tá aqui agora eu vou misturar com typedef eu vou chamar a minha estrutura de um tipo Então aí fica mais fácil de eu chamar depois outras estruturas daquele tipo né então eu tô definindo uma história de ar que é um inteiro x e o chá Y carácter y e aí que tô dizendo que ó eu tô usando palavrinha Type desce o tipo existem que eu estou pentear e tô chamando eu espero que há de mais forte e tipo agora quando eu quiser definir uma outra estrutura do mesmo tipo de sua tia é só dizer o tipo mas bebê então agora B é uma estrutura igual a a qual eu posso fazer dessa outra maneira aqui né eu posso usar o chefe vez daqui embaixo né depois de eu ter terminado a definição da história eu posso colocar o typedef aqui no início da definição da história então eu digo typedef sortear dentro da minha estrutura tenho dois elementos e Inter x fechar a Eu fecho e chamo essa estrutura a né o novo nome no meu typedef tá aqui para isso aí ser mais perto e aí eu posso dizer que B é do tipo mais então aí vocês tem essas duas opções aí né É para usar agora uma coisa interessante né É como eu coloco dados dentro dos campos da minha história que te como eu leio dados de lá né então eu vou mostrar aqui para vocês então eu tô definido novamente Aos sete a com dois Campos um X inteirinho puxar Y nem tô dando o nome para ela demais parte aí lá no meu programinha principal né lembra a estrutura né que eu tô fazendo a definição desse traste lá no meu bloco principal eu tô dizendo intimem-se é do meu bloco mês eu tô definido uma variável num e olha aqui que eu tô fazendo eu tô pegando o my street mas não estrutura inteira o campo x Itália onde dizer ela me procura no eu percebo minha Sepultura no campo limpo eu recebo então eu tô colocando 10 EA como valores para mim estrutura né como Campos para como valores dos Campos da minha estrutura e agora eu tô rolê nessa linha eu vou ler o valor atribuído a mais porque x Então agora eu vou atribuir o valor demais porque X para num seu imprimir Master x master thipton em um eu vou imprimir 10 a 10 Por que não agora vai ter o valor 10 é aqui né de novo a strict né agora eu tô chamando aqui 7. se tô definido duas isso E aí bebê né que são iguais que tem esses elementos aqui e agora veja né dentro do meio eu tô dizendo a Ponto X tô atribuindo ao campo x instrutor o problema e olha que interessante eu passei né meu patrão antes ele nos permite fazer estrutura né ser atribuída na outra estrutura então eu tô atribuindo a estruturar a estrutura de Quando eu fizer um print f não é imprimir o valor inteiro aí do BX né ele vai imprimir 10 por que o assistem 10 quando eu atribuiu a AB o BX passa a ter valor 10 Então essa impressão vai dar o valor resultado 10 eu tô aqui mostrando para vocês uma outra maneira de fazer atribuição de valores para os campos da estrutura né eu posso fazer essa atribuição aqui né lembra aqui o definir e estruturar e Bené eu a minha amiga estruturae B E aí imediatamente já diesel 10, a né uai é caracter por isso entre aspas simples né Eu já estou fazendo essa atribuição então aí aqui eu tô fazendo o quê bebê recebe a como eu fiz aqui na hora que eu fizer aqui um print F do BX ele vai dar 10 e se eu fizer um print porcentagem ser né aqui que é caracter né de é inteiro ser caracter né a formatação né aí eu vou imprimir o quê Ah tá então aí eu sei que eu posso atribuir estrutura a estrutura além das atribuições aí de valores a elementos da estrutura e em termos de operações na eu posso trabalhar com as operações com os campos da estrutura né e é importante destacar que quando eu faço esse tipo de operação eu tenho que fazer campo né Que que isso quer dizer né então lembra do slide anterior que eu tenho a estrutura bee'ah que essa estrutura aqui com dois Campos x y e aí eu inicializei né a estrutura a com 10 no x e a Lu Y como agora eu vou fazer operações né eu posso por exemplo dizer que BX vai receber a x 2 então sim a x né então vez que aqui é o primeiro elemento de ar é é x é 10 então dez vezes 2 BX vai ser 20 então só imprimir BX eu botei o valor 20 tá e o b y Olha que eu tô dizendo bem y é aqui é uma maneira curta de você dizer b y mais três então o b y como ele era um caractere a e ele vai pegar o valor lá é numérico que representa o ar né porque eu tô tratando de uma operação aqui é numérica né tô fazendo mais aqui adição que vai ser 65/95 já não me lembro mais três né você vai pegar a letra a b c né ele vai pegar a próxima letra aí aí quando você imprimir B a y provavelmente aí vai ser o seu minúsculo beleza é tentem fazer viu pessoal é outra coisa que eu posso fazer com estrutura é trabalhar com composição né porque estrutura podem ser Campos de outras estruturas né eu coloquei no estrutura dentro de instrutor Olha aqui eu tô fazendo uma estrutura chamada de ponto dentro dessa história de ponto eu tenho um campo x e um campo Y né que ação da ponte e aí Neto tempo precisa nesse Campo Y ou eu a festa foi estrutura e ele chamada de ponto e eu tô criando também a prática do tipo retângulo né e agora eu tô compondo a minha estante retângulo quase Truck. Então meu retângulo né ele tem um ponto P1 que é um XY né E um ponto P2 que é um X e Y né Então aí para definir o meu retângulo e eu tô chamando essa espécie de ré tá E agora Como que eu faço para desenhar o meu retângulo né eu vou lá no Hatch.
P1 Então veja a estrutura Hatch com a estrutura P1 no valor no campo x e do 10 depois eu vou na Hatch na P1 no y e 10 então eu. Xy10 e aí eu vou na estrutura hatch no ponto P2 no campo x e coloco 50 E aí eu vou de novo estrutura hatch no campo P2 e no y e coloca o vídeo né Então aí vai estar o meu ponto no 10 10 né 50 e 20 a 40 e 20 né então eu vou com desenhar o meu retângulo com essas aí coordenada tá pessoal então eu posso fazer esterco de dentro de estudante juntando com a aula passada eu posso fazer esse truque de ponteiro Olha que legal então essa estrutura aqui ela vai alto referenciar ela mesmo porque eu tô desenhando aqui uma história de ponteiro tô dizendo que essa estante ponteiro ela tem dois Campos inteiros 1 x e um y e o terceiro Campo dela é uma Street Street é essa é uma estética um ponteiro para. Né então É como se eu tivesse lá dentro do meu espaço de memória né um campo com o valor inteiro x o outro valor inteiro y e o outro valor vai guardar o endereço da própria stricta o celular tá guardada no endereço 1.