Dúvida, Isso é um array ou Isso é um vetor? [RESOLVIDO]

1. Dúvida, Isso é um array ou Isso é um vetor? [RESOLVIDO]

Apprentice X
ApprenticeX

(usa FreeBSD)

Enviado em 08/01/2023 - 00:02h

Boa Noite a todos!
Qual a forma correta de dizer: Isso é um array ou Isso é um vetor?

Entendi que um vetor é um array de uma única dimensão (Unidimensional)!
Então, sempre que eu mostrar um array unidimensional, o termo correto é chamá-lo de vetor?
char Text[] = "Viva o Linux";
int Numbers[] = {0, 1, 2, 3};

Entendi que Matriz é um array de duas ou mais dimensões (Bidimensional).
Então se me refiro a uma Matriz, uso o termo array? Um array Bidimensional é uma matriz!
MAS, isso também não seria um vetor de vetores?
É correto eu dizer que uma Matriz é um vetor de vetores? Ou isso está errado?
Tentando entender, até porque também em c++ é muito usado vector de vectores!
char Matriz[2][5];
int Matriz [2][5];




  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 14/01/2023 - 03:17h

Essa discussão é impregnada de muita opinião e de gosto pessoal, além de atravessar barreiras de idiomas.

Dicionaristicamente falando, a palavra inglesa array pode ser traduzida para o Português como arranjo ou disposição. Por si só, a mera palavra (ou sua tradução) não quer dizer muita coisa com relação à implementação num computador, em geral, ou numa linguagem de programação em particular, tal como o C ou o C++.

Já a palavra vetor (que em Inglês se diz vector) tem um sentido matemático para além da simples disposição de elementos. Eu acredito que, sendo muitos dos pioneiros da computação digital engenheiros, matemáticos e físicos, eu imagino que uma parte deles não desejasse carregar esse sentido matemático para uma coleção de dados genérica, que não necessariamente teria relação nenhuma com espaços vetoriais em R², R³ ou R^n.

Por outro lado, muitos usuários de sistemas de computação os usavam justamente para fazer cálculos matemáticos com vetores e matrizes, e isso provavelmente ajudou a popularizar esses termos, a ponto de extrapolar os domínios tipicamente associados à computação científica voltada para Matemática, Física e Engenharia.

Nesses domínios específicos, contudo, as ferramentas associadas, quer em nível de bibliotecas, de linguagem de programação ou mesmo de hardware, normalmente tratam vetores de uma forma particular, que não necessariamente é aplicável a uma coleção genérica de elementos. Por exemplo, em pacotes de Álgebra Linear, a representação interna de vetores e matrizes costuma ser bem diferente de uma mera disposição sequencial na memória, em virtude de que a imensa maioria das aplicações trabalha com dados esparsos (muitos elementos valendo zero), de modo que um “vetor” ou, especialmente, uma “matriz” para tais ferramentas é uma estrutura de dados pensada para economizar o máximo possível de memória, ao mesmo tempo em que procura fazê-lo sem prejudicar muito o desempenho.


Na documentação do C e do C++, o termo usado para definir agregados de dados de um mesmo tipo é array, até porque o padrão é escrito em Inglês. Eu acho uma escolha acertada, em função de vetor (vector) ter a bagagem matemática associada, mais o comportamento específico associado historicamente ao armazenamento de dados esparsos.

Nós, brasileiros, geralmente não falamos nativamente Inglês, e muitos preferem não usar termos em Inglês sempre que é possível usar um termo em Português. Não é o meu caso, mas muitos desses que gostam de traduzir tudo acabam usando vetor como uma tradução de array, ignorando o aspecto matemático que o termo carrega, e muito menos aspectos de representação e armazenamento de dados esparsos que alguma aplicações implicam a esse termo.

Na biblioteca padrão de templates do C++, o nome escolhido para o container de dados de um mesmo tipo e armazenamento sequencial, porém com alocação, realocação e liberação automáticas em tempo de execução foi na linha de chamar de vetor (std::vector). Eu acredito que essa escolha foi deliberada, porque, apesar de também não ser voltado para o mesmo uso matemático ou ter características usadas em computação científica, tal tipo tem características bem distintas de arrays nativos, incluindo a possibilidade de mudar a quantidade de elementos em tempo de execução e a não-conversibilidade automática em ponteiro para o primeiro elemento. Assim sendo, do meu ponto de vista pessoal, apesar de não gostar tanto do nome escolhido, entendo que é positivo ter um nome que marque a diferença de funcionalidade.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)

3. Re: Dúvida, Isso é um array ou Isso é um vetor? [RESOLVIDO]

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 08/01/2023 - 00:02h

Sim, é correto dizer que um vetor é um array de uma única dimensão e um array é um vetor de vetores. Na verdade, um vetor geralmente é usado como referência para um array de qualquer dimensão, então embora seja possível dizer que uma matriz é um vetor de vetores, também é correto usar a palavra 'array' para referir-se a matrizes. No exemplo acima, onde temos
char Matriz[2][5]; int Matriz [2][5]; 
a variável Matriz pode ser descrita como um array bidimensional, ou como um vetor de vetores.


4. Re: Dúvida, Isso é um array ou Isso é um vetor?

Daniel Goodall
FrankD1

(usa Kali)

Enviado em 09/01/2023 - 07:36h

We can think of a vector as a list that has one dimension. It is a row of data. An array is a list that is arranged in multiple dimensions. A two-dimensional array is a vector of vectors that are all of the same length.


https://www.greenskyonline.me/







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts