# data[].attributes.body
Linguagem de Programação é uma linguagem escrita e formal que especifica um conjunto de instruções e regras usadas para gerar programas (software).

# data[].attributes.body
Quando se fala especificamente de programa informático, está-se a fazer referência a um software. Trata-se de aplicações e recursos que permitem desenvolver diferentes tarefas num computador, um telefone ou outros equipamentos tecnológicos.

# data[].attributes.body
Numa linguagem de baixo nível, o programador vai sofrer, pois a linguagem é muito mais voltada ao dispositivo (processador, microcontrolador, etc.). Normalmente envolve números e letras que nada mais são que instruções diretas ao dispositivo.

# data[].attributes.body
Quando falamos em níveis, podemos dizer que uma linguagem de alto nível está muito mais próxima do programador do que do dispositivo, ou seja, é uma linguagem muito mais intuitiva. Essa é uma linguagem bem mais amigável ao programador devido à sua facilidade de entendimento. Um exemplo de linguagem de alto nível é a linguagem SDL (Specification Design Language).

# data[].attributes.body
O software interpretador é um programa de computador que executa instruções escritas em uma linguagem de programação.  Um interpretador geralmente usa uma das seguintes estratégias para a execução do programa: executar o código fonte diretamente ou traduzir o código fonte em alguma eficiente representação intermediária e depois executar este código.

# data[].attributes.body
Primeira Geração- Linguagem de Máquina
Segunda Geração- Linguagens de Montagem
Terceira Geração- Linguagens Procedurais
Quarta Geração- Linguagens aplicativas
Quinta Geração- Linguagens voltadas á inteligência artificial com linguagens lógicas (Prolog) e as linguagens funcionais (Lisp)
Sexta Geração- Redes Neurais

# data[].attributes.body
Análise de sistemas é a atividade que tem como finalidade a realização de estudos de processos a fim de encontrar o melhor caminho racional para que a informação possa ser processada. Os seus comportamentos e aplicações são desenvolvidos a partir de soluções que serão padronizadas e transcritas da forma que o computador possa executar.

# data[].attributes.body
Interpretar e compreender um problema e encontrar uma maneira de otimizá-lo.

# data[].attributes.body
Uma entrada de dados permite que um programa possa receber dados vindo de dispositivos de entrada (pex. Teclado, disco).

# data[].attributes.body
São todos os dispositivos de saída conectados externamente à placa-mãe do computador

# data[].attributes.body
Relacionar sistemas, sub-sistemas e seus componentes

# data[].attributes.body
Para formulamos um Algoritmo, ele deve ser corretamente definido, estar ausente de ambiguidades, deve ser eficaz e eficiente.

# data[].attributes.body
A etapa de codificação traduz a representação do projeto detalhado em termos de uma linguagem de programação. Normalmente são utilizadas linguagens de alto nível, que podem então ser automaticamente traduzidas para a linguagem de máquina pelo processo de compilação.

# data[].attributes.body
Nem sempre é possível solicitar uma retransmissão.
Um método ineficiente mas muito utilizado par a detetar erros é a Paridade.
Um método mais eficiente é o uso de um código polinomial ou CRC (Cyclic Redundancy Check).

# data[].attributes.body
Os testes devem estar presentes em todo o processo de desenvolvimento de software, e geralmente são divididos nas seguintes fases:

Teste da caixa branca
Teste da caixa preta
Teste da caixa cinza
Teste de regressão
Teste de unidade
Teste de integração
Teste de carga
Teste de usabilidade
Teste de stress

# data[].attributes.body
A Otimização em engenharia de software é uma recente área de pesquisa que trata da aplicação de técnicas de otimização matemática para a resolução de problemas complexos da engenharia de software.

# data[].attributes.body
Um algoritmo é uma sequência finita de ações executáveis que visam obter uma solução para um determinado tipo de problema.

# data[].attributes.body
Descrição Narrativa
Fluxograma Convencional
Pseudocódigo, também conhecido como linguagem Estruturada ou Portugol

