300x250 AD TOP

Blogger news

AD (728x90)

Tecnologia do Blogger.

Colaboradores

Seguidores

Postagens populares

Mostrando postagens com marcador Hall. Mostrar todas as postagens
Mostrando postagens com marcador Hall. Mostrar todas as postagens
Tagged under:

Interpretador Hall - Parte I, escreva(), leia(), Operadores e Tipos de Variáveis.



A partir de hoje inicio mais uma serie de posts para iniciantes na área da programação, estes posts conterão assuntos relacionados à programação no interpretador HALL. Para baixar o HALL clique no link  http://www.paim.pro.br/hall/.

Este post conterá exemplos de: declaração de variáveis, função Escreva() , e Leia()

Como já de costume vamos começar com um Hello World.

Exemplo 1.0

/*
ERICK R. RIBEIRO
DATA: 25/07/2013
ULTIMA MODIFICACAO: 25/07/2013

Hello World

*/
algoritmo()
{
escreva ("Hello, world"); //Imprime da tela Hello World
}

Função escreva()

A função escreva() tem por objetivo exibir na tela do computador mensagem informadas pelo programador, estas são passadas através expressões.

Sintaxe:
escreva(expressão),

Então você se pergunta o que são expressões?
O exemplo 1.2 e 1.3 exemplificarão os tipos de expressões que poderem ser passadas na função escreva().

Exemplos 1.2
algoritmo()
{
cadeia mensagem;
inteiro dia;
real altura;
real peso;

mensagem := "Programando no Interpretador HAll" ;
dia := 25;
altura := 1.68;
peso := 63;

escreva ( "Hello, world"); // uma cadeia
escreva ( mensagem );      // uma variável
escreva ( "Hoje eh dia ", dia ); // uma cadeia e uma variável
escreva ( "A sua altura eh ", altura, " e o seu peso eh ", peso ); // uma sequência de cadeias e variáveis
escreva ( "Meu nome eh Erick Ribeiro", "o seu eu nao sei" ); // uma sequência somente de cadeias.
escreva ( dia, altura, peso ); // uma sequência de variáveis
}

Exemplo: 1.3
algoritmo()
{
inteiro num;
num := 10;

escreva("Varias somas");     //uma cadeia
escreva("2 + 2 = ", 2+2);      //uma cadeia e uma expressão matemática  
escreva("Valor de X = ", X); // uma cadeia e uma variável
escreva("X + 1 = ", X+1);     // uma cadeia e uma variável com uma expressão  matemática
}

Função leia()

A função leia() tem por objetivo capturar o que é digitado no teclado e atribuir a variáveis declaradas no programa.

Sintaxe:
leia(expressão), onde expressão poderá ser de dois tipos:

1.       Uma variável:
 Exemplo: leia(num);
2.       Um texto seguido de uma variável separados por uma vírgula.
Exemplo: leia(“Informe um numero: ”,num);

Exemplo 1.4
algoritmo()
{
real num; // um numero qualquer
real r; // a raiz quadrada de num

leia("Informe um numero positivo: ", num);
r := raiz(num);
escreva("Raiz quadrada de ", num, " eh  = ", r);
}

A função raiz() é uma função interna que retorna a raiz do número passado por parâmetro.
Declaração de Variável
O interpretador Hall aceita 4 tipos de dados básicos de variáveis:
ascii ou caracter
sexo := ‘M’
cadeia
sexo := “Masculino”
inteiro
num : = 25;
real
num := 25.35;

A declaração de uma variável segue a seguinte sintaxe:
Sintaxe:
<tipo> <nome> ; ou <tipo>  <nome>,  <nome2>, ... ,<nome>;

Especifica-se primeiro o tipo e em seguida as variáveis daquele tipo. A instrução de declaração deve ser finalizada com um ponto e vírgula.

Existem duas formas de se declarar, poder ser por linha ou por lista de variáveis.

Por  linha, veja o exemplo:
inteiro I;
real X;
caracter c;
cadeia s;

Por lista de variáveis, veja o exemplo:
inteiro i, j, k;
real Temperatura, Peso, Estatura;
caracter c, resp;
cadeia nome, sobrenome;

