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.