Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação de Computadores Prof.a Camila Magalhães e-mail: camila.mag@gmail.com camila@xerem.ufrj.br Universidade Federal do Rio de Janeiro Campus Xerém Roteiro da Aula • Objetivos da Disciplina • Motivação • Informações sobre a Disciplina • Conceitos Introdutórios Objetivos da Disciplina • Solucionar Problemas • Programar em Python (Linguagem de Programação) • Desenvolver programas de computador Motivação • Prática do pensamento crítico e lógico • Desenvolvimento da capacidade de resolver problemas • Usuário de programas mais habilidoso • Diferencial no mercado de trabalho Motivação • Bioinformática e Biologia Computacional utilizam fortemente os programas de computador. • Exemplos: • Alinhamento de Sequências de Proteínas e de DNA • Simulação Computacional de Biomoléculas (Desenvolvimento de fármacos) Simulação Computacional de Biomoléculas Por que Python? • Linguagem poderosa com inúmeros recursos (estruturas de dados avançadas, orientação a objetos, bibliotecas etc.) • Linguagem simples • Muitas aplicações • Bibliografia Básica: • MENEZES, N., "Introdução à programação com Python", 2010. • FERTIG, M., MEDINA, G. “Algoritmos e Programação: teoria e prática” • Apoio: • Slides das Aulas • Listas de exercícios Sobre a Disciplina: Programa da Disciplina: 1. Introdução a algoritmos. 2. Ambientes de desenvolvimento e programação. Conceito de compiladores e interpretadores. 3. Linguagem de programação: Estrutura de um programa, constantes e variáveis, tipos de dados, comandos de atribuição e de entrada e saída, operadores aritméticos e operadores lógicos; 4. Estruturas de controle de fluxo; 5. Estruturas de repetição; 6. Estruturas de armazenamento; 7. Funções; 8. Arquivos. Sobre a Disciplina: • Aulas: 2 partes • Parte 1: Teórica • Parte 2: Prática (Exercícios - Avaliação Prática) • Monitoria: • Monitor: Mateus Felipe (mateus.schuchter@gmail.com) • 2as feiras, 15 – 17hs • Avaliação: 2 Provas (P1, P2) + Teste e Avaliação Prática (TAP): • P1 = 10,0 P2 = 5,0 TAP = 5,0 • Média = (P1 + (P2 + TAP))/2 Sobre a Disciplina: Critérios de Avaliação • Média = (P1 + (P2 + TAP))/2 1. Média ≥ 7 -> Aprovação 2. Média < 3 -> Reprovação 3. 3,0 ≤ Média < 7,0 -> Prova Final (PF): toda a matéria • Média Final = (Média + PF)/2 • Média Final ≥ 5 -> Aprovação • Média Final < 5 -> Reprovação Sobre a Disciplina: • 2a Chamada • Haverá apenas uma segunda chamada (casos especiais com justificativa comprovada), cobrindo toda a matéria lecionada na disciplina. Cronograma (Provável) • Prova 1: 17/09 • Teste: 22/10 • Prova 2: 12/11 • Segunda Chamada: 19/11 (com justificativa por escrito) • Prova Final: 03/12 Roteiro da Aula • Objetivos da Disciplina • Motivação • Informações sobre a Disciplina • Conceitos Introdutórios Algoritmo • Sequência finita de passos que leva à execução de uma tarefa • É uma descrição passo a passo de uma metodologia que conduz à resolução de um problema • Um conjunto de instruções que devem ser feitas para realizar uma tarefa. Resolução de Problemas • Exemplo de Problema: • Fazer uma omelete • Qual a sequência de passos necessária para atingir o objetivo? Passos para Fazer uma Omelete 1. Quebrar ovos 2. Bater ovos 3. Adicionar sal 4. Ligar o fogão 5. Adicionar óleo na frigideira 6. Colocar a frigideira no fogo 7. Fritar os ovos batidos 8. Verificar se está pronto 9. Se sim, desligar o fogo 10. Se não, voltar para o passo 8 Observação Importante • Quanto à sequência lógica: • Se executarmos “fritar ovos batidos” antes de “bater ovos”, ou pior, antes de “quebrar ovos”, não iremos cumprir a tarefa “fazer omelete” Características de Algoritmos • Finitude: deve sempre terminar após um número finito de passos. • Definição: cada passo de um algoritmo deve ser precisamente definido (sem ambiguidades). • Entradas: deve ter zero ou mais entradas (fornecidas antes do algoritmo iniciar). • Saídas: deve ter uma ou mais saídas (resultado final do algoritmo). Características de Algoritmos • Efetividade: todas as operações devem ser suficientemente básicas de modo que possam ser executadas com precisão em um tempo finito por uma pessoa. Problema: Torre de Hanói • Objetivo: Passar todos os discos do pino A para o pino C, usando os pinos B e C como auxiliar, de forma que, um disco maior nunca fique sobre outro que seja menor (em nenhuma situação). Algoritmo: Torre de Hanói 1. Mover o Disco Verde de A para C 2. Mover o Disco Azul de A para B 3. Mover o Disco Verde de C para B 4. Mover o Disco Vermelho de A para C 5. Mover o Disco Verde de B para A 6. Mover o Disco Azul de B para C 7. Mover o Disco Verde de A para C http://www.taringa.net/comunidades/webdesign/7850746/Aporte-js-Colga-tu-PC-con-las-torres-de-hanoi.html Algoritmos e Programas de Computador • Algoritmo = método para solucionar um problema • Programa = algoritmo + estruturas de dados expressos de forma a ser entendido pelo computador • Linguagem com sintaxe e semântica bem definidas • Usada para escrever programas • Mais “técnica” do que linguagens naturais • Menos “técnica” do que a linguagem nativa dos computadores (linguagem de máquina) Exemplos de Linguagens de programação: Python, Pascal, C, Cobol, Fortran, Java, entre outras Linguagem de Programação Algoritmos e Programas • Programas de computador tipicamente processam dados de entrada e produzem dados de saída Analogia com Robô Exemplo http://loucosporrobos.blogspot.com.br/ • O que ele sabe fazer? • Ler (e guardar na memória) • Escrever • Realizar operações aritméticas básicas • Objetivo: Escrever um algoritmo para que o robô calcule a média aritmé- tica entre 3 números. Robô Exemplo x Computador • O computador funciona de forma similar: • Lê dados de entrada (via teclado ou de um arquivo), que são guardados em variáveis na memória • O computador efetua processamento sobre os dados (na CPU: Central Processing Unit) • Escreve a saída (no monitor ou impressora) • Dados de entrada: os números para calcular a média • Processamento: Operações de soma e divisão • Dados de saída: a média calculada 1. Quantas entradas? 1. Quantas saídas? Especificando... • Instruções: as ações, ou seja, a sequência de passos necessária para resolver o problema O Processo • O computador não faz nada sozinho • Ele precisa que alguém diga para ele quaisos passos que precisam ser executados • Ele precisa que ensinemos a ele o ALGORITMO para resolver o problema! • Mas... o computador não entende qualquer instrução • Ele entende apenas um conjunto fixo de instruções Portanto: Exercícios • Escreva um algoritmo para solucionar o seguinte problema: • Dispomos de duas vasilhas com capacidades de 9 e 4 litros. As vasilhas não tem nenhum tipo de marcação, de modo que não é possível ter medidas como metade ou um terço. Escreva um algoritmo (sequência de passos), que usando as vasilhas de 9 e 4 litros encha uma terceira vasilha de medida desconhecida com seis litros de água. Exercícios • Defina com suas próprias palavras: 1. Algoritmo 2. Programa 3. Pseudocódigo 4. Código-fonte 5. Código-objeto 6. Linguagem de máquina 7. Linguagem de programação
Compartilhar