Buscar

Introdução a Programação

Prévia do material em texto

Programação de Computadores I 
XBT236 
Prof.a Camila Magalhães 
e-mail: camila.mag@gmail.com 
camila@xerem.ufrj.br 
Universidade Federal do Rio de Janeiro 
Polo Xerém 
Apresentações 
• Quem são vocês?? 
 
• Experiência em programação?? 
 
• Interesses?? 
 
 
 
Roteiro da Aula 
• Motivação (Computação + Biologia) 
• Objetivos da Disciplina 
• Informações sobre a Disciplina 
• Conceitos Introdutórios 
 
 
 
 
Computação + Biologia 
• 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 
Docking Receptor-Ligante 
 
Principais Objetivos (desafios): 
1. Predição do modo de ligação 
 
2. Predição da Afinidade de ligação 
Qual é o melhor? 
Diferenciar 
Ativos x Inativos 
Objetivos da Disciplina 
• Solucionar Problemas 
 
• Programar em Python (Linguagem de 
Programação) 
 
• Desenvolver programas de computador 
 
Motivações... 
• 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 
 
• Muito valorizado na área acadêmica 
 
Por que Python? 
• Linguagem simples e poderosa com inúmeros 
recursos (estruturas de dados avançadas, orientação a 
objetos, bibliotecas etc.) 
 
• Atualmente a mais popular linguagem introdutória de 
cursos de programação nas universidades top dos 
EUA 
 
• Fácil partir para outras linguagens, se necessário 
 
 
Quem usa Python? 
 
• Bibliografia Básica: 
• MENEZES, N., "Introdução à programação com Python", 
2010. 
• FERTIG, M., MEDINA, G. “Algoritmos e 
 Programação: teoria e prática” 
 
• Bibliografia Complementar: 
• BARRY P., GRIFFITHS D., “Use a Cabeça! 
Programação” 
 
 
Sobre a Disciplina: 
 
• Material de Apoio: 
• Slides das Aulas 
• Listas de exercícios 
 
 
 
 
 
 
 
Sobre a Disciplina: 
Sobre a Disciplina: 
 
• Aulas: 2 partes (a princípio) 
• Parte 1: Teórica 
• Parte 2: Prática (Exercícios práticos) 
 
• Atendimento: (Numpex-Comp) 
• 4as – 15h (enviar e-mail) 
 
• Monitor: 
• Gabriel Moraes (horário a ser combinado) 
 
 
 
• Serão apresentados em todas as aulas (x 1000) 
• Alguns serão feitos em aula e outros em casa (listas) 
• Não é preciso entregar (a menos que pedido...) 
• Dúvidas devem ser tiradas durante as aulas ou no 
horário de atendimento 
 
 
 
 
 
 
Observações: Exercícios 
 
Não basta ler, assistir, ou mesmo perguntar. 
Será preciso fazer! 
Fazer e errar, 
fazer de novo e errar menos, 
fazer de novo e errar um pouco menos, 
 fazer de novo e acertar. 
 
 Praticar, praticar e praticar com exercícios!! Só assim 
você terá um bom aproveitamento nesta disciplina! 
 
 
Programação é como aprender a nadar... 
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 (vetores e matrizes); 
7. Cadeias de caracteres (strings) 
8. Funções; 
9. Arquivos. 
Critérios de Avaliação 
• Avaliação: 3 Provas (P1, P2 , P3) 
• P1, P2 (10 pontos) 
• P3 (7,0 pontos) 
• N3 = Testes e/ou Trabalhos (3,0 pontos) 
• Média = (P1 + P2 + (P3+N3))/3 
 
 
Critérios de Avaliação 
• Aprovação: Média ≥ 5,0 
 
 
 
 
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) 
Data Assunto 
13/03 Apresentação/Introdução 
20/03 Algoritmos e Programação. Conceitos de variáveis e 
operadores. Introdução a Python 
27/03 Programação com Python. Estruturas sequenciais e 
condicionais. 
03/04 Estruturas condicionais 
10/04 Estruturas de repetição (WHILE) 
17/04 Prova 1 – P1 
24/04 Estruturas de repetição (FOR) 
01/05 FERIADO 
Cronograma (Provável) 
Data Assunto 
08/05 Estruturas de armazenamento (Listas – vetores) 
15/05 Estruturas de armazenamento (Listas – matrizes) 
22/05 Cadeias de caracteres (strings) 
29/05 Prova 2 – P2 
05/06 Funções (definição e parâmetros) 
12/06 Funções e Arquivos 
19/06 Arquivos 
26/06 Prova 3 – P3 
03/07 2ª Chamada (Conteúdo: Toda a matéria lecionada. 
Apenas com justificativa comprovada) 
10/07 Vista de prova 2ª Chamada 
Dicas 
• Revise o conteúdo e resolva os exercícios imediatamente após 
as aulas; anote as dúvidas para aula seguinte. 
• Frequentar as aulas é importante, mas não suficiente. Reserve 
tempo para praticar!! 
• Se tiver algum computador disponível para uso, instale o 
Interpretador Python o mais rápido possível (versão 3)!!! 
 
 
Dica 
Programação de Computadores 
• Técnica utilizada por programadores para desenvolver 
softwares (programas de computador) 
 
