Prévia do material em texto
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 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 PSEUDOLINGUAGEM BC0501 – Linguagens de Programação - 2008/01 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... PSEUDOLINGUAGEM BC0501 – Linguagens de Programação - 2008/01 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... 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 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 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 PSEUDOLINGUAGEM TIPOS PRIMITIVOS/BÁSICOS DE DADOS BC0501 – Linguagens de Programação - 2008/01 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 TIPOS PRIMITIVOS/BÁSICOS DE DADOS 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 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 nome idade nacionalidade profissao Maria Carla nomeIdentificador 17 idadeIdentificador brasileira nacionalidadeIdentificador estudante profissaoIdentificador Uma variável assume apenas UM valor por vez PSEUDOLINGUAGEM VARIÁVEIS BC0501 – Linguagens de Programação - 2008/01 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 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& É 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... pi PSEUDOLINGUAGEM CONSTANTES BC0501 – Linguagens de Programação - 2008/01 EXEMPLO 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; 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 COMANDO DE DECLARAÇÃO DE VARIÁVEIS/CONSTANTES 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; 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 <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 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... 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 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 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 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 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 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); } } 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 Escreva um algoritmo para somar dois números quaisquer 1. 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 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 BLOCO DE EXECUÇÃO SEQUENCIAL: exercício 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... Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32