Introdução a Programação Algoritmos Mar / 2009 Algoritmos... • “Conjunto de regras formais para a obtenção de um resultado ou da solução de um problema” – Forbellone & Eberspacher, 2000 • “Um processo sistemático para a solução de um determinado problema” – Szwarcfiter & Makenzon, 1994 Algoritmos... • “Uma seqüência ordenada de passos a ser seguida para a realização de uma determinada tarefa” – Saliba, 1992 • Conjunto finito de regras que fornece uma seqüência de operações para resolver um problema específico • Algoritmo pode ser especificado de forma textual usando uma pseudolinguagem ou sob a forma de diagrama ...Algoritmos • “Programação Estruturada é a arte ou técnica de construir e formular algoritmos de uma forma sistemática” – Wirth • “Programas são formulações concretas de algoritmos abstratos, baseados em representações e estruturas específicas de dados” – Wirth ...Algoritmos • Programa é um algoritmo expresso em uma linguagem de programação. • Teorema da Estrutura: qualquer programa próprio pode ser escrito usando apenas três estruturas básicas: seqüência, alternativa e repetição Pseudolinguagem Portugol... • Portugol Português e Algol • Elementos da linguagem – Identificador – nome iniciado por uma letra seguida de caracteres alfabéticos ou numéricos. Ex.: A, B1, N2, SOMA, RAIZ, valor, hora,... – Tipos básicos de dados – • • • • • Inteiro – Ex.: -5, 8, 32, -428,... Real – Ex.: 30.5, 0.478, -23.35,... Cadeia de caracteres – Ex.: “AB”, “X”, “XYZ”, “B2”,... Caractere – Ex.: “A”, “X”, “Z”, “B”,... Lógico – Ex.: FALSO, VERDADEIRO ...Pseudolinguagem Portugol... • Elementos da linguagem – Definição de variáveis – nome dado a um local de memória reservado para armazenar valores possíveis do tipo de dado associado. Ex.: inteiro: K, J2, QTDIAS, ... real: SALARIO, PRECO, TOTAL, X1, ... caractere: NOME, ENDERECO, RUA,... lógico: APROVADO, CHEIO, TEM,... – Comando de atribuição – atribui valor a uma variável Ex.: SALARIO 480.00, APROVADO FALSO, QTDIAS 36, ... Pseudolinguagem Portugol • Elementos da linguagem – Operadores aritméticos – + , - , * , / , sqrt(x), sen(x), cos(x), mod , div , (a + b)^n , – Operadores relacionais - = , ≠ , ≥ ou >= , ≤ ou <= – Operadores lógicos – e (۸) , ou (۷) , não (┐) – Prioridade das operações – 0. função 1. parênteses 2. operadores aritméticos: a) ^ b) * , / c) + , 3. operadores relacionais: <, ≤, =, ≥, >, <> 4. operadores lógicos: a) não b) e c) ou ...Pseudo-linguagem Portugol • Comandos da linguagem – Entrada – leia (A, B, C); – Saída – imprima (A, B, C); – Exemplo de algoritmo em Portugol: inicio | inteiro: A, B; | A 1; | B 2; | se A > B então A 5; | | senão A 10; | fim se; fim.