Академический Документы
Профессиональный Документы
Культура Документы
Programação
Luiz Carlos Melo Muniz
1 / 47
Visão geral da disciplina
2 / 47
Apresentação
●
Professor Luiz Carlos Melo Muniz
●
Doutorando em Ciência da Computação pela
UFMA.
●
Contato: lcmuniz@gmail.com
3 / 47
Disciplina
●
Algoritmo e Linguagens de Programação
●
80 horas
●
2 avaliações
●
1 trabalho
●
Exercícios
●
Aulas expositivas e práticas de laboratório
●
Site: lcmuniz.github.io/algoritmos
4 / 47
Conteúdo
●
Visão geral da disciplina
●
Análise e desenvolvimento de sistemas
●
Algoritmos
●
Linguagens de programação
●
Instalação do Python
●
Introdução ao Python
●
Variáveis e primeiro programa
5 / 47
Bibliografia
●
Use a cabeça! Python
Paul Barry
Alto Books
●
Introdução à computação e programação
usando Python
John V. Guttag
Infopress
6 / 47
Bibliografia
●
Entendendo algoritmos: um guia ilustrado
para programadores e outros curiosos
Aditya Y. Bhargava
Novatec
●
Estrutura de dados e técnicas de
programação
Francisco Bianchi
Elsevier
7 / 47
Análise e desenvolvimento
de sistemas
8 / 47
Ciência da Computação
●
Surgiu em meados do século XX.
●
Engloba aspectos de várias áreas do
conhecimento:
– Matemática
– Engenharia
– Ciências Naturais
– Arte
9 / 47
Análise e desenvolvimento de
sistemas
●
A análise e desenvolvimento de sistemas é uma
subárea da Ciência da Computação.
●
O tecnólogo com esta formação desenvolve,
analisa, projeta, implementa e atualiza sistemas
de informação.
●
Tem noções de gerenciamento.
●
Sua especialidade é a criação de sistemas
informatizados: programação de computadores
e desenvolvimento de softwares. 10 / 47
Análise e desenvolvimento de
sistemas
●
Implanta e desenvolve banco de dados.
●
Conhece a estrutura física dos equipamentos e
seus periféricos.
●
Precisa se manter muito atualizado sobre
aplicativos, ambientes operacionais e linguagens
de programação.
●
Precisa ter boa noção dos negócios da
companhia para a qual trabalha.
11 / 47
Habilidade mais importante
●
Capacidade de resolver problemas do mundo
real de forma computacional.
12 / 47
Habilidades mais básicas
●
Formular um problema do mundo real de forma
computacional.
●
Elaborar uma solução (um algoritmo) para este
problema em termos computacionais.
●
Escrever um programa em uma linguagem de
programação que implemente este algoritmo.
●
Testar o programa para verificar se ele resolve o
problema corretamente.
13 / 47
Habilidades mais avançadas
●
Gerenciar software de grande porte
●
Construir software para lidar com grande
quantidade de dados (big data, mineração de
dados, aprendizado de máquina)
●
Gerenciar equipes de desenvolvimento de
software
●
Comunicar-se com clientes e usuários.
14 / 47
Habilidades desenvolvidas
nesta disciplina
●
Habilidade de solucionar problemas
– Formular questões
– Pensar criativamente
– Expressar a solução de forma clara e precisa
●
Aprender a programar em uma linguagem de
programação (Python)
15 / 47
Algoritmo
16 / 47
Algoritmo
●
Uma lista de instruções passo-a-passo para
resolver determinado problema
●
Simplificadamente, o que fazemos é:
– Analisar o problema
– Criar um algoritmo que resolva o problema
– Escrever um programa que implemente o
algoritmo
– Testar o programa para verificar se ele
funciona 17 / 47
Problema: Torre de Hanói
●
Três hastes e três discos de tamanhos diferentes
que podem ser colocados em qualquer haste.
●
Inicialmente, os discos estão empilhados em
ordem crescente na mesma haste com o menor
no topo
●
Deseja-se mover todos os discos para outra
haste mas só se pode movimentar um disco de
cada vez e um disco maior não pode ser
colocado sobre um disco menor
18 / 47
Pré-condições
●
Nomeia-se as hastes como A, B e C
●
Nomeia-se os discos como 1, 2 e 3
●
Considere que os discos estão na haste A
●
Os discos estão na haste A empilhados em
ordem crescente com o disco 1 no topo
●
Deseja-se mover os discos para a haste C
19 / 47
Algoritmo: Torre de Hanói
21 / 47
Programa em Python
22 / 47
Linguagens de
programação
23 / 47
Linguagens de programação
●
Linguagens formais, precisas e cujas instruções
podem ser executadas por um computador
●
Linguagens de baixo nível:
– Linguagem de máquina
– Linguagem Asembly
●
Linguagens de alto nível:
– Python, C, Java, Ruby, JavaScript, . . .
24 / 47
Tipos de linguagens
●
Linguagens interpretadas
●
Linguagens compiladas
25 / 47
Linguagens Interpretadas e
Compiladas
●
Exemplos: Java e Python
●
Antes de iniciar a execução do programa, um
compilador traduz o código-fonte para bytecode
●
Ao iniciar a execução do programa, o
interpretador lê os bytecodes um-a-um
executando as instruções correspondentes
26 / 47
Por onde começar?
●
Aprender a escrever código simples em uma
linguagem de alto nível
●
Executar pequenos programas
●
Aprender novos conceitos incrementalmente
●
Aumentar a sofisticação e o tamanho dos
programas progressivamente
27 / 47
Instalação do Python
28 / 47
Windows
●
Visite www.python.org/downloads/windows
●
Clique em Latest Python 3 Release
●
No fim da página, faça o download do arquivo
Windows x86-64 executtable installer
●
Após o download, execute o arquivo para fazer a
instalação do Python e do IDLE
29 / 47
Linux
●
O Python já vem instalado na maioria das
distribuições Linux
●
Para instalar o IDLE, pode-se utilizar o
gerenciador de pacotes da distribuição
●
Pela linha de comando:
– Ubuntu/Debian/Mint: sudo apt-get install idle3
– Fedora/openSUSE/CentOS: sudo yum install
python3-tools python3-idle
30 / 47
Introdução ao Python
31 / 47
Operadores
●
Operadores matemáticos
– Adição (+), subtração (-), multiplicação (*),
divisão (/), divisão inteira (//), módulo (%),
exponenciação (**)
●
Operadores relacionais
– Maior que (>), maior ou igual a (>=), menor
que (<), menor ou igual a (<=), igual a (==),
diferente de (!=)
32 / 47
Tipos de dados
●
Inteiro (int)
– 20, -3, 4, 0, 1, 100
●
Real (float)
– 10.0, 2.5, -4.66667, 0.0, 3.2
●
Lógico ou booleano (bool)
– True e False
●
Texto ou string (str)
– 'Amarelo', "Escada" 33 / 47
Operadores matemáticos
>>> 1 + 5
6
>>> 2 + 5 * 2
12
>>> (2 + 5) * 2
14
>>> 3 – 4
-1
>>> 5 / 2
2.5
>>> ((3 * 2) – (4 / 2))
4.0
>>> 5 >* 3
125
34 / 47
Operadores matemáticos
>>> 5 / 2
2.5
>>> 5 >/ 2
2
>>> 5 % 2
1
>>> 'João' + ' ' + 'Silva'
'João Silva'
>>> 3 * 'Oi '
'Oi Oi Oi'
35 / 47
Operadores relacionais
>>> 5 > 2
True
>>> 5 < 2
False
>>> 5 == 2
False
>>> 5 != 2
True
>>> 9 >* 2 >= 80 + 1
True
>>> 5 >= 5
True
>>> 10 <= 11
False
36 / 47
Operadores relacionais
37 / 47
Variáveis
38 / 47
O que é uma variável?
●
Variável é uma localização na memória do
computador onde são guardadas informações.
●
Uma variável tem um nome para podermos
referenciar a mesma no programa.
●
Exemplo de nomes de variáveis:
– idade, soma, numero_de_alunos,
data_de_nascimento, preco, nota1
39 / 47
Nomes de variáveis
●
Os nomes das variáveis devem podem conter
letras e números e o caractere _.
●
O nome não pode começar com número.
●
Letras maiúsculas e minúsculas são
consideradas diferentes. Por exemplo, as
variáveis idade e Idade são duas variáveis
diferentes.
40 / 47
Atribuição
●
Para se guardar um valor em uma variável,
usamos o operador de atribuição =
●
Exemplos:
– idade = 25
– nome = 'João da Silva'
– preco_do_produto = 18.99
– produto_cancelado = True
41 / 47
Exemplos
43 / 47
Problema
●
Calcular a área de um triângulo de base 10 cm e
altura 20 cm.
44 / 47
Algoritmo
45 / 47
Programa
base = 10
altura = 20
produto = base * altura
area = produto / 2
print('A área do triângulo é', area, 'cm2')
46 / 47
Executando o programa
●
Pode-se digitar o programa no IDLE linha a linha.
Este irá interpretar cada linha e mostrar o
resultado imediatamente.
●
Uma outra forma é digitar o programa em um
arquivo de texto e salvá-lo com um nome que o
identifique (por exemplo, calcular_area.py)
●
Para executar o programa, basta usar, no
terminal ou linha de comando, o seguinte
comando: python calcular_area.py
47 / 47