Ir ao conteúdo
  • Cadastre-se

Pascalzim - Erro sintático - '.' não esperado.


Visitante
Ir à solução Resolvido por Visitante,

Posts recomendados

Boas, estou com um erro num programa e ainda não o consegui resolver, uma ajudinha calhava bem (:
 
 
Código - http://textuploader.com/ge78
Arquivo .pas download - http://www.filedropper.com/registro
 
 
Código:

Program PA ;Type Registro = Record  Nome,Morada:String;  NumA:Integer;  NumAT:Integer;  Sexo:Char;End;Var C:Array[1..101] of Registro;I,B:integer;A:string;Procedure TelaP;Begin  Repeat    Writeln('|------------------------------------------------------------------------------|');    writeln('|                                                                              |');    Writeln('|                      Registro/Consulta de Assinantes                         |');    writeln('|                                                                              |');    Writeln('|------------------------------------------------------------------------------|');    writeln;    Write('Quer <criar> , <consultar> os assinantes ou <sair> do programa?');    readln(A);        If (A <> 'Criar') or (A <> 'Criar') or (A <> 'CRIAR') or (A <> 'Consultar') or (A <> 'consultar') or (A <> 'CONSULTAR') or (A <> 'Sair') or (A <> 'sair') or (A <> 'SAIR') then    Begin      Writeln;      Write('Essa opção não consta no programa! Tente de novo.');    End;  until (A = 'Criar') or (A ='Criar') or (A = 'CRIAR') or (A = 'Consultar') or (A = 'consultar') or (A = 'CONSULTAR') or ( A = 'Sair') or ( A = 'sair') or ( A = 'SAIR');End;Procedure Registrar;Begin  If (A = 'Criar') or (A ='Criar') or (A = 'CRIAR') then  Begin    Clrscr;    For i:=i to i do    Begin      With C[i] do      Begin        Writeln('|------------------------------------------------------------------------------|');        writeln('|                                                                              |');        Writeln('|                          Registro de Assinantes                              |');        writeln('|                                                                              |');        Writeln('|------------------------------------------------------------------------------|');        writeln;        Write('Número de assinante: ');        readln(NumA);        Write('Nome: ');        readln(Nome);        Write('Morada: ');        readln(Morada);        Write('Sexo: ');        readln(sexo);      End;    End;    Writeln;    Writeln('                  |--------------------------------|              ');    Writeln('                  | Registro concuído com sucesso! |              ');    Writeln('                  |--------------------------------|              ');    Write('| Deseja criar outro assinante? [S/N] |');    readln(A);    A:=upcase(A);      If (A = 'S') or (A =  'SIM' ) then      Begin        Clrscr;        I:=I+1; // Acrescenta mais um slot disponivel para registro no array      End;    End;  End;      Procedure Consultar;  Begin    Repeat //Repeat [3]      Writeln('|------------------------------------------------------------------------------|');      writeln('|                                                                              |');      Writeln('|                          Consulta de Assinantes                              |');      writeln('|                                                                              |');      Writeln('|------------------------------------------------------------------------------|');      writeln;      Write('Insira o número de assinante para consultar, total para saber o número de assinantes ou sair para voltar ao ménu principal: ');      read(A);      If (A = 'Consultar') or (A = 'consultar') or (A = 'CONSULTAR') then      Begin        For I := 1 to 100 do        Begin          If B = c[i].NumA then          Begin            B:=I;          End;        End;        For b := b to b do        Begin          With C[b] do          Begin            Writeln('N% de Assinante:',NumA);            Writeln('Nome: ',Nome);            Writeln('Morada: ',Morada);            Writeln('Sexo: ',Sexo);          End;        End;        Writeln('Deseja alterar dados? ');        read(A);      End;            If (A = 'S') or (A =  'SIM' ) then      Begin        Write('Qual o campo que deseja alterar? ');        read(A);        If A = 'Todos' then        Begin          Write('Introduza um novo nome: ');          readln(C[b].Nome);          Write('Introduza uma nova morada: ');          readln(C[b].Morada);          Write('Introduza um número de assinante novo: ');          read(C[b].NumA);          Writeln;          Writeln('|--------------------------------|');          Writeln('|  Dados alterados com sucesso!  |');          Writeln('|--------------------------------|');        End;                        If A = 'Nome' Then        Begin          Write('Introduza um novo nome: ');          readln(C[b].Nome);          Writeln;          Writeln('|--------------------------------|');          Writeln('|  Dados alterados com sucesso!  |');          Writeln('|--------------------------------|');        End;                If A = 'Morada' then        Begin          Write('Introduza uma nova morada: ');          readln(C[b].Morada);          Writeln;          Writeln('|--------------------------------|');          Writeln('|  Dados alterados com sucesso!  |');          Writeln('|--------------------------------|');        End;                If A = 'Número de assinante' then        Begin          Write('Introduza um número de assinante novo: ');          readln(C[b].NumA);          Writeln;          Writeln('|--------------------------------|');          Writeln('|  Dados alterados com sucesso!  |');          Writeln('|--------------------------------|');        End;      End;            //Fim CONSULTAR            //Inicio TOTAL      If (A = 'Total') or (A = 'total') or (A = 'TOTAL') then      Begin        For i := 1 to 100 do        begin          With C[i] do          Begin            If (NumA <> 0 ) then            Begin              c[101].NumAT:=c[101].NumAT+1;            End;          End;        EnD;        Writeln('|------------------------------------------------------------------------------|');        writeln('|                                                                              |');        Writeln('|                          N§ Total de Assinantes                              |');        writeln('|                                                                              |');        Writeln('|------------------------------------------------------------------------------|');        writeln;        Write('O número total de Assinantes é: ',C[101].NumAT);      end;      			Begin                            Repeat          TelaP;          While (A = 'Criar') do          Begin            Registrar;          End;                    While (A = 'Consultar') do          Begin           Consultar;           End;        Until ( A = 'Sair') or ( A = 'sair') or ( A = 'SAIR') ;                      End.
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@iAz0x

O que esse With faz?

With C[i] do      Begin        Writeln('|------------------------------------------------------------------------------|');        writeln('|                                                                              |');        Writeln('|                          Registro de Assinantes                              |');        writeln('|                                                                              |');        Writeln('|------------------------------------------------------------------------------|');        writeln;        Write('Número de assinante: ');        readln(NumA);        Write('Nome: ');        readln(Nome);        Write('Morada: ');        readln(Morada);        Write('Sexo: ');        readln(sexo);      End;

Nunca vi seu uso e o programa não o reconhece.

Link para o comentário
Compartilhar em outros sites

@iAz0x

O que esse With faz?

With C[i] do      Begin        Writeln('|------------------------------------------------------------------------------|');        writeln('|                                                                              |');        Writeln('|                          Registro de Assinantes                              |');        writeln('|                                                                              |');        Writeln('|------------------------------------------------------------------------------|');        writeln;        Write('Número de assinante: ');        readln(NumA);        Write('Nome: ');        readln(Nome);        Write('Morada: ');        readln(Morada);        Write('Sexo: ');        readln(sexo);      End;

Nunca vi seu uso e o programa não o reconhece.

O With é para facilitar o uso do Type, em vez de estar a escrever c.Nome uso o With , assim posso "invocar"  as variáveis sem estar sempre a usar o C.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...