bc0501 – linguagens de programação - 2008t2 aula 11 · aula 11. bc0501 – linguagens de...

32
baseado em material elaborado por: Marcelo Zanchetta do Nascimento, Rodrigo P. Ramos, Aline Neves BC0501 – Linguagens de Programação - 2008t2 Pseudolinguagem Prof. Alysson Ferrari alysson.ferrari @ ufabc.edu.br http://fma.if.usp.br/~alysson Aula 11

Upload: lexuyen

Post on 08-Nov-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

baseado em material elaborado por: Marcelo Zanchetta do Nascimento, 

Rodrigo P. Ramos, Aline Neves

BC0501 – Linguagens de Programação - 2008t2

Pseudolinguagem

Prof. Alysson Ferrarialysson.ferrari @ ufabc.edu.brhttp://fma.if.usp.br/~alysson

Aula 11

Page 2: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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.  

 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.

PROBLEMA ALGORITMO PROGRAMA

Page 3: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

PSEUDOLINGUAGEM

BC0501 – Linguagens de Programação - 2008/01

Page 4: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

ProblemaPseudo

linguagemse...então...senão...

Linguagem de progra­mação

Java, C,Pascal, etc

Linguagem de máqui­na

Zeros e uns...

PSEUDOLINGUAGEM

BC0501 – Linguagens de Programação - 2008/01

PSEUDOLINGUAGEM é uma linguagem de programação simplificada,

É usada para escrever algoritmos, sem se preocupar comtodos os detalhes de uma linguagem de programação real...

Page 5: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

BC0501 – Linguagens de Programação - 2008/01

  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.

PSEUDOLINGUAGEM

Page 6: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

Page 7: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

PSEUDOLINGUAGEMTIPOS PRIMITIVOS/BÁSICOS DE DADOS

BC0501 – Linguagens de Programação - 2008/01

Page 8: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

PSEUDOLINGUAGEMTIPOS PRIMITIVOS/BÁSICOS DE DADOS

Page 9: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

PSEUDOLINGUAGEMTIPOS PRIMITIVOS/BÁSICOS DE DADOS

Page 10: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

PSEUDOLINGUAGEMTIPOS PRIMITIVOS/BÁSICOS DE DADOS

Page 11: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

Page 12: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

nome

 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

Page 13: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

nome

idade

nacionalidade

profissao

Maria Carla

nomeIdentificador

17

idadeIdentificador

brasileira

nacionalidadeIdentificador

estudante

profissaoIdentificadorUma variável assume apenas UM valor por

vez

PSEUDOLINGUAGEM ­ VARIÁVEIS

BC0501 – Linguagens de Programação - 2008/01

Page 14: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

O primeiro caracter deve ser uma letraPode  ser  seguido  de  mais  caracteres  alfabéticos  ou 

numéricosNão devem ser usados caracteres especiais (#,@,%,?)Não  pode  haver  espaços  em  branco  entre  os 

caracteresOs nomes dos  identificadores não podem ser os mesmos 

das palavras reservadas da linguagem de programaçãoOs  nomes  escolhidos  devem  ser  explicativos  do  seu 

conteúdo

PSEUDOLINGUAGEM ­ IDENTIFICADORES

BC0501 – Linguagens de Programação - 2008/01

 Exemplos de identificadores válidos: alpha, notas, FGTS, K7

 Exemplos de identificadores inválidos: 6X, E(13), a:B, awq&

Page 15: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

 É 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

3,14...

π

PSEUDOLINGUAGEM ­ CONSTANTES

BC0501 – Linguagens de Programação - 2008/01

EXEMPLO

Page 16: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

Em Java:double numero;String mensagem;int j;

Page 17: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

Page 18: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

 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

COMANDO DE DECLARAÇÃO DE VARIÁVEIS/CONSTANTES

Page 19: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

Em Java:numero = 4.7;mensagem = “Ola”;j = 10;

Page 20: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

 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:

COMANDO DE ATRIBUIÇÃO

BC0501 – Linguagens de Programação - 2008/01

Page 21: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

<nome_Da_Variavel> ← <Valor_Da_Variavel>;

Sua sintaxe é:

10.6

soma

Verde

cor

real: soma;soma ← 10.6;

string: cor;cor ← “Verde”;

COMANDO DE ATRIBUIÇÃO

BC0501 – Linguagens de Programação - 2008/01

Page 22: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

Em Java: Classe Scanner, métodos println,printf, etc... 

Page 23: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

Comandos de entrada permitem que dados sejam inseridos no algoritmo. Sua sintaxe é:

leia (<lista_de_identificadores>);

leia (a,b,nome);leia (nota,num);leia (rg);

Exemplos:

COMANDOS DE ENTRADA

BC0501 – Linguagens de Programação - 2008/01

Page 24: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

Comandos de saída permitem que dados seja passados do algoritmo para outros dispositivos. Sua sintaxe é:

escreva(<lista_de_identificadores>);

escreva (media,n1);escreva (soma);

Exemplos:

BC0501 – Linguagens de Programação - 2008/01

COMANDOS DE SAÍDA

Page 25: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

Page 26: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

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

BLOCO DE EXECUÇÃO SEQUENCIAL

BC0501 – Linguagens de Programação - 2008/01

Page 27: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

 Bloco de execução sequencial, sintaxe em pseudolinguagem:

início <declaração de variáveis> <comandos>fim

BLOCO DE EXECUÇÃO SEQUENCIAL

BC0501 – Linguagens de Programação - 2008/01

Page 28: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

O corpo de um método é um bloco de execução... o início e o fim são marcados pelas chaves!

BC0501 – Linguagens de Programação - 2008/01

BLOCO DE EXECUÇÃO SEQUENCIAL: em Java

public class Pessoa { // .... public void gastar(double quantia)

{dinheiroNaCarteira =

dinheiroNaCarteira - quantia;System.out.printf(“Carteira: %.2f.”,

dinheiroNaCarteira);}

}

Page 29: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

O corpo de um método é um bloco de execução... o início e o fim são marcados pelas chaves!

BC0501 – Linguagens de Programação - 2008/01

BLOCO DE EXECUÇÃO SEQUENCIAL: em Java

public class Pessoa { // .... public void gastar(double quantia)

{dinheiroNaCarteira =

dinheiroNaCarteira - quantia;System.out.printf(“Carteira: %.2f.”,

dinheiroNaCarteira);}

}

Inicio    Real: dinheiroNaCarteira, valor;

    dinheiroNaCarteira ←  dinheiroNaCarteira  ­ valor;    escreva (dinheiroNaCarteira); fim

Page 30: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

Escreva um algoritmo para somar dois números quaisquer1. Leia o número X

2. Leia o número Y

3. Some X e Y

4. Mostre o resultado da soma

Entrada SaídaProcessamento

Número XNúmero Y

Somar X e Y Resultado da soma

BC0501 – Linguagens de Programação - 2008/01

BLOCO DE EXECUÇÃO SEQUENCIAL: exercício

Page 31: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

Assim, o algoritmo de SOMA, escrito em pseudocódigo ficaria:

Algoritmo Somainício inteiro: x,y,soma; leia (x, y); soma ← x + y; escreva (soma); fimalgoritmo.

BC0501 – Linguagens de Programação - 2008/01

BLOCO DE EXECUÇÃO SEQUENCIAL: exercício

Page 32: BC0501 – Linguagens de Programação - 2008t2 Aula 11 · Aula 11. BC0501 – Linguagens de Programação - 2008/01 Ao pensar a solução de um determinado problema, produzimos

 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.

BC0501 – Linguagens de Programação - 2008/01

PSEUDOLINGUAGEM...