Você está na página 1de 141

Processamento da Informação

Revisão
Suzana de Siqueira Santos
CMCC, UFABC

Q1 2024
Parte do material é baseado nos slides dos professores Jesús P. Mena-Chalco, Francisco Zampirolli e Carla Negri
Tipos de dados,
operadores e
variáveis
Tipos de dados

3
Tipos de dados
Inteiros (int): números inteiros, como 3,
100, 1, etc

3
Tipos de dados
Inteiros (int): números inteiros, como 3,
100, 1, etc
Números de ponto flutuante (float):
números com casas decimais, como 3.5,
4.33, 100.0, etc

3
Tipos de dados
Inteiros (int): números inteiros, como 3,
100, 1, etc
Números de ponto flutuante (float):
números com casas decimais, como 3.5,
4.33, 100.0, etc
String (str): sequência de caracteres, como
”olá”, ’hello’, ”100”, etc

3
Tipos de dados
Inteiros (int): números inteiros, como 3,
100, 1, etc
Números de ponto flutuante (float):
números com casas decimais, como 3.5,
4.33, 100.0, etc
String (str): sequência de caracteres, como
”olá”, ’hello’, ”100”, etc
Listas (list): sequência de objetos, como [1,
2, 6], [3, ”ola”, 4], etc

3
Tipos de dados
Inteiros (int): números inteiros, como 3,
100, 1, etc
Números de ponto flutuante (float):
números com casas decimais, como 3.5,
4.33, 100.0, etc
String (str): sequência de caracteres, como
”olá”, ’hello’, ”100”, etc
Listas (list): sequência de objetos, como [1,
2, 6], [3, ”ola”, 4], etc
booleanos (bool): valor lógico que vale True
(verdadeiro) ou False (falso)
3
Precedência dos operadores

Operador Operação
** Exponenciação
- Negação
* Multiplicação
/ Divisão
// Divisão inteira
% Módulo (resto da divisão)
+ Soma
- Subtração
= Atribuição

4
Precedência dos operadores

Quanto vale a expressão?

−2 ∗ ∗4 + 1

5
Precedência dos operadores

Quanto vale a expressão?

−2 ∗ ∗4 + 1

-15

5
Expressões

Escreva a seguinte expressão usando


operadores binários:
1
7+
14 − 1
9

6
Expressões

Escreva a seguinte expressão usando


operadores binários:
1
7+
14 − 1
9

7 + 1/(14-1/9)

6
Variáveis
Uma variável permite guardar um valor na memória
para acessá-lo depois.

7
Variáveis
Uma variável permite guardar um valor na memória
para acessá-lo depois.
1 x = int ( input () )
2 x = x + 2
3 print ( x )

7
Variáveis
Uma variável permite guardar um valor na memória
para acessá-lo depois.
1 x = int ( input () )
2 x = x + 2
3 print ( x )
>3
5

7
Variáveis
Uma variável permite guardar um valor na memória
para acessá-lo depois.
1 x = int ( input () )
2 x = x + 2
3 print ( x )
>3
5
O operador ”=” serve para fazer a atribuição. O nome
da variável sempre deve estar do lado esquerdo do
operador. Tudo que está do lado direito vai ser
avaliado e o resultado vai ser armazenado na variável

7
Variáveis - exemplo

8
Variáveis - exemplo

> a = 1 + 3 + 16/4
> print(a)
8

8
Variáveis - exemplo

> a = 1 + 3 + 16/4
> print(a)
8
> 1 + 3 + 16/4 = a
> print(a)
SyntaxError: cannot assign to expression here. Maybe
you meant ’==’ instead of ’=’?

8
Operadores de atribuição
compostos

9
Operadores de atribuição
compostos

X += 1 → X = X+1

9
Operadores de atribuição
compostos

X += 1 → X = X+1

X -= 5 → X = X-5

9
Operadores de atribuição
compostos

X += 1 → X = X+1

X -= 5 → X = X-5

X *= 7 → X = X*7

9
Operadores de atribuição
compostos

X += 1 → X = X+1

X -= 5 → X = X-5

X *= 7 → X = X*7

X /= 87 → X = X/87

