BC0501 – Linguagens de Programação - 2008t2
Aula 11
Pseudolinguagem
Prof. Alysson Ferrari
alysson.ferrari @ ufabc.edu.br
http://fma.if.usp.br/~alysson
baseado em material elaborado por: Marcelo Zanchetta do Nascimento, Rodrigo P. Ramos, Aline Neves
BC0501 – Linguagens de Programação - 2008/01
Ao pensar a solução de um determinado problema, produzimos um algoritmo que leva a sua solução.
Feito isso, resta a escolha de uma particular linguagem de programação para implementar o referido algoritmo. PROBLEMA
ALGORITMO
PROGRAMA
Um mesmo algoritmo pode ser implementado em muitas linguagens de programação diferentes. A escolha da linguagem é, muitas vezes, vem da conveniência, ou mesmo gosto pessoal do programador (ou do seu chefe!).
É útil saber representar um algoritmo de uma forma independente de uma escolha de linguagem de programação – daí surge a idéia do PSEUDOCÓDIGO ou PSEUDOLINGUAGEM.
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
PSEUDOLINGUAGEM é uma linguagem de programação simplificada,
É usada para escrever algoritmos, sem se preocupar com
todos os detalhes de uma linguagem de programação real...
Problema
Pseudo
linguagem
se...
então...
senão...
Linguagem de progra­
mação
Java, C,
Pascal, etc
Linguagem de máqui­
na
Zeros e uns...
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
Nesta disciplina, não iremos cobrar o uso da PSEUDOLINGUAGEM, mas ela pode ser útil para o estudante esboçar seus algoritmos, antes de efetivamente escrevê­los em Java.
PSEUDOLINGUAGEM é uma linguagem de programação, logo tem sua sintaxe e sua semântica. Estas são, contudo, bastante simplificadas. Comandos de entrada e saída de dados, por exemplo, não consideram a forma particular de entrada ou exibição de dados: isto é deixado para a fase de implementação efetiva do programa na linguagem de programação escolhida.
Adotaremos uma PSEUDOLINGUAGEM “traduzida” para o Português.
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
Na definição de uma linguagem, precisamos fixar:
Sua sintaxe: como escrever os comandos e seus componentes (tipos, variáveis, etc)
Sua semântica: o significado de cada comando e conceito
Inicialmente veremos:
Tipos
Constantes e Variáveis
Comando de declaração
Comando de atribuição
Comandos de entrada e de saída
Bloco de execução seqüencial
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
TIPOS PRIMITIVOS/BÁSICOS DE DADOS
Os tipos básicos, elementares, de informação, são os utilizados com mais freqüência, e são praticamente obrigatórios em qualquer linguagem de programação.
Os tipos básicos são geralmente os seguintes:
Inteiro
Real
Caracter
String
Lógico
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
TIPOS PRIMITIVOS/BÁSICOS DE DADOS
Inteiro: Toda e qualquer informação numérica que pertence ao conjunto dos números inteiros (Z). Pode assumir os valores nulo, positivo ou negativo
Exemplos: 15, 0, 20, 4434
Real: Toda e qualquer informação numérica que pertence ao conjunto dos números reais (R)
Exemplos: ­234.4, 45, 98, 45
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
TIPOS PRIMITIVOS/BÁSICOS DE DADOS
Caracter: Toda e qualquer informação composta por um único caracter numérico (0,1,..,9), alfanumérico (A,B,..,Z,a,b,..,z) ou especial (@,#,!,...)
Exemplos: ‘D’, ‘@’, ‘1’
String: Toda e qualquer informação composta por um conjunto de caracteres numéricos (0,1,..,9), alfanuméricos (A,B,..,Z,a,b,..,z) ou especiais (@,#,!,...)
Exemplos: “Não pise na grama”, “José da Silva”
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
TIPOS PRIMITIVOS/BÁSICOS DE DADOS
Lógico: Toda e qualquer informação que pode assumir apenas os valores: verdadeiro (1) ou falso (0) Exemplos: true, false
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
Na definição de uma linguagem, precisamos fixar:
Sua sintaxe: como escrever os comandos e seus componentes (tipos, variáveis, etc)
Sua semântica: o significado de cada comando e conceito
Inicialmente veremos:
Tipos
Constantes e Variáveis
Comando de declaração
Comando de atribuição
Comandos de entrada e de saída
Bloco de execução seqüencial
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM ­ VARIÁVEIS
nome
Uma variável é um endereço da memória de acesso randômico (RAM), representada por um nome (rótulo ou identificador) e pela especificação do tipo de dado que ali será armazenado
Ao lidar com uma variável, é fundamental não confundir,
seu identificador: nome dado pelo programador à variável
seu conteúdo: valor atual da variável
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM ­ VARIÁVEIS
Identificador
nome
nome
idade
Maria Carla
Identificador
idade
nacionalidade
17
Identificador
Identificador
nacionalidade
brasileira
profissao
estudante
profissao
Uma variável assume
apenas UM valor por
vez
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM ­ IDENTIFICADORES
O primeiro caracter deve ser uma letra
Pode ser seguido de mais caracteres alfabéticos ou numéricos
Não devem ser usados caracteres especiais (#,@,%,?)
Não pode haver espaços em branco entre os caracteres
Os nomes dos identificadores não podem ser os mesmos das palavras reservadas da linguagem de programação
Os nomes escolhidos devem ser explicativos do seu conteúdo
Exemplos de identificadores válidos: alpha, notas, FGTS, K7
Exemplos de identificadores inválidos: 6X, E(13), a:B, awq&
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM ­ CONSTANTES
É um dado que não sofre alteração no transcorrer do tempo.
Sua utilização é praticamente idêntica à das variáveis, com a diferença de que, na inicialização, deve ser fornecido um valor, que será o mesmo durante toda a execução do programa.
PI
π
EXEMPLO
3,14...
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
Na definição de uma linguagem, precisamos fixar:
Sua sintaxe: como escrever os comandos e seus componentes (tipos, variáveis, etc)
Sua semântica: o significado de cada comando e conceito
Inicialmente veremos:
Tipos
Constantes e Variáveis
Comando de declaração
Comando de atribuição
Comandos de entrada e de saída
Bloco de execução seqüencial
Em Java:
double numero;
String mensagem;
int j;
BC0501 – Linguagens de Programação - 2008/01
COMANDO DE DECLARAÇÃO DE VARIÁVEIS/CONSTANTES
O comando de declaração cria uma variável ou constante Quando se declara/cria uma variável é feita uma reserva de uma área da memória RAM, que irá receber o nome do identificador da variável
Para se criar uma variável é necessário dizer de qual tipo ela será
BC0501 – Linguagens de Programação - 2008/01
COMANDO DE DECLARAÇÃO DE VARIÁVEIS/CONSTANTES
Em pseudocódigo uma variável é declarada, e portanto, criada, através da seguinte sintaxe:
<tipo>: <nome_Da_Variavel>;
inteiro: <nome_Da_Variavel>;
real: <nome_Da_Variavel>;
caracter: <nome_Da_Variavel>;
string: <nome_Da_Variavel>;
logico: <nome_Da_Variavel>;
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
Na definição de uma linguagem, precisamos fixar:
Sua sintaxe: como escrever os comandos e seus componentes (tipos, variáveis, etc)
Sua semântica: o significado de cada comando e conceito
Inicialmente veremos:
Tipos
Constantes e Variáveis
Comando de declaração
Comando de atribuição
Comandos de entrada e de saída
Bloco de execução seqüencial
Em Java:
numero = 4.7;
mensagem = “Ola”;
j = 10;
BC0501 – Linguagens de Programação - 2008/01
COMANDO DE ATRIBUIÇÃO
Comando de atribuição é o comando que indica o que a variável vai receber em seu conteúdo em determinado momento
Para colocar/atribuir um valor em uma variável é usado o comando de atribuição:
BC0501 – Linguagens de Programação - 2008/01
COMANDO DE ATRIBUIÇÃO
Sua sintaxe é:
<nome_Da_Variavel> ← <Valor_Da_Variavel>;
real: soma;
soma ← 10.6;
string: cor;
cor ← “Verde”;
soma
10.6
cor
Verde
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
Na definição de uma linguagem, precisamos fixar:
Sua sintaxe: como escrever os comandos e seus componentes (tipos, variáveis, etc)
Sua semântica: o significado de cada comando e conceito
Inicialmente veremos:
Tipos
Constantes e Variáveis
Comando de declaração
Comando de atribuição
Comandos de entrada e de saída
Bloco de execução seqüencial
Em Java: Classe Scanner, métodos println,
printf, etc... BC0501 – Linguagens de Programação - 2008/01
COMANDOS DE ENTRADA
Comandos de entrada permitem que dados sejam inseridos no algoritmo. Sua sintaxe é:
leia (<lista_de_identificadores>);
Exemplos:
leia (a,b,nome);
leia (nota,num);
leia (rg);
BC0501 – Linguagens de Programação - 2008/01
COMANDOS DE SAÍDA
Comandos de saída permitem que dados seja passados do algoritmo para outros dispositivos. Sua sintaxe é:
escreva(<lista_de_identificadores>);
Exemplos:
escreva (media,n1);
escreva (soma);
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM
Na definição de uma linguagem, precisamos fixar:
Sua sintaxe: como escrever os comandos e seus componentes (tipos, variáveis, etc)
Sua semântica: o significado de cada comando e conceito
Inicialmente veremos:
Tipos
Constantes e Variáveis
Comando de declaração
Comando de atribuição
Comandos de entrada e de saída
Bloco de execução seqüencial
BC0501 – Linguagens de Programação - 2008/01
BLOCO DE EXECUÇÃO SEQUENCIAL
Bloco de execução é um conjunto de ações que possui uma função bem definida
Num bloco sequencial, os comandos são executados em seqüência, um a um
Corresponde à forma mais simples de execução de comandos...
BC0501 – Linguagens de Programação - 2008/01
BLOCO DE EXECUÇÃO SEQUENCIAL
Bloco de execução sequencial, sintaxe em pseudolinguagem:
início
<declaração de variáveis>
<comandos>
fim
BC0501 – Linguagens de Programação - 2008/01
BLOCO DE EXECUÇÃO SEQUENCIAL: em Java
O corpo de um método é um bloco de execução... o início e o fim são marcados pelas chaves!
public class Pessoa {
// ....
public void gastar(double quantia)
{
dinheiroNaCarteira =
dinheiroNaCarteira - quantia;
System.out.printf(“Carteira: %.2f.”,
dinheiroNaCarteira);
}
}
BC0501 – Linguagens de Programação - 2008/01
BLOCO DE EXECUÇÃO SEQUENCIAL: em Java
O corpo de um método é um bloco de execução... o início e o fim são marcados pelas chaves!
public class Pessoa {
// ....
public void gastar(double quantia)
{
dinheiroNaCarteira =
dinheiroNaCarteira - quantia;
System.out.printf(“Carteira:
%.2f.”,
Inicio
dinheiroNaCarteira);
Real: dinheiroNaCarteira, valor;
}
dinheiroNaCarteira ← dinheiroNaCarteira ­ valor;
}
escreva (dinheiroNaCarteira); fim
BC0501 – Linguagens de Programação - 2008/01
BLOCO DE EXECUÇÃO SEQUENCIAL: exercício
Escreva um algoritmo para somar dois números quaisquer
1.
2.
3.
4.
Leia o
Leia o
Some X
Mostre
número X
número Y
e Y
o resultado da soma
Entrada
Processamento
Saída
Número X
Número Y
Somar X e Y
Resultado
da soma
BC0501 – Linguagens de Programação - 2008/01
BLOCO DE EXECUÇÃO SEQUENCIAL: exercício
Assim, o algoritmo de SOMA, escrito em pseudocódigo ficaria:
Algoritmo Soma
início
inteiro: x,y,soma;
leia (x, y);
soma ← x + y;
escreva (soma);
fimalgoritmo.
BC0501 – Linguagens de Programação - 2008/01
PSEUDOLINGUAGEM...
Estes foram os elementos básicos da linguagem, correspondente ao que já aprendemos da sintaxe Java até agora...
Conforme novas estruturas da linguagem Java forem introduzidas, as correspondentes construções em pseudolinguagem serão apresentadas... seu uso na disciplina, porém, será opcional.