01 – Aprendendo C no Linux : )


Olá pessoal!

Já faz um tempo que não posto aqui e por isso voltei. : )

Bem, hoje eu pretendo começar a colocar um passo a passo do que sei de C. Talvez não seja muita coisa, mas pretendo colocar aqui algumas coisas para eu lembrar sempre quando precisar. Ok, vamos lá então.

fonte: https://mastigado.wordpress.com

Abra o console do Linux(sim, do Linux mesmo, se quiser usar o Ruindows fique à vontade também) e comece a escrever:


#include <stdio.h>
#include <stdlib.h>

int main ()
{
   float fAltura, fPeso;
   char cSexo;

   printf ("Qual sua altura?\n");
   scanf ("%f",&fAltura);
   printf ("Qual o sexo da pessoa?\n");
   printf ("Digite 'm' para Masculino e 'f' para Feminino \n");
   scanf ("%c",&cSexo);

   if ( cSexo == 'm' )
   {
      fPeso = ( 72.7 * fAltura ) - 58;
      printf ("Seu peso ideal e %f\n",fPeso);
   }
   else
      if ( cSexo == 'f' )
      {
         fPeso = ( 62.1 * fAltura ) - 44.7;
         printf ("Seu peso ideal e %f\n",fPeso);
      }
      else
         {
            printf ("Sexo Invalido!\n");
         }

      system ("pause");
      return (0);
}

Ok, ok.

E o que este programa faz?

Ele pede para que você digite a altura e o sexo de uma determinada pessoa. Aff, mas que chato!

E para que serve aquele tal de #include<stdio.h> na primeira linha do código?

Para você poder utilizar funções como o scanf(já utilizado no código). Mas o que é uma função? Pois é, a grosso modo é procedimento que faz algo para você, bastando apenas depois de pronto, se quiser utilizá-lo, chamá-lo pelo seu nome. No caso acima chamamos as funções printf, scanf, system e return.

E na 2ª linha, o que é #include<stdlib.h>?

Bem, esta aí é outra biblioteca inserida no nosso código para utilizarmos outra função do C que também utilizamos acima e é chamada de system.

Mas, biblioteca não é aquela que tem na escola?

É, digamos que a nossa biblioteca contém uma série de instruções que às vezes precisamos acrescentar para nosso programa.

Tudo bem e este tal de int main()?

Olha, para executarmos um aplicativo em C, ele tem que ter uma função que chamamos de principal(main) e por algumas regras(para que ele retorne o número de argumentos(veremos mais pra frente)), ela retorna um inteiro. Inteiro? Mas o que é isso? Retorna um inteiro? Como assim? Seria como se eu jogasse um mamão pela metade para você e daí você me retorna um inteiro? É isso mesmo?

Senhores, não é isso.

Na linguagem C e nas outras que conheço, para referenciarmos as coisas, utilizamos os chamados “tipos primitivos”(sim, eu sei que existem outros tipos de tipos). Bom, eu vou deixar alguns dos que mais utilizamos descritos abaixo.

int – Só recebe números sem casas decimais definidas(este tal de int é um inteiro e sai algo do tipo: -3, -2, -1, 0, 1, 2, 3, etc);

float – Recebe números com casas decimais(aqueles 3.5, 5,2 e por aí vai);

char – Recebe os que chamamos de caracteres do tipo string, ou seja, de todo o tipo.

Então, vamos lá.

Se você observar, após o main, nós declaramos dois campos do tipo float(fAltura e fPeso) e eu ainda coloquei uma letra “f” antes para lembrar para todos que se trata de um float mesmo.

Logo após a declaração das variáveis float, declarei uma variável do tipo char chamada cSexo e que servirá também para o nosso programa.

Bem e o que este programa faz(tô perguntando isso novamente)?

Ele verifica se a pessoa é do sexo feminino ou masculino e com base na altura informada, ele calcula o peso ideal para aquela pessoa. Útil né?

