os numeros dos indices com zero(0) ou um(1). A resposta e: Tcl nao comeca. De fato, Tcl trabalha com vetores associativos. Dessa forma os indices pode ser numeros, letras, palavras ou qualquer combinacao de caracteres.Suponha que voce queira armazenar os dados de um cliente em um vetor cliente. Podemos armazenar o nome do cliente no elemento nome do vetor, enquanto o telefone seria armazenado no elemento telefone, e o e-mail no elemento e-mail:set cliente(nome) "Roberto Luiz Souza Monteiro"set cliente(telefone) "+55-71-9121-7576"set cliente(e-mail) "souzamonteiro@souzamonteiro.com"Para acessarmos o nome do cliente fariamos:puts $cliente(nome)E na verdade, e assim que trabalham os bancos de dados em Tcl: atribuindo o registro corrente a um vetor associativo. Para entender melhor como funcionam vetores associativos em bancos de dados, veja o codigo fonte da biblioteca TDO - Tcl Database Access Objects, disponivel em http://www.souzamonteiro.com/tdo.shtml.Tcl oferece as seguintes funcoes para tratamento de vetores:FuncaoDescricaoarray anymoreVerifica, e retorna 1, se ainda existirem elementos a serem pesquisados no vetor. array donesearchTermina uma busca em um vetor.arrays existVerifica, e retorna 1, se o vetor existir. array getRetorna uma lista onde cada elemento impar corresponde ao nome do elemento no vetor, e cada elemento par corresponde ao valor do elemento. array namesRetorna uma lista com os nomes de cada elemento no vetor. array nextelementRetorna o nome do proximo elemento no vetor.array setAtribui a cada elemento no vetor, o valor correspondente ao existente na lista fornecida. array sizeRetorna o numero de elementos no vetor. array starsearchRetorna um ponteiro para uma busca sequencial em um vetor.parrayExibe, na saida padrao, os nomes e os valores de todos os elementos no vetor, que correspondam ao padrao especificado. Exemplos Suponha o vetor dos dias da semana:set dia(1) "domingo"set dia(2) "segunda-feira"set dia(3) "terca-feira"set dia(4) "quarta-feira"set dia(5) "quinta-feira"set dia(6) "sexta-feira"set dia(7) "sabado"array getputs [array get dia]Retornara: 4 quarta-feira 5 quinta-feira 1 domingo 6 sexta-feira 2 segunda-feira 7 sabado 3 terca-feiraarray namesputs [array names dia]Retornara:4 5 1 6 2 7 3array sizeputs [array size dia]Retornara:7parrayputs [parray dia]Retornara:dia(1) = domingodia(2) = segunda-feiradia(3) = terca-feiradia(4) = quarta-feiradia(5) = quinta-feiradia(6) = sexta-feiradia(7) = sabadoListasListas sao provavelmente as estruturas de dados mais poderosas. De fato, Tcl oferece muitos recursos para manipulacao de listas. Mas o que sao listas? Listas sao estruturas capazes de armazenar colecoes de dados, de forma estruturada. Uma lista pode conter outras listas aninhadas e e possivel ordenar e pesquisar listas do mesmo modo como se faria em um banco de dados, e com a mesma eficiencia.Veja o seguinte exemplo: Suponha um banco de dados de clientes, onde cada registro conteria o nome, o telefone e o e- mail de cada cliente. Tcl poderia armazenar o banco de dados em uma lista, onde cada registro sera armazenado em um elemento da lista como uma segunda lista, e nesta segunda lista cada elemento corespoderia a um campo no banco de dados: { {nome telefone e-mail} {"Roberto Luiz Souza Monteiro" "+55-71-9121-7576" "souzamonteiro@souzamonteiro.com"} {"Katia Souza Monteiro" "+55-71-242-8798" "katia@souzamonteiro.com"} {"Regina C. S. de Andrade" "+55-71-386-0627" "regina@souzamonteiro.com"}} Sabendo que o primeiro elemento na lista corresponde a lista de nomes dos campos na tabela, cada elemento seguinte, corresponde a uma linha, ou