- Fundamentos de ProgramaçãoEstruturas de DadosEstrutura de Dados: Tabela Hash
- Fundamentos de ProgramaçãoHashingTratamento de Colisões em Hashing
- LinguagensDelphi
- LinguagensPascal
Código para a questão
1 type No = record
2 chave:string;
3 info:integer;
4 end;
5
6 const M = 10;
7
8
9 private
10 a: array[1.. M] of No;
11 function hash(texto:string): integer;
12 public
13 constructor Create;
14
15 end;
16
17
18 var i:integer;
19 begin
20 for i := 1 to M do
21 begin
22 a[i].chave := ' ';
23 a[i].info := - 1;
24 end;
25 end;
26
27
28 var valor, N, i: integer;
29 begin
30 valor := 0;
31
32 valor := (64*valor + Ord(texto[i])) mod M;
33 hash:= valor;
34 end;
35
36 procedure ListaHash.inserir(texto:string; info:integer);
37 var x:integer;
38 begin
39 x := hash(texto);
40
41 x := (x+1) mod M;
42 a[x].chave := texto;
43 a[x].info := info;
44 end;
Considerando o código Pascal apresentado, que foi desenvolvido utilizando-se o ambiente Delphi, assinale a opção que apresenta trecho de código que, ao ser inserido adequadamente nas linhas 27, 31 e 40, mantém a correção sintática e semântica original.