Programação e Sistemas de Informação Módulo I - Introdução à Programação e Algoritmia Formador : António Martins 1 Intro. – Programação/Problemas Programação: consiste no desenvolvimento de técnicas (métodos) ou na optimização de processos, que permitem a resolução de problemas. Problema: “é aquilo que nos é proposto fazer” Exemplos: Mudar um pneu; Fazer uma chamada de tlm. 2 1 - Técnicas de resolução de problemas Decomposição: consiste na divisão do problema complexo (aquilo que nos é proposto fazer) em problemas “mais pequenos” (de complexidade menor), chamados componentes. A junção das soluções dos vários componentes dará origem à solução do problema inicial. 3 1.1 - Decomposição (esquema) Problema inicial Componente 1 Solução 1 Componente 2 Solução 2 Solução do problema inicial … … Componente n Solução n 4 1.1 - Decomposição Os 3 passos da decomposição são: Decomposição; Resolução dos problemas componentes; Combinação destas soluções na solução do problema inicial Atenção: Se uma determinada componente for complexa pode esta ainda ser decomposta em componentes. 5 1.2 - Abstracção Abstracção consiste em adaptar soluções conhecidas de problemas semelhantes ao problema em causa. Exemplo : o método de somar 2+3 é igual ao método de somar 10+5. De um modo genérico pode ficar x+y 6 2 – Introdução à lógica de programação Lógica de programação: é a técnica que consiste em encadear pensamentos para atingir determinado objectivo. Sequência lógica: são os passos executados até atingir um objectivo ou solução de um problema Instruções: são um conjunto de regras ou normas definidas para a realização ou uso de algo. Em informática é o que indica a um computador uma acção elementar a executar. 7 3 - ALGORITMO A construção de um programa comporta 4 fases: Analisar o problema Conhecer o problema: ouvir o problema, entendê-lo, perceber qual o objectivo. Descrever o problema: subdividir o problema (esquematizar), detalhar. DECOMPOSIÇÃO Fase de resolução do problema: criação do algoritmo; escrever passo a passo o raciocínio da solução do problema; verificar se não existe ambiguidade. Fase de implementação (numa linguagem de programação). Fase de testes e manutenção ALGORITMO: é a descrição completa da solução de um problema. 8 3.1 - Exemplos Exemplos de algoritmos usados no dia-a-dia: Receita de culinária Indicações para chegar a um determinado local GPS Manuais de instruções para montagem de equipamentos 9 3.2 – Características de um algoritmo Características: Finito: tem de terminar; Definitude: cada passo (instrução) bem definido; Entradas: zero ou mais entradas; Saídas: uma ou mais saídas; Eficácia: operações todas executáveis; Sequencial: cada instrução corresponde a uma acção elementar a executar, não devendo ocasionar dúvidas na sua interpretação (ordem bem definida). 10 3.3 – Linguagem do algoritmo A linguagem algorítmica deve ser: Formal Objectiva Obedecer às regras lógicas Exemplos: Mudar um pneu Mudar uma lâmpada Carregar o telemóvel Ler um e-mail Ir ver um filme ao cinema Fazer uma média de 3 valores Calcular a área de um rectângulo Conversão de € para escudos. 11 Exemplo “Mudar pneu” 12 Exemplo “Mudar pneu” (cont…..) 2º Definir as operações elementares: dar passos abrir ou fechar pegar ou largar rodar deslocar no sentido ... capacidade de decisão 13 Exemplo “Mudar pneu” (cont…..) [Substituição pneu furado] 1. [Buscar macaco, chave e pneu sobresselente] Repetir até chegar ao carro Dar passos Abrir a mala Pegar macaco, chave e pneu bom Repetir até chegar ao pneu furado Dar passos 2. [Colocar o macaco em posição correcta e elevar o carro] Largar o pneu e a chave Encaixar macaco Deslocar o macaco no sentido do carro até encaixar Elevar o carro Repetir até carro elevado Rodar manivela no sentido horário 14 Exemplo “Mudar pneu” (cont…..) 3.[Retirar o pneu furado e substituí-lo] Pegar na chave Repetir quatro vezes Deslocar a chave até encaixar na porca Repetir até porca cair Rodar sentido anti-horário Largar chave Pegar no pneu furado Deslocá-lo sentido contrário ao carro Largar pneu furado Pegar no pneu bom Deslocar pneu no sentido do carro Encaixar pneu Pegar na chave Repetir quatro vezes Pegar na porca Encaixar porca Pegar chave Repetir até ficar apertado Rodar no sentido horário Largar chave 15 Exemplo “Mudar pneu” (cont…..) 4. [Guardar o macaco, chave e o pneu furado] Baixar o carro Rodar manivela no sentido contrário ao horário Desencaixar macaco Pegar pneu furado+macaco+chave Repetir até à mala Dar passos Largar chave+macaco+pneu furado Fechar mala [FIM] 16 Exemplo “Mudar lâmpada………” TopDown (decomposição) Garantir a segurança da operação Arranjar e posicionar um meio de aceder à lâmpada Remover a lâmpada Colocar a nova lâmpada Testar se a nova lâmpada funciona Arrumar os meios despendidos na operação 17 Exemplo “Mudar lâmpada………” [Mudar a lâmpada fundida] [Garantir a segurança da operação] Desligar a electricidade (no quadro geral – iluminação) [Arranjar e posicionar um meio de aceder à lâmpada] Pegar num banco Colocar o banco por baixo da lâmpada Subir para cima do banco [Remover a lâmpada] Pegar com uma mão no caixilho Pegar com a outra mão na lâmpada Rodar a lâmpada até desapertar 18 Exemplo “Mudar lâmpada………” [Colocar a nova lâmpada] Descer do banco Poisar a lâmpada velha Pegar na nova lâmpada Subir ao banco Pegar com uma mão no caixilho Inserir a lâmpada no caixilho Rodar a lâmpada até esta ficar encaixada [Testar se a nova lâmpada funciona] Descer do banco Ligar o quadro geral de electricidade Acender o interruptor se este estiver desligado Verificar se a lâmpada funciona [Arrumar os meios despendidos na operação] Deitar a lâmpada velha ao lixo Pegar no banco e arrumá-lo [FIM] 19