Buscar

Aula Introducao

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Computação 1
2016.1
Professora: Luciana Nascimento
lmnascimento@cos.ufrj.br
Aula 1
Aulas
• Período Letivo 2016.1: 04/04/2016 a 06/08/2016 
• 2 aulas por semana: 
• 1 aula teórica (T)
• 1 aula prática (P, em laboratório)
• Horários de aula:
Turma Horários Salas
EE1 e EE2 Seg: 08-10 (P)
Ter: 10-12 (T)
A204
H228
EB2 Seg: 10-12 (P)
Ter: 13-15 (T)
A204
A203
Aulas – Localização das Salas
H228
A204
A203
Método de Avaliação
• Média final mínima para aprovação: 5,0
• Frequência mínima: 75%
• Prova 1 e Prova 2 
• Individuais escritas
• Aluno que faltar a UMA das provas tem direito à uma segunda chamada 
• Prova 3 final: Para quem não alcançar a nota mínima. Substitui a menor nota obtida 
nas provas P1 e P2.
• Média Final:
• Provas: 75%
• Atividades em laboratório e trabalhos: 25%
Que assunto vamos trabalhar em Computação I ?
Lógica de Programação de Computadores
Por que aprender lógica de programação?
• Para resolver problemas de forma rápida e com precisão.
• Exemplo lúdico e simples: 
Imagens: Material prof. Leonardo Carvalho
Computador e Conceitos Preliminares
Computação
• Computação:
Motivação para Computação:
A necessidade de Calcular!
• Primeiros a CALCULAR: pastores de ovelhas
• Técnica utilizada: empilhamento de pedras para controle da quantidade de 
ovelhas do rebanho
Calculus – lat. pedrinha
Motivação para Computação:
A necessidade de Calcular!
Primeira tentativa bem sucedida de criação de uma máquina de contar: 
ábaco (China, cerca de 2500 a.C.)
Motivação para Computação:
A necessidade de Calcular!
Bastões de Napier Régua de Cálculo - o primeiro computador analógico
Primeiro instrumento moderno 
de calcular: Máquina de Pascal
Gerações do Computador
• Antes de 1943: Geração “zero” (baseado em engrenagens)
• 1943-1959 Primeira Geração - Computadores à Válvulas
• 1959-1964 Segunda Geração - Transístores e Circuitos Impressos
• 1964-1972 Terceira Geração - Circuitos Integrados
• 1972- ? Quarta Geração
LSI (500 partes), VLSI (10000)
• (Alguns dizem que paralelismo e VLSI 
são a quinta geração)
O Computador
• É uma maquina que manipula dados a partir de uma lista de instruções.
• Arquitetura básica (Von Neumann):
• Internamente os computadores modernos podem ser caracterizados por três partes 
distintas, a unidade central de processamento (UCP), a memória (MEM) e os dispositivos de 
entrada e saída (E/S).
O que é necessário para criar um Programa 
de Computador?
• Criar um programa de computador:
• Analisar e entender o problema que se quer resolver
• Inventar ou escolher uma solução
• “Dizer” ao computador o que fazer para resolver o problema
• É preciso “pensar da mesma forma que o computador”
• E a base para isso é a lógica de programação
• É preciso “falar a mesma língua do computador”.
• Para isso utilizamos as linguagens de programação
Lógica de Programação
• Lógica:
• Arte de pensar corretamente
• Visa colocar ordem no pensamento
• Representar de forma mais formal do pensamento
• Programação (de computadores):
• Instruir, dar ordens
• Lógica de programação: 
• Conjunto de técnicas para encadear pensamentos a fim de alcançar 
soluções que resolvam problemas com qualidade.
Lógica de Programação
• INSTRUÇÃO:
• Cada um dos passos, cada uma das ações a tomar (obedecendo a sequência 
lógica) para ir resolvendo o problema, ou para ir executando a tarefa.
• Em informática, é a informação que indica a um computador uma operação 
elementar a executar
• Ex.: “somar”, “subtrair”, “comparar se é maior”, etc
• Uma só instrução não resolve problemas. É necessário:
• Executar um conjunto de instruções
• Executar em uma sequência lógica
Lógica de Programação
• EXEMPLO: para “fazer omelete”
• Instruções: “quebrar ovos”, “bater ovos”, “pôr sal”, “ligar fogão”, “pôr óleo na 
frigideira”, “pôr frigideira no fogo”, “fritar ovos batidos”, etc...
• Quanto às instruções isoladas:
• Só “quebrar ovos”, ou só “pôr óleo na frigideira”, não é suficiente para cumprir a tarefa 
“fazer omelete”
• 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”
A aplicação da lógica de programação produz algoritmos
Lógica de Programação
 Imagine que uma pessoa decidia ir de táxi a uma reunião de 
