Instruções primitivas são os comandos básicos que efetuam tarefas essenciais para a operação dos computadores, como entrada e saída de dados.
Como o próprio nome diz, instruções primitivas são os comandos básicos que efetuam tarefas essenciais para a operação dos computadores, como entrada e saída de dados, (comunicação com o usuário e com dispositivos periféricos), e movimentação dos mesmos na memória.
Alguns conceitos e termos que serão utilizados:
Dispositivo de entrada: é o meio pelo qual as informações, (mais especificamente os dados), são transferidos pelo usuário ao computador. Os exemplos mais comuns são: o teclado, o mouse, joystick, scanner, microfone e mesa digitalizadora.
Dispositivo de saída: é o meio pelo qual as informações (geralmente os resultados da execução de um programa) são transferidos pelo computador ao usuário. Os exemplos mais comuns são: o monitor de vídeo, impressora, caixas de som e fones de ouvido.
Sintaxe: é a forma como os comandos devem ser escritos, a fim de que possam ser entendidos pelo tradutor de programas. A violação das regras sintáticas é considerada um erro sujeito à pena do não reconhecimento por parte do tradutor.
Semântica: é o significado, ou seja, o conjunto de ações que serão exercidas pelo computador durante a execução do referido comando.
Daqui em diante, todos os comandos novos serão apresentados por meio de sua sintaxe e sua semântica, isto é, a forma como devem ser escritos e a(s) ação(ões) que executam.
Aqui começa a parte prática do curso com apresentação de algoritmos que serão executados no Visualg.
O programa pode ser baixado para PC, de forma gratuita no seguinte link: Link1
Link alternativo: Link2
Link alternativo: Link3
VisuAlg 2.0 (Recomendado): Link4
Comandos de Atribuição
O comando de atribuição ou simplesmente atribuição, é a principal maneira de armazenar uma informação em uma variável. Sua sintaxe é:
nome_da_variável := expressão
Exemplos:
Nome := “Pedro”
preco := 15.85
quant := 5
total := preco * quant
imposto := total * 17 / 100
O modo de funcionamento (semântica) de uma atribuição consiste:
✓ Na avaliação da expressão
✓ No armazenamento do valor resultante na variável que aparece à esquerda do comando.
A seguir, temos um exemplo de um algoritmo utilizando o comando de atribuição:
Algoritmo "comandodeatribuicao"
Var
preco_unit, preco_tot : real
quant : inteiro
Inicio
preco_unit := 5.5
quant := 10
preco_tot := preco_unit * quant
Fimalgoritmo
Teste o algoritmo apresentado no VisuAlg
Observe os resultados na área de variáveis de memória:
Ao executar o algoritmo acima no VisuAlg, podemos observar, que a variável preco_unit, passou a ter o valor de 5.5, a variável quant, assumiu o valor de 10 e após o processamento a variável preco_tot passou a armazenar o valor de 55.0 .
Observe no seguinte GIF as variáveis na área das variáveis de memória, sendo atualizadas durante a execução do algoritmo.
Assista o seguinte vídeo até o minuto 4:18, observe que no video é utiliziado o simbolo <- para atribuição, ele funciona da mesma forma que o simbolo := para atribuição de valores às variáveis.
Os comandos de saída de dados são os meios pelos quais, informações contidas na memória dos computadores são colocadas nos dispositivos de saída, para que os usuários possam apreciá-las.
Há quatro sintaxes possíveis para esta instrução:
Escreva variável
Exemplo: Escreva X
Escreva lista_de_variáveis
Exemplo: Escreva nome, endereco, cidade
Escreva literal
Exemplo: Escreva “Algoritmo é o máximo!”
Escreva literal, variável, ... ,literal, variável
Exemplo: Escreva “Meu nome é:”, nome, “e meu endereço é:”, endereço
Escreval é uma alternariva ao escreva, o “l” vem de linha, ao utilizar o escreval o que será escrito na tela, pula uma linha.
Observe e execute o seguinte algoritmo no VisuAlg.
Algoritmo "comandodesaida"
Var
nome, endereco, cidade: caractere
Inicio
escreva ("Algoritmo é o máximo!")
nome := "Pedro"
escreval (nome)
endereco := "Rua lá de casa 567"
cidade := "Brasopolis"
escreval (nome,endereco,cidade)
escreval ("meu nome é: ",nome," meu endereco é: ",endereco," na cidade de: ",cidade)
Fimalgoritmo
Ao executá-lo, temos a seguinte saída na tela:
Observe, que por usar escreva, o nome Pedro ficou na frente do texto literal, “Algoritmo é o máximo!”, ao usar escreval, as saídas ficaram uma abaixo da outra em linhas diferentes.
Uma lista_de_variáveis é um conjunto de nomes de variáveis separados por vírgulas. Como em: escreval (nome,endereco,cidade)
Um literal é simplesmente um dado do tipo literal, (string ou cadeia de caracteres), delimitado por aspas. Como em: escreva ("Algoritmo é o máximo!").
Há ainda, a possibilidade de se misturar nomes de variáveis com literais na lista de um mesmo comando. O efeito obtido é bastante útil e interessante: a lista é lida da esquerda para a direita e cada elemento da mesma é tratado separadamente; se um nome de variável for encontrado, então a informação da mesma é colocada no dispositivo de saída; no caso de um literal, o mesmo é escrito diretamente no dispositivo de saída.
Como em: escreval ("meu nome é: ",nome," meu endereco é: ",endereco," na cidade de: ",cidade)
Daqui por diante, ESCREVA ou ESCREVAL será considerada uma palavra reservada e não mais poderá ser utilizada como nome de variável, de modo que toda a vez que for encontrada em algoritmos, será identificada como um comando de saída de dados.
A semântica da instrução primitiva de saída de dados é muito simples: os argumentos do comando são enviados para o dispositivo de saída. No caso de uma lista de variáveis, o conteúdo de cada uma delas é pesquisado na memória e enviado para o dispositivo de saída. No caso de argumentos do tipo literal ou string, estes são enviados diretamente ao referido dispositivo.
Observe e execute no VisuAlg o algoritmo de atribuição, agora com um comando de saída de dados:
Algoritmo "entradasaida"
Var
preco_unit, preco_tot : real
quant : inteiro
inicio
preco_unit := 5.5
quant := 10
preco_tot := preco_unit * quant
escreval (preco_tot)
escreval ("O preço total a pagar é de: ",preco_tot)
fimalgoritmo
Ao executá-lo, temos a seguinte saída na tela:
Observe, que de acordo com as instruções do algoritmo, primeiro é impresso na tela o conteúdo da variável preco_tot e na linha de baixo o literal "O preço total a pagar é de: " e então o valor contido na variável preco_tot.
Assista o seguinte vídeo a partir do minuto 4:17, observe, que a partir deste ponto, são utilizados os comandos de saida, (ESCREVA), e também o de Entrada de dados, (LEIA), que será explicado na próxima aula.
Os comandos de entrada de dados são os meios pelos quais, as informações dos usuários são transferidas para a memória dos computadores, para que possam ser usadas nos programas.
Há duas sintaxes possíveis para esta instrução:
Leia variável
Exemplo: Leia X
Leia lista_de_variáveis
Exemplo: Leia nome, endereco, cidade
Da mesma forma que Escreva, daqui por diante, Leia será tratada como uma palavra reservada e não mais poderá ser usada como nome variável em algoritmos. A lista_de_variáveis é um conjunto de um ou mais nomes de variáveis separados por vírgulas.
A semântica da instrução de entrada, (ou leitura), de dados é, de certa forma, inversa à da instrução de escrita: os dados são fornecidos ao computador por meio de um dispositivo de entrada e armazenados nas posições de memória das variáveis, cujos nomes aparecem na lista_de_variáveis.
A seguir, temos um exemplo de um algoritmo, utilizando o comando de entrada de dados:
Execute o seguinte algoritmo com o comando de entrada de dados, leia, no VisuAlg:
Algoritmo "entradasaidaComLeitura"
Var
preco_unit, preco_tot : real
quant : inteiro
inicio
escreval ("Por favor entre com o preço unitário:")
leia (preco_unit)
escreval ("Por favor entre com a quantidade:")
leia (quant)
preco_tot := preco_unit * quant
escreval ("O preço total a pagar é de: ",preco_tot)
fimalgoritmo
Observe, que este algoritmo é muito similar ao anterior, a diferença é que ao invés de serem atribuídos os valores para preco_quant e para quant, foi perguntado ao usuário os valores que devem ser atribuídos para essas variáveis. Essas variáveis recebem estes valores digitados pelo usuário através do comando, leia.
Observe um exemplo de execução deste algoritmo:
Ao executar o algoritmo uma tela aparece com o primeiro escreval definido.
A tela esperará pelo dado a ser inserido na variável preco_unit, observe, que caso seja digitado um dado com o tipo diferente da variável, que no caso é um número real, o programa apresentará um erro, o dado não será armazenado corretamente na variável.
Caso seja digitado um valor real, após apertar a tecla enter, ele mostrará na tela o segundo escreval:
Após digitado um valor inteiro para a quantidade e pressionada a tecla enter, o algoritmo continuará o seu fluxo e apresentará o resultado:
Observe no Gif a seguir, o programa parando durante o comando de, leia, e esperando a entrada dos dados por parte do usuário:
Boas práticas de programação:
Uma preocupação constante de um bom programador deve ser a de conceber um programa “amigo do usuário”. Esta preocupação é traduzida no planejamento de uma interface com o usuário, (meio pelo qual um programa e o usuário “conversam”), bastante amigável. Em termos práticos, isto se resume à aplicação de duas regras básicas:
• Toda vez que um programa estiver esperando que o usuário forneça a ele um determinado dado, (operação de leitura), ele deve antes enviar uma mensagem dizendo ao usuário o que ele deve digitar, por meio de uma instrução de saída de dados;
Por exemplo, no algoritmo exemplo, o programa escreve na tela, "por favor entre com o preço unitário", antes do comando de entrada, leia, para que o usuário saiba o que deve ser digitado.
• Antes de enviar qualquer resultado ao usuário, um programa deve escrever uma mensagem explicando o significado do mesmo.
Por exemplo, no algoritmo exemplo, o programa faz a saida dos dados através do comando de, escreva ("o preço total a pagar é de"), para que usuário saiba o que significa aquele número sendo escrito na tela.
Estas medidas tornam o diálogo entre o usuário e o programa muito mais fácil.
Entrada, Processamento e Saída:
Para se criar um programa que seja executável dentro de um computador, você deverá ter em mente três pontos de trabalho: a entrada de dados, o seu processamento e a saída dos mesmos. Sendo assim, todo programa estará trabalhando com estes três conceitos. Se os dados entrarem de forma errada, serão consequentemente processados de forma errada e resultarão em respostas erradas.
Funções Matemáticas VisuAlg:
Toda linguagem de programação já vem com um grupo de funções que facilitam a vida do programador. Estas funções realizam os cálculos aritméticos, trigonométricos e de manipulação e conversão de dados mais comuns; assim, o programador não tem que reinventar a roda a cada programa que faz. A este grupo de funções, dá-se às vezes, o nome de biblioteca.
Como usar uma função? Em termos simples, uma função pode ser usada em qualquer lugar, onde uma variável também pode, a não ser, naturalmente, no “lado esquerdo da seta ou do :=” em um comando de atribuição - uma função produz, (diz-se no linguajar dos programadores), retorna um valor, e não o recebe.
Funções numéricas, algébricas e trigonométricas:
Abs(expressão) - Retorna o valor absoluto de uma expressão do tipo inteiro ou real. Equivale a | expressão | na álgebra.
ArcCos(expressão) - Retorna o ângulo, (em radianos), cujo cosseno é representado por expressão.
ArcSen(expressão) - Retorna o ângulo, (em radianos), cujo seno é representado por expressão.
ArcTan(expressão) - Retorna o ângulo, (em radianos), cuja tangente é representada por expressão.
Cos(expressão) - Retorna o cosseno do ângulo, (em radianos), representado por expressão.
CoTan(expressão) - Retorna a co-tangente do ângulo, (em radianos), representado por expressão.
Exp( base, expoente) - Retorna o valor de base elevado a expoente, sendo ambos expressões do tipo real.
GraupRad(expressão) - Retorna o valor em radianos, correspondente ao valor em graus representado por expressão.
Int(expressão) - Retorna a parte inteira do valor representado por expressão.
Log(expressão) - Retorna o logaritmo na base 10 do valor representado por expressão.
LogN(expressão) - Retorna o logaritmo neperiano (base e) do valor representado por expressão.
Pi - Retorna o valor 3.141592.
Quad(expressão) - Retorna quadrado do valor representado por expressão.
RadpGrau(expressão) - Retorna o valor em graus correspondente ao valor em radianos, representado por expressão.
RaizQ(expressão) - Retorna a raiz quadrada do valor representado por expressão.
Rand - Retorna um número real gerado aleatoriamente, maior ou igual a zero e menor que um.
RandI(limite) - Retorna um número inteiro gerado aleatoriamente, maior ou igual a zero e menor que limite.
Sen(expressão) - Retorna o seno do ângulo, (em radianos), representado por expressão.
Tan(expressão) - Retorna a tangente do ângulo, (em radianos), representado por expressão.
Os valores que estão entre parênteses, representados pelas palavras como expressão, base e expoente, são os parâmetros, ou como dizem alguns autores, os argumentos que passamos para a função, para que realize seus cálculos e retorne um outro, que usaremos no programa.
Algumas funções, como Pi e Rand, não precisam de parâmetros, mas a maioria tem um ou mais. O valor dos parâmetros naturalmente altera o valor retornado pela função.
Importante: Observe que essas funções têm utilidade para facilitar cálculos, não precisam ser decoradas, utilize este material para consulta sempre que precisar realizar algum desses cálculos.
Assista novamente o video, agora em sua totalidade, para rever os comandos de atribuição, entrada e de saída de dados.
Canal: Node Studio Treinamentos
Site: Manual do VisuAlg 3.0