terça-feira, 23 de outubro de 2012

Video aula de algoritmo e de pascal

Estas video aulas estão no youtube, e tem um material muito bom para quem quer aprender a programar: algoritmo, pascal, c, java, delphi e outros. Este professor do vídeo tem um material muito bom. Vale apena conferir.

exemplos:

http://www.youtube.com/watch?v=f1v101iiKks
http://www.youtube.com/watch?v=BJLCfFls2-M
http://www.youtube.com/watch?v=Fqq3Bi4YEX4

As video aulas tem numero iniciando com o número:

aula 946 e vai ate a aula 1239 de Algorit e log

Nestas aulas ele dá exemplos inciciando com algorítmo e passa o mesmo exercício para pascal, c e java

Vale apena.

Esta é uma dica de material para estudo de linguagens de programação. Espero que eu tenha ajudado.

segunda-feira, 22 de outubro de 2012



Programas para cadastramento e ordenação de 5 alunos


Exemplo 1 de 2:

program cad_alunos;
uses crt;

var
   mat          : array [1..5] of integer;
   nome         : array [1..5] of string [30];
   notas        : array [1..5,1..3] of real;
   media        : array [1..5] of real;
   i,j,k,l      : integer;
   soma         : real;
   aux_mat      : string [30];
   aux_nota     : real;

begin
     soma:=0;
     clrscr;
     writeln ('Cadastramento de Alunos');
     writeln;
     {*** Cadastramento de Alunos ***}
     for i:= 1 to 5 do
       begin
          write ('Matricula: '); readln (mat);
          write ('Nome     : '); readln (nome);
          for i:= 1 to 5 do
             begin
                writeln ('Notas do ',i,'o. trimestre: ');
                for l:= 1 to 3 do
                  begin
                     write ('Informe a ',l,'a. nota: '); readln (nota[i,l]);
                     soma:= soma + nota[i,l];
                  end;
          media[i]:= soma / 3;
       end;

       {*** Ordenacao dos alunos Cadastrados ***}
       for i:= 1 to 4 do
         for j:= i+1 to 5 do
           if mat[i] > mat[j] then
              begin
                 {*** Troca Matricula ***}
                 aux_mat:=mat[i];
                 mat[i]:=mat[j];
                 mat[j]:=aux_mat;

                 {*** Trocar Notas ***}
                 for l:= 1 to 3 do
                     begin
                        aux_nota:= nota[i,l];
                        nota[i,l]:= nota[j,l];
                        nota[j,l]:= aux_nota;
                     end;

                 {*** Troca Media ***}
                 aux_nota:= media[i];
                 media[i]:= media[j];
                 media[j]:= aux_nota;


              end;
end.


Exemplo 2 de 2:


program cad_alunos;
uses crt;

var
   mat          : array [1..5] of integer;
   nome         : array [1..5] of string [30];
   nota         : array [1..5,1..3] of real;
   media        : array [1..5] of real;
   i,j,k,l      : integer;
   soma         : real;
   aux_mat      : integer;
   aux_nota     : real;

begin
   soma:=0;
   clrscr;
   writeln ('Cadastramento de Alunos');
   writeln;
   {*** Cadastramento de Alunos ***}
   for i:= 1 to 5 do
     begin
        write ('Matricula: '); readln (mat[i]);
        write ('Nome     : '); readln (nome[i]);
        for i:= 1 to 5 do
          begin
             writeln ('Notas do ',i,'o. trimestre: ');
             for l:= 1 to 3 do
               begin
                  write ('Informe a ',l,'a. nota: '); readln (nota[i,l]);
                  soma:= soma + nota[i,l];
               end;
          end;
        media[i]:= soma / 3;
     end;

   {*** Ordenacao dos alunos Cadastrados ***}
   for i:= 1 to 4 do
     for j:= i+1 to 5 do
       if mat[i] > mat[j] then
         begin
            {*** Troca Matricula ***}
            aux_mat:=mat[i];
            mat[i]:=mat[j];
            mat[j]:=aux_mat;

            {*** Trocar Notas ***}
            for l:= 1 to 3 do
              begin
                 aux_nota:= nota[i,l];
                 nota[i,l]:= nota[j,l];
                 nota[j,l]:= aux_nota;
              end;

            {*** Troca Media ***}
            aux_nota:= media[i];
            media[i]:= media[j];
            media[j]:= aux_nota;
         end;

   {*** Relatorio dos Alunos Cadastrados ***}
   for i:= 1 to 5 do
     begin
        write ('Matricula: ',mat[i]);
        write ('Nome     : ',nome[i]);
        for i:= 1 to 5 do
          begin
             writeln ('Notas do ',i,'o. trimestre: ');
             for l:= 1 to 3 do
                writeln (l,'a. nota: ',nota[i,l]);
             writeln ('Media : ',media[i]);
          end;
     end;
   writeln;
   writeln ('Tecle <ENTER> para sair ... '); readln;
