AULA 6 - Introdução à Linguagem C - FIC

De IFSC
Ir para navegação Ir para pesquisar

Estrutura de um programa em C

Normalmente, um programa em C tem o formato abaixo:

 #diretivas de pré-processador
 declarações de protótipos de função
 declarações de variáveis globais
 int main()
 {   
   corpo da função main()
 }
 definição das demais funções

Ao longo de todo o código, podem e devem ser incluídos comentários. Comentários não são processados pelo compilador, portanto, não geram código.

Os comentários que utilizem várias linhas são identificados como iniciando-se pelos caracteres /* e terminando por */.


O programa abaixo serve para ilustrar esta estrutura:

/***************************************************************/
/*** PROGRAMA C que demonstra como usar várias primitivas gráficas ***/
/*** com monitor VGA ***/
/**************************************************************/
#include <graphics.h>
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
#include <conio.h>
#define TRUE 1
#define MAX 200
#define NAO 'n'
#define SIM 's'
void circulo(int, int);
void barra(int);
void elipse(int, int) ;
void main(void)
{
 int gdriver = DETECT, gmode, errorcode, i;
 int midx, midy;
 char ch;
 initgraph(&gdriver, &gmode, " " );
 errorcode = graphresult();
 if (errorcode != grOk)
 { printf("Erro de Função Gráfica: %s \n", grapherrormsg (errorcode));
   printf("Aperte uma tecla para parar: ");
   getch();
   exit(1);
 }
 setbkcolor(BLACK);
 for(i = 10; ch != NAO; i +=100 )
 {
   circulo(i, i); // desenha um círculo vazio
   barra(i + 50); // desenha uma barra cheia
   elipse(i +200, i + 300); // desenha uma elipse cheia
   printf("Deseja continuar? (s/n)");
    ch = getchar();
  }
  closegraph();
}
void circulo(int x, int y)
/* desenha um pequeno círculo */
{ setcolor(BLUE);
circle(x, y,40);
}
void barra(int posicao)
/* desenha uma barra tridimensional */
{ setcolor(CYAN);
  setfillstyle(LINE_FILL, CYAN);
  bar3d(posicao, 20, posicao + 50, 90, 15, 1);
}
void elipse(int x, int y)
/* desenha uma elipse, traça e preenche */
{ setcolor(MAGENTA);
 setfillstyle(SLASH_FILL, MAGENTA);
 fillellipse(x, y, 40, 70);
}