Aula por Rogério Júnior e João Pedro Castro
O primeiro passo para começar a estudar informática muitas vezes é o mais importante, assim como o mais difícil, e nessa aula você vai dar início à sua jornada no vasto universo da computação, e quem sabe onde isso vai te levar? Leia essa aula com calma e sinta-se livre para voltar e rever o conteúdo enquanto faz os exercícios, o mais importante é entender a ideia geral.
Linguagem de programação
Uma linguagem de programação é simplesmente um conjunto de regras que permitem a formulação de um código, que então pode ser compilado ou interpretado, e finalmente executado. Ela contém símbolos, termos próprios, e tudo mais o que vai usar para transmitir instruções muito específicas para o computador. No começo pode parecer que são coisas demais e que você nunca vai conseguir memorizar tudo, mas se você puder confiar em mim eu te garanto que com a prática todos esses conhecimentos se integram na sua cabeça até que um dia programar vai ser tão natural quanto falar. O único motivo para as linguagens de programação existirem é tornar nossa vida mais fácil sendo o intermediário entre nossas ideias e o computador, e elas são muito boas nisso.
A linguagem que vamos usar é o C++, uma linguagem compilada e que é o padrão na programação competitiva por vários motivos, dentre eles: ser muito rápida, e ter bibliotecas/funções já implementadas, com algumas delas sendo de baixo nível (que significa que tem um contato mais direto com o computador). Ela também é a única linguagem aceita na IOI (Olimpíada Internacional de Informática), então isso também é algo para se considerar se participar dessa competição é um de seus objetivos.
IDE - CodeBlocks
Uma das perguntas mais comuns de quem começa a estudar informática é: o que preciso para fazer um programa? E a resposta é que além dos conhecimentos básicos sobre a linguagem (que vão ser discutidos ao decorrer da aula) você precisa de uma ferramenta para escrever seu código, e ela pode ser qualquer coisa, bloco de notas, Google Docs, etc, mas esses não são ultilizados pois não contém algumas das funções mais úteis para a programação, e é aí que entra a IDE (Integrated Development Environment) que pode deixar a sintaxe destacada automaticamente (com uma cor para cada elemento, por exemplo), compilar seu código (tornar ele de um texto para um arquivo executável), sugerir funções, etc. A IDE que iremos ultilizar é recomendada para os iniciantes por ser bem simples e intuitiva: o CodeBlocks. Clique aqui para um link dos arquivos oficiais para instalá-lo. Segue os dois papéis principais do aplicativo:
- Criar um novo arquivo:
Para salvar o arquivo na página criada pressione Ctrl + S ou File -> Save para salvar o arquivo. A extensão do arquivo deve ser .cpp para ser reconhecido como um arquivo de código do C++. Depois disso você pode começar a editar seu arquivo e as funções do CodeBlocks já vão ser ativadas.
- Executar o programa
Da esquerda para a direita as funções desses botões são:
- Compilar: compila o programa e deixa pronto para executar ao pressionar o próximo botão.
- Executar: executa o programa e abre uma janela de terminal para ver o resultado de sua execução.
- Compilar e executar: faz ambas as anteriores.
Bibliotecas
Bibliotecas são implementações já prontas de funções muito recorrentes nos códigos, como funções matemáticas de exponenciação, raiz quadrada, logaritimos, etc; ou funções mais gerais como recebimento de entrada/saída. Se você fosse implementar tudo do zero, seria impossível completar qualquer tarefa dentro de um tempo aceitável, por isso ter esses "blocos de construção" já feitos por pessoas que vieram bem antes de nós é sempre muito últil!
Existem um conjunto de bibliotecas padrão do C++, que já devem vir instaladas junto da linguagem, você pode ver uma lista delas aqui, mas não se preocupe, conforme formos ultilizando novas bibliotecas elas serão introduzidas na aula, e se você não quiser ter todo esse trabalho de adicionar uma por uma é só memorizar a biblioteca "bits/stdc++.h" (sem as aspas) que inclue todas as outras. E para declarar uma biblioteca, sendo nome o nome dela, você coloca uma (ou várias) dessa linha no início de seu código:
Uma das regras mais importantes (e chatas) do C++ é que no final de toda linha que não seja uma declaração de biblioteca, um ) ou um } temos que colocar um ; para indicar o fim da linha, e caso não seja colocado aparece um erro. Lembre do ponto e vírgula!
Se você quiser fazer uma torta de maçã do nada, você deve primeiro inventar o Universo.
- Carl Sagan
A Função main
Todo o seu código gira em torno dessa peça primordial do C++. Os detalhes não importam muito por agora, tem algumas coisas que você precisa saber sobre ela, como:
- Como se declara:
- Para fins práticos: tudo que não está encapsulado em nenhuma função é executado, depois o que está dentro da main é executado.
- Você só pode chamar uma função dentro de outra, e como ainda não estamos declaração de funções, toda função que você chamar tem que estar dentro da main.
A questão do return 0; é simplesmente por convenção, mas não é necessária já que no final da execução dela retorna 0 por padrão. Inclusive, de curiosidade, esse "int" antes da função está lá porque ela sempre vai retornar um número inteiro como indicador se ocorreu tudo bem, ou não, e o 0 é o padrão para dizer que a execução foi um sucesso.
Saída
As funções de saída servem para imprimir valores no terminal, ou seja, transmitir informações a partir dele. A função de saída que iremos usar é o cout da biblioteca iostream. Uma observação importante que sua falta muitas vezes leva à um erro no código é que o cout imprime os valores um imediatamente após o outro, o que torna necessário para separá-los ou um espaço (que é um caractere, então fica dentro de aspas simples, por razão comentada nas variáveis), ou uma quebra de linha (um "enter" que pula a próxima linha) que é o endl, a escolha de qual usar depende de seu objetivo/exigência do problema.
Segue um código explicando como ele funciona:
Esse deve ser o resultado do código ao executar ele no CodeBlocks:
A partir de agora você já pode resolver exercícios de programação, parabéns! Submeta a solução deste problema e continue depois de ser aceito. Experimente com qualquer ideia que vocë tenha, o importante é se divertir no processo para não desistir.
Variáveis
Variáveis podem ser vistos como pequenos papéis nomeados, onde você pode escrever valores, mudar o valor escrito , ou descobrir qual o valor escrito em um papel apenas buscando-o pelo seu nome. Eles são uma das bases da informática, e servem para guardar dados usados ao longo do programa. Por exemplo, toda vez que você cria uma conta em um site suas informações são guardadas em uma série de variáveis, como seu nome, email, senha, etc. Os nomes das variáveis não podem iniciar com números, e ter operadores aritméticos ou espaços. Recomendamos usar todas as letras em minúsculo e colocar um underline (esse símbolo _) entre cada palavra, mas isso é somente por organização e não é uma requisição do C++, faça como preferir.
No C++ as variáveis tem tipos pré-definidos que limitam quais valores podem ser guardados nas variáveis, alguns deles são (de novo, fique a vontade para voltar e reler quantas vezes quiser):
- int - Um número inteiro
- double - Um número racional, com diversas casas decimais de precisão
- char - Um caractere, que pode ser qualquer um dos encontrados na tabela ASCII, como letras maiúsculas, minúsculas, símbolos especiais, espaço, números, etc (não é necessário memorizar nada específico dessa tabela, e ela está sempre disponível no sistema das provas da OBI), e esses símbolos também podem ser usados como números diretamente, sendo possível subtrair desses caracteres, etc. Todo valor de char deve ser colocado dentro de aspas simples para indicar que não é o nome de uma variável e sim um valor de caractere.
- bool - Uma variável booleana, portanto, guarda apenas dois valores: true (1), false (0). Ou seja, são verdadeiras ou falsas.
Uma dica é que se você declarar um número dentro da main ele tera um valor aleatório muito grande, mas se declarar fora ele vai ser inicializado com o valor padrão, que é 0. A seguir um código explicando como fazer cada uma das três operações principais de variáveis:
Entrada
As funções de entrada e saída são o que permitem receber mensagens do terminal e guardá-las em variáveis, e assim como as de saída, só podem ser chamadas dentro da main como já foi dito; ela também se encontra na biblioteca iostream. Você escreve a entrada diretamente no terminal ao executar o programa no CodeBlocks.
Também existem algumas observações legais sobre eles, mas que você vai perceber conforme for ultilizando:
- O código (que é lido de cima pra baixo) para e só continua a executar após o recebimento da entrada no cin.
- O cin só acaba quando ele receber o valor da variável, isso significa que não importa quanto espaços ou quebras de linha existam entre ele e o valor, ele só vai parar e permitir a execução do restante do código quando atingir seu objetivo.
Experimente um pouco, brinque com as ideias mostradas nessa aula e pense nos exemplos mais básicos que você pode fazer, e quando quiser, com isso (e um pouco de racicínio) você deve ser capaz de resolver todos os exercícios mostrados na página anterior da aula. Boa sorte na sua jornada!