Exemplo 1.4  - Declaração de Variáveis
algoritmo () {
inteiro b; // declara variável do  tipo inteiro
real c;       // declara variável do tipo real
cadeia d; // declara variável do tipo cadeia

b := 33;
c := 2.7182;
d := "Interpretador HALL";

escreva ("O valor da variavel b eh: ", b);
escreva ("O valor da variavel c eh: ", c);
escreva ("O valor da variavel d eh: ", d);
escreva ( "Variaveis declaradas." );
}



Tipo primitivo ascii ou caracter

Tipo primitivo ascii ou caracter.  É utilizado para armazenar um único caracter. Qualquer caracter da tabela ASCII é válido, por exemplo: 'a', 'A', '5', '&', etc. Na atribuição de valores a variáveis do tipo ascii, o caracter deverá ser colocado entre apóstrofes ou aspas simples.
  
Importante:
Quando declaramos uma variável de um tipo qualquer, estamos na verdade delimitando o conjunto de valores que ela poderá assumir bem como os tipos de operações que podemos realizar com elas.

Exemplo: 1.5
algoritmo()
{
caracter c;
c := 'G';
escreva ( "O valor atribuido a c foi: ", c );
}

Tipo primitivo cadeia

É utilizado para armazenar sequencia de caracteres, ou seja, 1 ou mais caracteres. O comprimento máximo da cadeia está limitado atualmente a 128 caracteres (no Interpretador HALL). Toda cadeia é uma sequencia de caracteres disposta entre aspas duplas, como no Exemplo 1.5.

Exemplo 1.6
algoritmo( )
{
cadeia msg;

msg := "Estou aprendendo a programar no Interpretador HALL";
escreva ( "O valor atribuido a MSG foi: ", msg );
}

Importante:
Ressaltando mais uma vez, na atribuição de um valor a uma variável do tipo cadeia, o valor tem que vir entre aspas duplas

.Tipo primitivo inteiro

É utilizado para armazenar valores numéricos sem a parte ou casas decimais.  É representado por 4 bytes na memória.  

Exemplo 1.7
algoritmo( )
{
inteiro num;
inteiro pi;

pi := 3.1415;
leia("Informe um numero inteiro: ", num);

escreva("O valor informado: ", num);
escreva("O valor de pi eh: ",pi);
}

Na tentativa de atribuir um valor não inteiro, para a variável pi ocorrera um truncamento da parte decimal do valor, exibindo somente pi igual a 3.

Tipo primitivo real

O tipo real é utilizado para armazenar valores numéricos contendo casas decimais. O tipo real  ocupa 8 bytes na memória da máquina. A posição decimal em um valor numérico do tipo real é representada por um ponto.

Exemplo 1.8
algoritmo( )
{
real R;

leia ("Informe o preço de compra: ", R);
R := R * 1.25;
escreva ("O preço de venda e: ", R);
}

Operadores

O interpretador Hall conta com o seguinte conjunto de operadores:

Descrição
Exemplo
Aritméticos
+ - * / % ^
Atribuição
:= = <-
Relacionais
== # > >= < <=
Lógicos
& | !
Membridade
. ( ) { } [ ]
Delimitadores
" '
Sequência
,
Finalizador
;

Exemplo 1.9 – Teste de operadores Lógicos
algoritmo ()
{
inteiro a; // declara uma variavel do tipo inteiro
inteiro b; // declara uma variavel do tipo inteiro
inteiro s; // soma
inteiro d; // diferenca
inteiro p; // produto
inteiro q; // quociente
inteiro t; // potencia
inteiro r; // modulo (resto de divisao inteira)

escreva ("Testa os operadores aritméticos: ");
leia ("Digite um numero a: ", a );
leia ("Digite um numero b: ", b );

s := a + b;
d := a - b;
p := a * b;
q := a / b;
t := a ^ b;
r := a % b;

escreva ( "a soma eh: ", s );
escreva ( "a diferenca eh: ", d );
escreva ( "o produto eh: ", p );
escreva ( "o quociente eh: " ,q );
escreva ( "a potencia eh: ", t );
escreva ( "o resto da divisao inteira eh: ", r );
}