Você está na página 1de 7

Ficha de trabalho #08

Aplicações Informáticas B // 12º Ano


Cursos Científico-Humanísticos
Ano letivo 2022/2023

Competências a desenvolver
▪ Utilizar funções em programas
▪ Elaborar soluções de programação com recurso a subprogramas
▪ Distinguir diferentes formas de passagem de parâmetros a funções
▪ Desenvolver programas que incluam estruturas de controlo e de seleção e estruturas repetitivas
com vista à resolução de problemas de baixa complexidade

Introdução
Observa a função apresentada. O que faz esta função, e como poderá ser utilizada num programa?
def ola():
print("Olá mundo")

Qual o resultado de um programa como o apresentado?


def ola():
print("Olá mundo")

ola()
ola()
ola()

Qual o resultado deste outro programa?


def ola():
print("Olá mundo")

for i in range(3):
ola()

Observa este novo programa e o resultado da sua execução?


def ola(nome):
print("Olá", nome)

ola("Maria")

Para este programa, qual será o resultado?


ola("Maria")

def ola(nome):
print("Olá", nome)

1
1. Observa a função seguinte e responde às questões.
def triplo(n):
t = 3 * n
return t
a) Qual o objetivo da função?
b) Qual o nome da função?
c) Quantos parâmetros (ou argumentos) recebe a função?
d) Para que serve a instrução return?
e) Qual é o cabeçalho da função?
f) Qual é o corpo da função?
g) O que devolverá a função se esta for invocada com o argumento 5?
h) O que devolverá a função se esta for invocada com o argumento “PÃO”?

2. Cria um programa para escrever "Bom dia" no ecrã. Esta ação, de imprimir a mensagem na consola,
deverá ser realizada por uma função. Esta função será invocada como bom_dia().

3. Cria três funções distintas: bom_dia(), boa_tarde(), boa_noite(). Cada uma destas funções servirá
apenas para apresentar na consola uma das frases: “Bom dia”, “Boa tarde” ou “Boa noite”. Utiliza
estas funções num programa que invoque cada uma delas consoante a hora do dia, hora que
deverá ser solicitada ao utilizador.

4. De forma semelhante ao programa anterior, mas substituindo as três funções por apenas uma,
declarada como boas_vindas(hora), cria um programa que pergunte que horas são. O
programa invocará, a seguir, esta função para apresentar uma das mensagens “Bom dia”, “Boa
tarde” ou “Boa noite”. Neste caso, a função receberá como argumento um valor inteiro
correspondente à hora do dia, sendo a própria função que decide qual a mensagem a apresentar.

5. Analisa o programa seguinte e, sem o executar, utilizando papel e lápis, indica o resultado. De
seguida, executa o programa e confronta o resultado obtido com o indicado. São iguais? Se não, por
que chegaste a um resultado diferente daquele que foi obtido quando o programa é executado?
def exemplo():
n = 5
print(n)

n = 1
print(n)
exemplo()
print(n)

6. Para este programa, modificado, qual será o resultado? Qual o objetivo da palavra reservada
global?
def exemplo():
global n
n = 5
print(n)

n = 1
print(n)
exemplo()
print(n)

2
Funções com números

7. Cria uma função para calcular o dobro de um número passado como argumento.

8. Cria uma função soma para somar dois números inteiros passados como argumentos, testando-a
num programa que solicite dois números ao utilizador.

9. Cria e testa uma função chamada maior, a qual, recebendo dois números, devolva o maior deles.

10. Cria uma função que mostre no ecrã os números entre 1 e 10, testando-a num programa.

11. Cria uma função para imprimir os números inteiros entre 1 e um número máximo, sendo o número
máximo passado como argumento à função. Testa a função.

12. Cria uma função que receba dois números inteiros como argumentos e imprima todos os números
entre eles. Testa a função.

13. Cria uma função que receba duas notas escolares (entre 0 e 20) e devolva a média.

14. Modifica a função anterior para que, no caso de notas inválidas (menores que zero ou maiores que
20), a função devolva o valor -1.

15. Cria uma função que receba três números (entre 0 e 20) como argumentos. A função deve calcular a
média e devolver True, caso o estudante esteja aprovado (média superior ou igual a 10), ou False,
caso o estudante esteja reprovado.

16. Cria uma função de nome tabuada que mostre na consola a tabuada entre 1 e 10 de qualquer
número inteiro fornecido como argumento. Cria um programa para chamar a função e testá-la.
17. Cria uma função que determine se um número recebido como argumento é primo, retornando um
valor booleano: True, caso o número passado seja primo; False, caso não seja.
𝑛+1
18. Dada a sucessão de termo geral 𝑢𝑛 = 𝑛 , cria uma função que permita calcular qualquer termo,
recebendo o valor de n como argumento.
19. Observa o programa apresentado a seguir. O que faz e em que difere das funções utilizadas até
aqui?
def vizinhos(n):
anterior = n - 1
seguinte = n + 1
return anterior, seguinte