# data[].attributes.body
Um algoritmo deve ter 5 características fundamentais:
• Finitude: um algoritmo deve sempre terminar após um número finito de passos. • Definição: cada passo de um algoritmo deve ser precisamente definido. As ações devem ser definidas rigorosamente e sem ambiguidades.
• Entradas: um algoritmo deve ter zero ou mais entradas, isto é quantidades que lhe são fornecidas antes do algoritmo iniciar.
• Saídas: um algoritmo deve ter uma ou mais saídas, isto é quantidades que tem uma relação específica com as entradas.
• Eficiência: Um algoritmo deve ser eficiente. Isto significa que todas as operações devem ser suficientemente básicas de modo que possam ser em princípio executadas com precisão em um tempo finito por um ser humano usando papel e lápis.
Fluxograma (ou Diagrama de Fluxo) Este é um representação gráfica que emprega formas geométricas padronizadas para indicar as diversas ações e decisões que devem ser executadas para resolver o problema.

# data[].attributes.body
O formato gral de um Algoritmo é:
-Área de Identificação
-Área De Definições de Variáveis
-Áreas de Procedimentos e Funções
-Área do Programa Principal
Em termos de notação temos:
-Notação Assintótica
-Notação Big-o (Grande-Theta)
-Notação Big- (Grande Omega)

# data[].attributes.body
Refere-se às regras que regem a composição dos textos em uma linguagem formal que constitui as fórmulas bem formuladas de um sistema lógico.

# data[].attributes.body
abordagem sistemática da construção de SW com os principios:
1- a separação das definições de dados e de programa
2-aconcepção descendente ou top-down
3-refinamento progressivo

# data[].attributes.body
Prevê o significado do texto e questiona sobre o texto com base no seu conhecimento. Aprende-se a ler, lendo. É uma leitura visual, na qual se reconhece as palavras sem passar pela correspondência grafo/fonológica. Estes modelos dão origem aos métodos Analíticos Globais. Contexto / Palavra / Sílaba /Letra

# data[].attributes.body
Conforme a complexidade de problemas vai aumentando, mais e mais difícil fica resolvê-los. Para podermos "domar" a complexidade de determinados problemas e resolvê-los a contento, técnicas específicas devem ser aplicadas. Ela consiste em dividir problemas em sub problemas menores e mais tratáveis e, a partir das soluções obtidas com a resolução dos sub problemas, constrói-se a solução do problema como um todo.

# data[].attributes.body
O armazenamento definido por software (SDS) é uma arquitetura de armazenamento que divide o software de armazenamento de seu hardware. Ao contrário dos sistemas tradicionais de armazenamento de dados em rede (NAS) ou de rede de área de armazenamento (SAN), o SDS normalmente é desenvolvido para funcionar em qualquer sistema x86 ou padrão do setor, eliminando a dependência entre software e hardware proprietário.

# data[].attributes.body
O Visual Basic, ao contrário de outras linguagens (por exemplo, o Pascal), não obriga à declaração prévia e explicita das variáveis usadas. No entanto, essa declaração pode ser importante e ter implicações na execução do programa, para além de ser sempre boa prática de programação.

# data[].attributes.body
As constantes são usadas em expressões para representar vários tipos de valores. Na linguagem de programação C existem regras rígidas para determinar como devem ser escritos estes valores.

# data[].attributes.body
O Pascal permite a declaração de constantes no programação.
A declaração deve ser feita dentro da secção de constantes do programa que tem inicio com a palavra reservada const no inicio do programa.

# data[].attributes.body
Os seus valores são de determinado tipo e estão armazenados num ficheiro (memória secundária).

# data[].attributes.body
Informação que pertence ao conjuto de números inteiros. Números dos conjutos inteiros; positivos; negativos e nulos.

# data[].attributes.body
Informação que pertence ao conjuto de números reais

