Você está na página 1de 28

Introdução à Programação em Python

Semana 3 - Agosto de 2022

priscila.calegari@ufsc.br 1 / 21
Anteriormente: Semana 2

1. Como funciona um computador.

2. Linguagens compiladas e Linguagens interpretadas.

3. Ambientes de desenvolvimento.

4. Sentenças e expressões.

5. Operadores relacionais, lógicos, aritméticos e de atribuição.

6. Variáveis e tipos de dados.

7. Programas, comandos de entrada e saı́da.

priscila.calegari@ufsc.br 2 / 21
Semana 3

1. Depuração.

2. Estruturas de Controle de fluxo.

3. Comandos de seleção simples e composto.

4. Exemplos e problemas.

priscila.calegari@ufsc.br 3 / 21
Depuração

A implementação de um programa em uma linguagem de programação


pode conter erros.

Erros em programas são chamados de bugs.

O processo de encontrá-los e corrigı́-los é chamado de depuração


(debugging).

Alguns afirmam, que em 1945, uma mariposa morta causou um problema


em um dos computadores da Universidade de Harward e o termo bug
permanece até hoje.

Três são os tipos de erros: sintaxe, execução e semântica.

priscila.calegari@ufsc.br 4 / 21
Depuração

A implementação de um programa em uma linguagem de programação


pode conter erros.

Erros em programas são chamados de bugs.

O processo de encontrá-los e corrigı́-los é chamado de depuração


(debugging).

Alguns afirmam, que em 1945, uma mariposa morta causou um problema


em um dos computadores da Universidade de Harward e o termo bug
permanece até hoje.

Três são os tipos de erros: sintaxe, execução e semântica.

priscila.calegari@ufsc.br 4 / 21
Erros de sintaxe

Python só interpreta e executa um programa que estiver sintaticamente


correto.

A sintaxe se refere à estrutura de um programa e às regras sobre esta


estrutura.

Quando cometemos um erro de sintaxe, o programa não é interpretado e


uma mensagem SyntaxError é apresentada com indicação da linha do
código fonte que contém o erro.

Exemplos:
I Uso de palavras reservadas para nomes de variáveis.
I Esquecer de digitar dois pontos (:) após um comando, quando necessário.
I Confundir os operadores de igualdade e atribuição.

priscila.calegari@ufsc.br 5 / 21
Erros de sintaxe

Python só interpreta e executa um programa que estiver sintaticamente


correto.

A sintaxe se refere à estrutura de um programa e às regras sobre esta


estrutura.

Quando cometemos um erro de sintaxe, o programa não é interpretado e


uma mensagem SyntaxError é apresentada com indicação da linha do
código fonte que contém o erro.

Exemplos:
I Uso de palavras reservadas para nomes de variáveis.
I Esquecer de digitar dois pontos (:) após um comando, quando necessário.
I Confundir os operadores de igualdade e atribuição.

priscila.calegari@ufsc.br 5 / 21
Erros de execução

O erro de execução (runtime) aparecem quando executamos o


programa.

Erros detectados durante a execução sao chamados exceções e vamos


aprender como tratá-los mais adiante.

Exemplos:
I ZeroDivisionError.
I NameError.
I TypeError.

priscila.calegari@ufsc.br 6 / 21
Erros de semântica

O erro de semântica (erro de lógica) não gera nenhuma mensagem de


erro.

O programa não faz a coisa certa, ou melhor, ele faz outra coisa e não o
que você espera.

Exemplos:
I Esquecer de dividir por 100 ao mostrar na tela a porcentagem de uma
quantia.
I Esquecer de usar a conversão para o tipo numérico quando usa a função
input() para fazer alguma operação aritmética.

Programar é escrever um código fonte e depurar é o processo de encontrar


e corrigir todos os erros até que o programa esteja correto.

priscila.calegari@ufsc.br 7 / 21
Erros de semântica

O erro de semântica (erro de lógica) não gera nenhuma mensagem de


erro.

O programa não faz a coisa certa, ou melhor, ele faz outra coisa e não o
que você espera.

Exemplos:
I Esquecer de dividir por 100 ao mostrar na tela a porcentagem de uma
quantia.
I Esquecer de usar a conversão para o tipo numérico quando usa a função
input() para fazer alguma operação aritmética.

Programar é escrever um código fonte e depurar é o processo de encontrar


