Numa das primeiras aulas fizemos um programa para calcular a área de um círculo mas escrevemos as instruções em Português. Agora vamos escrever esse mesmo programa em C.
#include <stdio.h> main() { float area, raio; printf("Introduza o raio: "); scanf("%f", &raio); area = 3.14159 * raio * raio; printf("A área de um círculo de raio %f é %f\n", raio, area ); }
Este programa também podia ser escrito sem a variável area. Ficaria assim:
#include <stdio.h> main() { float raio; printf("Introduza o raio: "); scanf("%f", &raio); printf("A área de um círculo de raio %f é %f\n", raio, 3.14159 * raio * raio ); }
e também podia ser escrito assim:
#include <stdio.h> #define PI 3.14159 main() { float raio; printf("Introduza o raio: "); scanf("%f", &raio); printf("A área de um círculo de raio %f é %f\n", raio, PI * raio * raio ); }
Neste caso, o nome PI foi definido como sinónimo de 3.14159. Este programa faz exactamente a mesma coisa que o programa anterior, mas é melhor porque é mais legível. A legibilidade é muito importante porque faz com que os programas fiquem mais fáceis de alterar. Isto é especialmente importante quando os programas são grandes (existem programas com milhares de linhas).
Reparem que o valor de PI não pode ser alterado durante a execução do programa. Se tivéssemos declarado PI como variável, poderíamos alterar o seu valor fazendo coisas do estilo:
main() { float PI, raio; ... PI = 7.45; area = PI * raio * raio; ... }
Obviamente que isso seria um absurdo. PI não é uma variável, PI é uma constante cujo valor é aproximadamente igual a 3.14159... Tudo o que é constante deve ser definido como tal utilizando a directiva #define.
Na matemática costumamos usar uma só letra para os nomes de variáveis (ex: x, y, z). Em C, as variáveis podem ter nomes como area ou raio. Os nomes das variáveis em C devem começar obrigatoriamente por uma letra ou um sublinhado e podem ser seguidos por qualquer combinação de letras, sublinhados ou dígitos 0-9. De seguida apresento uma lista com exemplos de nomes de variáveis válidos:
area area_do_circulo x maria53 _valor AnToNIO
Existem diversos factores que contribuem para a qualidade de um programa e alguns desses factores são muitas vezes ignorados por programadores principiantes. Um bom programa deve,
O ponto 1 diz que se um programa é suposto calcular a área de um círculo, então deve fazer isso de modo correcto. Por exemplo, o programa não pode dizer que a área de um círculo de raio 1 é 4.
O ponto 2 é mais delicado e é aquele que é normalmente ignorado pelos principiantes. Apesar de um programa funcionar do modo esperado isso não significa que o programa é bom (lembrem-se disto nos testes e trabalhos). Um bom programa tem de ser compreendido facilmente olhando para o código. Isso implica dar bons nomes às variáveis e usar uma indentação adequada. Para melhor ilustrar este aspecto, nada melhor que um exemplo. De seguida apresenta-se um conjunto de programas para calcular a área de um círculo. Todos funcionam correctamente mas a qualidade vai do bom até ao péssimo.
Versão 1 (bom)
#include <stdio.h> #define PI 3.14159 main() { float raio, area; printf("Introduza o raio: "); scanf("%f", &raio); area = PI * raio * raio; printf("A área de um círculo de raio %f é %f\n", raio, area ); }
Versão 2 (menos bom)
#include <stdio.h> main() { float raio, area; printf("Introduza o raio: "); scanf("%f", &raio); area = 3.14159 * raio * raio; printf("A área de um círculo de raio %f é %f\n", raio, area ); }
Versão 3 (mau nome para as variáveis)
#include <stdio.h> main() { float x,y; printf("Introduza o raio: "); scanf("%f", &x); y = 3.14159 * x * x; printf("A área de um círculo de raio %f é %f\n", x, y ); }
Versão 4 (má indentação)
#include <stdio.h> main() { float x,y; printf("Introduza o raio: "); scanf("%f", &x); y = 3.14159 * x * x; printf("A área de um círculo de raio %f é %f\n", x, y );}
Versão 5 (mete medo ao susto!)
#include <stdio.h> main() { float x,y; printf("Introduza o raio: "); scanf("%f", &x); y = 3.14159 * x * x; printf("A área de um círculo de raio %f é %f\n", x, y );}