Resumo: Nesta postagem pretendo expor os conceitos básico de programação em C. Portanto, se quiser ver algum conteúdo específico terá que acessar o Guia Prático, localizado no menu superior. Não é objetivo desta postagem aprofundar-se em variáveis, funções ou matérias mais avançadas de programação em C.
C é uma linguagem de programação compilada de propósito geral, estruturada, imperativa, procedural, padronizada pela ISO, criada em 1972, por Dennis Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional Unix (que foi originalmente escrito em Assembly).
C é uma das linguagens de programação mais populares e existem poucas arquiteturas para as quais não existem compiladores para C. C tem influenciado muitas outras linguagens de programação, mais notavelmente C++, que originalmente começou como uma extensão para C.
C é uma das linguagens de programação mais populares e existem poucas arquiteturas para as quais não existem compiladores para C. C tem influenciado muitas outras linguagens de programação, mais notavelmente C++, que originalmente começou como uma extensão para C.
Se você nunca estudou linguagens de programação, terá se deparado com algumas palavras, no mínimo, "diferentes". Uma delas, e mais importante, é a palavra Compilar, que se apresentou como: compilada; compiladores.
Bom. Compilar é uma verbo transitivo direto... Brincadeira! (kkk... Veja as normas gramaticais da língua culta brasileira no Guia Prático, seção de Produção de Texto Científico). Compilar, na computação, é o ato de converter uma linguagem de alto nível para uma linguagem de baixo nível, ou seja, passar da linguagem humana, por exemplo, para uma linguagem melhor entendida pela máquina, a linguagem binária, que é constituída apenas por 1 e 0, em que 1 representa presença de energia e 0, ausência de energia (resumindo, pulsos elétricos).
Para fazer esse tipo de conversão, é necessário um Compilador, um software que realiza várias tarefas de análise léxica (escrita correta), sintática (ordem correta) e semântica (sentido correto). Por exemplo:
Erro Léxico: Eu cacei um trige.
Erro Sintático: Um tigre cacei eu.
Erro Semântico: Eu cassei um tigre.
Tendo isso em mente, os primeiros programadores desenvolveram técnicas de programação para facilitar esse trabalho, pois, nele, é muito fácil errar. Assim o Algorítimo entra na conversa.
Algorítimo nada mais é que uma "história" (como dizia o Excelentíssimo Professor Sérgio Jábali). Sendo assim, deve possuir começo, meio e fim. Ou seja, para construir um programa deve-se já ter em mente a funcionalidade do programa, a ordem em que o programa será executado, saber quais códigos serão usados, ter uma noção básica do que realmente deve ser feito. Por exemplo:
Dada a situação: Somar os número 1 + 2 + 3 e mostrar a resposta.
O programador A monta um algorítimo A em que somará 1+2, depois somará o resultado com 3 e mostrará a resposta.
O programador B monta um algorítimo B em que somará 1+2+3 e mostrará a resposta.
Neste exemplo, ambas as respostas será 6. Contudo, cada programador montou um algorítimo diferente. Sendo o algorítimo do programador B o mais eficiente, pois necessitará de menos códigos, culminando em um programa mais "leve" (rápido).
Para facilitar tanto no desenvolvimento de programas, quanto na conversão das linguagens, uma série de regras foram estabelecidas.
» O programa tem que ser dividido em blocos, funções.
» Algumas palavras serão reservadas exclusivamente para comandos.
» Algumas palavras serão sensíveis a caixa alta.
» Todo programa deverá conter uma função principal.
» O programa será desenvolvido em linhas de comando.
» Usar ponto-e-vírgula (;) sempre que não houver interrupção natural da linha (como chaves ou sinal de maior/menor).
» O programador deverá fazer uso de recuo, que facilitará a interpretação do código fonte por ele ou outro programador.
» Variáveis e funções deverão iniciar por letra ou "_" (underline), sendo permitido uso de número somente após o primeiro caracter (letra ou underline).
» O programador deverá usar palavras significativas dentro do contexto do programa.
» As palavras poderão possuir até 31 caracteres.
» Os compiladores deverão possuir sistemas sintáxicos e léxicos padronizados (sistemas semânticos fogem às regras, pois demandam inteligência artificial mais apurada por ser uma característica muito próxima da linguagem de alto nível).
Organização Básica de um Programa em C
#include <stdio.h>
void main()
{
int x=0;
x=1+2+3;
printf("resposta: %d", x);
system("PAUSE");
return 0;
}
Os mais atentos já perceberam uma certa semelhança entre o código fonte acima e aquele algorítimo B, discutido o exemplo anterior. Este é o, efetivamente, o código fonte gerado a partir do algorítimo B.
Antes de explicar cada linha do código fonte, quero salientar que este não é o programa propriamente dito. Para que este código fonte torne-se um programa (um executável) é necessário compilá-lo em um IDE (Integrated Development Environment), um ambiente integrado para desenvolvimento de software (Veja os tipos de IDE disponíveis para compilar C no Guia Prático, seção de Linguagens de Programação).
Agora vem a parte mais crucial desta postagem, a explicação do código fonte.
Linha 01: Declaração de uma biblioteca (arquivo de consulta com programas pré-estabelecidos), "stdio.h" (Standard Input and Output Library), padrão de entrada e saída da biblioteca, na região chamada cabeçalho (header). Todas as bibliotecas possuem a extensão .h (da palavra "header") e deve ser declarada por #include (incluir).
Linha 02: Declaração de uma função (bloco de tarefas a serem executadas), "main" (principal), do tipo "void" (vazio, pois retorna nada). Todo código fonte de programa deve conter esta função, pois é a partir dele que o programa será executado. Uma característica das funções é que todas eles apresentam um par de parenteses, ( ), um para abrir e outro para fechar, delimitando os parâmetros da função (que podem ou não existir).
Linha 03: Abertura do bloco de tarefas a serem executadas pela função main. Usa-se uma chave de concavidade voltada para a direita {.
Linha 04: Declaração e Inicialização de variável (posição reservada, que varia de acordo com a necessidade, alocada na memória volátil e primária - Memória RAM) do tipo "int" (inteiro); e inicializada com zero, pois em uma posição reservada sempre haverá um "lixo de memória". Todas as variáveis devem ser declaradas com algum tipo (qualidade da variável), sendo que este deve vir antes da variável. E à variável foi atribuída uma constante (um valor numérico).
Linha 05: Operação lógica atribuída à variável x. Em que x recebeu o valor 1 somado a 2 e 3, resultando em um x de valor 6.
Linha 06: Chamada de função. A função "printf" foi chamada pois ela é quem imprime caracteres na tela do monitor. Esta função é programada para receber um número ilimitado de parâmetros. Todos os parâmetros devem ser separados por vírgula, e não há necessidade de colocar vírgula no final, por exemplo: printf("texto", variavel, "texto", variavel);
Linha 07: Chamada de função. A função "system" foi chamada pois ela é quem para a execução do programa. Esta função é programada para receber apenas um parâmetro.
Linha 08: Chamada da instrução "return". Return não é uma função, é um construtor de linguagem usado para sair de uma execução.
Linha 09: Fachamento do blog de tarefas da função main. Usa-se uma chave de concavidade voltada para a esquerda }.
Algumas das palavras do código fonte são reservadas. Portanto, elas não podem ser usadas para outra funcionalidade, como void / int / printf / system / return, a não ser que estejam escritas de outra maneira, como _void / Void / _int / Int / _printf / Printf / _system / System / _return / Return, devido à sensibilidade à caixa alta, mas não é ideal usar essas palavras uma vez que são muito semelhantes aos comandos e poderia proporcionar má interpretação do código por outros programadores.
Para manter a organização do código, um recuo, comumente chamado indentação, identação, endentação, etc, deve ser admitido em todo o código para delimitar os escopos (blocos, áreas, regiões, em que determinados recursos só funcionam naquela parte) de cada função. Por exemplo:
Ambos os código são os mesmos. A diferença é que o código da esquerda está identado, enquanto que o código da direita não está.
Analisando esse código para entender melhor o que é escopo, temos a variável x declarada duas vezes (nas linhas 4 e 8). Contudo, o primeiro x foi declarado dentro da função principal (main), portanto pertence ao escopo da função principal; já o segundo x foi declarado dentro de uma função condicional (if), portanto pertence ao escopo daquela função condicional. O curioso nisso é que a função "if" pertence ao escopo da função "main", logo o primeiro x funciona dentro da função "if" também, mas o segundo x é mais importante para a função "if", já que foi declarada dentro dela. Por isso, após compilar esse código e executar o programa gerado, os valores de x impressos na tela serão: 121.
A partir deste momento seria interessante instalar um IDE para compilar códigos fonte em C. Continue lendo mais no Guia Prático.
Guia Prático - Linguagens de Programação













| Resolução: 1024x768 ou 1024x576 (16:9)
Postar um comentário
Usar Nome (URL é opcional), sem spam ou anonimato
(Regras) - Todos os Comentário são moderados