Depois de declaradas as variáveis que iremos utilizar no nosso programa(lembre-se que é boa prática de programação a declaração de variáveis logo no começo de sua função(seja ele a principal(main) ou não), utilizamos o comando printf que é utilizado para exibir alguma coisa na tela. A primeira frase a ser exibida é “Qual é a sua altura?\n“. E é claro que você reparou este “\n” no final da frase e este “cara” quer dizer que na próxima vez em que for exibida alguma coisa na tela, este será feito na outra linha, porque “\n” significa que é um caractere de salto de linha.

Abaixo da linha onde está contido o primeiro comando printf, existe a linha que contém o comando scanf. Pois bem, este tal de scanf é responsável para ler uma entrada de dados vindo do seu teclado para dentro de uma variável. E olha que maravilhoso, você pode escolher em qual das variáveis que você declarou lá em cima que irá armazenar o que você deseja. Bem, então raciocinemos um pouco e pensemos que se eu faço uma pergunta para alguém sobre qual seria a altura dela, provavelmente eu não gostaria que ela me respondesse algo do tipo um metro e setenta, mas sim 1,7 correto? Então meus amigos, podemos supor que declaramos a nossa variável chamada fAltura para receber este tipo de argumento que esperamos(1,7 ou 1,56 ou 1,90 e por aí vai). Ok, então fica algo deste tipo:

scanf(“%f”,”&fAltura”);

Onde “%f” nos informa que queremos ler a informação para uma variável do tipo float. Sim, você pode até pensar que se já declaramos uma variável do tipo float, não deveríamos ter de colocar novamente esta informação aí, mas temos sim, pois ali estamos dizendo que tipo de valores serão lidos do teclado. Já onde está escrito “&fAltura” quer dizer em qual variável iremos guardar esta informação. Mas peraê, e este “&” aí? Pois é pessoal, quando colocamos o símbolo & antecedendo uma variável quer dizer que queremos gravar a informação no endereço de memória dela. Wooowww! O que que é isso? No endereço de memória? Por que isso não é automático sem termos de precisar ficar colocando este “&” antes? Simples, você está estudando C, uma linguagem de médio nível e daí, temos que detalhar as coisas um pouquinho mais. Mas peraê novamente e se não colocarmos esta informação antes? Simples, não irá gravar nada dentro da variável, pois quando gravamos no endereço de memória de uma variável, estamos gravando o dado no lugar onde ela realmente está. Em outras palavras, quando gravamos o dado sem o &  é como se um desconhecido passasse num carro fazendo bundalêlê para você, mas provavelmente isso não faria diferença para você, mas se todos os seus amigos te desprezassem de uma só vez, você sentiria isso porque todos eles te desprezaram colocando um “&” na frente do desprezo. Ênfú, que explicação sem noção! Mas lembrando, existem duas formas de se gravar um dado numa variável, uma é quando se está lendo um dado a partir de um dispositivo de entrada(o teclado por exemplo), que neste caso é necessário colocar o “&” antes do valor da variável e a outra maneira é por atribuição, mas desta forma não é necessário colocar este “&” antes.

Olha, mais abaixo tem outros printf e um outro scanf, mas o raciocínio é mesmo, só que invés de float é char e char meus amigos, aceita letras e números. Entendido? Espero que sim. Ah, você pode ter pensado “se char também aceita números, por que eu não declarei fAltura como char“? Simples, não dá para fazer contas de subtração, divisão, multiplicação e adição com char e sim somente com float e int(inteiro). Agora sim, entendido? Ah muleque!

Bom, agora tem uma tal de if descrito desta forma:

if( cSexo ==  ‘m’ ){

Ok, ok. Este if é o que chamamos de condição ou condicional ou como você preferir. A função dele é colocar uma condição no meio do caminho do programa para você prosseguir. Mas como assim? Imagine a seguinte situação, alguém quer entrar na sua casa e você diz que só pode entrar se a pessoa disser “por favor”, e se não disser, você não deixa ela entrar. Pronto, este é nosso if! Vamos traduzir para o nosso programa acima. Se dentro da variável cSexo estiver contida a letra m, duas coisas acontecerão:

fPeso = ( 72.7 * fAltura ) – 58;
printf (“Seu peso ideal e %f\n”,fPeso);

Primeiro, a variável fPeso receberá o resultado da conta que está à direita do sinal “=”. Mas e aí, o que significa este sinal “=”, não quer dizer “igual”? Não meus amigos, o sinal de igualdade na linguagem C é representado por “==” e o sinal “=” quer dizer que o que está à esquerda está recebendo o valor do que está à sua direita. Ai ,ai, como assim? No caso acima, a variável fPeso está recebendo o valor de 72,7 vezes o valor contido na variável fAltura, menos 58, ok? Agora, logo abaixo há outra instrução printf, só que desta vez não há somente texto a ser exibido na tela, mas também um valor de variável. Onde está escrito %f quer dizer que após a letra “e”, será exibido um valor do tipo float(número decimal) e após o fechamento das aspas e da vírgula é onde é identificado de qual variável sairá este valor. Espero que tenham entendido isso.

Mais abaixo deste primeiro if, há uma instrução chamada else, que quer dizer senão. Bem, se no if você pode dizer que se(if) uma variável conter a letra “m” você faz determinada coisa, no else significa que se esta variável NÃO conter a letra “m”, você faz outra coisa. O else sempre é o contrário do if. Veja outros exemplos magníficos: Se(if) você é bonito demais, você vai ganhar o beijo de uma princesa, senão(else), você deverá ganhar muito dinheiro para ter várias mulheres. Daí, você pode ter vários ifs dentro de elses e isto é chamado de ifs aninhados.

E para finalizar, aquela instrução system(“pause”) é utilizada no Ruindows para que o terminal não feche automaticamente(só no Ruindows) e a função return passando o parâmetro 0, quer dizer que o programa principal está retornando o número inteiro zero.

fonte: https://mastigado.wordpress.com

Bem gente, é isso aí, tá muito mastigado.

próximo post: 02 – Compilando o seu programa em C no Linux

Sobre Mastigado
Sou um daqueles que precisa mudar o mundo.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: