Você está na página 1de 7

Portugus Estruturado

Portugus Estruturado

Para que o algoritmo possa ser executado por uma mquina importante que as instrues sejam corretas e sem ambigidades. O portugus estruturado , na verdade, uma simplificao extrema do Portugus, limitada a umas poucas palavras e estruturas que tm um significado muito bem definido. Ao conjunto de palavras e regras que definem o formato das sentenas vlidas chamamos sintaxe da linguagem.

Portugus Estruturado
Apesar do Portugus Estruturado ser uma linguagem bastante simplificada, ela possui todos os elementos bsicos e uma estrutura semelhante de uma linguagem tpica para programao de computadores. Para praticar nossa sintaxe e testar nossos problemas, utilizaremos o software Visualg.

Forma Geral ALGORITMO

Palavras reservadas so palavras que fazem parte da sintaxe da linguagem e no podem ser usadas para outro propsito em um algoritmo que no seja aquele previsto nas regras de sintaxe. Tambm so chamadas de palavras chaves.

Primeiro algoritmo
Faa um algoritmo para escrever na tela a frase: Meu primeiro Algoritmo Dica: Comando para sada de dados: escreva()

Segundo Algoritmo
Escreva um algoritmo para calcular a mdia de um aluno, sabendo que foram aplicadas quatro provas.

Analise o seguinte algoritmo e descreva o que ele faz.

Linearizao de Expresses
Para a construo de algoritmos que realizam clculo matemticos, todas as expresses aritmticas devem ser linearizadas, ou seja, colocadas em linhas, devendo tambm ser feito o mapeamento dos operadores da aritmtica tradicional para os do Portugus Estruturado.

Linearizao de Expresses

Operadores Aritmticos

Exerccios Escreva as expresses abaixo na forma na sintaxe do Portugus Estruturado.

Exerccios
Escreva as Expresses da forma convencional. A. a + b + ((34+e*9)/u-89 ^ (1/2)) = B. 12+1/((4*a)/45) ^ (1/2) = C. ((a+x) ^ (2+w)-3a)/2 = D. (12*x)/(36-9 ^ y) =

Operadores Relacionais
Os operadores relacionais realizam a comparao entre dois operandos ou duas expresses e resultam em valores lgicos (VERDADEIRO ou FALSO).

Operadores Lgicos
Os operadores lgicos atuam sobre expresses e tambm resultam em valores lgicos VERDADEIRO ou FALSO.

Tabela-Verdade
Mostra os resultados das aplicaes dos operadores lgicos conforme os valores dos operadores envolvidos.

Tabela-Verdade

De acordo com a necessidade, as expresses podem ser unidas pelos operadores lgicos.
Exemplo: (2+5>4) e (3<>3) resulta FALSO, pois VERDADEIRO e FALSO resulta FALSO.

Exerccio
Resolva as expresses lgicas, determinando se a expresso verdadeira ou falsa: A. 2>3= B. (6<8)ou(3>7)= C. no (2<3)= D. (5>=6 ou 6<7 ou no(a+5-6=8) {onde a = 5} E. (34>9 e 5+u = 34) ou (5=15/3 e 8>12) = ((u = 29) e 8>12) {onde u = 29}

Modularizao de expresses
a diviso de uma expresso em partes, proporcionando maior compreenso e definindo prioridades para a resoluo da mesma. Utilizaremos somente parnteses "()" para modularizao. Podemos ter parnteses dentro de parnteses, como seriam os colchetes e as chaves na matemtica.

Modularizao de expresses
Os parnteses indicam quais sub-expresses, dentro de uma expresso, sero executados primeiro. A princpio, a execuo da esquerda para direita, mas alm dos parnteses, existem prioridades entre os operadores envolvidos na expresso.

Tabela de Prioridade

Exemplo: (2 + 2)/2 2 + 2/2

Tabela de Prioridade

Tabela de Prioridade
Entre as categorias de operadores tambm h prioridades, conforme mostrado na tabela abaixo.

Exemplo
(2>3) ou (3<2) e (2<3) (2>3) e (3<2) ou (2<3)

Variveis
Uma varivel pode ser vista como uma caixa com um rtulo ou nome colado a ela, que num dado instante guarda um determinado objeto. O contedo desta caixa no algo fixo, permanente, seu contedo pode ser alterado diversas vezes, contudo, o contedo deve ser sempre do mesmo tipo.

Variveis
Essa caixa poder conter qualquer valor numrico (inteiro ou fracionrio; positivo, negativo ou zero). Entretanto, em um determinado instante, ela conter um, e somente um, valor.

Palavras Reservadas

Declarao de variveis
Utilizaremos a palavra reservada VAR

onde <identificador i> o nome (identificador) de uma varivel e <tipo das variveis> determina que tipo de valor as variveis podero receber. Os identificadores das variveis so usados para referencilas dentro do algoritmo. Tais identificadores devem ser claros e precisos, dando uma idia do papel da varivel no algoritmo.

Regras para nomeao de variveis


a. nomes de variveis no podem ser iguais a palavras reservadas; b. nomes de variveis devem possuir como primeiro caractere uma letra ou sublinhado '_' (os outros caracteres podem ser letras, nmeros e sublinhado); c. nomes de variveis devem ter no mximo 127 caracteres; d. Nomes de variveis no podem conter espaos em branco; e. na sintaxe do Portugus Estruturado, no h diferena entre letras maisculas de minsculas (NOME o mesmo que noMe).

Regras para nomeao de variveis


Exemplo Identificadores vlidos:
NOME, TELEFONE, IDADE_FILHO, IdadeFilho, NOTA1, Est_Civil

Identificadores invlidos:
3Endereco, Estado Civil, PARA, algoritmo, numero/complemento

Exerccio
Assinale com um X os nomes de variveis vlidos. ( ) abc ( ) 3abc ()a ( ) 123a ( ) a ( ) acd1 ( ) -_ad ( ) A&a ( ) guarda-chuva ( ) A123 ( ) Aa ( ) guarda_chuva ( ) ABC DE ( ) etc. ( ) b316 ( ) leia ( ) enquanto ( ) escreva

Tipos de Dados
Podemos declarar variveis em portugus estruturado com os seguintes tipos:

Exerccio
Classifique os contedo das variveis abaixo de acordo com seu tipo, assinalando com N os dados numricos, com L os lgicos, com C os literais.

Operador de Atribuio
Para colocar um valor em uma varivel dentro de um algoritmo, utilizamos o operador de atribuio. O operador de atribuio representado por uma seta (<-) apontando para a esquerda. Exemplo
Peso <- 78.7 // Este comando atribui varivel Peso o valor 78.7. Nome <- "Joo da Silva" // Este comando atribui varivel Nome o valor "Joo da Silva". Achei <- FALSO // Este comando atribui varivel Achei o valor FALSO.

()0 ( ) "abc" ( ) "Joo" ( ) 5.7 ( ) 1012 ( ) FALSO ( ) -49 ( ) +342 ( ) 569 ( ) "Lucas" ( ) "VERDADEIRO" ( ) 0.00001 ( ) VERDADEIRO ( ) -545 ( ) " 444 "

Operador de Atribuio
S se pode atribuir s variveis valores do mesmo tipo da varivel. Exemplo (errado)
VAR salario: REAL INICIO salario <- "Insuficiente

Assinalar os comandos de atribuio considerados invlidos:


NOME, COR, TESTE, DIA: caracter SOMA, NUM: inteiro Salario: real X: lgico a. ( ) NOME <- 5 b. ( ) SOMA <- NUM + 2 * X c. ( ) TESTE <- SOMA d. ( ) NUM <- SOMA e. ( ) COR <- "PRETO" f. ( ) X <- X + 1 g. ( ) NUM <- "*ABC*" h. ( ) DIA <- "seGUNDA" i. ( ) SOMA + 2 <- NUM j. ( ) X <- (NOME = COR) k. ( ) salrio <- 5.000 l. ( ) salrio <- 150 m. ( ) salrio <- insuficiente

Sempre esquerda do comando de atribuio deve haver um (e somente um) identificador de varivel. Exemplo so incorretos
2060 <- NumeroConta NumeroAgencia+digitoControle <- 2345 + 0 NomeCliente+sobrenome <- Joo + Silva

Linhas de Comentrio
Os comentrios so declaraes no compiladas que podem conter qualquer informao textual que voc queira adicionar ao cdigo-fonte para referncia e documentao de seu programa. So representados por duas barras normais ( // ). Todo o texto que voc digitar aps as duas barras ser comentrio. Exemplo 7.1 // Este mtodo calcula o fatorial de n ...x <- y; // Inicializa a varivel x com o valor de y

Comandos de E/S (Entrada/Sada)


Em algum ponto do algoritmo geralmente deve ocorrer exibio de valores, e todas as linguagens de programao tm comandos para este fim. Em Portugus Estruturado usamos o comando escreva para isto. A sintaxe desse comando tem a seguinte forma:

Comando de Sada
Exemplo
X <- 3.5 Y <- 4 Escreva ("O valor de X ", X) Escreva (" E o valor de Y ", Y) Escreval (" A soma de X e Y ", X+Y) Escreval ("O valor de X ", X) Escreval ("E o valor de Y ", Y) Escreval ("A soma de X e Y ", X+Y)

Comando de Entrada de Dados


Assim, deve haver um meio para que sejam digitados (ou fornecidos de outra maneira) dados para o algoritmo. Todas as linguagens de programao permitem isto. No Portugus Estruturado usamos o comando leia. A sintaxe deste comando :

Faria com que aparecesse na tela:

O valor de X 3.5 E o valor de Y 4 A soma de X e Y 7.5 O valor de X 3.5 E o valor de Y 4 A soma de X e Y 7.5

Comando de Entrada de Dados


Exemplo
leia (NumeroConta) leia (NumeroAgencia) leia (NomeCliente)

Comando de Entrada de Dados


Deve estar claro que sempre direita do comando leia haver um identificador de varivel. Assim, so incorretos os seguintes comandos: Exemplo so incorretos
leia (NumeroConta+60) leia (12345) leia (NomeCliente+Sobrenome)

Voc pode mandar uma mensagem antes para o usurio, assim ele sabe qual o contedo que deve ser colocado, ou seja, digitado. Exemplo
Escreva ("Digite seu nome: ") Leia (nome) Escreva ("Digite sua agencia: ") Leia (NumeroAgencia) Escreva ("Digite sua conta: ") Leia (NumeroConta)

No seguinte algoritmo existem erros? Em caso afirmativo, onde?

Exerccio
Quais os valores armazenados em SOMA, NOME e TUDO, supondo-se que NUM, X, COR, DIA, TESTE e TESTE2 valem, respectivamente, 5, 2, "AZUL", "TERA", FALSO e VERDADEIRO?
a) NOME <- DIA b) SOMA <- (NUM^2/X) + (X + 1) c) TUDO <- NO ((TESTE OU TESTE2) E (X <> NUM))