end.



quarta-feira, 17 de outubro de 2012

Vetor - Listagem de Exercícios Resolvidos

Vetor - Listagem de Exercícios Resolvidos

{1. Cria um programa que registe 6 temperaturas ocorridas diariamente numa
localidade e que calcule a media dessas temperaturas. O programa tambem
deve indicar quais as temperaturas que tiveram valores acima da media.}


PROGRAM TEMP_MEDIA ;

uses crt;

VAR
   i,j         : integer;
   soma, media : real;
   temp        : array [1..6] of real;

BEGIN
   clrscr;
   gotoxy (10,02); write ('Controle de Temperaturas');
   gotoxy (10,03); write ('-----------------------------------------------');

   {*** Digitar as 6 temperaturas e armazenar em um vetor de 6 posicoes ***}

   gotoxy (10,05); write ('Introduza os valores das 6 temperaturas');
   j:= 10;
   FOR i := 1 TO 6 DO
     begin
        gotoxy (j,06); write('  ',i,'a.: '); readln (temp[i]);
        j:=j+10;
     end;

   {**** Calculo da media das temperaturas armazenadas no vetor ****}

   soma := 0;
   FOR i := 1 TO 6 DO
     begin
        soma := soma + temp[i];
        media := soma / 6;
     end;

   gotoxy (10,08); write ('Media das 6 temperaturas  : ',media:3:1);

   {**** Listagem das temperaturas acima da media ****}

   j:=10;
   gotoxy (10,10); write ('Temperatura acima da media: ');
   FOR i := 1 TO 6 DO {Valores acima da media}
      BEGIN
         IF temp[i] > media THEN
           begin
            gotoxy (j,12); write ('  ',temp[i]:3:1);
            j:=j+10;
           end;
      END;
   gotoxy (10,24); write ('Tecle [ENTER] para sair'); readln;
END.

{1.1. Cria um programa que registe 6 temperaturas ocorridas diariamente numa
localidade e que calcule a media dessas temperaturas. O programa tambem
deve indicar quais as temperaturas que tiveram valores acima da media.}


PROGRAM TEMP_MEDIA ;

uses crt;

VAR
   i,j         : integer;
   soma, media : real;
   temp        : array [1..6] of real;

BEGIN
   clrscr;
   gotoxy (10,02); write ('Controle de Temperaturas');
   gotoxy (10,03); write ('-------------------------------------------------');

   {*** Digitar as 6 temperaturas e armazenar em um vetor de 6 posicoes ***}

   gotoxy (10,05); write ('Introduza os valores das 6 temperaturas');
   j:= 10;
   soma := 0;
   FOR i := 1 TO 6 DO
     begin
        gotoxy (j,06); write('  ',i,'a.: '); readln (temp[i]);
        j:=j+10;
        soma := soma + temp[i];
     end;

   {**** Calculo da media das temperaturas armazenadas no vetor ****}
   media := soma / 6;
   gotoxy (10,08); write ('Media das 6 temperaturas  : ',media:3:1);

   {**** Listagem das temperaturas acima da media ****}

   j:=10;
   gotoxy (10,10); write ('Temperatura acima da media: ');
   FOR i := 1 TO 6 DO {Valores acima da media}
      BEGIN
         IF temp[i] > media THEN
           begin
            gotoxy (j,12); write ('  ',temp[i]:3:1);
            j:=j+10;
           end;
      END;
   gotoxy (10,24); write ('Tecle [ENTER] para sair'); readln;
END.


{1.2. Cria um programa que registe 6 temperaturas ocorridas diariamente numa
localidade, depois disso o programa devera:
  1. Exibir uma listagem ordenada de forma crescente de todas as temperaturas
     armazenadas nov vetor
  2. Calcular a media dessas temperaturas
  3. Indicar quais as temperaturas que tiveram valores acima da media }



PROGRAM TEMP_MEDIA ;

uses crt;

VAR
   i,j,x            : integer;
   soma, media, aux : real;
   temp             : array [1..6] of real;

