Sign in Join
Wiki copytemporary

Record/pt: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Record/pt

OldNewLine
1+Um **registro** é um [[Type|tipo]] de dados altamente estruturado em [[Pascal]]. Registros são amplamente usados em Pascal para agrupar itens relacionados.
2+
3+Enquanto estruturas de dados simples como [[Array|vetores]] or conjuntos consistem de elementos do mesmo tipo, um registro pode consistir de elementos de diferentes tipos e pode ser muito complexo. Cada parte separada de um registro é chamada de *campo*.
4+
5+## Declaração
6+
7+### Estrutura fixa
8+
9+``` pascal
10+type
11+ TMembro = record
12+ nome, sobrenome : string;
13+ endereco: array [1..3] of string;
14+ telefone: string;
15+ nascimento: TDateTime;
16+ pagouAssinaturaAtual: boolean
17+ end;
18+```
19+
20+### Estrutura variável
21+
22+Veja a [[Record|versão em inglês deste artigo]].
23+
24+## Endereçamento
25+
26+### Campos
27+
28+Os campos são acessados colocando-se um ponto entre o nome do registro e o nome do campo. Assumindo que *a* é uma variável do tipo TMembro, pode-se escrever:
29+
30+``` pascal
31+ a.nome := 'Jorge';
32+ a.sobrenome := 'Pedreira';
33+ a.telefone := '789534';
34+ a.pagouAssinaturaAtual := true;
35+```
36+
37+Alternativamente, todos os campos ficam disponíveis usando-se a palavra-chave [[With/pt|with]]:
38+
39+``` pascal
40+with a do
41+ begin
42+ nome := 'Jorge';
43+ sobrenome := 'Pedreira';
44+ telefone := '789534';
45+ pagouAssinaturaAtual := true
46+ end;
47+```
48+
49+### Instâncias
50+
51+Um registro é tratado pelo programa como uma única entidade. Uma das consequências disso é que uma variável de um tipo de registro pode ser copiada integralmente para outra do mesmo tipo:
52+
53+``` pascal
54+var
55+ a, b: TMembro;
56+
57+(* programa principal *)
58+begin
59+ { ... atribui valores para os campos no registro "a" ... }
60+ b := a
61+ { agora "b" tem uma cópia de "a" }
62+ { não se confunda com referências: }
63+ { "a" e "b" ainda apontam para entidades diferentes do tipo TMembro }
64+end.
65+```
66+
67+---
68+*From the Free Pascal wiki, page "Record/pt", as it stood on 2022-08-10 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history