x, y = vizinhos(5)

print("Anterior: ", x)
print("Seguinte: ", y)
20. Cria uma função que, recebendo um número como argumento, retorne a metade e o dobro desse
número.
21. Cria uma função que, recebendo os lados de um retângulo, devolva a área e o perímetro.
22. Cria uma função que, recebendo dois números como argumentos, retorne três valores: o resto, o
resultado da divisão inteira e o resultado da divisão real do primeiro número pelo segundo.
23. Cria uma função de nome mdc que devolva o máximo divisor comum entre dois números, e uma
função chamada mmc que devolva o mínimo múltiplo comum entre dois números.
3
Funções com caracteres e strings

24. Cria uma função ascii(c) que receba um carácter como argumento e devolva o número
correspondente ao seu código ASCII (consultar tabela em anexo).

25. Cria uma função de nome maiuscula que devolva a respetiva letra maiúscula de uma minúscula
recebida como argumento, ou a própria letra caso já seja maiúscula. Deve devolver o carácter *
(asterisco), nos casos em que o carácter passado não seja uma letra.

26. De modo semelhante à questão anterior, cria uma função minuscula.

27. Cria uma função que receba um carácter como argumento e devolva um dos seguintes resultados.
1, caso seja um número (dígito entre 0 e 9)
2, caso seja uma letra minúscula (letra entre ‘a’ e ‘z’)
3, caso seja uma letra maiúscula (letra entre ‘A’ e ‘Z’)
4, caso seja qualquer outro carácter

28. Observa a função apresentada. Qual o seu resultado? A segunda chamada à função dará origem a
algum erro?
def nacionalidade(pais = "Portugal"):
print("Eu sou de " + pais)

nacionalidade("França")
nacionalidade()
nacionalidade("Brasil")
nacionalidade("Canadá")

29. Cria uma função asteriscos(n) que imprima determinado número de * (asteriscos).
Exemplo para o resultado da chamada a asteriscos(6)
******

30. Modifica a função anterior para que esta possa ser chamada como asteriscos(n, ch) sendo o
parâmetro ch o carácter a utilizar. Caso não seja passado este parâmetro, será utilizado o ‘*’.

31. Cria uma função asteriscos_vertical(n) que imprima uma linha de * (asteriscos) na vertical.
Resultado da chamada a asteriscos_vertical(4)
*
*
*
*

32. Cria uma função caracteres(n, ch) que imprima determinado número de caracteres a partir
de um único passado como argumento.
Resultado da chamada a caracteres(10, '#')
##########

4
33. Cria uma função margem(n) que imprima uma linha delimitada por * (asteriscos).
Resultado da chamada a margem(3)
* *
Resultado da chamada a margem(5)
* *

34. Utilizando as funções anteriores, cria um programa que gere um quadrado de asteriscos com base
na dimensão solicitada ao utilizador, de acordo com a seguinte simulação.
Dimensão? 5
*****
*****
*****
*****
*****

35. Utilizando as funções anteriores, cria um programa que gere um triângulo de asteriscos com base
na dimensão solicitada ao utilizador, de acordo com a seguinte simulação. Notar que todas as linhas
têm um número ímpar de asteriscos.
Dimensão? 6
*
***
*****
*******

36. Cria uma função que receba como argumento uma nota, devolvendo a respetiva classificação de
acordo com os intervalos indicados. A função deverá devolver None em caso de nota inválida. Nota:
investiga o que representa, em python, o valor None.
0 a 9,4 valores Insuficiente
9,5 a 13,4 valores Suficiente
13,5 a 17,4 valores Bom
17,5 a 20 valores Muito Bom

37. Cria uma função que calcule o IMC (índice de massa corporal) através da fórmula indicada e retorne
uma string contendo um dos valores da tabela.
IMC Classificação
< 16 Magreza grave
16 a < 17 Magreza moderada
𝑚𝑎𝑠𝑠𝑎
𝐼𝑀𝐶 = 17 a < 18,5 Magreza leve
(𝑎𝑙𝑡𝑢𝑟𝑎 ∗ 𝑎𝑙𝑡𝑢𝑟𝑎)
18,5 a < 25 Saudável
25 a < 30 Sobrepeso
massa em kg
altura em metros 30 a < 35 Obesidade Grau I
35 a < 40 Obesidade Grau II (severa)
> 40 Obesidade Grau III (mórbida)