BEGIN
   clrscr;
   gotoxy (10,02); write ('Controle de Temperaturas');
   gotoxy (10,03); write ('-------------------------------------------------');

   {*** Digitar as 6 temperaturas e armazenar em um vetor de 6 posicoes ***}

   gotoxy (10,05); write ('Introduza os valores das 6 temperaturas');
   j:= 10;
   soma := 0;
   FOR i := 1 TO 6 DO
     begin
        gotoxy (j,06); write('  ',i,'a.: '); readln (temp[i]);
        j:=j+10;
        soma := soma + temp[i];
     end;

   {**** Calculo da media das temperaturas armazenadas no vetor ****}
   media := soma / 6;
   gotoxy (10,08); write ('Media das 6 temperaturas  : ',media:3:1);

   {**** Ordenar as temperaturas em ordem crescente ****}

   FOR i:= 1 TO 5 DO
     FOR x:=i+1 TO 6 DO
       if (temp[i] > temp[x]) then
         begin
               aux:= temp[i];
           temp[i]:= temp[x];
           temp[x]:= aux;
         end;

   {**** Listagem das temperaturas acima da media ****}

   j:=10;
   gotoxy (10,10); write ('Temperatura acima da media: ');
   FOR i := 1 TO 6 DO {Valores acima da media}
      BEGIN
         IF temp[i] > media THEN
           begin
            gotoxy (j,12); write ('  ',temp[i]:3:1);
            j:=j+10;
           end;
      END;

   {**** Listagem das temperaturas em ordem crescente ****}

   gotoxy (10,14); write ('Temperaturas listadas em ordem crescente:');
   j:= 10;
   FOR i := 1 TO 6 DO
     begin
        gotoxy (j,16); write('  ',i,'a.: ',temp[i]:3:1);
        j:=j+10;
     end;

   gotoxy (10,24); write ('Tecle [ENTER] para sair'); readln;
END.


{2. Criar um Programa que, utilizando vectores, solicite ao
utilizador as classificacoes de 10 alunos, calcule a sua media e a
escreva no ecran[tela] .}


PROGRAM EX_VECTORES;

uses crt;

CONST
   N_ALUNOS=10; {A constante NALUNOS e substituida pelo seu valor no programa antes da

compilação}

VAR
   NOTA      : ARRAY [1..N_ALUNOS] OF INTEGER;
   I, SOMA   : INTEGER;
   MEDIA     : REAL;

BEGIN
  clrscr;

  {**** Cadastramento ds 10 Notas ****}

  FOR I:=1 TO N_ALUNOS DO
     BEGIN
        WRITE ('Introduza a Nota do Aluno ', I, ' : ');
        READLN (NOTA[I]);
     END;

  {**** Calculo da Média das 10 notas armazenadas ****}

  SOMA := 0;
  FOR I:=1 TO N_ALUNOS DO
     SOMA := SOMA + NOTA[I];
  MEDIA := SOMA / N_ALUNOS;

  {**** Exibir o resultado ****}

  WRITELN ('A Media e : ', MEDIA:4:1); {A MEDIA é apresentada com 1 casa decimal (4 digitos,

1 decimal)}


  writeln ('Tecle [ENTER] para sair..'); READLN;

END.



{3. Programa que mostra o calculo do factorial com repeticoes}

PROGRAM FACTORIAL ;

uses crt;

VAR
  Fac         : integer ;
  i           : integer ;
  N           : Integer;

Begin

   gotoxy (10,06); write ('Calculo do Fatorial:');

   {*** Entrada de dados *** }

   gotoxy (10,10); WRITE ('Informe o Valor de N: '); READLN (N);

   {*** Calculo do fatorial ***}

   Fac := 1;
   for i:= 1 to N do
      Begin
         Fac :=Fac * i;
      end;

   {*** Exibir o resultado ***}

   gotoxy (10,14); WRITE ('O Valor de ', N, ' Factorial e: ', fac);

   gotoxy (10,18); write ('Tecle [ENTER] para sair...'); readln;

End.



{4. Programa que demonstra a utilização de Arrays, Procedures e
Functions em PASCAL. Este programa em Pascal atraves de vectores, solicita
ao utilizador a classificacao de 15 alunos, atraves de um procedimento que as
armazena num array, e calcula a media das classificacoes, atraves de uma
funcao, fazendo o seu display no ucran;}

PROGRAM EXEMPLO_ARRAY;

uses crt;

CONST

