Pseudolinguagem

Propaganda
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.
Download