9
Variáveis

10
Modularização
Módulo / método / Função

Um módulo (subrotina, método,


procedimento ou função), é um trecho de
programa com finalidade específica,
construído sob um nome.

12
Vantagens
Evita repetição de código, facilitando
alterações

Pode ajudar a dividir um problema em


subproblemas

Flexibilidade (reaproveitamento de código)

Legibilidade

Organização

13
Exemplos de funções
pré-implementadas
print()
input()
abs()
int()
float()
str()
Para nós, essas funções funcionam como
caixa preta: suas estruturas são
desconhecidas, mas sabemos quais são as
entradas e as saídas esperadas.
14
Exemplos de uso de funções
pré-implementadas

1 n = int ( input () )
2 p = abs ( n ) + round ( n /7 , 2)

15
Exemplos de funções da biblioteca
math

Algumas funções acessíveis após o comando


import math:
math.sqrt()
math.sin()
math.pi()
math.e()

16
Chamada de funções

17
Chamada de funções
> x = input
> print(x)
<bound method Kernel.raw_input of <spy-
der_kernels.console.kernel.SpyderKernel object at
0x7f084eb52190»

17
Chamada de funções
> x = input
> print(x)
<bound method Kernel.raw_input of <spy-
der_kernels.console.kernel.SpyderKernel object at
0x7f084eb52190»
> x = input()
> Oi
> print(x)
Oi

17
Chamada de funções
> x = input
> print(x)
<bound method Kernel.raw_input of <spy-
der_kernels.console.kernel.SpyderKernel object at
0x7f084eb52190»
> x = input()
> Oi
> print(x)
Oi
Para fazer a chamada de uma função é preciso abrir
e fechar parênteses. Se a função tiver parâmetros
também é preciso passar argumentos para a função.
A chamada de uma função será avaliada e resultará
em algum valor ou None
17
Passando argumentos/parâmetros

18
Passando argumentos/parâmetros
> abs(2)
2
> abs(-2)
2
> x = -3
> abs(x)
3
>y=4
> abs(1-(y-x))
6

18
Passando argumentos/parâmetros
> abs(2)
2
> abs(-2)
2
> x = -3
> abs(x)
3
>y=4
> abs(1-(y-x))
6

Uma função pode receber um ou mais argumentos


(dependendo de sua especificação). O argumento
pode ser uma expressão que será avaliada e o valor
resultante será passado para a função
18
Criando uma função em python

1 def quadruplo ( x) :
2 resposta = 4* x
3 return resposta

19
Criando uma função em python

1 def quadruplo ( x) :
2 resposta = 4* x
3 return resposta

Atenção: a identação delimita o que está


dentro da função

19
Criando uma função em python

1 def quadruplo ( x) :
2 return 4* x

20
Componentes de um módulo

Identificador Parâmetro

Variável
local
} Corpo

Valor devolvido

21
Chamando a função criada

22
Chamando a função criada

> y = quadruplo(3)
> print(y)
12

22
Escopo de uma variável
1 a = 1
2 b = 2
3 def f( a ) :
4 b = 1
5 a = a + b
6 return a
7 def g( b ) :
8 b = b - a
9 return b
10 print ( f ( a ) )
11 print ( g ( b ) )
12 print (a , b )

23
Escopo de uma variável
1 a = 1
2 b = 2
3 def f( a ) :
4 b = 1
5 a = a + b
6 return a
7 def g( b ) :
8 b = b - a
9 return b
10 print ( f ( a ) )
11 print ( g ( b ) )
12 print (a , b )
2
1
12
23
Estruturas de
seleção
Expressões booleanas

Expressões lógicas que resultam em True ou


False

25
Operadores relacionais

igual → ==
diferente → !=
Maior → >
Maior ou igual → >=
Menor → <
Menor ou igual → <=

26
ATENÇÃO: não confundir = com ==

27
ATENÇÃO: não confundir = com ==
> 4 == 4
True
> 4 == 5
False

27
ATENÇÃO: não confundir = com ==
> 4 == 4
True
> 4 == 5
False