NALUNOS=15; {A constante NALUNOS e substituida pelo seu valor no programa
                antes da compilacao}

VAR
   NOTA  : ARRAY [1..NALUNOS] OF Real; {poderiamos alterar o array para
   valores reais , nesse caso a soma também terá de passar a ser real, no
   entanto o indice do array "I" tera de continuar inteiro}
   MEDIA : REAL; {Nao ha indices reais para arrays }
   i,j   : integer;

{*** Procedimento de cadastrameto das notas ***}

PROCEDURE PEDEDADOS;


BEGIN
   gotoxy (10,01); write ('Cadastramento das Notas dos 15 alunos: ');
   J:=2;
   FOR I:=1 TO NALUNOS DO
      BEGIN
         gotoxy (10,J+i); WRITE ('Nota do ',I,' aluno: ');
         READLN (NOTA[I]);
      END;
END;

{*** funcao para CALCULO DA MEDIA ***}

FUNCTION CALCULAMEDIA:REAL;

VAR
  SOMA : Real ;

BEGIN
   SOMA := 0 ;
   FOR I:=1 TO NALUNOS DO
      SOMA := SOMA + NOTA[i];
   CALCULAMEDIA := SOMA / NALUNOS ;
END;

{*** Procedimento para ordenar de forma crescente as notas ***}

procedure ordenar_notas;

var
  aux    : real;

begin
   for i:=1 to 14 do
     for j:=i+1 to 15 do
        if nota[i] > nota[j] then
          begin
            aux := nota[i];
            nota[i] := nota[j];
            nota[j] := aux;
          end;
end;

{*** Procedure de listagem de notas em ordem crescente ***}

procedure listagem_notas;

BEGIN
   gotoxy (10,16); write ('Notas dos 15 alunos em ordem crescente: ');
   J:=9;
   FOR I:=1 TO NALUNOS DO
      BEGIN
         gotoxy (J+i,18); WRITE ('Nota do ',I,' aluno: ',NOTA[I]);
      END;
END;



{*** PROGRAMA PRINCIPAL ***}

BEGIN
   clrscr;
   gotoxy (10,01); write ('Cadastramento dos dados de alunos: ');
   PEDEDADOS ; {executa o procedimento de cadastramento}
   MEDIA := CALCULAMEDIA ;

   {*** Escreve o Resultado ***}
   gotoxy (10,20); WRITE ('A Media da turma e: ', MEDIA:4:1); {A MEDIA e apresentada com 1

casa
                                       decimal (2 inteiros + "." + 1decimal)}

   gotoxy (10,24); write ('Tecle [ENTER] para sair....'); READLN;
END.

terça-feira, 2 de outubro de 2012

{ Funcao : Faca um programa que permita a usuario incluir, alterar, excluir,   pesquisar e listar as informacoes num vetor de no maximo 200 clientes de   uma agencia bancaria. Tendo as seguintes informacoes: numero da conta,   nome, saldo e senha de 6 digitos.
Autor :
Data : 4/9/2012
Seção de Declarações }

Program Banco_Novo;

uses crt;

const
  max = 200;

type
  TContaCorrente =  record
                      num: integer;
                      nome: string[40];
                      saldo: real;
                      senha: string[6];
                    end;

TContas = array[1.. max] of TContaCorrente;

var
  contas                                : TContas;      { *** upos - ultima posicao *** }
  p, i, op, upos, pesq, erro            : integer;
  resp                                  : char;
  teste_senha,nova_senha,vsenha,senha_digitada     : string[6];


{*** PROCEDURE MOSTRAR DADOS DA CONTA - UTILIZADO EM QUASE TODAS AS PARTES DESTE PROGRAMA ***}

procedure MostrarConta(conta: TContaCorrente);

begin
  gotoxy (10,06); write ('        Cliente Cadastrado - Banco PASCAL:           ');
  gotoxy (10,07); write ('-----------------------------------------------------');
  gotoxy (10,08); write ('N£mero  Nome                            Saldo');
  gotoxy (10,09); write ('-------+-------------------------------+-------------');
  writeln;
  gotoxy (10,10); write (conta.num);
  gotoxy (18,10); write (conta.nome);
  gotoxy (53,10); write ('R$ ',conta.saldo:10:2);
end;

procedure criptografar_senha;
var
   s         : char;

begin
  i:= 1;
  while i <= 6 do
    begin
      s:=readkey;
      i:= i + 1;
      if (s <> ' ') then
        begin
          senha_digitada:= concat(senha_digitada+s);
          write ('*');
        end;
    end;