negócios. Monte uma sequência de ações para que ela chegue ao 
prédio onde vai ocorrer a reunião.
a)Entrar no prédio da reunião;
b)Sair do táxi;
c)Acenar para que o táxi pare;
d)Perguntar o preço da corrida;
e)Informar o destino ao motorista;
f)Esperar o táxi;
g)Pagar ao taxista;
h)Entrar no táxi.
Esperar o táxi
Acenar para que o táxi pare
Entrar no táxi
Informar o destino ao motorista
Perguntar o preço da corrida
Pagar ao taxista;
Sair do táxi;
Entrar no prédio da reunião
Algoritmo
• Sequencia lógica e finita de instruções que devem ser executados para atingir 
um objetivo bem definido.
• Exemplo básico: receita de bolo.
• Algoritmos deve especificar ações claras e precisas, que a partir de um estado 
inicial, produzem um estado final bem definido.
Algoritmo - Exemplo
Um motorista que necessita efetuar a troca de um pneu furado segue uma rotina 
para realizar essa tarefa:
1. Verifica qual pneu está furado
2. Posiciona o macaco para levantar o carro
3. Pega o estepe
4. Solta os parafusos
5. Substitui o pneu furado
6. Recoloca os parafusos
7. Desce o carro
8. Guarda o macaco e o pneu furado
Você sugeriria 
alguma 
mudança?
Algoritmo
• Algoritmo para trocar uma lâmpada:
1. Pegue uma escada;
2. Posicione a escada embaixo da lâmpada;
3. Pegue uma lâmpada nova;
4. Suba na escada;
5. Retire a lâmpada velha;
6. Coloque a lâmpada nova.
Essa é a única forma de trocar uma lâmpada?
Algoritmo
• Ex.: Outro algoritmo para trocar uma 
lâmpada:
1. Pegue uma lâmpada nova;
2. Pegue uma escada;
3. Posicione a escada embaixo da 
lâmpada;
4. Suba na escada;
5. Retire a lâmpada velha;
6. Coloque a lâmpada nova.
Essa é a única forma de trocar uma lâmpada?
• Algoritmo para trocar uma lâmpada:
1. Pegue uma escada;
2. Posicione a escada embaixo da 
lâmpada;
3. Pegue uma lâmpada nova;
4. Suba na escada;
5. Retire a lâmpada velha;
6. Coloque a lâmpada nova.
Algoritmo
• Ex.: Outro algoritmo para trocar uma lâmpada:
1. Pegue uma escada;
2. Posicione a escada embaixo da lâmpada;
3. Suba na escada;
4. Grite até que alguém lhe escute e lhe traga uma 
lâmpada;
5. Retire a lâmpada velha;
6. Coloque a lâmpada nova.
Mesmo 
problema, 
diferentes 
soluções...
Algoritmo
• Há algoritmos nos quais a execução de alguns passos pode depender de 
decisões a serem tomadas devido a uma ou mais condições.
1. Instrução;
2. Instrução;
3. Se <condição é verdadeira>:
3.1 Instrução
3.2 Instrução
4. Instrução;
5. .........
No exemplo dado, como você sabe se precisava trocar a 
lâmpada?
Algoritmo
Como você sabe se a lâmpada nova funcionou?
• Algoritmo para trocar uma lâmpada:
1. Ligue o Interruptor;
2. Se a lâmpada não acender:
2.1 Pegue uma escada;
2.2 Posicione a escada embaixo da lâmpada;
2.3 Pegue uma lâmpada nova;
2.4 Suba na escada;
2.5 Retire a lâmpada velha;
2.6 Coloque a lâmpada nova.
Algoritmo
• Algoritmo para trocar uma lâmpada:
1. Ligue o Interruptor;
2. Se a lâmpada não acender:
2.1 Pegue uma escada;
2.2 Posicione a escada embaixo da lâmpada;
2.3 Pegue uma lâmpada nova;
2.4 Suba na escada;
2.5 Retire a lâmpada velha;
2.6 Coloque a lâmpada nova.
2.7 Se lâmpada nova não acende
2.7.1Desça da Escada;
2.7.2 Pegue uma lâmpada nova;
2.7.3 Suba na escada;
2.7.4 Retire a lâmpada velha;
2.7.5 Coloque a lâmpada nova.
2.7.6 Se lâmpada nova não acende
......
.......
.......
Quando vai 
parar??
Algoritmo
• Alguns algoritmos precisam repetir instruções enquanto uma ou mais condições
forem verdadeiras.
1. Instrução;
2. Instrução;
3. Enquanto <condição é verdadeira>:
3.1 Instrução
3.2 Instrução
4. Instrução;
5. .........
Algoritmo
• Algoritmo para trocar uma lâmpada:
1. Ligue o Interruptor;
2. Se a lâmpada não acender:
2.1 Pegue uma escada;
2.2 Posicione a escada embaixo da lâmpada;
2.3 Pegue uma lâmpada nova;
2.4 Suba na escada;
2.5 Retire a lâmpada velha;
2.6 Coloque a lâmpada nova.
2.7 Enquanto lâmpada nova não acender:
2.7.1 Desça da Escada;
2.7.2 Pegue uma lâmpada nova;
2.7.3 Suba na escada;
2.7.4 Retire a lâmpada velha;
2.7.5 Coloque a lâmpada nova.
Elabore um algoritmo que mova 3 discos de uma Torre de Hanói, que consiste
em três hastes (a-b-c), que servem de suporte para 3 discos de tamanhos
diferentes (1-2-3-4), os menores sobre os maiores. Pode-se mover um disco de
cada vez para qualquer haste, contanto que nunca seja colocado um disco
maior sobre o menor. O objetivo é transferir os três discos para outra haste.
Algoritmo
Informações:
4 discos
3 hastes
Ações:
movimentar um disco de cada vez de forma que fiquem ordenado 
(menor sobre o maior)
Resultado:
discos transferidos o ordenados para outra haste
Algoritmo
Algoritmo
Resultado:
algoritmo
1. - mover o disco 1 para a haste b
2. - mover o disco 2 para a haste c
3. - mover o disco 1 para a haste c
4. - mover o disco 3 para a haste b
5. - mover o disco 1 para a haste a
6. - mover o disco 2 para a haste b
7. - mover o disco 1 para a haste b
fim algoritmo 
Conclusão: Objetivo da Disciplina
Objetivos da Disciplina
• Apresentar os fundamentos básicos da programação de computadores
• Treinar o raciocínio lógico necessário para proframação
• Aplicar os conceitos na prática, utilizando a linguagem Python.
Ementa
• Introdução à Lógica de Programação
• Linguagens de Programação
• Informação e Dados
• Lógica, sequência lógica e instruções
• Elementos de programação
• O computador como calculadora 
• Programa armazenado 
• Subrotinas (funções)
Ementa
• Condições
• Predicados e valores booleanos
• O comando if
• Algoritmos e estruturas de dados sequenciais
• O comando while
• O comando for
• Strings e tuplas
• Dicionários
• Arquivos
Ementa
• Programação estruturada
• Recursão
• Estruturas de dados abstratas
• Módulos e bibliotecas
Bibliografia
• Aprendendo Python
David Ascher & Mark Lutz, Editora Bookman, 2ª edição, 2007, 566 páginas.
• Beginning Python from Novice to Professional
Magnus Lie Hetland, Apress, 2005, 640 pages. 
• Python Programming, an Introduction to Computer Science
John Zelle, Franklin, Beedle, & Associates, 517 pages. 
• Programming Python
Mark Lutz, O'Reilly, 2001, 1255 pages.
• Python Cookbook
Alex Martelli & David Ascher, O'Reilly, 2002, 575 pages. 
• Rapid GUI Programming with Python and Qt
• Mark Summerfield. Prentice Hall, 2007, 584 pages.

Outros materiais