>4=4
SyntaxError: cannot assign to literal here. Maybe you
meant ’==’ instead of ’=’?
>4=5
SyntaxError: cannot assign to literal here. Maybe you
meant ’==’ instead of ’=’?

27
Operadores lógicos

28
Operadores lógicos

and

28
Operadores lógicos

and
or

28
Operadores lógicos

and
or
not

28
Operadores lógicos

Expressão a b Resultado

29
Operadores lógicos

Expressão a b Resultado
True True True
True False False
a and b
False True False
False False False

29
Operadores lógicos

Expressão a b Resultado
True True True
True False False
a and b
False True False
False False False
True True True
True False True
a or b
False True True
False False False

29
Operadores lógicos

Expressão a b Resultado
True True True
True False False
a and b
False True False
False False False
True True True
True False True
a or b
False True True
False False False
True False
not a
False True

29
Exemplos

30
Exemplos

5 > 4 and 3 > 2 → True

30
Exemplos

5 > 4 and 3 > 2 → True


5 > 4 and 1 == 2 → False

30
Exemplos

5 > 4 and 3 > 2 → True


5 > 4 and 1 == 2 → False
5 > 4 or 1 == 2 → True

30
Exemplos

5 > 4 and 3 > 2 → True


5 > 4 and 1 == 2 → False
5 > 4 or 1 == 2 → True
not (5 > 4 or 1 == 2) → False

30
Abreviação quando um dos termos
comparados é o mesmo

x OP y OP z é o mesmo que x OP y and y OP z.

31
Abreviação quando um dos termos
comparados é o mesmo

x OP y OP z é o mesmo que x OP y and y OP z.


4<5>2

31
Abreviação quando um dos termos
comparados é o mesmo

x OP y OP z é o mesmo que x OP y and y OP z.


4 < 5 > 2 → 5 > 4 and 5 > 2

31
Abreviação quando um dos termos
comparados é o mesmo

x OP y OP z é o mesmo que x OP y and y OP z.


4 < 5 > 2 → 5 > 4 and 5 > 2 → True

31
Abreviação quando um dos termos
comparados é o mesmo

x OP y OP z é o mesmo que x OP y and y OP z.


4 < 5 > 2 → 5 > 4 and 5 > 2 → True
2 > 3 == 3 → 2 > 3 and 3 == 3 → False

31
Estrutura de seleção

32
Seleção simples

Executado
if (condição):
apenas se
condição for
Bloco de comandos 1 verdadeira

Executado
Bloco de comandos 2
independentemente
do valor de
condição

33
Seleção simples

Executado
if (condição):
apenas se
condição for
Bloco de comandos 1 verdadeira

Executado
Bloco de comandos 2
independentemente
do valor de
condição

Atenção: em python, a identação delimita o


que está no corpo do if
33
Seleção composta
Executado
if (condição):
apenas se
condição for
Bloco de comandos 1 verdadeira

Executado
else:
apenas se
condição for
Bloco de comandos 2 falsa

Executado
Bloco de comandos 3
independentemente
do valor de
condição

34
Estruturas de seleção encadeadas
if (condição1):
if (condição 2):

else:

else:

Bloco de comandos 2

Bloco de comandos 3

35
Comando elif
elif é a forma abreviada de else + if.
Executado apenas
se condição1 for
if (condição 1): verdadeira

Executado apenas
elif (condição2):
se condição1 for
falsa e condição2
for verdadeira
elif (condição3):
Executado apenas
se condição1 e
codição2 forem
...

falsas e a condição3
else: for verdadeira

Executado apenas
se todas as condições
anteriores forem falsas

36
Exemplo
Qual a saída quando o parâmetro vale ”B”?
1 def total1 ( c : str ) -> int :
2 t = 4;
3 if c == ” A”:
4 t = t -0
5 if c == ” B”:
6 t = t -1
7 if c == ” C”:
8 t = t -2
9 if c == ” D”:
10 t = t -3
11 else :
12 t = t -4
13 return t

