Escolar Documentos
Profissional Documentos
Cultura Documentos
Pedro Vasconcelos
DCC/FCUP 2019 1/ 25
Nesta aula. . .
1 Porquê programar?
2 Linguagens de Programação
3 A linguagem Python
Pedro Vasconcelos
DCC/FCUP 2019 2/ 25
O que é a programação de computadores?
Pedro Vasconcelos
DCC/FCUP 2019 3/ 25
Pedro Vasconcelos
DCC/FCUP 2019 4/ 25
Porquê aprender a programar? (cont.)
Pedro Vasconcelos
DCC/FCUP 2019 5/ 25
Linguagens de Programação
sintaxe semântica
3 × (1 + 2) ok 9
3×1+2 ok 5
×)1 + 2 + (3 erro —
H2 O ok água
2 zZ erro —
Pedro Vasconcelos
DCC/FCUP 2019 6/ 25
Código máquina
55 89 e5 83 ec 20 83 7d 0c 00 75 0f ...
Pedro Vasconcelos
DCC/FCUP 2019 7/ 25
Linguagem assembly
55 push %ebp
89 e5 mov %esp,%ebp
83 ec 20 sub $0x20,%esp
83 7d 0c 00 cmpl $0x0,0xc(%ebp)
75 0f jne 1b
... ...
Pedro Vasconcelos
DCC/FCUP 2019 8/ 25
Linguagens de alto-nível
n = 10
p = 1
for i in range(2, n+1):
p = p*i
print("factorial de ", n, " = ", p)
Pedro Vasconcelos
DCC/FCUP 2019 9/ 25
Pedro Vasconcelos
DCC/FCUP 2019 10/ 25
Interpretadores vs. compiladores (cont.)
Pedro Vasconcelos
DCC/FCUP 2019 11/ 25
1956 Fortran I
1958 Lisp
1960 Cobol, Algol 60
1970 Pascal
1976 Fortran 77
1978 C (K&R)
1980 Smalltalk 80
1984 Common Lisp, C++
1986 Perl
1990 Fortran 90, Python, Haskell
1995 Java, JavaScript
2000 Python 2, C#
2008 Python 3
Pedro Vasconcelos
DCC/FCUP 2019 12/ 25
Porquê tantas linguagens?
Pedro Vasconcelos
DCC/FCUP 2019 13/ 25
Diferentes paradigmas:
imperativo: Algol, Pascal, C
funcional: Lisp, Scheme, ML, OCaml, Haskell
lógico: Prolog
orientado a objectos: Smalltalk, C++, Java, C#
Preferências subjectivas (estilo, elegância, legibilidade)
Pedro Vasconcelos
DCC/FCUP 2019 14/ 25
A linguagem Python
Pedro Vasconcelos
DCC/FCUP 2019 15/ 25
A linguagem Python
Pedro Vasconcelos
DCC/FCUP 2019 16/ 25
Utilização interativa
Pedro Vasconcelos
DCC/FCUP 2019 17/ 25
Pedro Vasconcelos
DCC/FCUP 2019 18/ 25
Utilização com um script (cont.)
Pedro Vasconcelos
DCC/FCUP 2019 19/ 25
Pedro Vasconcelos
DCC/FCUP 2019 20/ 25
Usar Python como uma calculadora (cont.)
Pedro Vasconcelos
DCC/FCUP 2019 21/ 25
Funções matemáticas
>>> math.sqrt(2)
1.4142135623730951
>>> math.pi
3.141592653589793
Pedro Vasconcelos
DCC/FCUP 2019 22/ 25
Funções matemáticas (cont.)
Pedro Vasconcelos
DCC/FCUP 2019 23/ 25
Tipos
Tipos básicos
tipo exemplos
inteiros int 1 -33 29
vírgula-flutuante float 1.0 -0.025 3.14156
cadeias de texto str "Ola mundo!" ’ABC’ ’1.23.99’
Pedro Vasconcelos
DCC/FCUP 2019 24/ 25
Tipo de um resultado
>>> (1+2+3)*5-1
29
>>> type((1+2+3)*5-1)
<class ’int’>
>>> type(1.234)
<class ’float’>
>>> type(’ABC’)
<class ’str’>
Pedro Vasconcelos
DCC/FCUP 2019 25/ 25