24-04-2012 REVISÕES DA SESSÃO ANTERIOR Fluxogramas • Um fluxograma é uma forma padronizada e eficaz para representar os passos lógicos de um determinado processamento. • Com os fluxogramas podemos definir uma sequência de símbolos, com significado bem definido, portanto, a sua principal função é a de facilitar a visualização dos passos de um processamento. 1 24-04-2012 Fluxograma • Representação gráfica de um algoritmo. Estrutura de Controlo Uma estrutura (de controlo) é a unidade básica da lógica de programação. Qualquer programa pode ser construído através da combinação de 3 estruturas básicas: sequência, selecção e repetição. Entrada Entrada Entrada Saída Saída Saída 2 24-04-2012 Fluxograma Cálculo do zero da equação ax+b=0 RESOLUÇÃO DE EXERCÍCIOS 3 24-04-2012 Exercício 1 Construa um fluxograma que : – Leia a cotação do dólar – Leia um valor em dólares – Converta esse valor para Euros – Mostre o resultado Exercício 1 - Resolução 4 24-04-2012 Exercício 2 Desenvolva um fluxograma que: • Leia 4 (quatro) números • Calcule o quadrado para cada um • Some todos • Mostre o resultado Exercício 2 - Resolução 5 24-04-2012 Exercício 3 1. Construa um algoritmo para pagamento de comissão de vendedores de peças, levando-se em consideração que sua comissão será de 5% do total da venda e que você tem os seguintes dados: – – – – Identificação do vendedor Código da peça Preço unitário da peça Quantidade vendida 2. Construa o fluxograma do algoritmo anterior Exercício 3 - Resolução Constantes COM: 0.05; Variáveis idVendedor, codPeca: char; precoUnitario, quantVendida, Inicio Ler(idVendedor); Ler(codPeca); Ler(precoUnitario); Ler(quantVendida); precoTotal <- precoUnitario * quantVendida; comissão <- precoTotal * Escrever(precoTotal); Fim 6 24-04-2012 Representações de algoritmos • Linguagem Natural Os algoritmos são expressos directamente em linguagem natural (e.g. o português como no exemplo do bolo). • Fluxograma (ou Diagrama de Fluxo) Esta é uma representação gráfica que emprega formas geométricas padronizadas para indicar as diversas acções e decisões que devem ser executadas para resolver o problema. • Pseudo-linguagem ou pseudocódigo Emprega uma linguagem intermediária entre a linguagem natural e uma linguagem de programação para descrever os algoritmos. PSEUDOCÓDIGO 7 24-04-2012 Pseudocódigo • Os algoritmos são descritos numa linguagem chamada pseudocódigo. • Pseudocódigo é uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples (nativa a quem o escreve, por forma a ser entendido por qualquer pessoa) sem necessidade de conhecer a sintaxe de nenhuma linguagem de programação. Pseudocódigo O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação. 8 24-04-2012 Regras • Apesar das pseudolinguagens terem poucas regras existem algumas que normalmente são usadas para facilitar o entendimento entre os programadores. • Vamos detalhar algumas delas. – As palavras início e fim indicam onde começa e termina o algoritmo. – Os programadores podem incluir nos algoritmos explicações que facilitem o entendimento do seu funcionamento. • Estes comentários não são executados pelos computadores e somente são lidos pelos programadores. • Existem diversas maneiras de indicar que o texto no algoritmo é apenas um comentário. CONSTANTES, VARIÁVEIS E TIPO DE DADOS 9 24-04-2012 Constantes, variáveis e tipo de dados • Os principais tipos de dados utilizados em algoritmia e em programação são: – Caracteres, cadeias de caracteres ou texto; – Números (podendo estes serem de diferentes tipos); – Dados do tipo lógico ou booleano. Cadeias de caracteres • Existem dados que são do tipo texto ou cadeias de caracteres (strings); – Por exemplo “Hoje e dia 14.” • Para este tipo de dados também se utiliza, por vezes, a designação de dados alfanuméricos – o que quer dizer que são dados em que entram caracteres alfabéticos ou letras e onde podem entrar também algarismos. 10 24-04-2012 Dados numéricos • E constituída pelos diferentes tipos de números: – Inteiros – por exemplo -10, -5, 0, 5, 10… – Reais – por exemplo 1.5, 0, 2.5, -4.1; … Nota: na programação e utilizado o “.” como sinal decimal. Dados lógicos ou booleanos • São utilizados com muita frequência em algoritmia e programação; • Este tipo de dados caracteriza-se por admitir de cada vez apenas um entre dois resultados. Verdadeiro(true, 1) ou falso(false, 0); 11 24-04-2012 Constantes e Variáveis • Constante: é um dado que permanece inalterável do inicio ao fim do algoritmo • Variável: é um dado que pode sofrer alterações de valor ao longo do algoritmo • Identificador: é um nome que é associado (pelo programador) a uma constante, a uma variável ou outro tipo de elemento, em programação. Constantes • As constantes podem surgir: – Sob a forma directa, ou seja, valores numéricos, alfanuméricos,… • Exemplos: 0.75; “Janeiro”;… – Sob a forma de identificadores, por exemplo: • Exemplos: Taxa=0.16; Nome = “Ana Matias”; 12 24-04-2012 Variáveis • As variáveis surgem sempre designadas através de identificadores e associadas a determinado tipo de dados (inteiro, real, string, booleano, etc) – Exemplo: • Idade : inteiro A característica principal das variáveis e o facto de poderem assumir diferentes valores ao longo do algoritmo ou programa. Instruções de atribuição • São operações internas de um programa ou algoritmo que atribuem valores às variáveis – Exemplos: • Nome ← “Joao Miguel”; • Idade ← 16; Nota: O sinal de atribuição na linguagem algorítmica e ← mas, na linguagem C e =. 13 24-04-2012 EXERCÍCIOS Exercício 1 Considere as seguintes linhas de pseudocódigo: a) Indique, passo a passo, quais os valores das variáveis P e Q ao longo da sequência de instruções. Indique também como serão representados os dados na última instrução. 14 24-04-2012 Exercício 2 Considere as seguintes linhas de pseudocódigo: • a) Indique passo a passo, quais os valores das variáveis Soma e Res ao longo da sequência, supondo que os valores iniciais são 4 e 5. Escrita e representação de instruções básicas 15 24-04-2012 Escrita e representação de instruções básicas • Chamam-se instruções de atribuição às operações internas de um programa ou algoritmo que atribuem valores às variáveis; • Por exemplo: – Nome <- “Ana Matias”; • Indica que a variável Nome recebe a string ou cadeia de caracteres “Ana Matias”; – Custo <- 10; • Indica que a variável Custo recebe o valor 10; – Prex <- Custo *1.25; • Indica que a variável Prex recebe o produto da variável Custo por 1.25. Escrita e representação de instruções básicas • Do lado esquerdo do sinal <- escreve-se o Identificador da variável • Do lado direito desse mesmo sinal escreve-se o valor ou a expressão a atribuir à variável. Nota: A instrução termina com um sinal de ponto e vírgula(;). 16 24-04-2012 Instrução de input ou entrada de dados • Depois da palavra LER segue-se, dentro de parênteses(), um ou mais dados, utilizando a virgula (,) como separador. • A instrução termina com um sinal de ponto e vírgula(;). Instrução de input ou entrada de dados • Uma operação de input por parte de um programa ou em relação a um algoritmo é feita, normalmente, através de instruções que recorrem a variáveis. • Ler (A); – Indica que o utilizador terá que introduzir um valor para a variável A. • Ler (número, A); – Indica que o utilizador terá que introduzir um valor para a variável número e um outro para a variável A. 17 24-04-2012 Instrução de output ou saída de dados • Depois da palavra ESCREVER podem incluir-se (dentro dos parêntesis) uma ou mais expressões, identificadores, etc. tendo a vírgula como separador. • A instrução termina com um sinal de ponto e vírgula(;). Instrução de output ou saída de dados • A saída de dados por parte de um programa ou algoritmo pode ser feita em relação a diferentes tipos de dispositivos, como: o monitor, uma impressora, um disco, etc. • Este tipo de operação, em termos de algoritmo, pode ser representado por palavras como: escrever, imprimir, etc. – Escrever(“Olá Mundo”); • Será escrito no monitor Olá Mundo. – Escrever(“Total =“, total); • Será escrito no monitor Total= seguido do valor que a variável total tiver nessa altura da instrução. 18 24-04-2012 Classificação das estruturas de controlo • Num algoritmo ou programa é muitas vezes necessário: – Jogar com determinadas condições, para decidir se se deve executar uma ou outra acção ou acções – neste caso, teremos instruções ou estruturas de decisão ou de selecção. – Repetir uma série de instruções um determinado número de vezes ou enquanto se verificar uma certa condição – neste caso, teremos estruturas de repetição ou ciclos. Classificação das estruturas de controlo 19 24-04-2012 Estruturas de Decisão Estruturas de Decisão • Existe a possibilidade de haver dois caminhos na estrutura de decisão, consoante a expressão lógica ser Verdadeira ou falsa. • A decisão SENÃO é opcional, pode existir ou não. 20 24-04-2012 Estruturas de Decisão • A estrutura de decisão com base numa condição costuma ser indicada como estrutura SE ou então SE…ENTÃO…SENÃO… • Permite decidir sobre executar ou não uma determinada acção ou seleccionar entre duas alternativas possíveis. • A decisão é tomada com base numa condição ou expressão lógica. Estruturas de Decisão Esta condição ou expressão lógica surge imediatamente a seguir à palavra SE. – Verdadeiro (V) – será executada a acção ou bloco de acções indicadas a seguir à palavra ENTÃO – Falso (F) • É executada a acção ou bloco de acções que são indicadas após a • palavra SENÃO; • Não é feito mais nada dentro da estrutura de decisão e passa-se à • próxima acção após essa estrutura. • A palavra SENÃO é opcional. 21 24-04-2012 Estruturas de Decisão Devido à parte opcional, SENÃO, existe duas variantes desta estrutura: • Decisão simples - Só é indicado um bloco de acções e este só será executado se a condição de controlo dor verdadeira; senão, não é executado nenhuma acção e passa-se ao fim da estrutura, FIMSE. • Decisão composta - Se a condição de controlo for falsa, há um outro bloco de acções que deverá ser executado antes de se atingir o fim da estrutura. Estruturas de Decisão Decisão Simples 22 24-04-2012 Estruturas de Decisão Decisão Composta Exercícios 1. Pretende-se elaborar um algoritmo que: a) Escrever um programa para ler um número inteiro e imprimir se ele é par ou ímpar b) Escrever um programa que leia três números e exiba o maior deles. c) Leia as 3 notas de um aluno e calcule a média final deste aluno. Considerar que a média é ponderada e que o peso das notas é: 20%,30% e 50%, respetivamente. 23 24-04-2012 FICHA DE TRABALHO Nº1 24