Introdução à Programação Linguagens de Programação Algoritmos Alguns dos slides utilizados nessa aula foram gentilmente cedidos pelo Prof. Paulo Borba e Prof. Adriano Sarmento 10010010 10001110 uma linguagem que pode ser traduzida para a linguagem entendida pelo computador Linguagem imprecisa conduzem a enganos a = 10; a = a + 1;? 10010010 10001110 Linguagens e Algoritmos - Prof. Ricardo Massa F. Lima 1
Inadequação entre o nível de detalhe exigido pelo leitor e o utilizado na formulação da frase difícil em geral fácil para estudante de origami Nível de detalhe pode ser inadequado Linguagens e Algoritmos - Prof. Ricardo Massa F. Lima 2
se idade < 18 então pode dirigir senão não pode dirigir 001011101100 Linguagens e Algoritmos - Prof. Ricardo Massa F. Lima 3
Código- fonte a = 10; a = a + 1; Compilação Compilador Código de máquina 10010010 10001110 Código- fonte a = 10; a = a + 1; Interpretação Interpretador Código de máquina 10010010 10001110 Linguagens e Algoritmos - Prof. Ricardo Massa F. Lima 4
deve ter uma estrutura bem estabelecida quanto à ordem em que seus passos são executados algoritmos paralelos: duas ou mais seqüências de passos independentes Sandwich de queijo passo1: corte o pão em duas partes passo2: abra o pão passo3: insira o queijo no pão passo4: feche o pão Linguagens e Algoritmos - Prof. Ricardo Massa F. Lima 5
Sandwich de queijo e verdura (paralelo) passo1: corte o pão em duas partes passo2: corte o tomate passo3: corte a cebola passo4: abra o pão passo5: insira o queijo no pão passo6: insira o tomate no pão passo7: insira a cebola no pão passo8: feche o pão A informação sobre o estado do programa em execução deve ser suficiente para determinar univocamente as ações a serem tomadas em cada passo Não deve requerer criatividade, bastando a capacidade de seguir instruções A informação sobre o estado do programa em execução deve ser suficiente para determinar univocamente as ações a serem tomadas em cada passo Não deve requerer criatividade, bastando a capacidade de seguir instruções Alimentar Animais passo1: conduza o leão e o coelho para seus refeitórios passo2: alimente o coelho com cenoura passo3: alimente o leão com carne Linguagens e Algoritmos - Prof. Ricardo Massa F. Lima 6
Dados dois números quaisquer, as operações de soma, subtração, multiplicação e divisão são algoritmos? A operação de divisão não é um algoritmo 1 3 0.3333... Em que sentido os passos descritos a seguir falham em construir um algoritmo? passo1: retire uma moeda do bolso e coloque sobre a mesa passo2: retorne ao passo 1 Processo chegará ao fim quando o bolso não tiver mais moedas! Ambiguidade!!! Nenhuma indicação sobre a conduta a adotar quando não houver mais moedas Primitivas e suas regras usadas para representar precisamente idéias complexas constitui uma Linguagem de programação Sistema notacional que permite expressar idéias informalmente durante o desenvolvimento do algoritmo regras da linguagem formal relaxadas estrutura sintático-semânticas semelhantes (menos formais) às usadas pelas linguagens de programação Linguagens e Algoritmos - Prof. Ricardo Massa F. Lima 7
Selecionar uma, dentre duas, ações, conforme valor da condição se o produto interno bruto tiver aumentado, compre ações ordinárias; caso contrário, venda ações ordinárias compre ações ordinárias se o produto interno bruto tiver aumentado; caso contrário venda-as compre ou venda ações ordinárias dependendo do crescimento ou queda, respectivamente, do produto interno bruto se (aumento do produto interno bruto) então (compre ações ordinárias) senão (venda ações ordinárias) Ex: dividir total por 366 ou 365, conforme o ano seja bissexto ou não, respectivamente se (ano bissexto) então (dividir total por 366) senão (dividir total por 365) Sintaxe abreviada se (condição) então (ação) Ex: se as vendas diminuírem, reduza em 5% o preço se (vendas diminuírem) então (reduzir em 5% o preço) Ex: Determine se o aluno foi reprovado (nota menor que 5) ou aprovado se (nota >= 5) então (aluno aprovado) senão (aluno reprovado) Seleções aninhadas se (nota >= 5) então se (nota >= 7) então (aluno aprovado) senão (fazer prova final) senão (aluno reprovado) Importância da Edentação se (nota >= 5) então se (nota >= 7) então (aluno aprovado) senão (fazer prova final) senão (aluno reprovado) se (nota >= 5) então {se (nota >= 7) então (aluno aprovado) senão (fazer prova final)} senão (aluno reprovado) Linguagens e Algoritmos - Prof. Ricardo Massa F. Lima 8
Nos permite referenciar valores através de nomes que fazem sentido se (((9/5) x 25 + 32) >= 5) então (quente) senão (frio) Execução recorrente de uma seqüência de comandos enquanto uma condição permanecer verdadeira Ex: havendo ingressos para vender, permanecer vendendo ingressos enquanto (houver ingressos) faça (vender um ingresso) associe celsius ao valor 25 associe fahrenheit ao valor (9/5) x Celsius + 32 se (fahrenheit >= 5) então (quente) senão (frio) Linguagens e Algoritmos - Prof. Ricardo Massa F. Lima 9