5
38. Cria uma função que permita contar o número de caracteres de um string passada como
argumento, isto é, indique o comprimento dessa string (semelhante à instrução len, mas sem a
utilizar).
39. Cria uma função que compare duas strings passadas como argumentos, devolvendo o valor True
caso sejam iguais e False caso sejam diferentes.
40. Cria uma função “juntar” que receba duas strings como argumentos e devolva outra string que
resulte da união das duas strings passadas como argumento, isto é, essas duas strings
concatenadas.
41. Cria uma função que, dada uma frase passada como argumento, devolva a primeira palavra dessa
frase (as palavras estão separadas por espaços).
42. Cria uma função que, dada uma frase passada como argumento, devolva a última palavra dessa
frase (as palavras estão separadas por espaços).
43. Cria uma função que conte o número de palavras de uma frase passada como argumento.

Desafio: cartão de cidadão


Analisa a função utilizada para validar um número de cartão de cidadão, a partir do endereço
https://www.autenticacao.gov.pt/documents/20126/0/Valida%C3%A7%C3%A3o+de+N%C3%BAmero+d
e+Documento+do+Cart%C3%A3o+de+Cidad%C3%A3o+%281%29.pdf/7d5745ba-2bcc-e861-3954-
bafe9f7591a0?t=1658411665319. Converte a função para a linguagem python e testa-a num programa.

6
Tabela ASCII - American Standard Code for Information Interchange

Código Caracter Código Caracter Código Caracter Código Caracter


0 64 @ 128 Ç 192 └
1 ☺ 65 A 129 ü 193 ┴
2 ☻ 66 B 130 é 194 ┬
3 ♥ 67 C 131 â 195 ├
4 ♦ 68 D 132 ä 196 ─
5 ♣ 69 E 133 à 197 ┼
6 ♠ 70 F 134 å 198 ã
7 • 71 G 135 ç 199 Ã
8 ◘ 72 H 136 ê 200 ╚
9 ○ 73 I 137 Ë 201 ╔
10 ◙ 74 J 138 È 202 ╩
11 ♂ 75 K 139 Ï 203 ╦
12 ♀ 76 L 140 Î 204 ╠
13 ♪ 77 M 141 Ì 205 ═
14 ♫ 78 N 142 Ä 206 ╬
15 ☼ 79 O 143 Å 207 ¤
16 ► 80 P 144 É 208 ð
17 ◄ 81 Q 145 æ 209 Ð
18 ↕ 82 R 146 Æ 210 Ê
19 ‼ 83 S 147 ô 211 Ë
20 ¶ 84 T 148 ö 212 È
21 § 85 U 149 ò 213 ↨
22 ▬ 86 V 150 û 214 Í
23 ↨ 87 W 151 ù 215 Î
24 ↑ 88 X 152 ÿ 216 Ï
25 ↓ 89 Y 153 Ö 217 ┘
26 → 90 Z 154 Ü 218 ┌
27 ← 91 [ 155 ø 219 █
28 ∟ 92 \ 156 £ 220 ▄
29 ↔ 93 ] 157 Ø 221 ¦
30 ▲ 94 ^ 158 × 222 Ì
31 ▼ 95 _ 159 ƒ 223 ▀
32 96 ` 160 á 224 Ó
33 ! 97 a 161 í 225 ß
34 “ 98 b 162 ó 226 Ô
35 # 99 c 163 ú 227 Ò
36 $ 100 d 164 ñ 228 õ
37 % 101 e 165 Ñ 229 Õ
38 & 102 f 166 ª 230 µ
39 ‘ 103 g 167 º 231 þ
40 ( 104 h 168 ¿ 232 Þ
41 ) 105 i 169 ® 233 Ú
42 * 106 j 170 ¬ 234 Û
43 + 107 k 171 ½ 235 Ù
44 , 108 l 172 ¼ 236 ý
45 - 109 m 173 ¡ 237 Ý
46 . 110 n 174 « 238 ¯
47 / 111 o 175 » 239 ´
48 0 112 p 176 ░ 240
49 1 113 q 177 ▒ 241 ±
50 2 114 r 178 ▓ 242 ‗
51 3 115 s 179 │ 243 ¾
52 4 116 t 180 ┤ 244 ¶
53 5 117 u 181 Á 245 §
54 6 118 v 182 Â 246 ÷
55 7 119 w 183 À 247 ¸
56 8 120 x 184 © 248 °
57 9 121 y 185 ╣ 249 ¨
58 : 122 z 186 ║ 250 ·
59 ; 123 { 187 ╗ 251 ¹
60 < 124 | 188 ╝ 252 ³
61 = 125 } 189 ¢ 253 ²
62 > 126 ~ 190 ¥ 254 ■
63 ? 127 ⌂ 191 ┐ 255

Você também pode gostar