Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012 Por que programar? Realizar testes Fazer simulações Armazenar dados Analisar dados Gerar gráficos Desenvolver novos módulos Etc.; Programação Aprendizado Persistência Dedicação Qual linguagem usar? A que melhor resolver o seu problema E se eu não sei qual é a melhor linguagem para resolver o meu problema? Desempenho computacional? Programação simples? Algum sistema específico? 10 regras básicas de programação 1. Simplicidade Busque sempre a solução mais simples Manutenção de código Compreensão do código 2. Comente o seu código Utilize variáveis com nomes intuitivos Comente na instanciação a funcionalidade da variável, caso não seja absolutamente intuitivo Explique com comentários o porquê de suas escolhas em pontos críticos do código 10 regras básicas de programação 3. Indente o seu código 10 regras básicas de programação 4. Use padrões de projeto Não reinvente a roda Vantagens 5. Desenvolvimento de código mais rápido Utilização de código testado Alta coesão e baixo acoplamento Acoplamento = Quão fortemente um elemento está conectado, tem conhecimento ou depende de outros elementos Coesão = Quão estritamente um elemento está relacionado e focado com suas responsabilidades Consequências Evite elementos que façam coisas demais Defina bem qual a funcionalidade de um elemento 10 regras básicas de programação 6. Não escreva códigos profundamente aninhados (Muitos ifs dentro de ifs) Dificuldade de leitura Tentar manter o código com até 3 níveis de indentação Divida o código em pequenas funções 7. Códigos repetitivos ou com função específica devem ser escritos como funções 10 regras básicas de programação 8. Não faça o código todo para depois testar Teste suas funções antes de utilizá-las Comportamento normal Limites inferiores e superiores de entradas e saídas Entradas não esperadas 9. Faça um bom tratamento de erros 10. O Google é o seu melhor amigo Algumas definições Algoritmo Método para solucionar um problema Estruturas de dados Método para organizar informações Programa (Algoritmos + estruturas de dados ) expressos com uma linguagem de programação Entrada Programa Saída Linguagem de programação Linguagem artificial com sintaxe e semântica bem definidos Linguagem de Programação Linguagem de baixo nível Linguagem de máquina Linguagem de alto nível Linguagem de programação Simplicidade Linguagem natural Mais algumas definições Programa fonte Código escrito na linguagem de programação Programa objeto Código transformado linguagem de máquina sem ligação com códigos de bibliotecas e subprogramas Programa executável Programa formado pela ligação dos objetos e que pode ser executado pelo computador Mais algumas definições Programa fonte Compilador Programa objeto ... Programa objeto Programa objeto Bibliotecas Link editor Programa executável Mais algumas definições Interpretador Programa fonte é lido, entendido e as instruções são executadas imediatamente Exemplo Matlab Python Mais algumas definições Esquema básico Programa fonte Interpretador Esquema híbrido Programa fonte Compilador Saída Entradas Programa objeto Interpretador Entradas Saída Python Linguagem interpretada Orientação a objeto Multiplataforma Gratuito Biblioteca embutida extensa Grande variedade de aplicações Boa documentação Grande comunidade Ambiente de trabalho Linux Python nativo Windows Implementação pronta para baixar Editor de texto Preferencialmente, com suporte a Python Ambiente interativo Interação com o interpretador Entendendo: Entre no terminal Digite python Digite print ‘Hello World!’ help() quit quit() Executando um programa em Python Abra um editor de texto Digite print “Hello World!” Abra novamente o terminal Digite python meu_programa.py Exercício Descreva, em linguagem natural, um algoritmo para: 1. Descobrir o valor máximo de uma lista 2. Calcular média de uma lista 3. Ordenar uma lista