# data[].attributes.body
O Char tipo de dados é um caractere Unicode único de dois bytes (16 bits). Se uma variável sempre armazenar exatamente um caractere, declare-a como Char .

# data[].attributes.body
Um booleano é, então, um tipo de dados simples que indica ao computador a veracidade de uma condição ou de uma proposição.

# data[].attributes.body
String para mover os dados de strings da origem para o destino e Text para mover os dados text da origem para o destino. Em geral, os tipos de dados string menores, como Char e Varchar, são exibidos como String em transformações, enquanto os tipos de dados text maiores, como Text, Long e Long Varchar, são exibidos como Text.

# data[].attributes.body
É uma combinação de valores, variáveis, operadores, e chamadas de funções que são interpretadas (avaliadas) de acordo com as regras de precedência e de associatividade particulares a uma determinada linguagem de programação, que calcula e, em seguida, produz (retorna) um valor.

# data[].attributes.body
O operador de atribuição (¬) permite armazenar um valor dentro de uma variável. Esse valor pode ser dado diretamente ou ser o resultado da avaliação de uma expressão.
Os operadores aritméticos tomam operandos numéricos (dos tipos inteiro ou real) e produzem resultados também numéricos.
Os operadores relacionais tomam operandos numéricos (dos tipos inteiro ou real) e produzem resultados booleanos (VERDADEIRO ou FALSO).
Os operadores lógicos tomam operandos booleanos e produzem resultados booleanos.

# data[].attributes.body
As expressões relacionais são utilizados para realizar comparações entre dois valores (constantes; variáveis ou expressões arítméticas) de mesmo tipo arítmético.
O resultado obtido de uma expressão relacional é sempre um valor lógico.

# data[].attributes.body
Uma função pode necessitar de alguns dados para que possa realizar alguma acção baseada neles. Esses dados são chamados parâmetros da função. Além disso, a função pode retornar um certo valor, que é chamado valor de retorno. Os parâmetros (e seus tipos) devem ser especificados explicitamente, assim como o tipo do valor de retorno.

# data[].attributes.body
Utilizamos os operadores relacionais para realizar comparações entre dois valores do mesmo tipo primitivo. Esses valores são representados por constantes, variáveis ou expressões aritméticas.

# data[].attributes.body
O bloco de código SENÃO é opcional. É comum encontrar instruções de decisão apenas com SE-ENTÃO sem o bloco SENÃO.

# data[].attributes.body
A estrutura ESCOLHA-CASO (em inglês SWITCH-CASE), é uma solução elegante quanto se tem várias estruturas de decisão (SE-ENTÃO-SENÃO) aninhadas. Isto é, quando outras verificações são feitas caso a anterior tenha falhado (ou seja, o fluxo do algoritmo entrou no bloco SENÃO). A proposta da estrutura ESCOLHA-CASO é permitir ir direto no bloco de código desejado, dependendo do valor de uma variável de verificação.

# data[].attributes.body
O seu funcionamento é tão simples quanto a estrutura de decisão SE-ENTÃO. A diferença é que os passos dentro deste bloco, são repetidos enquanto a expressão booleana (VERDADEIRO ou FALSO) resultar VERDADEIRO.

# data[].attributes.body
Podemos implementar esse LOOP com qualquer estrutura de repetição, mas para isso é necessário utilizar um contador, uma variável que será utilizada para contar quantas iterações foram executadas até o momento A estrutura de repetição PARA, implementa um contador implicitamente.

# data[].attributes.body
Um array é uma sequência não ordenada de dados. Os elementos residem em um lugar separado na memória, e seu acesso é feito por meio de um índice na primeira posição de cada elemento.

# data[].attributes.body
Uma função pode necessitar de alguns dados para que possa realizar alguma ação baseada neles. Esses dados são chamados parâmetros da função. Além disso, a função pode retornar um certo valor, que é chamado valor de retorno. Os parâmetros (e seus tipos) devem ser especificados explicitamente, assim como o tipo do valor de retorno.