Monday, June 4, 2012

Primeiros passos com C

Dando sequencia aos meus estudos de C, vou apresentar hoje alguns conceitos que já aprendi sobre a linguagem.
 Vou mostrar um programinha que compilei e baseado nele, apresento algumas teorias:



/*Programa para somar dois numeros digitados pelo usuario*/

#include <stdio.h>


int SomeDoisNumeros(int a,int b)

{

  printf("O numeros %d mais o numero %d igual a %d",a,b,(a+b));

return(0);

}

int main()
{


int a,b,Num;

printf("Digite o primeiro numero");
   
scanf("%d",&a);

printf("Digite o segundo numero");

scanf("%d",&b);

SomeDoisNumeros    (a,b);
return(0);

}


Apesar da idéia do programinha ser ridiculamente simples e sem utilidade prática, o que precisa ser considerado é o porque de cada coisa.
 Iniciamos com um comentário. Comentários são sempre importantes. Nos orienta caso um código precise ser lido futuramente . Quanto mais comentado for um códico, mais facilmente ele será interpretado por outras pessoas ou por nós mesmo no futuro. Isso não serve apenas para um programa,obviamente.

A linha:
#include <stdio.h>
Tem a mesma função do "import", para quem já viu alguma coisa em Java. Dessa forma voce pode usar várias funções que são pertinentes a 'stdio', que é uma abreviação de Standard Input Output. Java,por exemplo, usa o conceito de classes. Ao invés de escrever um monte de linha de códigos, é possível importar uma classe que já foi criada por alguém e desta forma otimizar seu trabalho.É o que está acontecendo aqui.

Vaja agora as linhas abaixo:

int SomeDoisNumeros(int a,int b)

{

  printf("O numeros %d mais o numero %d igual a %d",a,b,(a+b));

return(0);

}


Essas linhas acima representam uma parte muito legal na programação. Que tem tudo a ver com o que eu explicava . Eu criei uma função, um módulo, que faz alguma coisa específica. Na verdade, ele recebe dois parâmetros e faz a soma destes. Ele faz apenas isso. Mas o legal é que essa função pode ser usada em qualquer parte do meu programa e até em outro programa dependendo de como for construído. Esse é um conceito muito valorizado em programação porque economiza tempo e linhas de códicos.
  Por outro lado, é um conceito bastante complexo para nós iniciantes..
Veja que  minha função foi declarada como sendo do tipo 'int'. Int é um tipo de dado em C. Não é diferente de outras linguagens. Se voce declara algo como int, voce estará limitando ele a receber apenas alguns tipos de dados. Em geral int está relacionado a numeros inteiros. Não vou explicar aqui todos os tipos de dados, mas essa informação pode ser encontrada facilmente no google.
  Printf tem a função de mostrar algo na tela. Tem a mesma função de Println em Java. O que vier dentro do parênteses e dentro de aspas, será mostrado na tela.
 Podemos perceber a presença de %d. Quando aparece essa string, o  programa compreende que deverá substitui-lo por um dos dados que está sendo trabalhado. No caso o primeiro dado, ou seja, 'a'. Da mesma formar, as outras vezes que aparece a string no código, ocorrerá a mesma coisa,porém, para o segundo dado e depois pelo resultado. O seja, o programa irá concatenar o '%d' com as informarções dispostas após as aspas : a,b,(a+b).

  Queria ressaltar que apesar de programinhas assim serem encontrados facilmente no google, esse eu fiz com o que eu estudei durante o dia. Nâo faria o menor sentido tentar passar um conceito aqui que fosse simplesmente copiado de algum lugar.
  Meu objetivo aqui é tão somente estudar e não enganar a min mesmo.

int main()
{


Main. Essa parte do código, também presente em Java, é dita a mais importante do programa. Sem ela o programa não fará nada. Podemos ver ainda que ela também está definida com 'int', mas poderia ser apenas 'main'.

int a,b;

printf("Digite o primeiro numero");
   
scanf("%d",&a);

printf("Digite o segundo numero");

scanf("%d",&b);

SomeDoisNumeros (a,b);
return(0);

}


Dentro de Main, assim com dentro do parêntese da função que eu criei :
int SomeDoisNumeros(int a,int b)
Está acontecendo o que chamamos de 'declaração de variáveis'. Não vamos considerar um curso de C aqui. Por isso, não vou iniciar explicando cada detalhe da mesma. Considere esses posts como apenas uma discussão do meu ponto de vista dos conceitos de C. Mas, variável, é, como o nome indica, algo variável. Ou seja, um dado que eu quero usar em meu programa e que só fará sentido para ele. E só fará sentido para o compilador do programa se eu fizer essa declaração.
  Eu declarei aqui duas variáveis e eu posso usá-las quantas vezes eu quiser.
Aqui também estou usando a função printf. Estou usando-a para interagir com o usuário do programa. Enviando a ele uma mensagem do que seja esperado que ele faça. No caso, que ele entre com um valor no teclado.
 Assim que ele digitar alguma coisa, a função 'scanf' armazena o dado digitato pelo usuário em minha variável 'a'.
 Da mesma forma acontece abaixo com 'b'.
E por fim, minha função é 'chamada por 'main' para fazer aquilo que ela sabe fazer. Ou seja, com scanf eu recebi dois dados do usuário, digitado no teclado,por exemplo, e armazenei eles em uma posição específica da memória. Em seguida, eu estou passando para a minha função os dois dados para que ela faça seu trabalho, ou seja, faça a unica coisa que ela sabe fazer que é somar os dois números e mostrar o resultado.

  Bem, concluindo. Como iniciante em programação,aliais,mesmo Java que tive um pouco mais de contato ainda assim não sei fazer nada com a linguagem, acredito que esse seja o caminho a seguir. Ou seja, existe o conceito por trás da linguagem e a lógica da programação. Conhecer os conceitos é a forma que se tem para construir algo usando a lógica.  Quando eu postar algo sobre C, entenda-se como uma exposição de como eu capitei o conceito. Isso muitas vezes pode ajudar uma outra pessoa que pode estar estudando C e pode não estar compreendendo algo. Não tenho a menor intenção de ensinar C,mesmo porque eu também não sei.
 O que eu estou postando aqui segue a mesma filosofia de tudo o que eu tenho postado. Mostrar meu ponto de vista, minha interpretação, meu parecer sobre algo que eu absorvi de outras pessoas usando minhas palavras.

Para finalizar, segue a saída do meu compilador:
C:\>
C:\>
C:\>soma_doi_numeros.exe
Digite o primeiro numero5
Digite o segundo numero5
O numeros 5 mais o numero 5 igual a 10
C:\>


 Pela CLI do Windows 7 eu chamei o programinha, quando fui salvá-lo cometi um typo e digitei "doi" ao invés de "dois".
Ele me solicita para entrar com um número, depois outro e por último me mostra o resultado.

É isso aí. Entender os conceitos. Dar um passo, ir longe de passo em passo.

Abraço a todos!!



No comments:

Post a Comment