This document was uploaded by user and they confirmed that they have the permission to share
it. If you are author or own the copyright of this book, please report to us by using this DMCA
report form. Report DMCA
Elementos da linguagem Operadores Estrutura de um programa Estruturas de controle Programação modular
A.6 A.7 A.8 A.9
Arquivos Variáveis dinâmicas Programação orientada a objetos Conjuntos de palavras reservadas e símbolos reservados
ELEMENTOS DA LINGUAGEM
A.1.1
Identificadores
Podem ser formados com qualquer caractere alfabético regional (não necessariamente ASCII padrão), dígitos (0-9) e o símbolo de sublinhado (_), devendo começar sempre por um caractere alfabético. Os nomes dos identificadores são sensíveis a maiúsculas e recomendamos que seu comprimento não ultrapasse os 50 caracteres.
A.1.2
Comentários
Existem dois tipos de comentários. Comentários somente de uma linha utilizarão barra dupla inclinada (//); este símbolo servirá para ignorar tudo o que apareça até o final da linha. Comentários multilinha poderão ocupar mais de uma linha utilizando os caracteres { e }, que indicarão respectivamente o início e o final do comentário. Todos os caracteres incluídos entre esses dois símbolos serão ignorados.
A.1.3
Tipos de dados padrão
Dados numéricos • Inteiros. Consideramos inteiro qualquer valor numérico sem parte decimal, independentemente de sua grandeza. Para a declaração de um tipo de dado inteiro, utilizamos a palavra reservada inteiro. • Reais. Consideramos real qualquer valor numérico com parte decimal, independentemente de uma grandeza ou precisão. Para a declaração de um tipo de dado real, utilizamos a palavra reservada real.
mmFundamentos de programação – Algoritmos, estruturas de dados e objetos Dados lógicos Utilizamos a palavra reservada lógico em sua declaração. Dados de tipo caractere Utilizamos a palavra reservada caractere em sua declaração. Dados de tipo cadeia Utilizamos a palavra reservada cadeia em sua declaração. A não ser que indiquemos o contrário, consideram-se cadeias de comprimento variável. As cadeias de caracteres são consideradas como um tipo de dado padrão, mas estruturado (poderá ser considerado como um array de caracteres).
A.1.4
Constantes de tipos de dados padrão
Numéricas inteiras São compostas pelos dígitos (0...9) e os sinais + e – utilizados como prefixos. Numéricas reais Os números reais em vírgula fixa utilizam o ponto como separador decimal, além dos dígitos (0...9), e o caractere de sinais (+ e –). Nos reais em vírgula flutuante, a matriz poderá utilizar os dígitos (0...9), o caractere de sinais (+ e –) e o ponto decimal (.). O expoente irá separar-se da matriz mediante a letra E e a matriz estará formada pelo caractere de sinais e os dígitos. Lógicas Somente poderão conter os valores verdade (verdadeiro) e falso. De caractere Qualquer caractere válido do conjunto de caracteres utilizado, delimitados por separadores ‘ ou “. De cadeia Seqüência de caracteres válidos do conjunto de caracteres utilizados, delimitados pelos separadores ‘ ou “.
A.2
OPERADORES Operadores aritméticos Operador
Significado
- - + * / div mod **
Menos unitário Subtração Mais unitário (soma) Multiplicação Divisão real Divisão inteira Resto da divisão inteira Exponencial
Especificações da linguagem algorítmica UPSAM 2.0mm
O tipo de dado de uma expressão aritmética depende do tipo de dado dos operandos e do operador. Com os operadores +, -, * e ^, o resultado será inteiro se os operandos forem inteiros. Se algum dos operandos for real, o resultado será de tipo real. A divisão real (/) devolve sempre um resultado real. Os operadores mod e div devolvem sempre um resultado tipo inteiro. Operadores de relação Operador
Significado
= < > <= >= < >
Igual a Menor que Maior que Menor que ou igual a Maior que ou igual a Diferente de
Os operandos devem ser do mesmo tipo e o resultado será de tipo lógico. Operadores lógicos Operador
Significado
não e ou
Negação lógica Multiplicação lógica (verdadeiro se os dois operandos forem verdadeiros) Soma lógica (verdadeiro se algum dos operando for verdadeiro)
Os operandos devem ser de tipo lógico e devolvem um operando do mesmo tipo. Operadores de cadeia Operador
Significado
+ &
Concatenação de cadeias Concatenação de cadeias
Trabalham com operandos do tipo cadeia ou caractere e o resultado sempre será de tipo cadeia. Prioridade básica de operadores Primários Unitário Multiplicativos Aditivos De cadeia De relação
( ) [ ] Parênteses em expressões ou em chamadas a procedimentos ou funções. Colchetes em índices de arrays. -, +, não *, /, div, mod, e Exponencial ** +, -, ou &, + =, <, >, <=, >=, <>
Prioridade avançada de operadores1 Os operadores são mostrados em ordem decrescente de prioridade de cima para baixo. Os operadores do mesmo grupo têm a mesma prioridade (precedência) e são executados da esquerda para a direita ou da direita para a esquerda de acordo com a associatividade.
Essas regras de prioridade se ajustam a linguagens de programação modernas como C++, Java ou C#.
1
mmFundamentos de programação – Algoritmos, estruturas de dados e objetos
Operador
Significado
Associatividade
( ) ( ) [ ] .
Parênteses Chamada à função Subíndice Acesso a membros de um objeto
Dir-Esq Dir-Esq Dir-Esq Dir-Esq
+ + - -
Prefixo incremento Prefixo decremento
Dir-Esq Dir-Esq
+ - ! ~ (tipo) novo (new)
Mais unitário Menos unitário Negação lógica unitária Complemento bit a bit unitário Modelo unitário Criação de objetos
Dir-Esq Dir-Esq Dir-Esq Dir-Esq Dir-Esq Dir-Esq
* / % + -
Produto Divisão Porcentagem Soma Subtração
Esq-Dir Esq-Dir Esq-Dir Esq-Dir Esq-Dir
<< >> >>>
Deslocamento bit a bit para a esquerda Deslocamento bit a bit para a direita com extensão de sinal Deslocamento bit a bit para a direita enchendo com zeros
Dir-Esq Dir-Esq Dir-Esq
< <= > >= instância_de (instance_of)
Menor que Menor que ou igual a Maior que Maior que ou igual a
Esq-Dir Esq-Dir Esq-Dir Esq-Dir
Verificação de tipo de objeto
Esq-Dir
= = ! =
Igualdade Desigualdade
Esq-Dir Esq-Dir
&
AND (Y) bit a bit
Esq-Dir
^
OR (ou) exclusivo bit a bit
Esq-Dir
|
OR (ou) inclusivo bit a bit
Esq-Dir
&&
AND (E) lógico
Esq-Dir
||
OR (ou) lógico
Esq-Dir
?:
Condicional ternário
Dir-Esq
= += -= *= /= % = & =
Atribuição Atribuição de soma Atribuição de subtração Atribuição de produto Atribuição de divisão Atribuição de módulo Atribuição AND bit a bit
Especificações da linguagem algorítmica UPSAM 2.0mm
(continuação)
Operador
Significado
Associatividade
^= |= <<= >>= >>>=
Atribuição OR exclusive bit a bit Atribuição OR inclusive bit a bit Atribuição de deslocamento para a esquerda bit a bit Deslocamento direito bit a bit com atribuição de extensão de sinal Deslocamento direito bit a bit com atribuição de extensão a zero
Dir-Esq Dir-Esq Dir-Esq Dir-Esq Dir-Esq
A.3
ESTRUTURA DE UM PROGRAMA algoritmo <nome_do_algoritmo> //Seções de declarações [const //declarações de constantes] [tipos //declarações de tipos] [var //declarações de variáveis] //Corpo do programa início ... fim
A.3.1
Declarações de tipos de dados estruturados
Arrays array[...] de : <nome_de_tipo> é um subintervalo com o índice do limite inferior e o limite superior. Por exemplo, array [5..20] de inteiro declararia um array de 16 elementos inteiros. Podem aparecer vários separadores por
vírgulas para declarar arrays de mais de uma dimensão. é o identificador de qualquer tipo de dado padrão ou definido pelo usuário. <nome_do_tipo> é um identificador válido que será utilizado para referenciar o tipo de dado. O acesso a um elemento de um array se realizará indicando-se seu índice entre colchetes. O índice será uma expressão inteira. Registros registro : <nome_de_tipo> : <nome_do_campo> ... fim_registro é o identificador de qualquer tipo de dado padrão ou definido pelo usuário. <nome_do_tipo> é um identificador válido que se utilizará para referenciar o tipo de dado. <nome_do_campo> é um identificador válido que se utilizará para referenciar o campo do registro.
O acesso a um campo de uma variável de tipo registro será realizado utilizando-se o caractere ponto (.), por exemplo, MeuRegistro.MeuCampo.
mmFundamentos de programação – Algoritmos, estruturas de dados e objetos Arquivos seqüenciais arquivo_s de : <nome_do_tipo> é o identificador de qualquer tipo de dado padrão ou definido pelo usuário. <nome_do_tipo> é um identificador válido que se utilizará para referenciar o tipo de dado.
Arquivos diretos arquivo_s de : <nome_do_tipo> é o identificador de qualquer tipo de dado padrão ou definido pelo usuário. <nome_do_tipo> é um identificador válido que se utilizará para referenciar o tipo de dado.
A.3.2
Declaração de constantes
É realizada dentro da seção de declarações de constantes. <nome_de_constante> = <expressão> <nome_de_constante> é um identificador válido que se utilizará para referenciar a constante. <expressão> é uma expressão válida. O tipo da constante será o tipo de dado que a expressão devolve.
A.3.3
Declaração de variáveis
É realizada dentro da seção de declarações de variáveis. : <nome_de _variáveis> [= <expressão>]... é o identificador de qualquer tipo de dado padrão ou definido pelo usuário. <nome_de_variável> é um identificador válido que se utilizará para referenciar a variável. Em uma
declaração é possível declarar várias variáveis separadas por vírgulas. É possível inicializar a variável na declaração, <expressão> é uma expressão válida do tipo de dado da variável.
Devolve o valor absoluto da expressão numérica x. Devolve um número aleatório real maior que ou igual a 0 e menor que 1. Devolve o arco tangente de x. Devolve o cosseno de x. Devolve o primeiro valor inteiro menor que a expressão numérica x. Devolve o valor ex. Devolve o logaritmo neperiano de x. Devolve o logaritmo em base 10 de x. Devolve a raiz quadrada de x. Devolve o seno de x. Trunca (elimina os decimais) da expressão numérica x.
Devolve o número de caracteres da cadeia c. Devolve a posição da primeira aparição da subcadeia sc na cadeia. Devolve uma subcadeia da cadeia c formada por todos os caracteres a partir da posição ini. Incluindo-se o argumento long, devolve só os primeiros long caracteres a partir da posição ini.
Especificações da linguagem algorítmica UPSAM 2.0mm
Devolve o código ASCII de um caractere car. Devolve o caractere correspondente ao código ASCII x. Converte a cadeia c em um valor numérico. Caso o conteúdo da cadeia c não possa converter-se em um valor numérico (contém caracteres alfabéticos, sinais de pontuação inválidos etc.), devolve 0. Converte a cadeia o valor numérico x.
cadeia(x)
Funções de informação Função
Significado
tamanho_de()
Devolve o tamanho em bytes da variável.
A.3.5
Procedimentos de entrada e saída
ler(<lista_de_variáveis>) lê uma ou mais variáveis do teclado do sistema. escrever(<lista _de_ expressões>) escreve uma ou mais expressões no console do sistema.
A.3.6
Instrução de atribuição ← <expressão>
Primeiro avalia o valor da expressão e o atribui à variável. A variável e a expressão devem ser do mesmo tipo de dado.
A.4
ESTRUTURAS DE CONTROLE
A.4.1
Estruturas seletivas
Estrutura seletiva simples e dupla se <expressão_lógica> então [se_não ] fim_se