37
Exemplo
Qual a saída quando o parâmetro vale ”B”?
1 def total1 ( c : str ) -> int :
2 t = 4;
3 if c == ” A”:
4 t = t -0
5 if c == ” B”:
6 t = t -1
7 if c == ” C”:
8 t = t -2
9 if c == ” D”:
10 t = t -3
11 else :
12 t = t -4
13 return t
> print(total1(”B”))
-1 37
Exemplo
Qual a saída quando o parâmetro vale ”B”?
1 def total2 ( c : str ) -> int :
2 t = 4;
3 if c == ” A”:
4 t = t -0
5 elif c == ”B”:
6 t = t -1
7 elif c == ”C”:
8 t = t -2
9 elif c == ”D”:
10 t = t -3
11 else :
12 t = t -4
13 return t

38
Exemplo
Qual a saída quando o parâmetro vale ”B”?
1 def total2 ( c : str ) -> int :
2 t = 4;
3 if c == ” A”:
4 t = t -0
5 elif c == ”B”:
6 t = t -1
7 elif c == ”C”:
8 t = t -2
9 elif c == ”D”:
10 t = t -3
11 else :
12 t = t -4
13 return t
> print(total2(”B”))
3 38
Estruturas de
repetição
Estrutura de repetição while

Repete um bloco de execução enquanto uma


dada condição for verdadeira:

40
Estrutura de repetição while

Repete um bloco de execução enquanto uma


dada condição for verdadeira:
1 while ( < condição >) :
2 < bloco_de_execução >

40
Estrutura de repetição while

Repete um bloco de execução enquanto uma


dada condição for verdadeira:
1 while ( < condição >) :
2 < bloco_de_execução >
Quando a condição da estrutura while se
tornar FALSA, a ação (ou bloco de ações) da
estrutura será pulada.
O programa continuará com a ação
imediatamente após a estrutura while.

40
Padrão de instrução - contador

Um “padrão de instrução” bastante


utilizado em programas que requerem o
uso de repetição é a figura do contador.

Um “contador” geralmente tem a seguinte a


forma var = var + 1, ou seja a variável
recebe o valor que ela já possui somado
com mais 1 e assim por diante.

41
Exemplo - contador

Escreva um algoritmo que lê um número


inteiro n e imprime todos os valores de 1 a n.
1 n = int ( input () )
2 i = 1
3 while i <= n :
4 print (i )
5 i = i +1

42
Padrão de Instrução - acumulador

Um outro “padrão de instrução” bastante


utilizado em programas que requerem o
uso de repetição é a figura do acumulador.

Um “acumulador” geralmente tem a


seguinte a forma var = var + x, ou seja a
variável recebe o valor que ela já possui
somado com mais x e assim por diante.

43
Exemplo - acumulador
Escreva um algoritmo que lê um valor n e em
seguida lê n valores inteiros e calcula a soma
dos valores.

44
Exemplo - acumulador
Escreva um algoritmo que lê um valor n e em
seguida lê n valores inteiros e calcula a soma
dos valores.
1 n = int ( input () )
2 i = 1
3 soma = 0
4 while i <= n :
5 x = int ( input () )
6 soma = soma + x
7 i = i + 1
8 print ( soma )

44
Exemplo - acumulador
Escreva um algoritmo que lê um valor n e em
seguida lê n valores inteiros e calcula a soma
dos valores.
1 n = int ( input () )
2 i = 1
3 soma = 0
4 while i <= n :
5 x = int ( input () )
6 soma = soma + x
7 i = i + 1
8 print ( soma )
Neste exemplo, utilizamos a variável i como contador
e soma como acululador
44
Laço de repetição for

Executa o bloco de instruções um


DETERMINADO número de vezes;

O for possui uma variável itera sobre cada


elemento de uma lista de valores

45
For

1 for < variável > in < lista de elementos >:


2 < bloco de instruções >
A variável terá todos os valores definidos na
lista de elementos.

46
Função range para gerar sequências

A função range permite criar um objeto que


contém uma sequência de números inteiros.

Quando usado com apenas um único


parâmetro, a sequência inicia em 0 e
continua até o número inteiro antes do valor
dado como parâmetro:

range(10) gera a sequência:


