Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação 1 Lógica de Programação Resolução de problemas usando computador ● ● Computador: ferramenta para processamento automático de dados Processamento de dados: atividade que transforme dados de entrada em dados de saída (resultados) 2 Lógica de Programação Etapas para a resolução de problemas: i) Entendimento do problema ii) Modelagem do problema em uma sequência de operações que, quando executadas, fornecem sua solução iii) Execução dessa sequência de operações iv) Verificação da adequação da solução Obs: etapas i), ii) e iv) feitas por pessoas, e etapa iii) feita por computadores 3 Lógica de Programação Programação: ● ● Planejamento, projeto, escrita e testes de instruções a serem executadas por computadores Há diferentes formas de modelar um problema ● ● ● ● Modelagem: representação do problema, a qual captura seus aspectos essenciais Um programa é um modelo do problema, porém de tratamento usualmente complexo Há diferentes métodos para se chegar a um programa, usando-se modelos intermediários Abordagem elementar: decompor o problema em partes menores (“dividir para conquistar”) 4 Lógica de Programação Programação: ● Dividindo a programação em fases distintas: 5 Lógica de Programação Algoritmos computacionais: ● ● Algoritmo é uma sequência de instruções, que devem ser entendidas e realizadas: Computador oferece um conjunto limitado de instruções ● ● ● Algoritmo deve usá-las para modelar e resolver o problema Quer dizer, algoritmo deve ser expressado usando essas instruções Dois conceitos básicos são usados para construir algoritmos: ● Estruturas de dados: para manipular os dados ● Estruturas de controle: para manipular as ações 6 Lógica de Programação Algoritmos computacionais: ● De forma geral, as diretrizes para sua construção são: 1.Identificação do problema: o que se quer resolver e o objetivo a ser atingido 2.Identificação das entradas de dados 3.Identificação das saídas de dados (resultados) 4.Identificação das regras e limitações do problema (requisitos funcionais) e do agente executante (requisitos não-funcionais) 5.Determinação de como transformar as entradas em saídas: 5.1 Sequência de ações 1.Construção do algoritmo 2.Teste da solução 7 Lógica de Programação Algoritmos computacionais: exemplo ● Deve-se calcular a média final de alunos. Estes realizarão 4 provas: P1, P2, P3 e P4. A média final é calculada por: (P1 + P2 + P3 + P4) / 4 a) Quais são os dados de entrada ? As notas das provas P1, P2, P3 e P4 b) Quais são os dados de saída ? A média final c) Qual é o processamento a ser utilizado ? Cálculo da média das notas das provas 8 Lógica de Programação Descrição de algoritmos ● Descrição narrativa: especificação dos passos em linguagem natural ● ● Linguagem natural comumente se mostra imprecisa e redundante Utilização mais adequada para inserir comentários que expliquem detalhes do algoritmo Exemplo da média final 1. Receba a nota da prova 1 2. Receba a nota da prova 2 3. Receba a nota da prova 3 4. Receba a nota da prova 4 5. Some todas as notas e divida por 4 6 Mostre o resultado da divisão 9 Lógica de Programação Descrição de algoritmos ● Descrição com diagrama de blocos (ex: fluxograma) ● ● ● Uso de instruções gráficas para representar as ações Útil para mostrar o fluxo de execução e a sequência de passos Porém problemas complexos podem gerar diagramas poluídos ! 10 Lógica de Programação Descrição de algoritmos ● Descrição com diagrama de blocos (cont.) ● Símbolos elementares usados em fluxogramas: 11 Lógica de Programação Descrição de algoritmos ● Descrição com diagrama de blocos (cont.) ● Exemplo do cálculo da média final: 12 Lógica de Programação Descrição de algoritmos ● Pseudo-linguagem: ● ● Linguagem simplificada de programação (ex: Portugol) Usa regras claras para as sentenças, com palavras-chaves, indentação, apenas uma instrução por linha, e símbolo para representar final de um passo (ex: “;”) 13 Lógica de Programação Descrição de algoritmos: pseudo-linguagem ● Exemplo da média final com Portugol Início Real p1, p2, p3, p4, M Ler p1 Ler p2 Ler p3 Ler p4 M = (p1 + p2 + p3 + p4) / 4 Escrever 'Media final = ', M Fim 14 Lógica de Programação Teste de Mesa ● ● ● Um algoritmo deve poder ser testado O teste deve verificar o resultado do algoritmo para determinados dados de entrada representativos No teste se executam as instruções do algoritmo No exemplo da média final, podem-se fornecer notas de provas e verificar as médias resultantes 15 Lógica de Programação Teste de Mesa ● Exemplo da média final: 16 Lógica de Programação Exercícios: 1.Faça um algoritmo para calcular o estoque médio de uma peça, sendo que EstoqueMédio = (QuantidadeMínima + QuantidadeMáxima) / 2. Aponte os dados de entrada e de saída. 2.Teste o algoritmo anterior com dados por você fornecidos. 3.Faça um algoritmo que verifique se uma operação sobre um arquivo (leitura, escrita, ou execução) pode ser realizada. Considere o sistema de permissões do Linux. Quais são os dados de entrada e de saída ? 4.Teste o algoritmo anterior com dados por você fornecidos. 17 Lógica de Programação Exercícios: 5. Faça um algoritmo que leia a cotação do dólar, leia um valor em dólares e mostra o valor correspondente em reais. 6. Faça um algoritmo que leia quatro números, calcule o quadrado de cada um deles, some-os e mostre o resultado. 7. Construa um algoritmo para calcular a comissão de 5% dada a vendedores de peças, usando os seguintes dados: identificação do vendedor, código da peça, preço unitário da peça e quantidade de peças vendidas. Faça um teste de mesa de seu algoritmo. 18 Lógica de Programação Exercícios: 5. Faça um algoritmo que calcule a média e o desvio padrão de um conjunto de 10 números, que devem ser lidos. A fórmula do desvio padrão segue abaixo: Média Desvi o padrão Obs: qualquer operação aritmética aceita somente dois operandos 19