Aula 1 – Começando do Zero – Noic
Browse: Home / Informática / Curso Noic de Informática / Aula 1 – Começando do Zero
A primeira pergunta que as pessoas se fazem quado estudam informática é: o que preciso para fazer um programa? É completamente possível escrever e compilar um arquivo em qualquer linguagem usando o bloco de texto e o terminal do computador, mas é bem melhor usar as ferramentas adequadas. O ideal para quem começa é usar um programa que junta IDE e compilador. IDE (Integrated Development Enviroment) é onde vamos escrever o programa. Ela é feita para facilitar a leitura, correção e organização do código, bem como facilitar o debug (busca por erros após a criação do programa). Escrito o código, o compilador vai transformar os comandos que estão escritos em alguma linguagem de programação em algo que o computador entenda e criar o programa.
Neste curso, a linguagem utilizada será o C++. A IDE é de escolha do leitor, eu utilizo o Dev-C++ que vem com compilador. Se quiser baixá-lo, clique aqui. Outra IDE muito utilizada e recomendada é o CodeBlocks. Clique aqui para baixá-lo. Agora que você já tem o que precisa, vamos começar.
O primeiro programa que todos fazemos é simplesmente imprimir algo na tela. Para começá-lo, assim como começaríamos qualquer outro, vamos declarar as bibliotecas que usaremos. As bibliotecas são espécies de dicionários com algumas funções. Assim, quando usamos uma função no programa, é preciso que a biblioteca em que ela se encontra esteja declarada no começo do código para que o computador saiba o que significa aquela função.
Se o nome de uma biblioteca é , para declará-la escrevemos #include <name>. É importante saber que o computador executa o que o mandamos fazer na ordem em que os comandos são escritos, por isso é importante declararmos as bibliotecas que usaremos no começo do código, pois não podemos usar uma função antes de dizer para o computador a biblioteca dela. Para imprimir alguma frase na tela, usaremos uma função chamada , que está na biblioteca , que significa C Standard Input and Output. Ela também pode ser chamada de .
Declaradas as bibliotecas, vamos declarar a função . Em C++, a é a primeira coisa que o computador vai procurar ao executar o programa. Dentro dela, estarão os comandos que o computador irá realizar na ordem em que eles aparecem. A apresenta a gramática: int main(){ comandos do programa }. Isso significa que escreveremos int main seguida de parênteses e, entre chaves, o que queremos que o programa faça. No fim da main, é comum colocarmos return 0; o comando que manda fechar o programa. Este comando é, na maioria das vezes, questão de elegância, pois o programa se fecharia sozinho após executar tudo o que está dentro da . Dito isso, vejamos como ficaria um código genérico. Observe os comentários, eles são tudo o que está escrito após um //. Como o nome já diz, são apenas comentários do autor e o computador ignora completamente tudo que está em uma linha após um //:
Até agora, importamos bibliotecas e declaramos a . Vamos agora usar uma função que realiza o trabalho que queremos, que é imprimir algo na tela do computador. Antes disso, saiba que a maioria do comandos que damos ao computador (com pouquíssimas exceções) são seguidos de ; para avisar ao computador que o comando termina aí. Com funções não é diferente. A função que imprime caracteres na tela é a , que está na , que já declaramos. Para imprimir uma frase, chamamos a , abrimos parêntese e, dentro deles, escrevemos a frase que queremos entre aspas duplas, com ; após a função para indicar fim do comando: printf("frase que queremos imprimir\n");. O '\n' ao final da frase é um caractere que significa quebra de linha (ou seja, é como apertar a tecla Enter). Devemos nos acostumar a colocá-lo porque os problemas geralmente querem que façamos isso ao fim das respostas. Vejamos então como ficaria um código que imprime "Hello World!" na tela do seu computador:
Agora, procure na sua IDE o botão de compilar. No Dev, ele está no topo, na barra de ferramentas e é o primeiro dentre os botões :
Ou pressione a tecla F9.
Salve seu arquivo com o nome que desejar e o computador criará um programa com nome semelhante. Se você está usando o Dev, seu programa já será salvo no formato de C++ (cpp). Caso contrário, não esqueça escrever ".cpp" ao fim do nome do arquivo, para definí-lo como do tipo C++. Agora execute o programa, clicando no segundo botão dentre os exibidos acima, na tecla F10, ou no próprio arquivo que será criado. Vale lembrar que o terceiro botão e a tecla F11 já compilam e executam de uma única vez.
Pronto! Agora você já fez seu primeiro programa e ele deve ser mais ou menos assim:
Acabamos de fazer um programa que imprime coisas na tela. Vamos fazer agora um que lê o que está escrito nela.
Antes de mandar o computador salvar algo que esteja escrito na tela, temos que avisá-lo, para que ele guarde um espaço da sua memória para tal objeto. Isso se chama declarar uma variável. Existem vários tipos de variáveis, as int, double, char, float, entre tantas outras. Vamos fazer um programa em que escrevemos um número inteiro na tela e ele imprime esse número adicionado de 10. A primeira coisa que faremos na agora será declarar uma variável inteira. Para isso, escrevemos uma linha que tem primeiro o tipo dela, no caso, int, e depois seu nome, que chamaremos de num, seguidos de ; para indicar o fim do comando. A linha ficará "int num;". Feito isso, usaremos a função , que também está na cstdio, e é o comando de ler algo na tela. Ela tem uma gramática parecida com a da . Escrevemos o nome scanf, abrimos os parênteses e as aspas duplas e dizemos ao computador o que ele vai ler, especificando, para cada objeto, o tipo de variável que ele deve procurar. Como queremos ler um inteiro, escreveremos %d, que é o indicativo de um inteiro na scanf. Após fecharmos as aspas, colocamos uma vírgula e escrevemos o nome de cada variável onde deve ficar salvo o que lemos antecedido de '&'. Após lermos tudo, colocamos o ";". Para ler um único número e salvá-lo na variável num, escrevemos: "scanf("%d", &num);". Se quiséssemos ler dois números e salvá-los em duas variáveis inteiras x e y, respectivamente, escreveríamos o comando "scanf("%d %d", &x, &y);", indicando ao computador, entre aspas duplas, o que ele iria ler (dois inteiros) seguido das variáveis onde as leituras (em ordem) seriam salvas. Por questão de curiosidade, o & significa endereço, ou seja, estamos dizendo para a scanf onde está, na memória do computador, a variável que devemos acessar para salvar o valor que lemos na tela.
Agora que o programa já salvou o número, devemos mandá-lo imprimir o que queremos. Se o número que foi escrito é o num, devemos então imprimir num+10. Faremos isso de maneira semelhante à anterior, mas com a função que imprime, com o comando "printf("%d\n", num+10);". Perceba que, na , não precisamos colocar o '&' antes do nome das variáveis. Vamos ao código:
Para vê-lo funcionar, compile, execute e escreva um número qualquer. Quando você apertar a tecla enter, ele deverá imprimir o número que você escreveu somado de 10.
Vamos trabalhar agora com outro tipo de variável, a double. Este tipo é usado para salvar números racionais, com precisão de várias casas decimais. No e , em vez de %d, devemos colocar %lf como indicador de variável. Além disso, se quisermos imprimir apenas n casas após a vírgula, escrevemos .n após o %. Por exemplo, para imprimir uma variável do tipo double de nome até a 5ª casa após a vírgula, usamos o comando "printf("%.5lf\n", fracao);".
Sabendo disso, vamos fazer um programa que, dado o raio de uma circunferência, que não precisa ser inteiro, imprime a sua área com precisão de 2 casas decimais. O programa deve imprimir a frase "A area eh X", seguida de quebra de linha, onde X deve ser o valor da área.
A primeira coisa a se fazer é, novamente, declarar uma variável, mas agora ela será um double e vamos chamá-la de . Escrevemos, portanto, a linha "double raio;". Feito isso, vamos ler o raio na tela e salvá-lo nessa variável. Usaremos a função através do comando "scanf("%lf", &raio);". Feito isso, vamos declarar uma variável para aproximar o valor de π e chamá-la de pi. Escreveremos o comando "double pi;". Para o computador, ela é só uma variável como outra qualquer e não ganha o valor de π só por ter seu nome. Precisamos atribuir a ela o valor que queremos. No caso, uma aproximação mais que suficiente seria 3.14159, pois só queremos duas casas decimais na resposta. Para atribuir a uma variável um valor usamos o operador chamado recebe, que é o '='. Se, no código, escrevemo "a=b;", então a variável a passará a ter o valor de b. No caso, devemos escrever o comando "pi=3.14159;". Feito isso, devemos imprimir a frase "A area eh " seguida do valor de raio*raio*pi, com precisão de duas casas decimais, que é o valor da área de um círculo ( ). Faremos isso com o comando "printf("A area eh %.2lf\n", raio*raio*pi);". Vamos ao código:
O último tipo de variável que veremos hoje é o caractere, cujo nome é char. Este tipo de variável salva um inteiro "codificado". A tabela usada para tal código é o ASCII. O char é usado para guardar caracteres, e seu indicativo no scanf e printf é o %c. Deste modo, se quero ler um caractere na tela e salvá-lo em uma variável chamada , uso o comando "scanf(" %c", &letra);". O espaço colocado antes do "%c" faz com que o scanf ignore os espaços e as quebras de linha na entrada, senão ele poderia salvar um desses dois na variável. Para representar o código de um caractere, o escrevemos entre aspas simples, ou seja 1 significa o número 1, mas '1' significa o código ASCII do dígito 1, que é 49. Se você clicou no link para a tabela ASCII, viu que algarismos e letras (maiúsculas e minúsculas) são ordenadas em ordem crescente no código, então, para "passar para a próxima letra do alfabeto", por exemplo, basta eu adicionar 1 à letra que tenho. Vamos por exemplo, fazer um programa que, dado um número entre 1 e 26 escreve qual a letra minúscula que ocupa esta posição no alfabeto. Note, na tabela ASCII que, como as letras estão em ordem alfabética, o número da letra que ocupa a posição N do alfabeto se fixarmos a letra 'a' na primeira posição será o código que vem imediatamente antes de 'a' somado N. O código que vem antes de 'a' é ('a'-1), logo, o código da letra que vem na posição N do alfabeto (começando do 1) será 'a'-1+N. Segue o código.
Agora que você já sabe o básico, pode fazer alguns exercícios. Esses exercícios serão problemas de alguns corretores da web, no caso, usaremos o URI Online Judge. Se você ainda não tem uma conta no URI, clique aqui e assista ao tutorial do site para aprender a usá-lo.
Problema 1 - Exremamente Básico
Problema 2 - Área do Círculo
Problema 3 - Soma Simples
Problema 4 - Produto Simples
Problema 5 - Média 1
Problema 6 - Média 2
Problema 7 - Diferença
Problema 8 - Salário
Problema 9 - Consumo
Problema 10 - Cálculo Simples
Problema 11 - Esfera
Problema 12 - Área - Link para fórmulas de área
Se tiver alguma dúvida em qualquer um dos problemas, ou seu código não estiver sendo aceito, preencha o formulário na página inicial do curso e sua dúvida será atendida o mais rápido possível!