AIB 1P 1parte
AIB 1P 1parte
AIB 1P 1parte
Aplicações Informáticas B
Introdução à Programação
2 Objetivo da programação
Área de Desenvolvimento
A informatização de uma organização ou empresa com alguma
dimensão implica o desenvolvimento de muitos recursos, tanto a
nível humano como a nível material
Seria impensável que uma única pessoa desenvolvesse um
sistema de informação para responder às necessidades da
organização fruto da inerente complexidade
6 Enquadramento da área profissional
Área de Desenvolvimento
O responsável pelo desenvolvimento de um sistema de
informação deve:
ser responsável pelo levantamento das necessidades, com
vista a conceber um sistema de informação que suporte o
funcionamento dessa empresa
ser responsável pela manutenção desse mesmo sistema
O Programador
Tem como principal função conceber os programas que foram
especificados pelos analistas de sistemas, traduzindo para uma
linguagem de programação a solução de um problema, bem
como a respetiva implementação
É responsável por:
documentar os programas de acordo com as normas
definidas
codificar os programas em linguagens de programação
autorizadas
desenvolver programas de teste
etc.
9 Enquadramento da área profissional
O Programador (continuação)
De entre as competências relevantes podem-se apontar:
capacidade de reflexão
trabalho em equipa
aptidão de síntese
perspetivar as várias partes de um problema
desenvolver um estilo de programação
elaborar programas de forma estruturada
10 Linguagens
Exemplo:
Proposições – “Chico é um gato.”
Regras de inferência – “Todo gato é um felino.”
Busca – “Chico é um felino?”
a resposta para a Busca acima precisa ser verdadeira, caso em
que se tiraria a conclusão lógica: “Se Chico é um gato e todo
gato é felino, então Chico é um felino”
A linguagem mais conhecida deste paradigma é a Prolog
Este paradigma é pouco usado em aplicações comerciais,
aplicando-se mais na área académica, mas cada vez mais em
expansão
22 Paradigmas de programação – declarativo
Vantagens Desvantagens
• Rapidez de execução • Requer etapas de tradução
• Admitem estruturas de • O programa final é maior,
programas mais necessitando de mais
Compiladores completas memória para ser executado
• Permite otimização do • O processo de correção de
programa-fonte erros (depuração) é mais
demorado
• A depuração do • A execução do programa é
programa é mais mais lenta
simples • As estrutura de dados são
• Requer menos mais simples
Interpretadores
memória • É necessário fornecer o
• Resultado imediato do programa-fonte ao utilizador
programa ou rotina final
desenvolvida
29 Fases de Elaboração de um Programa
1. Definição do Problema
2. Planificação da Resolução
3. Codificação
4. Teste e Depuração
5. Documentação
6. Manutenção
30 Abordagem Top-Down
1. 2. 3.
5, 7 5+7=12 12
41 Algoritmo – elaboração
1. 2. 3.
5, 7 5+7=12 12
42 Algoritmo – elaboração
Início
Leia(a, b) Início
Leia(a, b)
sa+b
sa+b
Escreva(s)
Fim
Escreva(s)
Fim
44 Algoritmo – elaboração
É multiplataforma
Possui modo interativo
Usa indentação para marcação de blocos
Quase nenhum uso de palavras-chave associadas com compilação
Possuir coletor de lixo (garbage collector) para gerir o uso da
memória de forma automática
Suporta POO (Programação Orientada a Objetos)
Suporta programação funcional
É suportada por uma grande biblioteca padrão, que contém mais de
260 módulos divididos em 35 categorias
50 Introdução ao Python
Principais vantagens:
fornece análise de código
suporta desenvolvimento Web com Django
possui suporte a testes unitários integrado
suporte para VCS (Version Control System)
depurador gráfico
recurso de desenvolvimento remoto
preenchimento de código inteligente
67 Ambiente de desenvolvimento – PyCharm
parâmetros:
objetos – um ou mais objetos a apresentar, separados por ,
sep (opcional) – os objetos são separados por sep (padrão: ' ')
end (opcional) – end é escrito no fim
file (opcional) – deve ser um objeto com método de escrita
(padrão: sys.stdout, que corresponde ao ecrã)
flush (opcional) – se verdadeiro, o que está em memória
(cache) é imediatamente escrito (padrão: falso)
valor devolvido: nada!
85 Conceitos genéricos de programação em
Pyhton
Input e output (continuação):
sintaxe da função input(): Ligação com preenchimento sólido
input([prompt])
parâmetros:
prompt (opcional) – uma string que é escrita no output padrão
(normalmente o ecrã)
valor devolvido:
a função lê uma linha do input padrão (normalmente do
utilizador), converte a linha numa string eliminado o ENTER final
e devolve-a
86 Conceitos genéricos de programação em
Pyhton
Input e output (continuação):
as strings em Python são delimitadas por
plicas simples – '…'
aspas – "…"
docstring – '''…''' ou """…""“ – para delimitar strings compostas
por várias linhas de texto
87 Conceitos genéricos de programação em
Pyhton
Input e output (continuação):
o primeiro argumento da função print(), quando é uma string,
constitui uma a expressão de controlo que pode conter:
texto
caracteres especiais começados pela \, como, por exemplo: \n
(quebra de linha, forçando a mudança de linha); \t (insere uma
tabulação); \" (insere uma aspa); \\ (insere uma barra) e \' (insere
uma plica)
especificadores de formatos de dados, como, por exemplo: %s (tipo
string); %d (tipo int – inteiro) e %f (tipo float – real)
(booleano) False
95 Conceitos genéricos de programação em
Pyhton
Estruturas e tipos de dados – descrição dos pp tipos de dados (cont.):
Tipo Descrição Exemplos
list Conjunto de itens, que podem ser duplicados e [1.3, 12, '12P']
(lista) de diferentes tipos de dados; permitem o
acesso sequencial ou direto através do índice
da posição, começando por 0
Sequência
Exercícios de
aplicação 5 (pág. 30
do manual)
Ficha de trabalho 2
(do caderno de
atividades)
102 Conceitos genéricos de programação em
Pyhton
Operadores e expressões
os operadores são elementos que atuam sobre os operandos
(variáveis e constantes), numa determinada expressão
as expressões, por sua vez, são uma combinação de operandos e
operadores que, uma vez resolvidas, resultam num determinado
valor
103 Conceitos genéricos de programação em
Pyhton
Operadores aritméticos:
os operadores aritméticos permitem
a realização de operações
matemáticas com valores
numéricos, cujo resultado é,
também, numérico
de uma operação entre inteiros
resulta inteiro
de uma operação entre reais resulta
sempre um real
de uma operação em que pelo
menos um dos operandos é um real
resulta sempre um real
104 Conceitos genéricos de programação em
Pyhton
Operadores aritméticos
(exemplificação):
105 Conceitos genéricos de programação em
Pyhton
Operadores de atribuição:
os operadores de atribuição
permitem atribuir valores a uma
variável
estes podem ser simples, permitindo
apenas atribuir valores a uma
variável ou…
… compostos, possibilitando a
realização de uma operação
aritmética seguida de atribuição
106 Conceitos genéricos de programação em
Pyhton
Operadores de atribuição (exemplificação):
107 Conceitos genéricos de programação em
Pyhton
Operadores de atribuição (exemplificação):
108 Conceitos genéricos de programação em
Pyhton
Operadores de relacionais:
os operadores relacionais são usados para efetuar comparações
entre expressões, resultando sempre um dos valores lógicos: True
(verdadeiro) ou False (falso)
109 Conceitos genéricos de programação em
Pyhton
Operadores de relacionais (exemplificação):
110 Conceitos genéricos de programação em
Pyhton
Operadores lógicos:
Os operadores lógicos abaixo (and,
or, not) permitem realizar operações
lógicas, devolvendo sempre um dos
valores lógicos True ou False, de
acordo com as respetivas tabelas de
verdade (ao lado)
111 Conceitos genéricos de programação em
Pyhton
Operadores lógicos (exemplificação):
112 Conceitos genéricos de programação em
Pyhton
Prioridade dos operadores:
em expressões com vários
operadores, é necessário
conhecer as regras de
prioridade para obter os
resultados corretos
os operadores com a mesma
ordem de prioridade,
concretizam-se da esquerda
para a direita.
o operador ^ implementa a
diferença simétrica de
conjuntos (itens de cada
conjunto, mas não de ambos)
Exercícios de aplicação 7 (pág. 51 do manual)
Usos comuns:
lista – quando a ordem importa e é necessária uma coleção
mutável
tuplo – para dados que não devem ser alterados, como
coordenadas
conjunto – para armazenar elementos únicos ou realizar
operações de conjuntos
dicionário – para mapear chaves a valores, como propriedades
de um objeto
133 Estruturas de dados – comparações
Métodos específicos:
lista – append(), extend(), insert(), remove(), pop(), sort()
tuplo – métodos limitados devido à imutabilidade
conjunto – add(), remove(), union(), intersection(), difference()
dicionário – keys(), values(), items(), get(), update()
134 Strings em Python
Maiúsculas e Minúsculas:
texto = "Python é Incrível"
print(texto.upper()) #saída: PYTHON É INCRÍVEL
print(texto.lower()) #saída: python é incrível
Remoção de Espaços:
texto = " Python "
print(texto.strip()) #saída: Python
Substituição:
texto = "Python é difícil"
novo_texto = texto.replace("difícil", "fácil")
print(novo_texto) #saída: Python é fácil
139 Strings em Python – métodos
Divisão:
frase = "Python é uma linguagem de programação"
palavras = frase.split()
print(palavras) #saída: ['Python', 'é', 'uma', 'linguagem', 'de', 'programação']
O método format():
nome = “Rui"
idade = 25
mensagem = "Olá, meu nome é {} e tenho {} anos.".format(nome, idade)
print(mensagem) #saída: Olá, meu nome é Bob e tenho 25 anos.
143 Strings em Python – verificação
random.seed(8)
print(random.random()) # resultado: 0.2267058593810488
print(random.random()) # resultado: 0.9622950358343828
random.seed(8)
print(random.random()) # resultado: 0.2267058593810488
print(random.random()) # resultado: 0.9622950358343828
exemplos:
import random
exemplos:
import random
print(random.triangular())
print(random.triangular(1, 10))
print(random.triangular(1, 5, 5))
150 Números pseudo-aleatórios
exemplos:
import random
exemplos:
import random
sequencial
Estruturas de
controlo
decisão ou seleção
repetição/repetitiva (ciclo)
155 Estruturas de controlo
Estruturas sequenciais:
Neste tipo de estrutura, as instruções de um programa são
executadas numa determinada ordem sem que esta possa sofrer
alterações através de, por exemplo, eventuais interações com o
utilizador
Todos os exemplos até ao momento recorreram apenas a esta
estrutura
156 Estruturas de controlo
simples
Estruturas de
decisão em
composta
Python
encadeada
múltipla
157 Estruturas de controlo
…
while «condição»:
…
…
170 Estruturas de controlo
exemplos:
range(8) 0, 1, 2, 3, 4, 5, 6, 7 range(8, 2, -1) 8, 7, 6, 5, 4, 3
range(2, 8) 2, 3, 4, 5, 6, 7 range(0, 4, 1) 0, 1, 2, 3
range(2, 8, 2) 2, 4, 6 range(-8, -2, -2) intervalo vazio!
175 Estruturas de controlo
…
177 Estruturas de controlo