[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

47
Definindo um intervalo

Podemos usar 2 parâmetros na função


range:
range(5, 10) gera a sequência:
[5, 6, 7, 8, 9]

range(1, 7) gera a sequência:


[1, 2, 3, 4, 5, 6]

48
Definindo os passos
Podemos usar 3 parâmetros na função
range:
range(5,10,2)
[5, 7, 9]
range(5,10,3)
[5, 8]
range(5,10,4)
[5, 9]
range(5,10,5)
[5]
49
Sequências descrescentes

range(10,1,-1)
[10, 9, 8, 7, 6, 5, 4, 3, 2]

range(10,1,-2)
[10, 8, 6, 4, 2]

range(10,1,-3)
[10, 7, 4]

50
Exemplo

Faça um programa que lê um número n e


imprime os inteiros de 1 a n.

51
Exemplo

Faça um programa que lê um número n e


imprime os inteiros de 1 a n.
Imprimindo um número por linha

51
Exemplo

Faça um programa que lê um número n e


imprime os inteiros de 1 a n.
Imprimindo um número por linha
1 n = int ( input () )
2 for i in range (1 , n +1) :
3 print (i )

51
Exemplo

Imprimindo todos os valores na mesma linha

52
Exemplo

Imprimindo todos os valores na mesma linha


1 n = int ( input () )
2 for i in range (1 , n +1) :
3 print (i , end = ” ”)

52
Laços aninhados

Para resolver alguns problemas, é


necessário implementar um laço dentro do
outro

Costumamos chamar essas construções de


laços aninhados.

53
Exemplo
O que faz o código abaixo?
1 n = int ( input () )
2 for i in range (1 , n +1) :
3 for j in range (1 , n +1) :
4 print (i , j )

54
Exemplo
O que faz o código abaixo?
1 n = int ( input () )
2 for i in range (1 , n +1) :
3 for j in range (1 , n +1) :
4 print (i , j )
>3
11
12
13
21
22
23
31
32
33 54
Simulado
Questão 1

1 def funcao01 () -> int :


2 r = 2
3 r = r + 2* r
4 r = r + r + 2* r
5 return r

56
Questão 1

1 def funcao01 () -> int :


2 r = 2
3 r = r + 2* r
4 r = r + r + 2* r
5 return r
(d) A função devolve o inteiro 24.

56
Questão 1

1 def funcao02 () -> int :


2 k = 10
3 t = 16
4 while k <=12:
5 t = k
6 k = k +2
7 return k

57
Questão 1

1 def funcao02 () -> int :


2 k = 10
3 t = 16
4 while k <=12:
5 t = k
6 k = k +2
7 return k
(c) A função devolve o inteiro 14.

57
Questão 2
1 def enigmaA ( num : int ) -> int :
2 x = 0
3

4 if num >10:
5 x = 0
6 else :
7 x = 1
8 if num <10:
9 x = 3
10 else :
11 x = 4
12

13 return x

58
Questão 2
1 def enigmaA ( num : int ) -> int :
2 x = 0
3

4 if num >10:
5 x = 0
6 else :
7 x = 1
8 if num <10:
9 x = 3
10 else :
11 x = 4
12

13 return x
> enigmaA(5)
58
Questão 2
1 def enigmaA ( num : int ) -> int :
2 x = 0
3

4 if num >10:
5 x = 0
6 else :
7 x = 1
8 if num <10:
9 x = 3
10 else :
11 x = 4
12

13 return x
> enigmaA(5)
3
59
Questão 2

1 def enigmaB ( p : int , t: int ) -> int :


2 soma =0
3

4 for i in range (p , t +1) :


5 for j in range (1 , i +1) :
6 soma = soma +i
7

8 return soma

60
Questão 2

1 def enigmaB ( p : int , t: int ) -> int :


2 soma =0
3

4 for i in range (p , t +1) :


5 for j in range (1 , i +1) :
6 soma = soma +i
7

8 return soma
> enigmaB(3, 5)

60
Questão 2

1 def enigmaB ( p : int , t: int ) -> int :


2 soma =0
3

4 for i in range (p , t +1) :


5 for j in range (1 , i +1) :
6 soma = soma +i
7

8 return soma
> enigmaB(3, 5)
50

61
Questão 2

1 def enigmaC ( num : int ) -> int :


2 i = num
3

4 while i >10:
5 i = i -1
6

7 return i *10

62
Questão 2

1 def enigmaC ( num : int ) -> int :


2 i = num
3

4 while i >10:
5 i = i -1
6

7 return i *10
> enigmaC(100)

62
Questão 2

1 def enigmaC ( num : int ) -> int :


2 i = num
3

4 while i >10:
5 i = i -1
6

7 return i *10
> enigmaC(100)
100

63
Questão 3
Complete a função triangulo de tal maneira que, para
um número inteiro n, seja impressa uma sequência de
caracteres de ‘*’ e ‘o’ na forma triangular.
Por exemplo, para n igual a 7 a função deverá
imprimir:
*******
******o
*****oo
****ooo
***oooo
**ooooo
*oooooo

64
Questão 3

1 def triangulo ( n: int ):


2 for i in range (1 , _____ ):
3 for j in range (n , _____ , -1) :
4 if _____________ :
5 print (”o” , end = ””)
6 else :
7 print (”*” , end = ””)
8 print (””)

65
Questão 3 - estratégia

66
Questão 3 - estratégia
i itera nas linhas (começa com 1)

66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)

