EXEMPLO ESTRUTURA 
1.º PASSO: definir a estrutura 
Estrutura Simples 
Número da conta 
Nome do cliente 
Saldo 
TYPE REGISTRO = RECORD 
num : INTEGER; 
nome : STRING[35]; 
saldo : REAL; 
END; 
2.º PASSO: Construir o Conjunto da Estrutura 
Um vetor de 15 posições. Cada posição tem uma estrutura dentro . 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
Membro1 
Membro2 
Membro3 
Membro1 
Membro2 
Membro3 
conta: ARRAY[1..15] OF REGISTRO; 
3.º PASSO: Definir as Variáveis 
i, op, posi, achou, num_conta : INTEGER; 
saldo_cliente, menor_saldo : REAL; 
nome_cliente :STRING[35]; 
4.º PASSO: Inicializar as variáveis e estruturas 
FOR i := 1 TO 15 DO 
BEGIN 
conta[i].num := 0; 
conta[i].nome:=''; 
conta[i].saldo := 0; 
END; 
5.º PASSO: Fazer um repeat para trabalhar com as opções do menu 
Quando OP for igual a 5, o programa é encerrado! Enquanto for diferente de 5, o usuário deve 
escolher alguma opção do menu! 
Repeat 
//comandos; 
Until(op!=5) 
6.º PASSO: Comandos que vão dentro do repeat
O valor digitado para OP deve estar dentro da faixa de valores entre 1 e 4. Se estiver fora, uma 
mensagem deve ser mostrada ao usuário, pedindo para que ele digite o valor de opção correto; 
IF((op < 1) OR (op > 5)) THEN 
WRITELN(' Opcao Invalida '); 
Criar o IF ou então um Switch/Case para trabalhar as opções de cadastro, visualização e exclusão. 
if ( op = 1 ) then 
begin 
//comandos – cadastro; 
End; 
if ( op = 2 ) then 
begin 
//comandos – visualização; 
End; 
if ( op = 3 ) then 
begin 
//comandos – exclusão; 
End; 
if ( op = 4 ) then 
begin 
//comandos – visualização; 
End; 
Implementar os códigos que vão em cada IF. 
OPÇÃO1: 
a) Solicitar que o usuário digite o número da conta a ser cadastrada 
WRITELN(' Digite o n£mero da conta a ser incluida '); 
READLN(num_conta); 
b) Verificar se a conta digitada pelo usuário já existe no vetor. O vetor pode incialmente, estar vazio 
e não ter registro algum, mas o contrário também é verdadeiro. O FOR percorre o vetor de estrutura 
comparando o número digitado pela pessoa com os números de contas cadastradas no vetor de 
estrutura. Se achar algum registro com o mesmo número digitado pelo usuário, seta o valor da 
variável ACHOU com 1. 
FOR i := 1 TO 15 DO 
BEGIN 
IF(num_conta = conta[i].num) THEN 
achou := 1; 
END;
c) Em seguida, um IF é implementado de forma a avaliar o valor armazenado em ACHOU, que é a 
nossa variável auxiliar. Se ACHOU for igual a um, então, um registro foi encontrado, portanto, este 
número de conta não pode ser cadastrado. O usuário terá que digitar outro número. 
IF achou = 1 THEN 
WRITELN(' Ja existe conta cadastrada com esse numero '); 
d) Se o ACHOU for diferente de um, então, o número da conta digitada pelo usuário pode ser usado 
para cadastrar uma nova conta. Nesse ponto temos que verificar se ainda há posições disponíveis no 
vetor para realizar o armazenamento de mais uma conta. Para isso, inicializamos o valor de POSI 
com zero (indica que não há mais posições disponíveis) e i com um. O While vai percorrer o vetor 
de estrutura, todas as quinze posições e dentro dele, uma verificação é feita usando IF. Se o número 
da conta da posição i for igual a zero, então, POSI receberá o valor de i e i receberá o valor 16. 
posi := 0; 
i := 1; 
WHILE(i <= 15) DO 
BEGIN 
IF(conta[i].num = 0) THEN 
BEGIN 
posi := i; 
i := 16; 
END; 
i := i + 1; 
END; 
Teste de Mesa (usando como base quatro posições no vetor!) 
posi i i < 4 conta[i].num = 0 posi := i i = 16 i++ 
0 1 
1 < 4 
V 
conta[1].num = 0 
10 = 0 
F 
pula pula 1+1=1 
0 2 
2 < 4 
V 
conta[2].num = 0 
5 ==0 
F 
pula pula 2+1=3 
0 3 
3 < 4 
V 
conta[3].num = 0 
0 = 0 
V 
posi = 3 i = 16 3+1 =4 
3 4 
4 < 4 
F 
pula pula pula pula 
De acordo com o teste de mesa, a posição 3 está livre, pois contém o valor zero. Lembre-se, 
o vetor de estrutura foi inicializado com zero em todas as posições. Portanto, ainda há uma posição 
livre no vetor que pode ser usada para inserir uma nova conta. 
e) Agora, podemos verificar se há ou não posições disponíveis no vetor. Se o valor da variável 
auxiliar POSI for igual a 0, isso significa que não há posições disponíveis. Uma mensagem deve ser 
emitida ao usuário. 
IF(posi = 0) THEN 
WRITELN(' Impossivel cadastrar novas contas ')
f) Caso contrário, isto é, se o valor armazenado em POSI for diferente de zero, isso significa que 
ainda temos posições disponíveis para usar no vetor. Então, os valores serão solicitados ao usuário e 
a conta será cadastrada. Devemos usar POSI como índice neste momento, para que os dados sejam 
inseridos na posição do vetor que está vazia! 
ELSE //else2 
BEGIN 
WRITE(' Digite o nome do cliente '); 
READLN(nome_cliente); 
WRITE(' Digite o saldo do cliente '); 
READLN(saldo_cliente); 
conta[posi].num := num_conta; 
conta[posi].nome := nome_cliente; 
conta[posi].saldo := saldo_cliente; 
WRITELN(' Conta cadastrada com sucesso '); 
END; //fim do else 1 
END; //fim do else 2 
OPÇÃO 2: 
a) A opção 2 deve permitir visualizar todas as contas de um determinado cliente. Primeiro, o 
usuário deve digitar o nome do cliente que ele quer visualizar. 
WRITE('Digite o nome do cliente a ser consultado '); 
READLN(nome_cliente); 
achou := 0; 
b) O For abaixo percorre o vetor de estrutura verificando se o nome digitado pelo usuário é igual a 
algum nome registrado no vetor. 
FOR i := 1 TO 15 DO 
BEGIN 
IF(conta[i].nome = nome_cliente) THEN 
BEGIN 
WRITELN(' || CONTA || SALDO ||'); 
WRITELN(' || ', conta[i].num, ' || ', conta[i].saldo:5:2, ' || '); 
achou := 1; 
END; 
END; 
Teste de Mesa para quatro posições 
achou = 0 i=1 i<4 i++ conta[i].nome = nome_cliente conta[i].num conta[i].saldo 
achou = 
1 
achou = 0 i= 1 
1<4 
V 
1+1=2 
conta[1].nome = “Elaine” 
“Edson” = “Elaine” 
F 
pula pula pula 
achou = 0 i=2 
2<4 
V 
2+1=3 
conta[2].nome = “Elaine” 
“Franciele” = “Elaine” 
F 
pula pula Pula 
achou = 0 i=3 
3<4 
V 
3+1=4 
conta[3].nome = “Elaine” 
“Elaine” = “Elaine” 
V 
conta[3].num 
20 
conta[3].saldo 
200 
achou=1 
achou = 1 i=4 
4<4 
F 
4+1=5 pula pula pula pula
c) Se a variável auxiliar ACHOU for igual a zero, então o cliente não está cadastrado. 
IF(achou = 0) THEN 
WRITELN(' Nao existe conta cadastrada para este cliente '); 
OPÇÃO 3: 
a) 
b) Agora que já temos o valor da variável ACHOU, podemos fazer as verificações. Primeiro, 
verificamos se ACHOU é igual a zero. Se sim, então nenhuma conta não foi cadastrada. 
IF achou = 0 
THEN WRITELN('Nenhuma conta foi cadastrada') 
c) 
d) Não esqueça do getchar(); 
Você pode ainda incluir uma opção para imprimir o vetor inteiro: 
if(op==4){ 
for(i=0;i<15;i++){ 
printf(" -------------------------------------------- 
------- "); 
printf(" n Numero da Conta: %d", conta[i].num); 
printf(" n Nome do Cliente: %s", conta[i].nome); 
printf(" n Saldo da Conta do Cliente: R$ %5.3f", 
conta[i].saldo); 
printf(" n n "); 
} 
printf(" ---------------------------------------------- 
----- "); 
}

Exemplo Registro

  • 1.
    EXEMPLO ESTRUTURA 1.ºPASSO: definir a estrutura Estrutura Simples Número da conta Nome do cliente Saldo TYPE REGISTRO = RECORD num : INTEGER; nome : STRING[35]; saldo : REAL; END; 2.º PASSO: Construir o Conjunto da Estrutura Um vetor de 15 posições. Cada posição tem uma estrutura dentro . 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Membro1 Membro2 Membro3 Membro1 Membro2 Membro3 conta: ARRAY[1..15] OF REGISTRO; 3.º PASSO: Definir as Variáveis i, op, posi, achou, num_conta : INTEGER; saldo_cliente, menor_saldo : REAL; nome_cliente :STRING[35]; 4.º PASSO: Inicializar as variáveis e estruturas FOR i := 1 TO 15 DO BEGIN conta[i].num := 0; conta[i].nome:=''; conta[i].saldo := 0; END; 5.º PASSO: Fazer um repeat para trabalhar com as opções do menu Quando OP for igual a 5, o programa é encerrado! Enquanto for diferente de 5, o usuário deve escolher alguma opção do menu! Repeat //comandos; Until(op!=5) 6.º PASSO: Comandos que vão dentro do repeat
  • 2.
    O valor digitadopara OP deve estar dentro da faixa de valores entre 1 e 4. Se estiver fora, uma mensagem deve ser mostrada ao usuário, pedindo para que ele digite o valor de opção correto; IF((op < 1) OR (op > 5)) THEN WRITELN(' Opcao Invalida '); Criar o IF ou então um Switch/Case para trabalhar as opções de cadastro, visualização e exclusão. if ( op = 1 ) then begin //comandos – cadastro; End; if ( op = 2 ) then begin //comandos – visualização; End; if ( op = 3 ) then begin //comandos – exclusão; End; if ( op = 4 ) then begin //comandos – visualização; End; Implementar os códigos que vão em cada IF. OPÇÃO1: a) Solicitar que o usuário digite o número da conta a ser cadastrada WRITELN(' Digite o n£mero da conta a ser incluida '); READLN(num_conta); b) Verificar se a conta digitada pelo usuário já existe no vetor. O vetor pode incialmente, estar vazio e não ter registro algum, mas o contrário também é verdadeiro. O FOR percorre o vetor de estrutura comparando o número digitado pela pessoa com os números de contas cadastradas no vetor de estrutura. Se achar algum registro com o mesmo número digitado pelo usuário, seta o valor da variável ACHOU com 1. FOR i := 1 TO 15 DO BEGIN IF(num_conta = conta[i].num) THEN achou := 1; END;
  • 3.
    c) Em seguida,um IF é implementado de forma a avaliar o valor armazenado em ACHOU, que é a nossa variável auxiliar. Se ACHOU for igual a um, então, um registro foi encontrado, portanto, este número de conta não pode ser cadastrado. O usuário terá que digitar outro número. IF achou = 1 THEN WRITELN(' Ja existe conta cadastrada com esse numero '); d) Se o ACHOU for diferente de um, então, o número da conta digitada pelo usuário pode ser usado para cadastrar uma nova conta. Nesse ponto temos que verificar se ainda há posições disponíveis no vetor para realizar o armazenamento de mais uma conta. Para isso, inicializamos o valor de POSI com zero (indica que não há mais posições disponíveis) e i com um. O While vai percorrer o vetor de estrutura, todas as quinze posições e dentro dele, uma verificação é feita usando IF. Se o número da conta da posição i for igual a zero, então, POSI receberá o valor de i e i receberá o valor 16. posi := 0; i := 1; WHILE(i <= 15) DO BEGIN IF(conta[i].num = 0) THEN BEGIN posi := i; i := 16; END; i := i + 1; END; Teste de Mesa (usando como base quatro posições no vetor!) posi i i < 4 conta[i].num = 0 posi := i i = 16 i++ 0 1 1 < 4 V conta[1].num = 0 10 = 0 F pula pula 1+1=1 0 2 2 < 4 V conta[2].num = 0 5 ==0 F pula pula 2+1=3 0 3 3 < 4 V conta[3].num = 0 0 = 0 V posi = 3 i = 16 3+1 =4 3 4 4 < 4 F pula pula pula pula De acordo com o teste de mesa, a posição 3 está livre, pois contém o valor zero. Lembre-se, o vetor de estrutura foi inicializado com zero em todas as posições. Portanto, ainda há uma posição livre no vetor que pode ser usada para inserir uma nova conta. e) Agora, podemos verificar se há ou não posições disponíveis no vetor. Se o valor da variável auxiliar POSI for igual a 0, isso significa que não há posições disponíveis. Uma mensagem deve ser emitida ao usuário. IF(posi = 0) THEN WRITELN(' Impossivel cadastrar novas contas ')
  • 4.
    f) Caso contrário,isto é, se o valor armazenado em POSI for diferente de zero, isso significa que ainda temos posições disponíveis para usar no vetor. Então, os valores serão solicitados ao usuário e a conta será cadastrada. Devemos usar POSI como índice neste momento, para que os dados sejam inseridos na posição do vetor que está vazia! ELSE //else2 BEGIN WRITE(' Digite o nome do cliente '); READLN(nome_cliente); WRITE(' Digite o saldo do cliente '); READLN(saldo_cliente); conta[posi].num := num_conta; conta[posi].nome := nome_cliente; conta[posi].saldo := saldo_cliente; WRITELN(' Conta cadastrada com sucesso '); END; //fim do else 1 END; //fim do else 2 OPÇÃO 2: a) A opção 2 deve permitir visualizar todas as contas de um determinado cliente. Primeiro, o usuário deve digitar o nome do cliente que ele quer visualizar. WRITE('Digite o nome do cliente a ser consultado '); READLN(nome_cliente); achou := 0; b) O For abaixo percorre o vetor de estrutura verificando se o nome digitado pelo usuário é igual a algum nome registrado no vetor. FOR i := 1 TO 15 DO BEGIN IF(conta[i].nome = nome_cliente) THEN BEGIN WRITELN(' || CONTA || SALDO ||'); WRITELN(' || ', conta[i].num, ' || ', conta[i].saldo:5:2, ' || '); achou := 1; END; END; Teste de Mesa para quatro posições achou = 0 i=1 i<4 i++ conta[i].nome = nome_cliente conta[i].num conta[i].saldo achou = 1 achou = 0 i= 1 1<4 V 1+1=2 conta[1].nome = “Elaine” “Edson” = “Elaine” F pula pula pula achou = 0 i=2 2<4 V 2+1=3 conta[2].nome = “Elaine” “Franciele” = “Elaine” F pula pula Pula achou = 0 i=3 3<4 V 3+1=4 conta[3].nome = “Elaine” “Elaine” = “Elaine” V conta[3].num 20 conta[3].saldo 200 achou=1 achou = 1 i=4 4<4 F 4+1=5 pula pula pula pula
  • 5.
    c) Se avariável auxiliar ACHOU for igual a zero, então o cliente não está cadastrado. IF(achou = 0) THEN WRITELN(' Nao existe conta cadastrada para este cliente '); OPÇÃO 3: a) b) Agora que já temos o valor da variável ACHOU, podemos fazer as verificações. Primeiro, verificamos se ACHOU é igual a zero. Se sim, então nenhuma conta não foi cadastrada. IF achou = 0 THEN WRITELN('Nenhuma conta foi cadastrada') c) d) Não esqueça do getchar(); Você pode ainda incluir uma opção para imprimir o vetor inteiro: if(op==4){ for(i=0;i<15;i++){ printf(" -------------------------------------------- ------- "); printf(" n Numero da Conta: %d", conta[i].num); printf(" n Nome do Cliente: %s", conta[i].nome); printf(" n Saldo da Conta do Cliente: R$ %5.3f", conta[i].saldo); printf(" n n "); } printf(" ---------------------------------------------- ----- "); }