Escolar Documentos
Profissional Documentos
Cultura Documentos
www.simplificaaulas.com
Reatribuição
A reatribuição faz com que a variável existente se refira a um
novo valor (e pare de se referir ao valor antigo).
Atualização de variáveis
Uma das forma mais comuns de reatribuição
é atualização (update) onde o novo valor da variável depende do
antigo. Por exemplo: x=x+1
www.simplificaaulas.com
Funções
Funções são usadas para converter valores de um tipo para o
outro.
int pode converter para inteiro um número “quebrado”
(float) ou um string. Para números quebrados, a parte
decimal do número é descartada - um processo que
chamarems de truncamento.
float transforma um inteiro, um float ou um string
representado em um float de maneira sintaticamente legal
em um float.
str transforma os seus argumentos em um string. Lembre-
se que quando imprimimos um string, os apóstrofes ou
aspas que o delimitam são removidos. Entretanto, se
imprimimos o tipo de um string vemos que ele é str.
type retorna a classe a que pertence um valor.
eDivisivel retorna ou True ou False para indicar se um
número (ou variável) é ou não divisível por outro.Essa
função é booleana, ou seja, resulta em um valor booleano
(True ou False).
www.simplificaaulas.com
Operadores e operandos (valores sobre os quais o operador
trabalha)
+ soma
- subtração
* multiplicação,
** exponenciação.
/ divisão podendo resultar não inteiro
// divisão resultando sempre um inteiro
% operador módulo ou operador resto : devolve o resto da
divisão do primeiro operando pelo segundo. Podemos
utilizá-lo para verificar se um número é divisível por outro,
você pode extrair o dígito ou dígitos mais à direita de um
número. Por exemplo, x %10 é o dígito mais a direita
de x (na base 10). Similarmente x % 100 é o número
formado pelos dois último dígitos de x.O operador resto
também é extremamente útil para fazermos conversões,
digamos, de segundos para horas, minutos e segundos.
1. Parenteses
2. Exponeciação
3. Multiplicação e ambas as divisões (operadores com
a mesma precedência são executados da esquerda
para a direira).
4. Adição/ Subtração
5. Relacional (==, !=, <=, >=, >, <)
6. Not
7. And
8. Or
www.simplificaaulas.com
Operadores Lógicos
and é verdadeiro se ambas as condições são verdadeiras
or é verdadeiro se uma das condições é verdadeira
not nega uma expressão booleana, de forma
que not x > y é verdadeiro se x > y é falso, isto é, se x é
menor ou igual a y.
Condicional: If
Exemplo:
if A < B:
elif A> B:
else:
www.simplificaaulas.com
Python provê uma forma alternativa de escrever seleções
aninhadas como as mostradas na seção anterior. Isto é
chamado algumas vezes
Para simplificar ainda mais o código de programas com if-
else aninhados, o Python oferece o comando if-elif-else.
O elif é apenas uma contração do else if que torna mais claro o
tratamento das várias alternativas, encadeando as condições.
Blocos de elif podem ser repetido várias vezes.
Ou seja, o if-elif-else pode ter um ou mais blocos com elif, cada
um com a sua condição específica. Cada bloco (condição) é
testado um de cada vez, até que uma condição seja satisfeita e
apenas os comandos dentro desse bloco são executados.
Quando nenhuma condição é satisfeita, os comandos dentro
do else são executados. Assim, não é necessário que haja
um else no final.
Repetição: while
www.simplificaaulas.com
EXERCÍCIOS (vídeos de resoluções destes exercícios em
simplificaaulas.com)
9 8 7 6 'nao eh primo'
6 'nao eh primo'
3 'nao eh primo'
7 7 5 'nao eh primo'
8 'nao eh primo'
5 'nao eh primo'
4 4 'nao eh primo'
www.simplificaaulas.com
6 'nao eh primo'
9 'nao eh primo'
3 3 'eh primo'
9 'nao eh primo'
3 'nao eh primo'
8 'nao eh primo'
5 'nao eh primo'
4 'nao eh primo'
7 'nao eh primo'
2) (P1 2017) Esta é uma questão com vários itens, cada item
com 5 ou 6 opções, para ser selecionada a única opção correta.
Será apresentado um enunciado de um algoritmo a ser
construído e será fornecido um arcabouço do código, ou seja,
será apresentada a estrutura do código com várias lacunas,
como no modelo abaixo.
def main() :
n = int(input())
div = 2
ehprimo = True
while L1
if L2
ehprimo = False
L3
if L4
L5
else:
print(n, "eh primo"):
www.simplificaaulas.com
main()
L1:
a) d <= b + b
b) d > a + a
c) V1>0 and algo!=False
d) (div<n and ehprimo)
e) V1!=0
L2:
a) a = b + c
b) b = d + 1
c) (n % div ==0)
d) b = b // 10
e) c = c % 10
L3:
a) b = a + c
b) a = a + 1
c) v1 = v1%10
d) div = div + 1
e) b = a
L4:
a) b = a
b) (not ehprimo):
c) div = div + 1
d) v1 = v1%10
e) b = a + c
L5:
www.simplificaaulas.com
a) Print(n, “nao eh primo”
b) div = div + 1
c) v1 = v1%10
d) b = a
e) b = a + c
www.simplificaaulas.com
3) (P1 2017) Este é um exemplo SIMPLES de um dos modelos de
questão da prova. Nesta questão você deve elaborar um
programa que, dado um número diga se ele é primo. Para isso
você deve usar APENAS os trechos de código indicados
abaixo. Assinale a alternativa que contém os blocos corretos
na ORDEM correta. ATENÇÃO: os blocos não estão identados
assim o nal do laço é indicado por um '*', após o número de
bloco que contém o último comando do laço. DICA 1: As
variáveis do programa são APENAS: e_primo; n; div. DICA 2:
Não tente usar todas as combinações, tente codicar o
programa na área de rascunho e depois escolha os trechos
adequados. O RASCUNHO NÃO SERÁ CONSIDERADO NA
NOTA
5,9,2,11,13,*,4
5,9,2,11, 10,*, 4
6,8,2,11,13,10,4,*
5,9,2,11,13,*,4
6,8,2,11,10,4,*
5,9,2,11,13,10,*,4
www.simplificaaulas.com
4) (P1 2017) Esta é uma questão para selecionar afirmações
corretas. Nela daremos alguns trechos de código e você
deverá analisar as afirmações sobre cada trecho e marcar
APENAS os corretos.
Existem hipóteses sobre o tipo de valores que o usuário digitará
e as afirmações corretas são aquelas para as quais qualquer
que seja a entrada válida, a afirmação se verifica.
Note que devido ao tipo de questão: para cada afirmação
correta marcada, um valor positivo será computado para a nota
do exercício, mas de forma inversa, se for marcada uma
afirmação falsa, será descontado um valor parcial da nota.
T1
Verifica se o número é composto
Imprime não se o número não é primo
Verifica se o número é primo
www.simplificaaulas.com
Falha ao tentar verificar se o número é primo
Pode imprimir sim em alguns casos
T2
Pode imprimir sim em alguns casos
Falha ao tentar verificar se o número é primo
Imprime não se o número não é primo
Verifica se o número é primo
Verifica se o número é composto
T3
Imprime não se o número não é primo
Pode imprimir sim em alguns casos
Falha ao tentar verificar se o número é primo
Verifica se o número é primo
Verifica se o número é composto
T4
Imprime não se o número não é primo
Verifica se o número é primo
Pode imprimir sim em alguns casos
Falha ao tentar verificar se o número é primo
Verifica se o número é composto
www.simplificaaulas.com
5) (P1 2016)
Sejam a, b e c números inteiros tais que a ≥ b ≥ c > 0. Sabe-se
que os valores a, b e c são comprimentos dos lados de um
triângulo se a < b + c. Suponha que a, b e c são comprimentos
dos lados de um triângulo. Quanto aos ângulos diz-se que um
triângulo é
se a2 = b2 + c2;
se a2 > b2 + c2 ou
se a2 < b2 + c2.
Quanto aos lados diz-se que um triângulo é
se os três lados têm o mesmo comprimento;
se exatamente dois lados têm o mesmo comprimento; ou
se os três lados têm comprimentos diferentes.
Escreva um programa que lê 3 números inteiros positivos e
imprime uma mensagem indicando se eles são ou não
comprimentos dos lados de um triângulo. No caso deles serem
comprimentos de um triângulo o programa deve ainda imprimir
mensagens indicando a classificação do triângulo quanto aos
ângulos e quanto aos lados.
A seguir estão 4 exemplos de execução do programa. A saída
do seu programa deve ser igual às mostradas nos exemplos. Os
valores em vermelho foram digitados pelo usuário.
www.simplificaaulas.com
www.simplificaaulas.com
6) (P1 2016)
Esta questão consiste na implementação de 3 funções.
a) Suponha que s e c são inteiros, s ≥ 0 e c ≥ 0, com o mesmo
número de dígitos. Zeros à esquerda são levados em
consideração.
Uma mesma posição em que s e c têm um mesmo dígito é
chamada de posição certa.
Por exemplo, se considerarmos inteiros com 3 dígitos, temos
que
s = 123 e c = 123 têm 3 posições certas;
s = 12 (= 012) e c = 123 têm 0 posições certas;
s = 111 e c = 1 (= 001) têm 1 posição certa;
s = 50 (= 050) e c = 505 têm 0 posições certas; e
s = 708 e s = 8 (= 008) têm 2 posições certas.
Escreva uma função posicoes_certas() como especificada a
seguir.
www.simplificaaulas.com
b) Suponha que s e c são inteiros, s ≥ 0 e c ≥ 0, com o mesmo
número de dígitos. Zeros à esquerda são levados em
consideração.
Diremos que pode haver um casamento entre uma posição de
s e uma posição de c se essas posições têm um mesmo dígito.
Por exemplo, se s = 123 e c = 321, então pode haver casamento
entre a unidade de s e a centena de c, a dezena de s e a dezena
de c e a unidade de s e a centena de c.
O número de dígitos casados entre s e c é o maior número
possível de casamentos entre posições de s e c em que uma
mesma posição não apareça em dois casamentos (poligamia é
proibida). Por exemplo, se considerarmos inteiros com 3
dígitos, temos que:
www.simplificaaulas.com
Escreva uma função digitos_casados() como especificada a
seguir.
c)
Escreva um programa (= função main()) que sorteia um inteiro
segredo, segredo ≥ 0, com 3 dígitos, que deverá ser adivinhado
por um jogador. Zeros à esquerda são considerados.
Em cada tentativa do jogador para adivinhar o inteiro segredo
o programa:
lê um inteiro chute digitado pelo jogador, chute ≥ 0, com 3
dígitos, zeros à esquerda são considerados;
imprime o número de posições certas de segredo e chute; e
imprime o número de dígitos casados de segredo e chute.
O programa deve parar assim que o número segredo for
adivinhado pelo jogador ou depois de 6 tentativas frustadas. Ao
final, o programa deve imprimir uma mensagem informado o
número sorteado e se o jogador adivinhou ou não o segredo.
O seu programa deve utilizar a função posicoes_certas() do
item 3(a) e a função digitos_casados() do item 3(b) . Você
pode utilizar essas funções mesmo que não as tenha feito.
A seguir estão exemplos de 3 execuções do programa. A saída
do seu programa deve ser igual às mostradas nos exemplos. Os
valores em vermelho foram digitados pelo usuário.
www.simplificaaulas.com
www.simplificaaulas.com
7) (P1 2016)
Dizemos que uma sequência com pelo menos 3 números
inteiros e sem elementos consecutivos iguais é um se tem um
pedaço inicial crescente (estritamente) depois fica
decrescente (estritamente) até o final.
[1,2,1] é um pico, pois tem o pedaço inicial crescente [1,2] e
depois decresce.
[1,5,3] é um pico, pois tem o pedaço inicial crescente [1,5] e
depois decresce.
[2, 5, 10, 46, 25, 12, 7] é um pico, pois tem o pedaço inicial
crescente [2, 5, 10, 46] e depois só decresce.
[13, 5, 4, 12, 3, 0, -3, -14] não é um pico, pois o seu pedaço inicial
[13, 5] é decrescente.
[6, 7, 8, 9, 10] não é um pico, pois tem apenas um pedaço
crescente.
www.simplificaaulas.com
[10, 9, 7, 4] não é um pico, pois tem apenas um pedaço
decrescente.
[1, 2, 1, 2, 1, 2, 1] não é um pico, pois depois do pedaço inicial
crescente [1, 2] não decresce até o final.
Escreva um programa (= função main()) que lê um inteiro n, n ≥
3, e uma sequência com n números inteiros e imprime uma
mensagem indicando se a sequência é um pico ou não. O seu
programa pode supor, sem verificar, que a sequência não tem
números consecutivos iguais.
A seguir estão 4 exemplos de execução do programa. A saída
do seu programa deve ser igual às mostradas nos exemplos. Os
valores em vermelho foram digitados pelo usuário.
www.simplificaaulas.com
8) (P1 2014)
Na figura ao lado, no plano cartesiano, a região sombreada não
inclui as linhas de bordo. Note que o eixo y cai bem no meio da
figura, e usamos o lado do quadrado para indicar as ordenadas
correspondentes.
Escreva na página do desenho um programa que lê as
coordenadas cartesianas (x, y) de um ponto (ambas do tipo
float) e imprime entro se esse ponto está na região, e fora caso
contrário.
www.simplificaaulas.com
9) (P1 2014) Escreva um programa que lê dois inteiros m e n, 0
< m < n, e determina quantos inteiros entre m e n, escritos sem
0 à esquerda, não têm dígitos repetidos. Exemplos:
para m = 10, n = 12 imprime 2 (corresponde a 10 12)
para m = 10, n = 30 imprime 19 (corresponde a 10 12 13 14 15
16 17 18 19 20 21 23 24 25 26 27 28 29 30)
para m = 989, n = 1022 imprime 0
para m = 98, n = 102 imprime 2
(corresponde a . . .)
www.simplificaaulas.com