Olá, [música] [música] [música] pessoal. Boa noite. Sejam bem-vindos à nossa primeira aula da disciplina de linguagem técnica e programação. Boa noite, professor Fabríz. Tudo bem? Boa noite, professor. Tudo bem? Boa noite, pessoal. Pessoal, antes aqui eu gostaria de reiterar que o horário da aula é às 8:40, OK? Tava tava errado lá, já fiz o ajuste de todas as aulas, OK? Nós tivemos que mudar o horário da aula, fazer um ajuste de grade aqui há um tempo atrás e aqui não foi atualizado. Então tá tudo certo agora, não se preocupem, ok? E pra gente iniciar aqui,
eu gostaria de trazer alguns recados para vocês, ok? Av, atividade mapa e atividade um está liberada, OK? Então, se alguém tiver alguma dúvida, professor, como vou proceder para responder a atividade mapa? Fala comigo, OK? Eu já tenho respondido. Ah, para usar template, é para entregar no template. Ah, como que eu vou fazer com o código? Entra lá na IDE, copia todo o código, coloca dentro do template e entrega a atividade, OK? Print. O pessoal não consegue copiar para para compilar seu código da disciplina, vai ter que compilar. se não compilar tem alguma coisa de errado,
então vai impactar na sua nota, OK? Então vamos ficar atento a esses detalhes, OK? Ainda eu gostaria de passar mais alguns recados para vocês. Vocês já receberam algum esses avisos lá no Moral, mas eu gosto de reforçar para vocês que é um programa bem legal aqui que a gente tem entre a Compasual e a UNCUMAR, que é um grupo, um programa de estágio, OK? Então você entra lá, participa, passa pelas fases, bootcamp, estágio, você é um modelo 100% remoto, você pode concorrer a uma bolsa, OK? De R$200 mensais ali na a partir da fase dois,
né? E lá no final do programa de estágio você pode também ser efetivado, OK? Então é um programa bem legal para você participar. O segundo programa aqui é um programa interno que a gente tem de monitoria. Então, temos algumas áreas exatas: tecnologia, saúde, química, física, fotografia. Você pode participar de qualquer uma dessas monitorias, OK? Mas o que que é o foco dessa monitoria? Eh, são alunos que já estão em algum tempo caminhando conosco, OK? Que ministram essa monitoria. Eles desenvolvem o programa, desenvolvem os assuntos, sempre acompanhado por um professor aqui, OK? e eles ministram essas
aulas para vocês, elas não ficam gravadas, ok? Então, se você entra lá, se inscreve e participa da aula. E o último recado aqui também de uma mentoria que a gente vai ter aqui, vai ocorrer eh no mês de novembro, são três semanas, OK? As inscrições abriram agora no dia 28 e vão até o dia 8. É uma monitoria ali com foco ali na gestão prática, gestão ágil, então lá no experiências com modelo scram, OK? Então, para quem gosta de projeto é muito importante, né, professor? Essa essa área aí, todo mundo que vai atuar na área
de tem que entender um pouquinho de projeto ou entender muito de projeto, faz falta. Se você não sabe programar e não entende projeto, sinto muito dizer que vai penar um pouquinho, não é isso, professor? Verdade, professor. Então, pessoal, só relembrá-los das atividades, então se alguém tiver alguma dúvida, manda. uma mensagem para mim pelo Fico Mediador. Ó, o Fernando já falou que já se inscreveu. Isso aí, Fernando, se inscreve lá e boa sorte para vocês. Professor tá com a palavra. Olá. Obrigado, professor. Aí, pessoal, boa noite aí, pessoal que já teve aula comigo, aqueles que não
tiveram, certo? Eh, meu nome é Fabrício, eu sou assim, eu sou desenvolvedor aí há 20, 23, 24 anos já que eu trabalho com profissionalmente com desenvolvimento. Eh, também leciono já há bastante tempo e assim, minha formação é é na área de Elétrica e o meu mestrado também, meu doutorado tá sendo na área de elétrica. Então, eh, só que eu tô na área de tecnologia. a há tempo demais, né? Então, eh gosto especificamente da área de segurança, né, que é a onde eu atuo normalmente. E a gente vai aqui tocar nossa disciplina, né, nossa disciplina de
linguagem e técnicas de programação. Ah, aqui a gente vai aprender a trabalhar com C, né, a linguagem C, a temida linguagem C. Muita gente morre de medo, só que a eh pois é, vai ser a linguagem C, tá? Não vai ser o C mais, não. Que tá previsto é apenas o C. Ah, mas vocês vão verão que o o C mais+ é apenas um puxadinho da linguagem C, tá? É um puxadinho da linguagem C. Mas a gente vai com calma, tá? Vai com calma, vai tranquilo, certo? Não se assustem, certo? A linguagem C é uma
linguagem muito tranquila, certo? Ela é muito simples, justamente por ser simples, ela ela te dá a diversas possibilidades de uso. Eh, eu também gosto do do Python. Ess eu sou programador Java Essencialmente, né? programa Java há muito tempo, mas também trabalho com outras linguagens, certo? O C é uma delas, C#ARP também. Eh, o meu mestrado foi em C++. Eh, assim, eu programo em assembly por conta da área de segurança. Ah, então assemble X86. Então, assim, a gente com o tempo a a as linguagens elas vão se acumulando, né? eh as linguagens vão se acumulando. Beleza?
Eh, então vamos lá, pessoal. Então, vamos começar. Eu pedi aí pro professor eh colocar o nosso os nossos slides aí, né, que a gente pra gente começar a a trabalhar aí com os nossos conceitos. da aula de hoje. A aula de hoje é uma aula eh conceito mais conceitual do que prática, mas vocês verão que eu gosto muito de colocar prática aqui pelo seguinte, pelo simples motivo. Ninguém aprende a programar teoricamente. Eu não vou ler um livro, certo? E por ler esse livro eu vou aprender a programar. Programar é como escrever. pessoa tá aprendendo a
escrever, então ela vai repetindo palavras, vai repetindo palavras, vai repetindo Estruturas e a partir do momento que ela ela tem essa memória mecânica, certo? Ela começa a aprender o conceito, tá? Eh, ah, não, não enlouqueci não, cara. Tanto tô aqui, 50 anos, certo? Pouquíssimos cabelos brancos. Então é eh é tranquilo, tá? Então eh nós iremos utilizar, eu tenho uma preferência por utilizar eh o Cion. Por quê? Assim, eu trabalho, eu gosto muito das ferramentas da Jet Brains, então normalmente Java eh eh eu uso eu uso o Intell J. Eh, só que eh eu vou mostrar
para vocês também como utilizar o o VS Code, né? Muita gente gosta aí do VS Code. Eh, eu tenho eu tenho meus assim algumas restrições, mas é é mais de gosto, tá? A gente com o tempo com o tempo a gente vai criando manias, né? criando manias. E então eu gosto muito do eh de utilizar o CIO, mas eu vou mostrar a vocês também. Hoje mesmo eu vejo eu vejo eu mostro a vocês como usar o o VS Code, tá bom? Vou mostrar como configurar também aqui na aula, beleza? Então vamos lá, vamos em frente.
Então o nosso objetivo é lidar com os conceitos Iniciais da linguagem C, beleza? Então, o o a gente vai entender o que é que cada elemento, cada estrutura dentro da linguagem representa. Eu sei que aqui eh tem gente que programa já há algum tempo em outra linguagem ou mesmo em ser, mas tem gente aí, eu acredito que nunca programou, não é isso? É, quem quem aí não tem experiência com programação, que se manifeste aí, OK? Então que se manifeste, mas a nossa ideia é ir aos poucos, tá bom? Para vocês não depois quando eu perceber
que todo mundo está alinhado, aí a gente vai com mais velocidade, tá? Então vamos lá, vamos seguir aí em frente os nossos objetivos, as nossas metas de aprendizagens. Eh, hoje nós precisamos conhecer a história de quem eh eh daquilo que nós vamos utilizar. Então, a gente precisa saber as origens da linguagem C, precisa saber de sua estrutura, como é que funciona, né, de onde surgiu tudo isso, tá? Ah, depois a gente vai entender a estrutura básica de um programa e hoje a gente vai mostrar como criar programas bem simples, tá? Bem simples. Ah, a gente
vai aprender hoje também um pouco sobre variáveis, o que são variáveis, o que são constantes e Vamos falar sobre tipos de dados, tá? Também criaremos um programinha bem simples, certo? Que vai receber uma entrada, certo? E vai fornecer uma saída. Mas não se estressem aqui. A a ideia não é a gente seguir em uma velocidade absurda, porque tem que bater todo o conteúdo. A ideia é a gente seguir e quando vocês estiverem seguros daquilo que estão eh eh que a gente tá falando, que a gente tá fazendo, e se alguém tiver dúvida, pode aí perguntar,
tá bom? Tem o maior prazer em responder eh as suas perguntas. a gente começa eh com aquela pergunta, né? Certo? De onde vem a linguagem C? Aí é é bem interessante porque a linguagem C ela nasceu na década de 70, certo? Assim, a década em que eu nasci. Eh, foi criada por um cara chamada Denis Rich. Isso aí ele fez lá no Belabs. O Belabs, eh, assim, eram são laboratórios, eram laboratórios da empresa ATNT, tá? Aí tinha tinha uma empresa assim de tecnologia muito antiga, muito antiga. Eh, então toda a parte de infraestrutura, ela lidava
muito com isso. Então, o o eles desenvolveram Eh a ideia inicial eh era tinha um objetivo bem direto, bem concreto, que era escrever o sistema operacional Unix, tá? O Unix, eh, para quem não sabe, ele é o irmão mais velho do Linux. Eh, eh, é assim, é o irmão mais velho do Linux. Ela é utilizada ainda hoje e é muito utilizada por conta da simplicidade, certo? E do poder que ela tem. A linguagem C, ela reside em um nicho bem específico entre as linguagens de alto nível e o que são linguagens de alto nível. São
linguagens eh que você eh não precisa conhecer a fundo os detalhes do seu sistema operacional para poder utilizá-la, tá? Então, eh, então, eh, quando você faz isso, você tá abstraindo, né, camadas mais internas. Nós também temos aquelas linguagens que são eh as linguagens que a máquina entende. Aí é que a gente vem lá o assembly. É, então o assembly é uma linguagem de baixo nível, trabalha ali muito próximo do hardware, muito próximo do hardware. Aí nós temos aqui em cima as linguagens de alto nível. Aí você tem o Java, você tem eh o C#ARP, o
C++, o Rub, PHP. Então vocês têm diversas diversas e diversas linguagens. Todas elas estão aqui no alto nível. Tá bom? Todas elas estão aqui em cima. Eh, aí nós temos as linguagens de baixo nível. Aí nós temos ali a linguagem eh assemble que tá ali conversando com o hardware bem próximo, tá? Bem próximo. Eh, aí nós temos aí no meio do caminho uma linguagem que é leve, que é bem leve, certo? que ela não chega a ser uma linguagem de alto nível, mas ela não é uma linguagem de baixo nível. Então o ser ainda é
relevante hoje por conta disso. Ele é tão leve ou quase tão leve quanto assembly. É bem leve mesmo. Então roda em em diversas máquinas, todos os tipos de máquinas. Então, se vocês olharem aí na casa de vocês, eh, vocês verão, eh, diversos dispositivos que tem eh que tem eh eh a linguagem Case, que é um exemplo. Eh, esses smartwatch que possivelmente você tem, né? Esse smartwatch que possivelmente você tem, ele foi escrito em C, né? É muito interessante, certo? Ã, muita gente tem aquelas aqueles dispositivos inteligentes, né, que a gente chama de software embarcado. Então,
você tem um software dentro da da do seu microondas, você tem dentro da sua máquina de lavar, é, possivelmente esse software foi escrito em C. Aí você pergunta, por que C, professor? Porque é leve, porque é uma linguagem bem leve. Sim, essas lâmpadas inteligentes têm, né, essas lâmpadas inteligentes têm também alguns controladores dentro do carro você vai ter, então ela é uma linguagem muito leve que você consegue colocar, que você consegue eh assim utilizar dentro de hardwares muito simples. Dentro de hardwares muito simples. Então tudo que é embarcado, muita coisa do que é embarcada, você
vai ver eh escrito em C, né? Escrito em C. Sim, Isabela. Todos esses dispositivos inteligentes, né, eles o o código que está dentro deles é em C. Sistema embarcado, você vai ver a linguagem C, tá? Por isso ela é extremamente usada, tá? ele tem eh além dessa de todas essas questões, né, que nós nós falamos aqui, eh vamos voltar lá, né, para aquele início assim, antigamente, antes do C, os sistemas Operacionais eles costumavam ser escritos e em assembly, certo? Que é uma linguagem que eu já falei bem próxima ali do do processador, eh, mas que
muda de máquina para máquina. Por quê? porque ela tem uma ligação muito próxima com o hardware, né? Então a ideia foi criar uma linguagem que fosse mais confortável de se programar que o assembly, mas que ainda assim te desse o controle sobre a máquina. Aí então tem tem um livro clássico aí, eh, que é o o Dec Programming Language, né, que é do Kerminga. Ah, então e esse livro tem uma frase aí que eu que eu gosto muito, né? Eh, que é de onde eu tirei isso que eu falo para vocês, que é onde ele
diz que a única maneira de aprender uma linguagem nova, certo? Uma linguagem, seja ela uma linguagem de programação, um idioma novo, certo? É escrevendo coisas nela, é você escrevendo, eh, sabe, tô querendo aprender inglês, eu preciso escrever, certo? Eu quero aprender a fundo aquela linguagem, então preciso escrever. Ah, código é do mesmo jeito e isso serve pro ser, serve para o Python, serve para qualquer linguagem, tá bom? Eh, aí é é interessante que a gente falou, né, tá? Porque o o ser importa hoje, né, se a gente tem linguagens de tão alto nível. Eh, primeiro,
como já falaram aqui, né, no No chat, eh, o núcleo do Linux, que é o kernel, é escrito assim, quase todo ele em C, tá? Boa parte do Windows também, do macOS também, né? Então você [limpando a garganta] tem, além disso, você tem bancos de dados, você tem drivers, você tem softwares que que vão rodar em qualquer lugar, tá? Então, é por isso que a linguagem C ela é importante e é bom que vocês estudem, certo? Aprendendo ser, vocês estarão aptos para lidar com qualquer linguagem, tá? Qualquer linguagem. Então, vamos lá. Vamos lá. Vamos seguir
aqui em frente. Eh, então, ele tem algumas características que são extremamente relevantes dentro daquilo que a gente espera, daquilo que a gente quer. Então, como uma linguagem eh de propósito geral, ela serve tanto para fazer um SO, um sistema operacional, como serve para fazer um jogo, eh serve para você fazer um um programa de de controle industrial, por exemplo. A sintaxe do da linguagem C, ela é muito compacta, é muito inxuta, então você consegue dizer muita coisa com poucos símbolos, né? Isso também é uma coisa muito legal, né? Eh, um critério que é muito bacana,
que é bom de se observar, é que ela é uma linguagem portável. Então, se eu coloco, eu escrevo um programa em C, aí eu pego Esse compilador C, eh, que roda lá no Linux, ele vai funcionar. Esse mesmo programa vai funcionar no Windows, irá, desde que eu use o compilador, certo? use o compilador adequado. Então, eh, a linguagem C é uma linguagem compilada, certo? Diferente de outras linguagens que são interpretadas, como o PHP, como o Python. As linguagens de script, de um modo geral, elas são interpretadas. O Python é algo assim que fica no meio
termo, né? Porque você também pode eh usar uma compilação em cima dele, mas essencialmente ele é interpretado. Eh, e o que é que essas linguagens interpretadas elas têm de assim de diferente e tem de importante em cima de outras linguagens como as interpretadas, tá? Eh, então o que acontece é que o quando você tem um compilador, certo, ele tem uma série de processos que ele executa, tem uma série de processos e ele já vê, se tiver algum erro, erro de sintasse, erro na estrutura, eh, aí você vai eh eh vai detectar isso no ato da
compilação. O compilador é um programa, certo, que vai eh analisar sintaticamente, lexicamente aquilo que você escreveu Lá. O pessoal da teoria da computação pode eh eh fazer associações e chamar aquilo de autôm, mas isso é uma outra coisa, tá? dentro daquilo que eh que nos cabe aqui, aquilo que nós eh buscamos compreender das linguagens, eh a gente entende que a assim a linguagem C ela traz eh nessa compilação eh uma possibilidade de você depurar o seu código, certo? antes que aquele erro que possa haver na no seu programa estour lá em produção. Imagina o seguinte,
imagine que você tem uma linguagem aqui, é, você escreveu nela, aparentemente você tá mandando o seu código lá, eh, você tá mandando sua estrutura, eh, tá executando e ele não tá dando problema nenhum. Mas quando ele passa dentro de uma rotina, de uma determinada rotina, ele já emite aquele erro, ele já trava, tá? Ele já trava. Por quê? Porque eh sintaticamente falta algo naquela linguagem. E nós vamos simular isso aqui. Eh, então, um compilador é isso, certo? É um programa que vai em cima de um código que você Escreveu, verifica se tá tudo OK, está
tudo correto, empacota e cria um executável. É isso que um um compilador faz. Ele verifica eh se o seu programa foi escrito corretamente, certo? Se foi escrito corretamente, certo? ele vai transformar aquilo ali, certo, em um programa executável. É isso. Beleza. Ah, então, eh, seguindo aqui, né, voltando aqui para assim, eu sei que todo mundo fica muito ansioso, tá? Mas calma que as coisas vão acontecendo, né? Ah, então a linguagem C ela ela assim, a linguagem ela é no fim, lá no fim, na ponta da linha ela vira um assemble. Lá na ponta da linha
ela vai virar um assemble e aquele assemble vai virar binário, aquele binário vai virar impulsos elétricos. É isso o que acontece de um modo geral, tá? Mas como eu falei, ela é uma linguagem eh que é compilada, uma linguagem de alto nível, certo? E ela tem uma eficiência muito grande, ou seja, ela é muito rápida, tá? Então, eh, o C ele é algo que parece um inglês simplificado, certo? São palavras em inglês que você usa, é só isso, tá? Ah, só que ele também tem algum algum ela é muito Poderosa, como eu disse, né? Ela
trabalha naquele meio termo entre o hardware e o software. A linguagem C com ela você pode manipular diretamente endereços de memória e aí pode haver algum perigo. A gente vai ver quando chegar mais à frente, né, que a gente for falar de ponteiros, vocês vão entender o por aquilo ali pode ser um problema se não for bem gerenciado, tá? Porque você tá chamando endereços de memória diretamente, né? Mas a gente vai ver isso mais à frente por enquanto. Guardem essa ideia, certo? Que que a linguagem C deixa você chegar muito próximo da máquina, tá? Muito
próximo da máquina. Então, vamos aqui para alguns pontos fortes, alguns pontos fracos dessa linguagem. Eh, ah, então, a gente tem aqui, separei alguns pontos fortes, pontos pontos fracos. [roncando] Eh, então, eh, nós já vemos, estamos aqui batendo nessa tecla, né, que a linguagem C ela ela é muito rápida, né? Ela é muito rápida, ela é bem interessante também por conta disso, mas é aquela coisa, toda ferramenta tem vantagem e desvantagem, tá? Importante é é você entender os dois lados, tá? entender os pontos fortes e saber o que você pode extrair desses pontos, desses pontos Fortes
e saber também os problemas que ela pode causar, certo? As falhas que ela pode ter, tá? Então assim, é um um é uma linguagem onde você tem um controle total, né, sobre a a assim a memória, como você vai gerenciar isso aí. É diferente outras linguagens que fazem isso para você, tipo Java, o o C#ARP, eles fazem essa gestão de memória. Você não precisa se preocupar tanto, já não se você eh precisa lidar com isso, tá? Ah, um dos pontos fracos do C é que ele tem te dá poucas proteções, ou seja, o compilador, né,
aquele programa que vai reconhecer que aquilo que você, se aquilo que você escreveu tá certo ou tá errado, ele aceita às vezes algumas construções que não fazem nenhum sentido sintaticamente, eh, ou melhor, que não fazem nenhum sentido lógico, apesar de estarem escrito com as palavras corretas, Certo? Ele não faz nenhum sentido lógico dentro da aplicação. E quem é que vai dar esse sentido lógico? É o programador. É o programador. Daí o programador tem muito mais responsabilidades quando lida com a linguagem C. A linguagem C também, ela não tem nativamente dois recursos que eu considero de
extremamente extremamente importantes, tá? extremamente importantes. Um deles é o tipo bullian, Certo? O que é o tipo bullian ou buleano? É, o buling é um tipo de dado, certo? Que ele só tem dois valores, o verdadeiro ou falso, né? O true ou false, tá? O true ou false, tá? Então isso aí paraas linguagens de eh eh de programação, eu acho assim essenciais hoje em dia. Eh, você faz verificações com outras coisas, né? Você eh você não vai testar eh você vai não vai testar com aquele tipo de dado específico, certo? você não vai testar com
aquele tipo de dado específico. Ah, ele também não tem string, né? Para quem não sabe o que é string, string é uma cadeia de caracteres, certo? Uma cadeia de caracteres. OK? Então, eh, quando eu quero escrever o nome de alguém, eu preciso escrever dentro de uma uma lista, né, de caracteres para ele interpretar, para ele interpretar, tá? Então, eh, assim, eu acho que esse aqui são falhas, né, que a linguagem traz. Eh, outra coisa, outra coisa, eh, e é muita gente às Vezes tá perguntando aí, vai passando, eu vou tocando aqui, tá? Ah, aí vamos
lá. Eh, sim, beleza. Eu compilei determinado determinado programa, compilei, tá tudo certo. É, tá, aparentemente. Por quê? Porque sintaticamente ele tá correta. Só que eh quando você vai executar aquilo ali, ele vai ele pode disparar erros, né, que nós chamamos aí de exceções, né? E esses erros só aparecem lá a execução dele, na execução dele, tá? [roncando] Eh, mas beleza. Então, é mais ou menos isso, tá, pessoal? Eh, você tem como você não tem nativamente o buleano, aí você usa outros valores, você contorna isso de outras formas. Eh, mas você pode importar também bibliotecas, eh,
bibliotecas. E essas bibliotecas trazem essas implementações, tá? Mas uma biblioteca é uma implementação que é feita. Quando a gente diz que não tem, ele não tem de forma nativa, ele não tem de forma nativa da linguagem, tá? Mas você tem implementação para tudo, OK? Aí vamos lá, vamos aqui para uma sequência, né, que é a sequência de criação de um programa. Então, quando você vai criar a alguma coisa, eh, assim, você tem cinco passos na linguagem C. O primeiro passo é você escrever o seu código num editor de texto. No editor de texto. Para as
pessoas que programam ou então que já conhecem algum alguma linguagem programação, eh, sabem que nós não programamos num bloco de notas, nós programamos em uma ferramenta chamada IDE. IDE é o acrônimo, né, de do inglês, eh, integrated development e environment, então é ambiente integrado de desenvolvimento, OK? Então, esse a gente programa dentro desse ambiente, tá? Aí, beleza? Você escreveu seu código, certo? Esse código tem uma extensão que é a extensão C, né? que é a extensão C é como a extensão TXT, só que como foi escrito em C, é a extensão eh ponto C. Aí,
beleza. Aí ele tem um pré-processador. Esse pré-processador vai ver se sintaticamente, né, se aquelas linhas, eh, se o processo, se ele, eh, começa Com ã linhas que têm uma cerquilha, um jogo da velha. Tá? Por que isso é importante? Porque essa cerquilha eh vai identificar se você tem esses includes, né? Você tem includes ou se você tem defines. Você vai entender ainda nessa aula o que são includes e defines. Eh, ele tem um tratamento diferente. Aí o que acontece? Beleza, ele pré-processou aquilo ali, viu que e havia um include, viu que havia um define. Aí
o compilador vai traduzir aquele código pra linguagem de máquina. Quando ele faz isso, ele transforma eh aquele código fonte em um arquivo objeto. Em um arquivo objeto, tá? Depois disso que ele transformou nessa segunda etapa do código, né, que ele transformou aquilo em outro tipo de arquivo, vem uma figura chamada linker e ele vai fazer a linkagem do código, ou seja, ele vai pegar essas bibliotecas externas, certo? Vai juntar com o código que você fez e vai gerar um executável, tá? Depois, eh, ele vai pegar, ele gerou o executável, aí o sistema operacional carrega aquele
programa e executa. OK? Beleza, professor. Não entendi nada. Vamos ver agora na prática, tá? Eu vou colocar aqui o Celion, vou compartilhar a minha tela aqui com o Celion. Eh, beleza. Ah, vamos agora para aquele mesmo passo a passo que eu mostrei paraa criação lá de um programa. Esse ambiente aqui é uma IDE. Essa IDE aqui é chamada de selion. é chamada de Cion. Então tudo que você fizer, certo? No meu caso aqui, eu criei um projeto, certo? E ele tem ele já vem com essa estrutura. Só o que nos interessa aqui é apenas esse
arquivo chamado main.c. Como eu falei para vocês, a gente escreve em um arquivo ponto C sempre, tá? Ah, beleza. Eu escrevo no arquivo ponto ponto C. Eh, tá aqui o main.C. Aí vou lá para aquilo que tá escrito dentro do meu arquivo. Quando você cria, né, um projeto no CION, ele já traz essa estrutura básica, OK? Ah, então o que eu falei, você escreve, tá aqui o código escrito, né? Tá aqui o código escrito. Eh, vocês acham parecido com VS Code que porque eu coloquei o tema escuro, né, que é padrão lá do VS Code,
Certo? Eh, por isso que vocês acham, tem um monte de recursos aqui que está oculto. Aí vocês, foi justamente para vocês eh eh não sentirem tanta diferença. Ah, então eh tem esse código aqui, OK? Eu vou colocar, eu vou passar aqui o link para vocês, tá bom? Só um minuto. Professor, é o mesmo link do lá no Jet Brarains lá. que a gente utilizou da outra vez. Ah, eu vou colocar aqui pro pessoal já. Pode deixar. Eu coloquei aqui, passei aqui pro senhor. Ah, já passou. Obrigado. Tá. Eh, aí beleza. É uma ferramenta, né? E
você baixa de lá como estudante. Você pode baixar lá, não, você não vai pagar por ela, tá? Então você cria o seu projeto aqui, né? Não se preocupem, a gente vai mostrar depois como cria o projeto passo a passo, tá? Então aqui eu tô mostrando a estrutura do programa para vocês. Então o que acontece é que ele vem, essa é a estrutura básica desse programa. Então, quando eu falei que ele começava com ã começava, ele tinha um pré-processador Que ele verificava se você tinha eh um include ou um define, né, que você tinha alguma coisa
que começasse com o jogo da velha. Por que isso é importante, tá? Por que isso é importante? Porque quando você trabalha com includes, você chama, coloca essa palavrinha reservada include, você tá chamando aqui uma biblioteca. Esse stdio. É uma biblioteca. É uma biblioteca, tá certo? Então, é uma biblioteca que lida com entrada e saída de dados. entrada e saída de dados. Então você quer chamar uma biblioteca externa, aí você usa o include e o nome da biblioteca, né? Não se preocupem não, que eu vou fazer também com o o VS Code, tá? Aí, beleza? Eu
tenho essa estruturazinha aqui que tem chaves, que tem essas duas chaves. O nome dessa estrutura toda, né? O nome dessa estrutura toda aqui é função. Isso aqui é uma função. A linguagem C, ela é chamada de linguagem eh É chamada de linguagem estruturada, certo? Linguagem estruturada, ela é diferente do Java, por exemplo, que é uma linguagem orientada a objetos. Então, o ser é uma linguagem estruturada. E o que é uma linguagem estruturada? é uma linguagem que organiza o código em estruturas. E que estruturas são essas? São as funções. Então, todo o código escrito na linguagem
C é organizado nesses bloquinhos. Esses bloquinhos de código executam eh operações, eles se chamam funções, beleza? OK. Então, essa estrutura é uma função, ela completa, tá? Aí, o que é essa palavrinha aqui da frente? É um tipo de dados. a gente vai ver que é um tipo de dado isso aqui e isso aqui. Ah, um return é o nome, eu tô retornando aqui zero, então quer dizer que deu certo. Eh, e eu tenho um print f. Isso aqui é uma também é uma função. Só que de onde vem essa função que eu não escrevi? Eu
tô escrevendo essa aqui. Mas de onde vem essa função? Essa função vem da biblioteca STDIO, tá? Então, quando eu uso bibliotecas, eu torno algumas funções disponíveis. Eh, eu torno algumas funções disponíveis dentro aqui do Cion, certo? Se você eh clicar eh no na tecla control e passar o mouse em cima, ela vai dar a opção de você ir direto nessa biblioteca, que é isso aqui. Então, esse stio. É uma biblioteca em ser, né, que tem essas implementações. Você precisa saber disso aqui a fundo, não. Você só precisa saber que a biblioteca STDIO é uma biblioteca
onde você tira algumas funções para você imprimir coisas na tela, para você eh ler coisas que você vai digitar na tela, ok? Ah, beleza. Eh, bibliotecas são códigos feitos por você ou por outras pessoas, normalmente Por outras pessoas, tá? E você aproveita para quê? Para que você não tenha que reescrever a roda, né? Então, são códigos prontos. São códigos prontos. Então essa biblioteca STDIO é uma biblioteca muito comum na linguagem C, tá? É um conjunto de dados e isso a gente consegue chamar essas funções de agravadas. É, é muito tranquilo. Ah, então olha, eu só
fiz a declaração lá em cima e disse: "Olha, inclua aqui no meu código essa biblioteca stio." Por quê? Porque eu quero usar o print F. Não, eh, o Celion ele não vem, isso aqui vem dentro do C, da linguagem C, tá? Você não precisa adicionar nada aí. OK. Aí eu tenho essa função aqui. O nome dessa função é main. O nome dessa função é main. E eu tenho aqui um print f. O print é aquilo que a gente imagina, né, para imprimir. Mas eu vou imprimir aonde? Vou imprimir na tela. Vou imprimir na tela. Então,
o que é que ele vai imprimir na tela? A palav a frase Hello World, certo? É o famoso alô mundo. É o famoso alô mundo, né? Então aqui eu tenho uma cadeia de caracteres. Tudo que está dentro de aspas duplas é como se fosse uma palavra só, tá? É uma cadeia de caracteres. Então a linguagem ela não para ela tanto faz se é uma letra ou se é um espaço ou se é uma vírgula. Não interessa para ela aí. OK. Toda função ela tem parênteses. Eh, vamos aqui eh deixar claro o que é um código,
o que é um programa. O programa é a junção, certo, do código que você tá escrevendo e de bibliotecas que você está usando, bibliotecas de outras pessoas, tá? Eh, então vamos lá, vamos seguindo. Então, vamos colocar isso aqui para rodar para vocês verem o que acontece. Observem o lado esquerdo para ver o que que acontece. E observem aqui o lado eh direito. Aqui o Cion ele te dá a vantagem de você usar alguns recursos, né? Um recurso dele é utilizar o run. Aí, percebam o que ele fez aqui. Ele rapidamente imprimiu o a palavra hello
world. Como ele fez isso aí? É um mistério. A gente vai ver o que ele fez aqui dentro dessa pastinha. Veja só. Aqui ele criou uma série de recursos que não haviam. Ele testou aquilo ali, fez a compilação e criou um executável, certo? Essa máquina é Linux, certo? Então ele criou um executável, um EXE, tá? Criou um EXE. A partir do momento que ele criou o EXE, eh, a IDE foi lá e executou como qualquer outro programa. Se você mandar para vocês esse programa aqui, esse SXE, ele vai executar como qualquer outro programa, né, que
vocês baixam aí da internet, tá? Vamos aqui para as dúvidas. Ah, essa linguagem, essa biblioteca STDIO, ela é uma biblioteca confiável, tá? É uma biblioteca confiável da linguagem. É, só que muito cuidado quando tiverem vocês estiverem utilizando bibliotecas de terceiros, tá bom? A biblioteca C e STDI, uma biblioteca conhecida, vai ter uma biblioteca padrão. Tá bom, pessoal? Eh, então vamos lá. a gente executou, se vocês perceberam, certo? Ele criou uma série de coisas aqui, né? Esses arquivinhos não existiam. O que nós tínhamos aqui eram dois arquivos, era o Cake Install e o Cake Cash. Só
isso. Não tinha nenhum diretório, nada disso, tá? Então ele pegou essas informações aqui, essas informações. Eh, aí quando ele foi executando aquelas cinco operações, né, que eu falei para vocês, certo? Você escreve, ele pré-processa, esse pré-processamento, ele verifica se tem algum include. Isso aqui é extremamente importante. Por quê? Por quê? Vamos aqui ver os passos novamente. O primeiro passo, escrever o código na IDE. Tá aqui, tá escrito seis linhas, tá? Segundo passo, segunda etapa, pré-processamento. O que é esse pré-processamento? Ele verifica se tem alguma coisa começando com a cerquilha, se tem algo começando com cerquilha.
Beleza? Terceiro passo. Terceiro passo, ele vai eh transformar em código de máquina. Vai transformar aquilo que você tá fazendo em código de máquina para poder executar. Ou melhor, ele transforma em código objeto. Código objeto, desculpe. Ah, então vamos aqui procurar esse código objeto dele, né? É, se você procurar aqui nesses diretórios, você vai encontrar alguma coisa, algum arquivo que eh termina com algo assim, ponto obj, tá? Como é um elemento de passagem, né? Como é elemento de passagem, ele pode simplesmente e terá aqui, ó, o main.c. BJ, tá? Ele gera esse código, tá? Ele gera
esse código quando você compila. Aí depois que você faz isso aqui, que ele gera o o código objeto, ele faz a linkagem, ou seja, ele vai fazer a ligação, no caso desse programa aqui, ele vai fazer a ligação entre eh essa função que foi escrita, ou seja, ele faz a ligação entre o código que você escreveu, o código que você escreveu e a biblioteca, as bibliotecas, tá? E que bibliotecas? as que você declarou aqui. Por isso é importante eh ele ele fazer esse pré-processamento, porque ele já sinaliza que ele precisará fazer uma linkagem. E dentro
dessa linkagem, quais são as bibliotecas que ele precisa eh juntar com o seu código. Entenderam? Aí, por fim, gera executável. E foi tudo isso que aconteceu dentro dessas pequenas linhas que vocês viram aqui, tá certo? A gente vai detalhar, não se estressem, a gente vai detalhar isso ainda mais. Bom, isso aqui é apenas para vocês darem uma olhada. Eh, essa IDE é só para linguagem C, tá? É só para linguagem C, mas a gente vai usar outras ideas aqui, vai mostrar o VS Code eh, para vocês. Ah, esse código aqui, ele não tem eh nada
gráfico, ele é um código de console. Ele é um código de console, tá? Ah, essa biblioteca ele busca dentro do pacote da linguagem C já. Ele busca dentro do pacote da linguagem C. Você não precisa eh buscar nada. Eh, para adicionar mais bibliotecas, você precisa escrever novamente o include, isso na linha de baixo. Eh, e coloca dentro desse include apenas, eh, coloca dentro desse include dentro do menor que maior que. Isabela, você achou muita coisa para escrever um Hello World? Eu vou mostrar depois para vocês como é que se escreve o Hello World em Assembly.
Eh, mas veja só, todo o trabalho que ele teve para fazer um Hello World, ele vai ter para fazer com um código com milhões de linhas, certo? A sequência é a mesma. Então, se você replica isso aqui, se você eh consegue executar e entender bem isso aqui, você vai entender o funcionamento de qualquer programa em C, beleza? Eh, o Python ele só parece menor. Você não vê o que que acontece ali embaixo do Python, tá? Você não vê o que que acontece ali embaixo. Eh, você aquilo ali é o que ele mostra para você. Aqui
você tá vendo tudo que ele faz, né? Então, eu adoro programar, pessoal. Uma biblioteca pode conflitar com outras? Depende. Depende do uso que você faz, tá, Dionísio? Eh, se você tem, imagina que você tem duas bibliotecas que têm nomes idênticos, o nome da função é idêntico lá dentro, isso pode gerar uma confusão, tá? É isso mesmo. Aqui vocês estão vendo: "Ah, é muito trabalho, mas é muito trabalho porque você tá executando uma função ali que só tá dizendo Hello World, tá? Então vamos eh vamos continuar aqui. Professor, o Senhor pode retornar lá pros nossos slides?
Beleza? Então esse foi o passo a passo que nós executamos ali. Entenderam? Exatamente isso. Eh, aquele código que eu que eu gerei ali, certo? É esse mesmo código. Só mudou a frase, tá? Só mudou para oi, pessoal, para ficar ficar escrevendo Rellow World. É, sim. Eu só deixei lá o Hellow World porque se eu colocasse alô mundo lá ia ter caracter especial. Aí ele ia dar uma troncada ali na na hora de exibir, tá bom? Eh, então o que aquela função, aquele programinha executou foi exatamente isso, tá? Ele incluiu, ele deu um include, né? Aí
depois ele tem uma função, ele fez o print e saiu, executou com sucesso. Eh, então vamos lá. Vamos aqui eh assim detalhar, esmiçar o que é cada um, né? Eu já falei, né? Esse include STIO eh.Hh, ele traz a biblioteca onde nós fazemos essa entrada e essa saída de dados, tá? Nesse caso, eu não fiz nenhuma entrada, eu já coloquei ali dentro do print aquilo que vocês eh assim precisavam ver. A gente, eu vou fazer um exemplo aqui onde eu vou digitar uma entrada, certo? Eu vou digitar uma entrada, ele vai ler aquela entrada e
vai imprimir, tá? Eh, então vamos seguir. Ah, aí vocês viram que tem aqui um main, né, um int main main. O main é a primeira função executada por qualquer programa. qualquer programa, tá? Toda linguagem de programação terá um main, certo? O Python vai ter o main, certo? O Java vai ter um main, todas elas tm um main. O main é aquela função principal, é uma função que chama todas as outras funções, tá? Então, eh, quando o programa vai executar, certo? ele procura, certo, aquela aquela função e a partir dela ele coloca eh a sua o
seu ponto eh de execução. Se vocês prestarem atenção, tinha uma uma setinha, né? Tinha uma setinha apontando para para aquela função, por aquilo ali é a função principal. Aquela função principal. Ã, aí seguindo, eh, eu tenho as chaves, né? Percebam que aqui embaixo eu tenho a chave abrindo e uma chave fechando, certo? E uma chave fechando. Pessoal, tem um errinho aqui nesse código, certo? Tá faltando um ponto e vírgula aqui depois do print f. Até fui escrevendo e não coloquei. Mas aqui depois do print fonto e vírgula. Eh, então, todo código aqui, eh, todo toda
função, ela é delimitada por um bloco de chaves, certo? Então, tudo que está dentro dessa chave é parte da função, no nosso caso, a função main, tá bom? O print f é uma função da biblioteca STDIO, né? Isso aqui vocês eh já viram e ela serve justamente para isso, para imprimir uma mensagem na tela. Ah, aqui ele tem um return zero. Isso aqui é o que indica que o programa terminou sem erros, tá? Ele só vai dar esse return zero se ele eh for executado sem nenhum erro, tá? Então vamos fazer o seguinte. Ah, vamos
aqui escrever. Professor, o senhor pode retornar lá paraa nossa IDE, por gentileza? Perfeito. Tá. Então aqui eh a gente já falou dentro dessa dessa dessa estrutura aqui, falou o do Hello World, né? Então eh vamos aqui tentar eh mostrar determinadas situações que ocorrem. Percebam ã o que vai acontecer se eu remover isso aqui. Se eu remover o include, vamos ver, vamos testar. Serve para isso. Removi. Percebam que aqui já ficou vermelho. A IDE ajuda nisso, né? A IDE ajuda nisso. Ah, aí você tenta executar, certo? A IDE, ela dá uma uma ajustada para você para
poder executar aquilo ali, até porque é, vamos colocar aqui room, até porque eu não debuguei aqui. Se a gente for debugar eh isso aqui, a gente vai ver aqui essa função perdida. Como TDO é algo padrão, certo? ele vai ele vai dar esse esse retorninho aqui de erro, beleza? Mas ele avisa aqui, ó, tá? Ele avisa aqui, ele diz: "Olha, eu não posso resolver o símbolo print f." É tipo, ele não entende o que é aquilo. É. Ah, mas por que que ele executou aqui e não mostrou nenhum erro? Porque a IDE ela tenta dar
uma aliviada para você. Certo? Ela tem que interpretar aquilo ali, mas se você for executar dentro de um mundo real, certo? Ele vai eh Rismungar e não vai funcionar, tá? Outra coisa, voltou aqui, mudou de cor, OK? Percebam que tem um ponto e vírgula lá na no código lá que está no slide, n? Eu acabei esquecendo de colocar, tava escrevendo ali, esqueci de colocar. Vejam que ele deu um erro aqui. A ideia, avisa. Olha, tá faltando em ponto e vírgula. Ele mesmo já diz, olha, esperado aqui um ponto e vírgula depois disso. Beleza? Aí consequentemente
ele dá erro aqui. Dá erro aqui na instrução que vem na sequência. Mas eu sou teimoso, né? Certo. E vou executar isso desse jeito. Aí ele já emitiu uma falha gigante. Aqui ele diz que falhou aqui porque ele esperava um padrão, esperava um determinado caracter e esse caracter não estava lá na tela, não estava no seu código. Então ele já disparou esse erro. Ou seja, esse foi um erro provocado em tempo de compilação. Se eu fosse apenas compilar esse código, né, se fosse apenas compilar esse código, eh, ele já daria esse erro para Você, tá?
Ele já daria esse mesmo erro. Beleza? Coloca o ponto e vírgula, ele deixa de reclamar. Ah, se eu tirar esse zero aqui, certo? Ele vai funcionar, ele vai reclamar. Por quê? Teoricamente isso aqui é um inteiro, né? Teoricamente não, isso aqui é um inteiro. Teoricamente ele precisa de um tipo de retorno e eu não tô dando nenhum aqui. Mas por que que ele vai funcionar? Porque isso aqui é quase uma perfumaria. Eu poderia fazer isso aqui, ó, chamar de void também, né? Mas convencionou-se até aqui o inteiro. Ah, aí vamos aqui. O que mais? Que
que a gente pode mostrar aqui dentro dessa estrutura para vocês? Ah, a gente dá um return zero porque o retorno zero ele finaliza, né, aquela função e o zero quer dizer que a correu sem erros. Se ela é um return um, o que isso vai significar? Vamos executar. Ele retornou o código um. O que significa é que eh o código um é um código de erro, tá? Internamente, a aplicação trataria isso aqui como um retorno anômalo. Como um retorno anômalo. Algumas linguagens aceitam que você faça isso aqui. Só dê um return porque aí você finaliza.
Nesse caso, eu preciso retornar um valor. Vamos voltar aqui o zero. OK. Eu falei dos aqui da eh das chaves. Vamos tirar uma chave aqui. Ele diz: "Ah, ele já mostra um errinho aqui, né? Diz que tá faltando uma chave em algum lugar, mas aí você tá desligado e você tentou executar. Então ele mostrou aqui, olha, tem erro, tá faltando alguma coisa. Aí você vem aqui, escreve e resolve o seu problema. Aí você pode dizer: "Ah, mas isso é bobagem. Isso é muito bobo". Gente, a gente tá falando aqui de quatro linhas de código. Você
eh imagina que você tem aí um arquivo com 1000 linhas de código, tá? E é certo, cara, você sempre esquece um ponto e vírgula, esquece uma chave. Por isso existem as boas práticas de programação. Então eu quando vou escrever uma função, ah, colocar uma função aqui, int, ah, salvar, né? Então, quando eu escrevo, antes de mais nada, eu já coloco as chaves. Já coloco as chaves, tá? Por quê? Eh, porque depois eu não vou esquecer, eu já coloquei a delimitação. Aí a partir daí eu escrevo o que eu quiser. Eu escrevo o que eu quiser
aqui, tá? Aí, eh, eu falei para vocês da função main. Percebam aqui que a função salvar também é uma função, mas o executável, né, a setinha, ela só fica em cima da função main, tá? Por quê? Porque é a função principal mesmo. Ah, vamos aqui continuar. Eh, algumas linguagens, o pessoal aí que vem do Python, principalmente, ele eh o pessoal não usa, né, não usa chave para delimitar. Eh, por quê? Porque o Python ele utiliza a identação para isso. Então, aquela identação do Python é justamente para que você não escreva eh as chaves, né? Só
serve para isso. Então, criou uma função, abre e fecha. Abre e fecha. Terminou de escrever uma linha ponto e vírgula, porque você sempre vai esquecer, tá? Sempre vai esquecer. Ah, aí vamos aqui. Eu vou aproveitar e seguir aqui em cima da tela, né? Porque eu acho que fica mais produtivo. É melhor do que a gente ficar indo e voltando, tá? Então eu vou explicando eh aqui na tela. Vamos aqui. Vocês perceberam que tem aí uma série de coisas que eu escrevi, não é, na própria tela e isso aí não foi, não significou nada pro programa,
né? Então eu coloquei, escrevi um texto aí, né? Só que para fazer isso, eu eh utilizei uma pequena estrutura, certo? Pesquisei uma pequena estrutura. Eu fiz aqui eh uma barra e estrela barra asterisco e encerrei com o asterisco barra. Isso aqui que eu fiz é um bloco de comentários. O bloco de comentário ele não é ele não é lido pelo pelo compilador. Ele ignora isso aqui. Por quê? Aí você, ó, se h alguma coisa que vai ser ignorada eh pelo Sim, vai ser ignorada eh pelo compilador, porque você escreveu? Porque às vezes é importante você
eh é importante você documentar o seu código de algum modo, tá? Aí você escreve ali uma função, essa função tá complexa. Ah, aí que que você faz? você coloca um bloco de comentários dizendo: "Olha, eh, essa função ela serve para isso, o estado dela é esse" e tal. Então, vocês documentam, vocês documentam. Ah, tá. Mas eu também posso aqui de repente vamos voltar aqui paraa nossa pra nossa função salvar. Aí vou fazer aqui um print f e escrever aqui salvou. Escrever aqui salvou. Tá? Então, return zero. Beleza, ele vai executar isso aqui. Só executou o
Hello World. Por que ele só executou o Hello World? Porque qualquer coisa e que eu eh fizer eh precisa ser referenciado aqui no main. Então, para que isso execute, eu precisaria chamar o salvar aqui, né? Aí você, ah, mas o salvar tá dando erro ali. É porque aqui ele ainda não sabe o que é o salvar. Aí eu venho aqui, escrevo aqui em cima, tá? Já parou de dar erro. Aí ele diz aqui, olha, eu tenho um salvar aqui que vai executar depois do do print f. Então vamos ver se isso aqui ocorre mesmo. Beleza,
ele executou o Hello World e executou o a função salvar aqui de cima. Legal, né? É bacaninha. Ah, tá. Não quero mais. trabalhar aqui com a função salvar. Não quero mais saber dela. Aí eu só venho aqui, ah, não quero mais utilizar essa função por hora, mas eh pode ser que eu venha precisar dela em algum momento, mas eu não quero que ela seja eh lida pelo compilador por hora. Então, nesse meu caso aqui, eu vou pressionar a tecla control e vou eh teclar aqui na barra. Aí ele encheu de barrinhas, tá? Aí vocês podem
pensar: "Mas, professor, você não falou que para eh eh fazer um bloco de comentários eu tenho que usar o barra estrela e fechar com estrela barra?" Sim, só que para IDE aqui fica muito mais fácil ele usar essa sintasse, essa sintasse aqui, certo? Ela é uma sintasse de apenas uma linha, ou seja, ele só comenta eh essa barra aqui, ela só eh transforma em comentário a linha que é referenciada, que tá aqui. Se você tirar, por exemplo, você vai ficar com erro aqui. ele vai ter aqui é isso aqui vai ser reconhecido pelo compilador, mas
eu posso simplesmente eh comentar aqui de novo. Então, dois tipos de comentário, o comentário de blocos, né, ou blocos de comentários e o comentário de uma linha que é o barra barra. Perfeito, perfeito. Beleza, beleza, beleza. Então, vamos seguir aqui eh com essa tela mesmo, tá? Eu para não ficar indo e voltando. Então, o que acontece, pessoal? Eh, a gente, eu já falei aqui de dos comentários, né? Eu tenho identificadores. O que são esses identificadores? Tá? Vamos colocar criar outro bloco aqui. Ah, o que são identificadores? Identificadores, eles são eh nomes, na verdade, tá? Os
identificadores são nomes que nós damos as nossas variáveis e as nossas constantes, tá? Aí vocês podem dizer: "Ah, mas o que são variáveis e constantes?" Vamos colocar aqui para vocês lembrarem. Nomes dados a variáveis e constantes. Beleza? Mas o que são esses essas variáveis e constantes? é justamente aquilo que o próprio nome eh eh dá a entender. Uma variável eh é um componente que eu tenho dentro do meu código, certo? Que ele vai mudando ao longo do tempo, ele vai recebendo outros valores ao longo do tempo, tá? E as constantes Não, as constantes elas são
eh estáticas. Elas são estáticas, tá? Uma coisa que é importante, quando você vai dar um nome ao identificador, você não pode eh você precisa obedecer determinados critérios, tá? Ou seja, ah, você precisa começar sempre com eh underline, eh, você pode começar com uma letra, você pode eh eh começar com a letra maiúscula, letra minúscula, só que você tem que obedecer vários critérios, né? Vários critérios. Ah, para começar, para começar sempre no início você não pode ter alguns valores para começar. Então, o início do identificador só pode ter underline e letra, só isso. Ah, pode começar
com número, não. Pode começar com aisco, não. Pode começar com barra? Não tá, não pode. No início só pode ter underline e letra, Certo? Mas no corpo, né? Depois o restante você pode ter outras coisas. É, ah, restante do identificador, você eh pode ter, por exemplo, um número, um número, tá? coisa que não pode no início, mas no restante você pode. Então eu só não começo com número, mas depois eu posso eu posso ter. Ah, outra coisa aqui eu falo do que pode, mas vocês precisam saber do que não pode. não pode, é, não pode
começar com número também não pode eh conter caracter especial. Aí eu digo eh estrela, barra, eu não posso ter mais, entendeu? Não posso ter nada disso. Outras linguagens aceita aceitam menos o nome, tá? Não é muito caso aqui da linguagem C. Ah, o que mais? Eh, outra coisa que ele que ele não aceita, eh, sim, nomes separados. Por exemplo, você vai dar um nome para uma variável, eh ele tem que estar todo junto, tipo, eh, nome completo. Você não pode ter essa separação. Então, o que que você faz? Ou você coloca tudo junto ou você
coloca o underline, tá? Aí você tem um nome correto de uma variável. Outra coisa, você pode manter dessa forma ou você pode manter dessa forma. Existem alguns tipos eh de de formatos que você pode escrever. Quando você escreve somente com letras minúsculas separadas, a gente chama de nome disso, são estilos, né? a gente chama de estilo camel, ou melhor, desculpem, snake case, tá? você chama de snake case. Ou seja, você tem duas palavras minúsculo, começando com somente com letras minúsculas com um underline, chamam de snake case. Ah, você tem o camel case. O camel case
ele é algo dessa forma, camel case ele tem mais de uma palavra. A primeira palavra vai começar com letra minúscula e as demais começarão com letra maiúscula, mas todas juntas. Ah, que mais? Ã, nós temos aqui o Pascal Case. Pascal case ele é semelhante ao camel case. O camel case e só que ele, ao invés de começar com letra minúscula, todas as palavras começam com letra maiúscula. No C, normalmente você vai trabalhar com esses três tipos, tá? Cada um com o seu com a sua estrutura específica, tá bom? Eh, esse snake case é algo muito
comum no Python, tá? O pessoal do Python gosta muito de trabalhar com isso. Eh, só que aqui a gente vê muito Pascal case e snake case. Ah, vamos lá. Outra coisa, humã, ã, tipos de dados, vamos chamar, vamos falar aqui de tipos de dados. Deixa eu minimizar isso aqui. O que são tipos de dados? Ah, antes de de entrar nos tipos de dados, uma coisa que vocês precisam saber é que a linguagem C ela é case sensitive, ou seja, pra linguagem C, eh, a variável chamada pessoa física é uma variável, ela é diferente, é diferente
de pessoa física, tá? pessoa é diferente de pessoa. Então, paraa linguagem C, isso aqui é importante. Para ela, isso aqui são variáveis diferentes, tá? São identificadores diferentes. Beleza? O que são tipos de dados? Eh, ah, beleza. O pessoal tá aqui falando, tá se manifestando, tá? Vamos aqui seguindo em frente. Tipos de dados, tá? Nós temos, vocês conhecem, eh, vocês conhecem aí eh eh implicitamente, né, intuitivamente os tipos de dados. Nós temos números. O número é um tipo de dado, tá? É um tipo de dado. A letra é um tipo de dado, tá? Então, basicamente, você
tem letras e números dentro da linguagem C. Você tem letras e números, tá? Ah, só que você tem alguns tipos distintos. Eh, tipos distintos. Então, eh, o que que você pode, como você pode trabalhar com isso? Vamos lá. Toda variável, né, dessas que nós escrevemos, ela tem um tipo, certo? E o tipo ele vai te dizer duas coisas, tá? Ele vai te dizer duas coisas. A primeira coisa é dizer o que é que ele pode guardar. Ou seja, ah, se eu tenho um uma variável que ela é do tipo numérico, eu só posso guardar número,
né? Eh, se ela é do tipo caracter, eu só posso guardar letras do eh caracteres, né? Pode ser letras e números, né? Mas eu tenho uma caracter que eu posso armazenar, tá? Então ele me diz essencialmente aquilo que eu posso guardar, se é letra, se é número, certo? E quanto espaço ele vai ocupar na memória. Por quê? Porque cada tipo tem um tamanho próprio. Tem um tamanho, um tamanho próprio. Então, os tipos básicos, eles são eh dentro da linguagem C o char, né, que é o caracter, um caracter. Ah, você tem o int, que é
para os números inteiros, você tem o float para os números reais e o double para números reais com uma precisão maior, tá? A gente também tem alguns elementos eh dentro do C ens. É um tipo enum void, certo? E o tipo ponteiro. Mas isso a gente vai ver aí ao longo da disciplina. Não se preocupem com isso agora, tá? Então você tem os tipos de dados. Então se você vai trabalhar eh você precisa armazenar a idade de alguém. que tipo de dado você vai eh utilizar, certo? Então, é um número. É um número. Você armazena
a idade de uma pessoa eh quebrada, ou seja, pergunta eh qual a sua idade? Aí você diz: "Olha, eu tenho 20,3 anos". Não se fala assim, né? Então, a idade eh é uma variável que normalmente ela é do tipo inteiro. O inteiro eh é um elemento do conjunto dos números inteiros e ele é representado na linguagem C e na Praticamente todas as linguagens eh é representado com a palavra reservada int. Beleza? Então, o que que ele vai armazenar? vai armazenar valores como zero, como 1, como 999. Beleza? Ah, então eu tenho um tipo numérico. Eu
tenho também eh esse é o primeiro tipo numérico. Eu tenho, se eu tenho o conjunto dos números inteiros, eu também tenho o conjunto dos números reais. Aí, daí eu tenho dois tipos. O primeiro tipo é o float. O float ele é um número real, tá? Um exemplo aí de de um número real e o salário float salário, né? Flow de salário, né? Pode ser. Só que eu tenho, eu preciso de uma precisão maior. Então, imagina que eu vou eh fazer um experimento químico e eu preciso dentro desse experimento químico eh ter o máximo de precisão
possível. Daí eu eu venho aqui e utilizo também um número real, né? também é um número eh Que eu preciso eh que é um um um tipo que é um decimal. Aí eu venho aqui, declaro como double e utilizo aqui. Vamos vamos colocar aqui o valor peso, tá? Beleza? Então, tenho dois pontos flutuantes. Eu tenho também um tipo que é um tipo de caracter, é o tipo chá, né? Mas o chá é um caracter apenas. é um caracter. Daí eu posso eh assim, eu posso ter representar algumas coisas com ele, tipo, ah, vou preencher um
formulário, aí eu coloco aqui sexo, né? Normalmente aí o pessoal faz, né? eh masculino ou feminino. Normalmente, pessoal, para poupar tempo, né, programava dessa forma. Eu definia aqui eh uma variável que só receberia um caracter, certo? E ele era ou a letra M ou a letra F. Você pode fazer com outras, né? Pode fazer com números, tal, mas era pr, tá? Então são eh estruturas. Aí vocês eh Podem me perguntar, mas professor, se eu se é um caracter, como é que eu escrevo um nome? Aí eu preciso criar uma cadeia de caracteres, certo? Para criar
uma cadeia de caracteres, eu preciso trabalhar com uma estrutura chamada vetor. O que é um vetor? Um vetor ele é, vocês lembram lá do ensino médio, onde vocês viram matrizes e determinantes? Um vetor é uma matriz de uma linha. é uma matriz que só tem uma linha, é um vetor. Então, eh, para criar um, assim, para criar uma variável que receba uma cadeia de caracteres, eu preciso trabalhar eh com um vetor. Então, como eu declaro isso? H puxar, porque ele é um ele é um um caracter, só que na verdade ele é uma cadeia de
caracter. Então vou colocar, eu preciso armazenar uma variável nome. Vou escrever nome, só que eu preciso definir eh o tamanho dessa cadeia. Então eu vou colocar aqui um coochete, abrir e fechar. Dentro do coochete eu coloco o tamanho que eu quero para aquilo. Vamos colocar aqui 50. Então ele vai ocupar o espaço, eh, ele vai ter alocado para ele 50 posições. 50 posições. Ah, mas se o nome for maior que isso aí, isso a gente vai ver mais à frente, tá? Beleza? Então, quando eu quero fazer isso na linguagem C, eu utilizo uma cadeia de
caracteres, né? Matriz de uma linha. cadeia de caracteres. Perfeito. Ah, vamos ver aqui. Eu tô olhando para pra IDE. Ah, o short é menor que o int e o long é maior que o int. Sim, né? São as variações que ele tem. Isso aí é para ocupar eh otimizar o consumo de memória, tá, pessoal? É para otimizar o consumo de memória. Eu acho que a nossa aula vai a tem mais 4 minutos, tá? Mas a gente, gente, o seguinte, eu tô falando aqui, mas sim, eu vou enquanto vocês quiserem aqui, mas o que é acordado,
né, que vá até às 10:15, até porque o professor Éber também tem família, né? Brincadeira. Mas vamos lá, vamos aproveitar, procurar aproveitar o máximo possível o nosso tempo aqui, tá? Então é Isso, né? Então é isso. Eh, eu tenho tipos de dados, certo? Eu tenho os identificadores, que são os nomes que eu dou as variáveis. E as variáveis, cada uma delas tem um tipo. Cada uma delas tem um tipo. Beleza? Eh, Leonardo, é a coisa mais comum do mundo você não entender tudo agora. Fica muito tranquilo. Eh, fica tranquilo, tá? É a nossa primeira aula,
velho. Calma, calma, calma, calma, né? Ah, eu sou daqueles que se ficam programando a madrugada toda, tá, pessoal? Ainda hoje. Ah, imagina agora no doutorado, né? A gente a gente vira à noite. Ah, mas é isso. Uma cadeia de caracteres para eu poder escrever o nome, né? É, é nome. Tá bom? Eh, então isso é o que a gente tem até o momento, certo? é o que a gente tem até o momento. Eh, vamos seguir aqui um pouquinho. Eh, eu falei para vocês dos tipos de caracteres, tá? Ah, só que agora é o seguinte. Ah,
eu quero aqui, hum, fazer operações. Operações, né? Quero fazer atribuições. Eh, veja só. Aqui nas linguagens de programação, por exemplo, eu não digo que eh quando eu escrevo aqui int x, aí coloco aqui um sinal de igual e coloco aqui nove. Depois um ponto e vírgula. O que eu quero dizer aqui com essa expressão? Eu quero dizer que eu tenho uma variável que eu chamei de X. Essa variável que eu chamei de X, ela é do tipo inteiro. Ela recebe números inteiros, números sem parte decimal, tá bom? Aí eu tenho aqui esse símbolo que é
o símbolo de igualdade. Só que em linguagens de programação eu não digo que x é igual a 9. Em linguagem de programação, eu digo que X recebe Aqui. Ele não é igual a nove. Ele vai receber. Por quê? porque ele vai receber e armazenar dentro dele esse valor. Eu não digo que é igual porque vocês vão ver mais à frente eh que quando eu digo que x é igual a 9, quando eu digo, vou vou dizer mais à frente que x = 9, eu estou fazendo uma comparação, tá? Aqui o que eu estou fazendo uma
atribuição, tá? Eu não tô compando nada, eu estou apenas atribuindo. Atribuições nós fazemos com um sinal de igualdade. OK? OK. Vamos lá. tentar dividir aqui mudando a modalidade por beleza. Ah, beleza, beleza, beleza. É, não, não usa esses operadores aí de igual a igual por hora não, pessoal. Vai assim bagunçar a cabeça de quem tá começando agora, né? Tá bagunçando, não vai bagunçar a cabeça de quem tá começando agora. Então, vamos por partes, tá? daqui a pouco a gente a gente nivela e todo mundo vai seguindo em frente, tá bom? Eh, pessoal, eh, a gente
vai encerrando por aqui, tá? Hoje é só a nossa primeira aula. Eu acho que a gente já a a gente já avançou bastante, a gente já avançou bastante aqui, mas nós teremos aí mais eh oito aulas ao vivo, né? Oito aulas e e vai ter mais o Let's Talk, então vão ser 10 possibilidades de nós eh conversarmos e lidarmos mais com a com a linguagem C. Tá bom? Então vou chamar o professor Éber aí. Eh, professor Éber. Pessoal, olha, nesse momento da vida de vocês, eu não aconselho vocês utilizarem IA, tá? Usar o o o
Cloud Code, certo? Para ajudar a programar, porque ela vai acabar te dando respostas. Eh, então, nesse momento, eu eu aconselho que vocês eh vão ali quebrando a cabeça mesmo, é para seguir quebrando a cabeça e dando erro, né? Porque aí vocês vão aprendendo com maior qualidade, tá bom? Professor Éber, desculpa aí ter passado mais tempo, professor. Ah, professor, tá tranquilo. É isso aí. E professor, compartilhe disso que você falou agora também. Deixa aí a descansando um pouquinho aí. [risadas] Vai na na raça, quebrar a cabeça um pouquinho e vai liberando outros conexões ali, melhorando no
desenvolvimento. Pessoal, gostaria de agradecer então a participação de todos. Obrigado, professor. E a gente se vê semana que vem. Beleza? Beleza, pessoal. Aí, um abraço aí para vocês. Bons estudos. A gente semana que vem tá aqui de novo, tá bom? Até mais, pessoal. Ciao [música]