O que significa quando os dados são escalares?

65

Eu não sei exatamente o que significa escalar, mas estou tentando ver se estou pensando corretamente. O escalar está relacionado à arbitrariedade, em que o tipo de dado pode ser de qualquer tipo ou um sistema não é capaz de saber com antecedência quais são os dados.

    
por Ryan M 06.05.2014 / 01:37
fonte

6 respostas

95

O termo "escalar" vem da álgebra linear , onde é usado para diferenciar um único número de um vetor ou matriz. O significado na computação é semelhante. Ele distingue um único valor como um inteiro ou float de uma estrutura de dados como uma matriz. Essa distinção é muito proeminente em Perl, onde o $ sigil (que se assemelha a um 's') é usado para denotar uma variável escalar e um @ sigil (que se assemelha a um 'a') denota uma matriz. Não tem nada a ver com o tipo do elemento em si. Pode ser um número, caractere, string ou objeto. O que importa ser chamado de escalar é que existe um deles.

    
por 06.05.2014 / 04:54
fonte
26

Um escalar é simplesmente uma variável que contém um valor individual . Para os propósitos desta discussão, vamos supor que um escalar seja um único número, em vez de uma coleção de números.

Por exemplo, o resultado de uma consulta SQL que retorna um número em vez de uma tupla, como faz o Método ExecuteScalar () no SQLCommand class , que retorna o valor da primeira coluna da primeira linha no conjunto de resultados retornado pela consulta. É normalmente usado para recuperar um valor agregado, como COUNT ou AVERAGE, o ID de um novo registro ou o número de registros processados por uma consulta.

    
por 06.05.2014 / 01:57
fonte
17

Um mnemônico suplementar à grande resposta de Karl Bielefeldt:

Uma maneira simples de pensar sobre isso é "isso pode ser em escala?"

Um inteiro pode estar em uma escala.

Um número inteiro de tamanho fixo pode estar em uma escala, por exemplo de -2147483648 a 2147483647.

Um número real pode estar em uma escala.

Um caractere, booleano ou decimal de precisão fixa pode estar em uma escala. Até mesmo uma string pode estar em uma escala (usamos isso na classificação).

Por isso, "escalar".

Uma linha do banco de dados não pode estar em uma escala. Um número complexo não pode estar em uma escala. Um objeto que representa uma mensagem de email não pode estar em uma escala. Uma matriz, vetor ou matriz não pode estar em uma escala.

    
por 06.05.2014 / 12:37
fonte
9

Como é o caso de muitos termos na computação; a origem da palavra refere-se a mais propriedades físicas. O termo escalar é relativamente antigo na computação. Sua definição é menos rigorosa nos dias de hoje. Quando você armazena dados na memória do computador, esses dados podem caber em um endereço (1 byte *) ou não. Quando isso acontecia, era chamado de escalar, quando não era chamado de composto. Principalmente porque os processadores só podiam manipular um endereço / pedaço de dados (= 1 byte) de cada vez. Como afirmado pelo @Karl Bielefeldt; o termo foi realmente tirado da álgebra.

Nós chamamos uma string de string porque é uma string de caracteres. Um char é / foi um escalar, enquanto uma string é / foi um composto. Armazenar 1 pedaço de dados (um dado) em vários endereços borrou a linha um pouco. Pense assim: quando uma CPU pode processar um dado em uma instrução, ela é escalar.

Hoje em dia, um escalar é qualquer valor singular, e o que é um valor singular pode ser definido de maneira diferente entre diferentes idiomas. integers, floats, chars, strings, booleans e enums são - para os escalares mais considerados atualmente. Matrizes, listas, árvores, objetos, etc. não são.

(* eu digo 1 byte para manter as coisas claras, mas tecnicamente eu estou falando sobre os dias em que 6 bits eram mais comumente usados em cartões perfurados, por exemplo, e depois em fitas magnéticas)

Disclaimer: Eu não consigo encontrar nenhuma referência sobre isso na internet, eu tenho a informação na escola e de livros antigos, entre os quais (eu acho): Tabelas Matemáticas e outras ajudas à computação de 1944. Dito isto, minha memória não é o que costumava ser, então, se alguém puder alterar / confirmar ou negar minha resposta, seria bom.

    
por 20.05.2016 / 13:38
fonte
9

Um escalar é um valor numérico único simples (como em 1, 2/3, 3.14, etc.), geralmente inteiro, ponto fixo ou flutuante (simples ou duplo), ao contrário de uma matriz, estrutura, objeto, vetor complexo (real mais imaginário ou magnitude mais componentes de ângulo), vetor de dimensão superior ou matriz (etc.) que contém mais de um valor numérico.

No entanto, observe que um tipo de dados grande e complexo do tipo que também pode ser aplainado e representado em bytes de 8 bits da memória do computador também pode ser representado como um único número escalar binário muito longo / grande. Turing usou essa técnica para representar programas de computador inteiros como apenas um número escalar.

    
por 06.05.2014 / 03:11
fonte
1

The word scalar derives from the Latin word scalaris, an adjectival form of scala (Latin for "ladder"). The English word "scale" also comes from scala. Source

Um escalar é uma variável que contém um valor individual.

Por exemplo:

Variável escalar : Digamos que você esteja tentando representar os nomes de vários alunos como um conjunto de variáveis. Cada uma das variáveis individuais é uma variável escalar como segue

NAME01="Zara"
NAME02="Qadir"
NAME03="Mahnaz"
NAME04="Ayan"
NAME05="Daisy"

Funções escalares : as funções escalares SQL retornam um único valor, com base no valor de entrada.

UCASE() - Converts a field to upper case
LCASE() - Converts a field to lower case
    
por 20.12.2015 / 03:41
fonte