end;

function localizar: integer;

var
  achou: boolean;

begin
  p:= 1;
  achou := false;
  while (p <= upos) and (not achou) do  {not achou = achou = false}
    if pesq = contas[p].num then
      achou := true
    else
      p := p + 1;
  if achou then     {if achou then = if achou = true then}
    localizar := p
  else
    localizar := -1; { numero negativo ira interrompoer as procedures: }
end;                 { alterar, excluir, pesquisar, listar             }

{*** CADASTRAMENTO DE CLIENTES - Incluir ***}

procedure incluir;

begin
  clrscr;
  gotoxy (10,01); write ('         Abertura de nova conta          ');
  gotoxy (10,02); write ('---------------------------------------- ');

  gotoxy (10,04); write ('Ate o momento o banco tem ',upos,' clientes cadastrados');
  gotoxy (10,06); write ('Podendo chegar a numero ',max,' de clientes');

  if upos < max then
    begin
      gotoxy (10,24); write  ('Deseja realmente cadastrar uma nova conta [S/N] : ');
      readln (resp);
      if (resp = 's') or (resp = 'S') then
        begin
          gotoxy (10,24); write ('                                                   ');
          upos := upos + 1;                                                        {       upos - ultima posicao         }
          gotoxy (10,08); write ('N£mero: ');                readln (contas[upos].num);            
          gotoxy (10,09); write ('Nome  : ');                 readln (contas[upos].nome); 
          gotoxy (10,10); write ('Saldo Inicial: R$ ');   readln (contas[upos].saldo);
          gotoxy (10,12); write ('Digite a senha: ');
          criptografar_senha;
          contas[upos].senha:=senha_digitada;
          gotoxy (10,22); write ('Cadastramento de conta concluido com sucesso!!');
          delay (2500);
        end
     else
        begin
          gotoxy (10,22); write ('Nao foi registrado uma conta nova.');
        end;
      gotoxy (10,22); write ('Tecle [ENTER] para retornar oa menu principal');
    end
  else
    begin
      gotoxy (10,17); write ('Nosso numero de clientes ja esta complento');
      gotoxy (10,18); write ('Foi atingido o numero maximo de clientes');
      gotoxy (10,19); write ('Um total de ',upos,' de ',max);
      gotoxy (10,20); write ('Tecle [ENTER] para continuar.');
      readkey;
    end;
end;

{**** Procedimento para efetuar alteracoes nos dados dos clientes ****}

procedure alterar;

var
  opl: integer;
begin
  clrscr;
  gotoxy (10,01); write ('Alterarcao de dados no registro do cliente cadastrado: ');
  gotoxy (10,02); write ('---------- -- ----- -- -------- -- ------- ----------- ');

  gotoxy (10,04); write ('Digite o n£mero da conta a ser alterada: ');
  readln(pesq);
  p := localizar; {aciona a procedure localizar e recebe um informacao           }
  if p > 0 then   {se encontrou ou nao o numero da conta no registro de clientes }
    begin
      MostrarConta(contas[p]);
      gotoxy (10,12); write ('Qual o campo que deseja alterar?');
      gotoxy (10,13); write ('1 - Nome');
      gotoxy (10,14); write ('2 - Saldo');
      gotoxy (10,15); write ('3 - Senha');
      gotoxy (10,16); write ('9 - Voltar ao menu principal');

      gotoxy (10,18); write ('Digite a Opcao: '); readln(opl);
      if opl = 1 then
        begin
          gotoxy (14,20); write ('Nome: ');
          readln(contas[p].nome);
        end
      else
        if opl = 2 then
          begin
            gotoxy (14,20); write ('Saldo: R$');
            readln(contas[p].saldo);
          end
        else
          if opl = 3 then
            begin
              gotoxy (14,20); write ('Digite a nova senha: ');
              criptografar_senha;
              contas[upos].senha:=senha_digitada;
            end
          else
            if opl = 9 then
              begin
                gotoxy (14,24); write ('Tecle [ENTER] para voltar ao MENU PRINCIPAL')
              end;
      gotoxy (10,22); write ('Alera‡Æo de conta concluido com sucesso!!');
      delay (2500);
    end
  else
    begin
       gotoxy (14,24); write ('Conta nÆo localizada. Tecle [ENTER] para continuar.');
       readkey;
    end;
end;

{ *** PROCEDIMENTO PARA EXCLUIR CONTA DE CLIENTE *** }

procedure excluir;


begin
  clrscr;
  if upos > 0 then
    begin
       gotoxy (10,02); write ('Excluir Registro de Cliente Cadastrado: ');
       gotoxy (10,03); write ('------- -------- -- ------- ----------- ');

       gotoxy (10,05); write ('Digite o n£mero da conta a ser excluida: ');
       readln(pesq);
       p := localizar;
       if p > 0 then
         begin
           MostrarConta(contas[p]);
           gotoxy (10,24); write('Comfirma a exclusao <S/N>: ');
           readln(resp);
           resp := upcase(resp);
           if resp = 'S' then
            begin
              for i := p to upos - 1 do
                contas[i] := contas[i + 1];
              upos := upos - 1;
            end;
           gotoxy (10,24); write ('Conta excluida com sucesso!!');
           delay (2500);
         end
       else
         begin
           gotoxy (10,24);write('Conta nÆo localizada. Tecle [ENTER] para continuar.');
           readkey;
         end;
      end
  else
     begin
       gotoxy (07,08); write ('Banco Pascal');
       gotoxy (07,24); write ('NÆo existe informa‡Æo a excluir. Tecle [ENTER] para continuar.');
       readkey;
     end;
end;

procedure pesquisar;


begin
  clrscr;
  gotoxy (10,02); write ('Excluir Registro de Cliente Cadastrado: ');
  gotoxy (10,03); write ('------- -------- -- ------- ----------- ');

  gotoxy (10,05); write('Didite o n£mero da conta a ser localizada: ');
  readln(pesq);
  p := localizar;
  if p > 0 then
  begin
    MostrarConta(contas[p]);
    gotoxy (10,24); write('Tecle [ENTER] para continuar.');
    readkey;
  end
  else
  begin
    gotoxy (10,24); write('Conta nÆo localizada. Tecle [ENTER] para continuar.');
    readkey;
  end;
end;

procedure listar;

var
  l, x: integer;

begin
  X:=7;
  clrscr;
  if upos > 0 then
    begin
      l := 2;
      gotoxy (10,02); write ('Listagem dos Cliente Cadastrados - Banco PASCAL: ');
      gotoxy (10,03); write ('-------- --- ------- -----------   ----- ------- ');
      gotoxy (10,05); write ('N£mero  Nome                             Saldo');
      gotoxy (10,06); write ('-------+--------------------------------+-----------------');
      writeln;
      for i := 1 to upos do
        begin
          gotoxy (10,x); write (contas[i].num:7);
          gotoxy (18,x); write (contas[i].nome);
          gotoxy (53,x); write ('R$ ',contas[i].saldo:10:2);
          x:=x+1;
          if l < 22 then
            l := l + 1
          else
            begin
              gotoxy (10,24); write ('Tecle [ENTER] para continuar.');
              readkey;
              l := 1;
              clrscr;
              writeln('N£mero  Nome Saldo  : ');
            end
        end;
      gotoxy (10,24); write ('Tecle [ENTER] para continuar.');
      readkey;
    end
  else
    begin
      gotoxy (10,24); write ('NÆo exitem contas cadastradas. Tecle [ENTER] para continuar.');
      readkey;
    end;
end;
{
procedure extrato_bancario;

Type
    extrato     = record
                   operacao : integer;

var }

{ *** Principal parte do programa *** }
begin
  repeat
    clrscr;

{Comandos do programa}                        
                                                           
                                                           
    gotoxy (05,05); write ('        Banco Pascal');        
    gotoxy (05,06); write ('----------------------------');
    gotoxy (05,10); write ('       MENU PRINCIPAL       ');
    gotoxy (05,12); write ('----------------------------');

    gotoxy (13,14); write ('1 - Incluir');                
    gotoxy (13,15); write ('2 - Alterar');               
    gotoxy (13,16); write ('3 - Excluir');                
    gotoxy (13,17); write ('4 - Pesquisar');            
    gotoxy (13,18); write ('5 - Listar');                  
    gotoxy (13,19); write ('6 - Extrato');                
    gotoxy (13,20); write ('9 - Sair');                   
    gotoxy (10,22); write ('Digite a opcao: ');           
    val(readkey,op,erro);
    clrscr;
    case op of
      1: incluir;
      2: alterar;
      3: excluir;
      4: pesquisar;
      5: listar;
      6: begin
            gotoxy (26,19); writeln ('EM CONSTRUCAO'); readkey;
         end;
    end;
  until op = 9;
end.