e corrigir todos os erros até que o programa esteja correto.

priscila.calegari@ufsc.br 7 / 21
Comando de seleção

Permite que uma parte do programa seja executada apenas quando uma
condição é satisfeita.

A sintaxe do comando de seleção simples (if) é:


if condição do if:
# bloco executado se a condição é verdadeira
Comando 1
Comando 2
...
Comando n
Comando após if

priscila.calegari@ufsc.br 8 / 21
Comando de seleção

Permite que uma parte do programa seja executada apenas quando uma
condição é satisfeita.

A sintaxe do comando de seleção simples (if) é:


if condição do if:
# bloco executado se a condição é verdadeira
Comando 1
Comando 2
...
Comando n
Comando após if

priscila.calegari@ufsc.br 8 / 21
Comando de seleção: if

Exemplo com uma condição:

idade = int(input(’Digite a sua idade: ’)


if idade >= 16:
print(’Você já pode votar’)
print(’Fim do programa!’)

priscila.calegari@ufsc.br 9 / 21
Comando de seleção: if
Exemplo com operador and:

idade = int(input(’Digite a sua idade: ’)


peso = float(input(’Digite o seu peso: ’)
if (idade >= 18 and peso >= 50):
print(’Você pode doar sangue’)
print(’Fim do programa!’)

Tabela-verdade do operador and:


p q p and q
V V V
F V F
V F F
F F F
priscila.calegari@ufsc.br 10 / 21
Comando de seleção: if
Exemplo com operador and:

idade = int(input(’Digite a sua idade: ’)


peso = float(input(’Digite o seu peso: ’)
if (idade >= 18 and peso >= 50):
print(’Você pode doar sangue’)
print(’Fim do programa!’)

Tabela-verdade do operador and:


p q p and q
V V V
F V F
V F F
F F F
priscila.calegari@ufsc.br 10 / 21
Comando de seleção: if
Exemplo com operador or:

n = input(’Digite um número inteiro: ’)


if (n % 2 == 0 or n % 3 == 0):
print(’o número é divisı́vel por 2 ou por 3’)
print(’Fim do programa!’)

Tabela-verdade do operador or:


p q p or q
V V V
F V V
V F V
F F F

priscila.calegari@ufsc.br 11 / 21
Comando de seleção: if
Exemplo com operador or:

n = input(’Digite um número inteiro: ’)


if (n % 2 == 0 or n % 3 == 0):
print(’o número é divisı́vel por 2 ou por 3’)
print(’Fim do programa!’)

Tabela-verdade do operador or:


p q p or q
V V V
F V V
V F V
F F F

priscila.calegari@ufsc.br 11 / 21
Precedência dos operadores

Nı́vel Categoria Operadores


7 (alto) exponenciação **
6 multiplicação *,/,//,%
5 adição +,−
4 relacional ==,!=,<=,>=,>,<
3 lógico not
2 lógico and
1 (baixo) lógico or

priscila.calegari@ufsc.br 12 / 21
Comando de seleção: if-else

Em determinadas ocasiões é necessário executar blocos de forma


alternativa. Nesse caso, podemos usar o comando if-else.

if condição:
# bloco de comandos a serem executados
dentro do if 1
dentro do if 2
...
dentro do if n
else:
dentro do else 1
dentro do else 2
...
dentro do else m
comandos apos if

priscila.calegari@ufsc.br 13 / 21
Comando de seleção: if-else

Vamos comparar os dois exemplos:

n = int(input(’Digite n natural: ’) n = int(input(’Digite n natural: ’)


if n%2 == 0: if n%2 == 0:
print(’n é par’) print(’n é par’)
if n%2 != 0: else:
print(’n é ı́mpar’) print(’n é ı́mpar’)
print(’Fim do programa!’) print(’Fim do programa!’)

O código escrito com o comando if-else é mais fácil de ler, depurar e


modificar.

priscila.calegari@ufsc.br 14 / 21
Comando de seleção: if-else

Exemplo:

idade = int(input(’Digite a sua idade: ’)


peso = float(input(’Digite o seu peso: ’)
if (idade >= 18 and peso >= 50):
print(’Você pode doar sangue :)’)
else:
print(’Você não poderá dora sangue :(’)
print(’Fim do programa!’)

O comando if-else é usado quando temos duas alternativas. Quando o


número de alternativas é maior, podemos aninhar comandos if-else.

priscila.calegari@ufsc.br 15 / 21
Comando de seleção: if-else

Problema: Dada a nota de um estudante queremos identificar a situação


dele entre as seguintes: aprovado (nota maior ou igual a 7), recuperação
(nota entre 3 e 7) ou reprovado (nota menor que 3).

nota = float(input(’Digite a sua nota: ’)


if nota < 3.0:
print(’Reprovado’)
else:
if nota < 7.0:
print(’Recuperação’)
else:
print(’Aprovado’)
print(’Fim do programa!’)

priscila.calegari@ufsc.br 16 / 21
Comando de seleção: if-else

Problema: Dada a nota de um estudante queremos identificar a situação


dele entre as seguintes: aprovado (nota maior ou igual a 7), recuperação
(nota entre 3 e 7) ou reprovado (nota menor que 3).

nota = float(input(’Digite a sua nota: ’)


if nota < 3.0:
print(’Reprovado’)
else:
if nota < 7.0:
print(’Recuperação’)
else:
print(’Aprovado’)
print(’Fim do programa!’)

priscila.calegari@ufsc.br 16 / 21
Comando de seleção: if-else

Solução do problema anterior usando apenas ifs:

nota = float(input(’Digite a sua nota: ’)


if nota < 3.0:
print(’Reprovado’)
if nota >= 3.0:
if nota < 7.0:
print(’Recuperação’)
if nota >= 7.0:
print(’Aprovado’)
print(’Fim do programa!’)

priscila.calegari@ufsc.br 17 / 21
Comando de seleção: if-elif-else

Para simplificar o código de programas com if-else aninhados, temos o


comando if-elif-else.

O comando elif é uma contração do else if. Uma maneira mais clara de
encadear condições.

nota = float(input(’Digite a sua nota: ’)


if nota < 3.0:
print(’Reprovado’)
elif nota < 7.0:
print(’Recuperação’)
else:
print(’Aprovado’)
print(’Fim do programa!’)

priscila.calegari@ufsc.br 18 / 21
Comando de seleção: if-elif-else

Exemplo:
No brasileirao 20 times disputam o tı́tulo em dois turnos. No primeiro
turno todos jogam entre si uma única vez. Os jogos do segundo turno
ocorrem na mesma ordem que no primeiro apenas invertendo se o mando
de campo.
Os times sao classificados por pontos. Caso dois times atinjam o mesmo
número de pontos, eles sao desempatados pelos seguintes critérios nesta
ordem:
1. maior número de vitórias;
2. maior saldo de gols;
3. maior número de gols marcados;
4. menor número de cartoes vermelhos;
5. menor número de cartores amarelos.
Escreva um programa que leia as cinco informaçoes acima de dois times e
decida quem vence o desempate.

priscila.calegari@ufsc.br 19 / 21
Exercı́cios:

1. Modifique o código das notas incluido a condição “Aprovado com mérito”


(nota >= 9.0).
2. Escreva um programa que receba dois números inteiros e verifique qual
deles é maior ou se eles são iguais.
3. Escreva um programa que recebe tres números e imprime o maior deles.
4. Escreva um programa que recebe tres números e os mostra em ordem
crescente.
5. Um professor quer calcular as notas finais dos estudantes da sua turma.
A nota final é composta por 75% da média aritmética de duas provas e
25% da nota de um trabalho. Escreva um programa que receba as três
notas e calcule a nota final de um estudante e apresente a situaçao dele:
aprovado (nota final ≥ 6), recuperaçao (3 ≤ nota final < 6) e
reprovado (nota final < 3).

priscila.calegari@ufsc.br 20 / 21
Referências

[1] J.C.de Pina Jr. e C.H. Morimoto.


Introdução à Computação com Python: um curso iterativo
https://panda.ime.usp.br/cc110/static/cc110/index.html.
[2] C.H. Marimoto e R.F. Hashimoto.
Introdução à Ciência da Computação em C,
https://www.ime.usp.br/~hitoshi/introducao/.
[3] B. Miller and D. Ranum (Traduzido por C.H. Morimoto, J.C. de Pina Jr. e J.A.
Soares.
Como pensar como um Cientista da Computação
https://panda.ime.usp.br/pensepy/static/pensepy/

priscila.calegari@ufsc.br 21 / 21

Você também pode gostar