BASIC X C


  Esse capítulo tem por objetivo demonstrar a equivalência de um programa escrito em Basic e seu correspondente em C.



PROGRAMA  - 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. 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;
}


/MARMSX/CURSOS/C--