Introdução À Computação - Algoritmo e Introdução Ao Python
Introdução À Computação - Algoritmo e Introdução Ao Python
Introdução à Computação
Algoritmo e Introdução ao Python
Profª. Dra. Eunice Bezerra
1 / 113
Algoritmo
ufpi cshnb
Algoritmo
3 / 113
ufpi cshnb
Algoritmo
4 / 113
ufpi cshnb
5 / 113
ufpi cshnb
Algoritmo
6 / 113
ufpi cshnb
7 / 113
ufpi cshnb
Algoritmo
8 / 113
ufpi cshnb
Algoritmo
Entrada de dados
• A execução de um algoritmo requer o fornecimento das
informações necessárias para realizar os comandos (as
instruções a serem seguidas);
• Essas informações também podem ser referidas como valores
iniciais;
Processamento de dados
• É nessa parte em que todas as expressões algébricas,
relacionais e lógicas são avaliadas;
• Além de todas as estruturas de controle existentes no
algoritmo (condição e/ou repetição);
9 / 113
ufpi cshnb
Algoritmo
Saída de dados
• Todos os resultados do processamento (ou parte deles) são
enviados para um ou mais dispositivos de saída, como:
monitor, impressora, ou até mesmo a própria memória do
computador;
10 / 113
ufpi cshnb
Pseudocódigo
11 / 113
ufpi cshnb
12 / 113
Representação de Dados
ufpi cshnb
14 / 113
ufpi cshnb
Constantes e Variáveis
15 / 113
ufpi cshnb
Manipulação de Dados
Identificação
• Para que os dados sejam manipulados no computador, é
necessário que estes estejam associados a um nome, um
identificador;
• O conteúdo deste identificador será o dado em si e o seu nome
será usado para acessar o dado e realizar operações com o
mesmo;
• Ao nomearmos os identificadores dos nossos dados é
conveniente usarmos palavras mnemônicas, ou seja, palavras
que nos façam lembrar o caráter do conteúdo armazenado;
• Isso facilita a leitura do código programado e possibilita uma
melhor documentação do mesmo.
16 / 113
ufpi cshnb
Manipulação de Dados
17 / 113
ufpi cshnb
Manipulação de Dados
Identificação
• Exemplos de identificadores válidos: raio, _nome, R,
num_clientes, BJ33f15, NumPessoasDoentes;
• Exemplos de identificadores inválidos: (ee), 32-vr, mil*,
12ddd, o:P;
18 / 113
ufpi cshnb
Manipulação de Dados
Definição
• O primeiro passo para utilizarmos os dados é a nomeação do
seu idenficador e a definição do seu tipo (no caso de
identificadores variáveis), ou do seu valor (no caso de
identificadores constantes);
• A definição dos dados em algoritmos também é conhecida
como declaração;
• Um identificador declarado com um determinado tipo de dados
ficará restrito a armazenar valores daquele tipo específico;
var
nome: caractere;
19 / 113
ufpi cshnb
Manipulação de Dados
Atribuição
• Após realizada a declaração de um identificador, é possível
iniciar a manipulação dos dados que esse identificador irá
representar a partir da atribuição de valores ao mesmo;
• A atribuição de valores a uma variável é feita da seguinte
forma:
<idenfiticador da variável> recebe <valor do mesmo tipo da
variável>;
<idenfiticador da variável> recebe <operações cujo resultado é do
mesmo tipo da variável>;
20 / 113
ufpi cshnb
21 / 113
Introdução à Computação
com Python
ufpi cshnb
23 / 113
ufpi cshnb
Fundamentalmente:
• realiza cálculos;
• lembra resultados;
24 / 113
ufpi cshnb
25 / 113
ufpi cshnb
Tipos de Conhecimento
26 / 113
ufpi cshnb
27 / 113
ufpi cshnb
28 / 113
ufpi cshnb
Computadores de programa
armazenado
29 / 113
ufpi cshnb
IMPORTANTE
30 / 113
Linguagens de Programação
ufpi cshnb
Linguagens de Programação
Criando Receitas
• Uma linguagem de programação fornece um conjunto de
operações primitivas;
• Em uma linguagem de programação, existem expressões que
são combinações legais de operações;
• Expressões e cálculos têm valores e significados em uma
linguagem de programação;
32 / 113
ufpi cshnb
Construções primitivas
• Português: palavras;
• Linguagem de programação: números, caracteres e operadores
simples;
33 / 113
ufpi cshnb
Sintaxe
• Português:
• "cachorro gato vaca"→ não é sintaticamente válido;
• "O cachorro bebe água"→ sintaticamente válido;
• Linguagem de programação:
• "Oi"7 → não é sintaticamente válido;
• 3.2+1 → sintaticamente válido;
34 / 113
ufpi cshnb
35 / 113
ufpi cshnb
36 / 113
ufpi cshnb
Tipos de Erro
• Erros de sintaxe;
• Erros de semântica (construção das expressões);
• Construção de semântica válida com significado diferente do
originalmente pretendido:
• O programa pode parar de funcionar;
• O programa pode rodar para sempre;
• O programa fornece um resultado diferente do pretendido.
37 / 113
Programas em Python
ufpi cshnb
Programas em Python
39 / 113
ufpi cshnb
Objetos
40 / 113
ufpi cshnb
Objetos Escalares
41 / 113
ufpi cshnb
Tipos de Conversão
42 / 113
ufpi cshnb
Expressões
43 / 113
ufpi cshnb
• i + j → soma;
• i − j → diferença;
• i ∗ j → produto;
• i/j → divisão (o resultado é real);
• i//j → divisão inteira (o resultado é inteiro e corresponde ao
quociente);
• i % j → fornece o resto da divisão de i por j;
• i ∗ ∗j → i elevado a potência j;
44 / 113
ufpi cshnb
Exemplo: i = 7 e j = 3
• 7 + 3 resulta em 10;
• 7 − 3 resulta em 4;
• 7 ∗ 3 resulta em 21;
• 7/3 resulta em 2,33;
• 7//3 resulta em 2;
• 7 % 3 resulta em 1;
• 7 ∗ ∗3 resulta em 343;
45 / 113
ufpi cshnb
Operações Simples
46 / 113
ufpi cshnb
47 / 113
ufpi cshnb
Abstraindo Expressões
pi = 3,14
raio = 2
area = pi*(raio**2)
48 / 113
ufpi cshnb
Programação vs Matemática
49 / 113
ufpi cshnb
Incremento
’raio = raio + 1’ é equivalente ao comando ’raio += 1’
Decremento
’raio = raio - 1’ é equivalente ao comando ’raio -= 1’
50 / 113
ufpi cshnb
51 / 113
ufpi cshnb
52 / 113
ufpi cshnb
Expressões Lógicas
Operadores Relacionais ou de Comparação
• São aqueles que comparam dois valores do mesmo tipo;
• O retorno da expressão relacional indica se o resultado da
comparação foi verdadeiro ou falso;
• Por exemplo, a expressão 2 < 3 é verdadeira;
Operadores Lógicos
• São usados para representar situações lógicas que não podem
ser representadas por operadores aritméticos;
• Também são chamados conectivos lógicos por unirem duas
expressões simples numa composta;
• Os operadores lógicos estabelecem relações de “e”, “ou” e
“não é”;
53 / 113
ufpi cshnb
Operadores de Comparação
int e float
• i > j → retorna True se i é maior que j, ou False caso
contrário;
• i >= j → retorna True se i é maior ou igual a j, ou False
caso contrário;
• i < j → retorna True se i é menor que j, ou False caso
contrário;
• i <= j → retorna True se i é menor ou igual a j, ou False
caso contrário;
• i == j → teste de igualdade, retorna True se i é igual a j, ou
False caso contrário;
• i ! = j → teste de diferença, retorna True se i é diferente de j,
ou False caso contrário;
54 / 113
ufpi cshnb
Exemplo: i = 7 e j = 3
55 / 113
ufpi cshnb
Operadores Lógicos
56 / 113
ufpi cshnb
and
57 / 113
ufpi cshnb
and
58 / 113
ufpi cshnb
Exemplo: and
59 / 113
ufpi cshnb
or
60 / 113
ufpi cshnb
or
61 / 113
ufpi cshnb
Exemplo: or
62 / 113
ufpi cshnb
not
63 / 113
ufpi cshnb
not
• not Teste1 → retorna True se Teste1 for falso e retorna False
se Teste1 for verdadeiro;
• Exemplo: not 8 < 6 → o teste é falso, logo, teremos True
como retorno;
• Exemplo: not 8 > 6 → o teste é verdadeiro, logo, teremos
False como retorno;
• O mesmo se aplica a variáveis;
• Exemplo:
variavel1 = True
variavel2 = False
not variavel1 → a variável é verdadeira, logo, teremos False como
retorno;
not variavel2 → a variável é falsa, logo, teremos True como
retorno;
64 / 113
ufpi cshnb
Exemplo: not
65 / 113
ufpi cshnb
Operadores Lógicos
66 / 113
ufpi cshnb
• Nome:
• descritivo;
• significativo;
• ajudar na releitura do código;
• não pode ser palavras-chave.
• Valor:
• informação armazenada;
• pode ser atualizado;
67 / 113
ufpi cshnb
x=3
x = x*x
y=x+1
68 / 113
ufpi cshnb
Exemplos de Atribuição
• Trocando variáveis
x=1
y=2
x=y
y=x
Esse código consegue alterar os valores de x e y?
69 / 113
ufpi cshnb
Exemplos de Atribuição
• Trocando variáveis
x=1
y=2
temp = y
y=x
x = temp
70 / 113
Strings
ufpi cshnb
Tipos
• int
• float
• bool
• string
72 / 113
ufpi cshnb
Strings
oi = ’Boa tarde’
nome = ’Maria’
cumprimento = oi + “ ” + nome
73 / 113
ufpi cshnb
Operações em Strings
74 / 113
ufpi cshnb
Exemplo
75 / 113
Comandos de Entrada e Saída
ufpi cshnb
Saída
• Para imprimirmos algum tipo de informação na tela do
computador utilizamos o comando escreva seguido da
informação que será escrita;
• Por exemplo, teríamos um estrutura parecida com
escreva (“Olá Mundo”)
ou
escreva (variável)
• As aspas servem para delimitar uma sequência de caracteres a
ser mostrado na tela da mesma forma que aparece dentro do
comando;
• As aspas em si não são impressas ou mostradas;
• Quando o comando de escrever se refere a uma variável, o que
aparece na tela é o conteúdo associado a esse identificador;
77 / 113
ufpi cshnb
Saída
78 / 113
ufpi cshnb
print ()
79 / 113
ufpi cshnb
print ()
80 / 113
ufpi cshnb
print ()
IMPORTANTE!
print(“x”) é diferente de print(x)
x=1
print(x)
xstring = str(x)
print(“Meu número favorito é ”, x, “.”, “x = ”, x)
print(“Meu número favorito é ” + xstring +“.” + “x = ” + xstring)
81 / 113
ufpi cshnb
Entrada
82 / 113
ufpi cshnb
input(“ ”)
83 / 113
ufpi cshnb
84 / 113
ufpi cshnb
85 / 113
Estruturas de Controle
ufpi cshnb
Estruturas de Controle
• Estruturas de Condição;
• Estruturas de Repetição
87 / 113
ufpi cshnb
Estruturas de Condição
88 / 113
ufpi cshnb
Se-então
• A estrutura de condição mais simples é a se-então;
• A <expressão-lógica> é uma expressão que deverá retornar
um valor de verdadeiro ou de falso;
• Caso o resultado dessa expressão for verdadeiro, será
executado o bloco de comandos que está dentro da estrutura;
• Caso seja falso, a execução do programa ignora o bloco de
comando e continua na linha seguinte à estrutura de condição;
• O <bloco de comandos> é uma sequência de código que será
executado somente quando o resultado da expressão lógica for
verdadeiro;
89 / 113
ufpi cshnb
90 / 113
ufpi cshnb
Python (if)
91 / 113
ufpi cshnb
Se-então-senão
92 / 113
ufpi cshnb
93 / 113
ufpi cshnb
94 / 113
ufpi cshnb
Python (if-else)
95 / 113
ufpi cshnb
96 / 113
ufpi cshnb
97 / 113
ufpi cshnb
98 / 113
ufpi cshnb
99 / 113
ufpi cshnb
100 / 113
ufpi cshnb
Controle de Fluxo
101 / 113
ufpi cshnb
Indentação
102 / 113
Exemplos
ufpi cshnb
104 / 113
ufpi cshnb
105 / 113
ufpi cshnb
c)» a = 3
»d=a-7
»a
Tipo: ..................................................
Resultado: ..................................................
d)» b = 1
» e = b * 3.0
»e
Tipo: ..................................................
Resultado: ..................................................
e)» a = 2
» a = a*a
»a
Tipo: ..................................................
Resultado: ..................................................
107 / 113
ufpi cshnb
108 / 113
ufpi cshnb
d) » str1[-1]
Tipo: ..................................................
Resultado: ..................................................
e) » len(str1)
Tipo: ..................................................
Resultado: ..................................................
f) » str1[len(str1)]
Tipo: ..................................................
Resultado: ..................................................
g) » str1 + str2 + str3
Tipo: ..................................................
Resultado: ..................................................
h) » str1 + str2 + ‘ ‘ +str3
Tipo: ..................................................
Resultado: ..................................................
109 / 113
ufpi cshnb
i) » str3 * 3
Tipo: ..................................................
Resultado: ..................................................
j) » “hello” == str1
Tipo: ..................................................
Resultado: ..................................................
k) » “HELLO” == str1
Tipo: ..................................................
Resultado: ..................................................
l) » “a” in str3
Tipo: ..................................................
Resultado: ..................................................
110 / 113
ufpi cshnb
111 / 113
ufpi cshnb
q) » str1 [1:]
Tipo: ..................................................
Resultado: ..................................................
r) » str4 [1:9]
Tipo: ..................................................
Resultado: ..................................................
s) » str4 [1:9:2]
Tipo: ..................................................
Resultado: ..................................................
t) » str4 [: : 1]
Tipo: ..................................................
Resultado: ..................................................
112 / 113
ufpi cshnb
Referências
113 / 113