66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”

66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:

66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”

66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
quando j vale 1 imprime ”o”

66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
quando j vale 1 imprime ”o”
quando i vale 3:

66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
quando j vale 1 imprime ”o”
quando i vale 3:
quando j vale de n até 3, imprime ”*”

66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
quando j vale 1 imprime ”o”
quando i vale 3:
quando j vale de n até 3, imprime ”*”
quando j vale 1 ou 2 imprime ”o”

66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
quando j vale 1 imprime ”o”
quando i vale 3:
quando j vale de n até 3, imprime ”*”
quando j vale 1 ou 2 imprime ”o”
se j < i, imprime ”o”

66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
quando j vale 1 imprime ”o”
quando i vale 3:
quando j vale de n até 3, imprime ”*”
quando j vale 1 ou 2 imprime ”o”
se j < i, imprime ”o”
senão imprime ”*”

66
Questão 3 - solução

1 def triangulo ( n: int ):


2 for i in range (1 , n +1) :
3 for j in range (n , 0 , -1) :
4 if j < i :
5 print (”o” , end = ””)
6 else :
7 print (”*” , end = ””)
8 print (””)

67
Questão 4

A função novoPI promete calcular uma boa


aproximação para o valor de PI (3.14…)
considerando somente os primeiros termos
da seguinte equação maiores ou iguais a
0.0001.

π2 1 1 1 1 1
= 2 + 2 + 2 + 2 + 2 + ···
8 1 3 5 7 9

68
Questão 4

Complete a função:
1 def novoPI () -> float :
2 soma = 0
3 i = __________
4 while __________________________ :
5 soma = soma + 1/( i*i)
6 i = ________________
7

8 return ( soma *8) **(0.5)

69
Questão 4

Complete a função:
1 def novoPI () -> float :
2 soma = 0
3 i = 1
4 while 1/( i *i ) >= 0.0001:
5 soma = soma + 1/( i*i)
6 i = i + 2
7 return ( soma *8) **(0.5)

70
Questão 5
Indique o valor que devolverá a seguinte função.
Considere como parâmetro de entrada, para a função,
o seu número de matricula (isto é, seu RA).
1 def enigmaRA ( ra : int ) -> int :
2 i = 1
3 t = 0
4 while i <=8:
5 aux = ra %10
6 ra = ra //10
7 i = i +1
8 if aux >=3:
9 t = t +1
10 return t

71
Questão 5 - solução

A função dado um RA devolve a quantidade


de dígitos >=3 dos últimos 8 dígitos.
Exemplo, para RA=987654321 a função
devolve 6. Para RA=123456789 a função
devolve 7.

72
Sobre a P1

A P1 será no horário da aula nesta quinta


(14/03) na sala 407, no quarto andar, do
bloco B.

73
Sobre a P1

A P1 será no horário da aula nesta quinta


(14/03) na sala 407, no quarto andar, do
bloco B.
A prova deverá ser feita em caneta
esferográfica de tinta azul ou preta

73

Você também pode gostar