Curso de C
Basic x C
Você está em: MarMSX >> Cursos >> C
Biblioteca GLIB exclusiva do MSX.
Esse capítulo tem por objetivo demonstrar dois programas escritos em Basic e seus equivalentes em C.
PROGRAMA 1 - AGENDA TELEFÔNICA
(Retirado do livro Dominando o Expert, ed Aleph, 5a. edição, 1987)
1. BASIC
10 REM Agenda EXPERTa
20 PRINT:PRINT:PRINT"Consultar (C) ou Inserir (I)"; : POKE &HFCAB,255
30 INPUT S$
40 IF S$="C" THEN GOTO 160
50 IF S$="I" THEN GOTO 70
60 GOTO 30
70 PRINT"Quantos nomes serão inseridos";
80 INPUT N : IF A>0 THEN ERASE N$
90 A=1 : DIM N$(N,2)
100 FOR F=1 TO N
110 PRINT "Entre o nome";F;":"
120 INPUT N$(F,1)
130 PRINT "Entre o telefone:"
140 INPUT N$(F,2)
150 NEXT F:GOTO10
160 PRINT:PRINT "Nome","Telefone"
170 PRINT
180 FOR F=1 TO N
190 PRINT N$(F,1),N$(F,2)
200 NEXT F
300 GOTO 10
2. Linguagem C
#include <stdio.h>
#include <stdlib.h>
struct mod_agenda
{
char nome[40];
char telefone[10];
} agenda[100];
int f,n;
char s;
void consulta()
{
for (f=0; f<n; f++)
printf("%d - Nome: %s\tTelefone: %s\n", f, agenda[f].nome, agenda[f].telefone);
}
void insere()
{
printf("\nQuantos nomes serao inseridos ? ");
scanf("%d",&n);
if (n>100)
n=100;
for (f=0; f<n; f++)
{
printf("Entre o nome %d: ",f+1);
scanf("%s", agenda[f].nome);
printf("Entre o telefone: ");
scanf("%s", agenda[f].telefone);
}
}
int main(void)
{
// AGENDA EXPERTa
s=0;
while (s != 's')
{
printf("Consultar (C), inserir (I) ou Sair (S): ");
scanf("%c",&s);
switch (s)
{
case 'c' : consulta(); break;
case 'i' : insere();
}
}
return 0;
}
PROGRAMA 2 - PROGRAMA GRÁFICO
Nota importante: o programa a segui somente funciona em um computador MSX.
Agora vamos desenhar a bandeira do Brasil.
1. BASIC
10 SCREEN 5
20 LINE(0,0)-(255,211),12
30 LINE(128,10)-(245,106),11
40 LINE(128,201)-(245,106),11
50 LINE(128,201)-(10,106),11
60 LINE(128,10)-(10,106),11
70 PAINT(128,106),11
80 CIRCLE(128,106),60,5
90 PAINT(128,106),5
100 LINE(68,100)-(189,112),15,BF
110 A$=INPUT$(1)
2. Linguagem C
Para utilizar os recursos gráficos, é necessário copiar a biblioteca GLIB para o Hitech-C, conforme explicado no capítulo 9.
As sintaxes para as funções utilizadas são:
- screen(modo);
- line(x1, y1, x2, y2, cor, operacao_logica);
- boxfill(x1, y1, x2, y2, cor, operacao_logica);
- circle(x, y, raio, cor, ang_inicial, ang_final, achatamento);
- paint(x, y, cor, cor_da_borda);
#include <stdio.h>
#include <conio.h>
#include <glib.h>
char c;
main()
{
screen(5);
boxfill(0,0,255,211,12,PSET);
line(128,10,245,106,11,PSET);
line(128,201,245,106,11,PSET);
line(128,201,10,106,11,PSET);
line(128,10,10,106,11,PSET);
paint(128,95,11,11);
circle(128,106,60,5,0,32752,32768);
paint(128,106,5,5);
boxfill(68,100,189,112,15,PSET);
c = getch();
totext();
}
Para compilar o arquivo "band.c":
A> c -lg band