Programação? 
 
Programação de Computadores 
• Hardware x Software 
 
Hardware: Software: 
– Peças - Programas 
– Corpo - Alma 
 
 
Programação de Computadores 
• Programa: Série de ordens ou comandos, que 
devem ser executados em sequência 
 
• Podemos pensar em um computador como um 
cachorro muito obediente, que executa todos os 
comandos que você ordena que ele faça... 
 
 
Programação de Computadores 
• Exemplos de sequências de comandos para 
o computador: 
 
 Receba um número digitado no teclado 
Receba outro número digitado no teclado 
Some o primeiro número com o segundo 
Escreva na tela o resultado da soma 
Programação de Computadores 
• Exemplos de sequências de comandos para 
o computador: 
 
 
Leia o valor do Joystick 
Mova o personagem 
Se encontrar um obstáculo, 
faça o personagem saltar 
Programação de Computadores 
• Mas para que o computador faça o que você quer 
(e ele pode fazer (quase) tudo que você 
mandar), é necessário falar a linguagem dele 
 
• Mas qual é a linguagem que o computador fala?? 
 
 
Programação de Computadores 
“O seu computador foi projetado para 
armazenar apenas bits – todos os arquivos 
e pastas e diferentes tipos de dados (como 
fotografias, letras, músicas e filmes) são 
ilusões criadas pelos programadores de 
computador.” 
 
 
 
 
* bit = binary digit (dígito binário, 0 ou 1) 
Programação de Computadores 
• O computador só entende binário 
• Linguagem de 0s e 1s 
 
 
= 
Programação de Computadores 
• Mas não precisamos nos preocupar com 
estes detalhes... (pelo menos não agora!) 
 
Linguagens de Programação 
de Alto Nível 
Programação de Computadores 
• Mas não precisamos nos preocupar com estes 
detalhes (pelo menos por enquanto...) 
 
 
Linguagens de Programação 
de Alto Nível 
Bem mais próximas 
da linguagem humana 
Programação de Computadores 
• Mas não precisamos nos preocupar com estes 
detalhes (pelo menos por enquanto...) 
 
 Linguagens de Programação 
de Alto Nível 
Bem mais próximas 
da linguagemhumana 
Programador pode se 
concentrar no que ele 
quer que o computador 
faça 
Programação de Computadores 
• Mas não precisamos nos preocupar com estes 
detalhes (pelo menos por enquanto...) 
 
 Linguagens de Programação 
de Alto Nível 
Bem mais próximas 
da linguagem humana 
Programador pode se 
concentrar no que ele 
quer que o computador 
faça 
Um outro programa 
 (compilador) se 
encarregará de 
traduzir seu 
programa para 
linguagem de 
máquina (0s e 1s) 
Programação de Computadores 
• Então, como a programação funciona?? 
 
 
programa executável 
Programação pode ser legal?? 
Pode-se usar programação para 
muitas coisas... 
Pode-se usar programação para 
muitas coisas... 
Os conceitos utilizados para criar 
programas, dos mais simples aos mais 
complicados, são os mesmos! 
Variáveis, Algoritmos, estruturas condicionais, estruturas 
de repetição, etc. 
Aprender uma linguagem de 
programação é o 
primeiro passo para 
desenvolver praticamente 
qualquer coisa que você 
imaginar... 
Vamos começar?? 
Roteiro da Aula 
• Motivação 
• Objetivos da Disciplina 
• 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. 
 
 
Exemplo de Algoritmo 
• Trocar um pneu furado: um algoritmo descreve cada 
instrução a ser seguida para que o objetivo seja alcançado. 
 
1. Verificar qual pneu está furado 
2. Posicionar o macaco 
3. Afrouxar os parafusos 
4. Levantar o carro 
5. Pegar o estepe 
6. Soltar os parafusos 
7. Substituir o pneu furado 
8. Recolocar os parafusos 
9. Descer o carro 
10. Guardar o pneu e o macaco 
 
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” 
 
 
 
 
 
 
 
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). Movimentando apenas 1 disco por vez. 
 
 
 
 
 
 
 
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 + 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 montagem) 
 
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 
 
 
 
 
• Programas de computador tipicamente 
processam dados de entrada e produzem 
dados de saída 
 
• Exemplos: 
• Dados de entrada utilizado por um caixa 
eletrônico de banco?? 
• Dados de entrada do WhatsApp?? 
 
 
 
Algoritmos e Programas 
Analogia com Robô Exemplo 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
http://loucosporrobos.blogspot.com.br/ 
 
• O que ele sabe fazer? 
• Ler (e guardar na memória) 
• Escrever 
• Realizar as 4 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 quais os 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ício 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1. Defina com suas próprias palavras: 
 1. Leitura e entrada de dados 
 2. Saída de dados 
 3. Algoritmo 
4. Programa 
5. Linguagem de Programação

Continue navegando