Introdução à programação e aos algoritmos

João Araujo Ribeiro · Capítulo 42 de 103

Páginas do PDF

Introdução à programação e aos algoritmos

3.2 Tomando uma Decisão

Figura 3.6 Estrutura de iteração.

 

3.2 TOMANDO UMA DECISÃO

A forma mais básica de tomada de decisão é o esquema que faz a seleção entre duas alternativas, como visto na Seção 3.1.2. Passando o fluxograma para pseudocódigo, temos:

“Se uma condição for verdadeira faça algo senão faça outra coisa”. Como a cláusula senão é opcional, eliminando a cláusula senão, nosso bloco de teste ficaria

“Se uma condição for verdadeira faça algo”. Por exemplo, digamos que você queira calcular a média de duas provas, imprimindo se ficou para a prova final ou não. Admitindo que a média para evitar a prova final seja 7, poderíamos escrever o seguinte algoritmo.

Se

Leia nota1

Leia nota2

Calcule média = (nota1 + nota2)/2

Se média < 7

imprima “Ficou para a prova final :(“

senão

imprima “Passou direto!”

Perceba os blocos de execução dentro deste programa simples

(Figura 3.7).

 

Figura 3.7 Blocos de execução para imprimir a situação do aluno.

 

O código em Python para este programa poderia ser:

nota1 = float(input(“Qual é a primeira nota? “))

nota2 = float(input(“E a segunda nota? “))

media = (nota1 + nota2)/2

print (“A média é “, media)

if media < 7:

print (“Ficou para prova final :(“)

else:

print (“Passou direto!”)

 

■ Programa 3.1: avalia_media.py.

Digite este programa com atenção. Respeite os recuos das duas últimas linhas de print. Chamamos esses recuos de indentação. Indentação é um anglicismo e vem de “indentation”, que significa usar espaços ou tabulações para afastar o texto do início da linha. Use 4 espaços para fazer os recuos. Na realidade, não importa muito se você usar outra quantidade de espaços ou tabulações. O importante é somente manter uma coerência. Se o primeiro nível de indentação que você usou é de 4 caracteres, use sempre esse número para o primeiro nível. Quatro é apenas uma recomendação de Python que a maioria dos programadores segue, dando uma uniformidade. Siga essa recomendação se lhe agradar.

 

Dica 3.1 – Por que usar 4 espaços para indentação?

 

O uso de espaços é apenas uma recomendação de Python para a indentação. Você

poderia usar tabulações (pressionando a tecla “Tab” do seu teclado).

À primeira vista é mais prático usar tabulações em vez de espaços para indentar.

Cada nível de indentação seria exatamente o número de tabulações antes do

primeiro comando. Mas, por que a recomendação de usar espaços? Porque diferentes

editores vão usar diferentes números de espaços para uma tabulação. Desse modo o

seu código pode ser visto de outra forma em outro editor de texto.

Mas esse não é o único motivo. Quando se usa o comando de copiar-colar em

editores de texto, muitas vezes as tabulações não são copiadas de forma correta.

Então, você não pode garantir que outra pessoa que use outro editor de texto

obtenha o mesmo resultado de indentação ao copiar trechos do código que você

escreveu. Ao se trabalhar em equipe é necessário pensar em como outras pessoas

verão o seu código. Da mesma maneira, visualmente você não consegue diferenciar

uma tabulação de alguns espaços. Se você digitar um espaço e uma tabulação, o

efeito visual é o mesmo de apenas uma tabulação. Para o interpretador Python são

duas indentações diferentes e esse interpretador irá considerar que são dois níveis

diversos.

O número de 4 espaços também é somente uma recomendação. Você pode usar

2 ou 6, ou qualquer número que queira. Usando 4 você vai aderir ao que a maioria

dos programadores em Python fazem, tornando seu código mais facilmente

compartilhável.

 

Este pequeno programa permite apresentar mais um pouco da

sintaxe de Python. Primeiro, o comando input serve para fazer uma entrada de dados pelo teclado. Execute este programa e você será perguntado pela primeira e pela segunda nota. O comando float antes de input serve para converter o número lido em um número em ponto flutuante. O número digitado deve usar o ponto decimal e não a vírgula decimal, como seria no português. Existem muitas outras possibilidades de conversão, mas vamos primeiramente nos concentrar apenas no essencial. Uma possível execução deste programa seria:

Qual é a primeira nota? 7.8

E a segunda nota? 8.4

A média é 8.1

Passou direto!

Por que precisamos converter o número digitado com float?

Experimente executar o seguinte programa:

nota1 = input(“Qual é a primeira nota? “)

nota2 = input(“E a segunda nota? “)

nota_total = nota1 + nota2

print (“A soma é “, nota_total)

 

■ Programa 3.2: testa_input.py

Se você digitar valores para nota1 e nota2, vai obter o seguinte resultado:

Qual é a primeira nota? 7.8

E a segunda nota? 8.4

A soma é 7.88.4

O que aconteceu? Python não fez a soma. Simplesmente concatenou os valores. Isso ensina algo sobre a entrada de valores em Python: os valores são recebidos como texto. Cabe ao programador usar o comando correto para convertê-los nos números adequados.

Outra característica de Python é a indentação dos blocos. Em Python este recuo da linha indica um bloco de ações. Assim, simplesmente olhando o programa escrito sabemos que as linhas dos dois últimos comandos print estão dentro do bloco do comando if. Linhas consecutivas que possuem uma mesma indentação pertencem ao mesmo bloco de execução. O bloco termina quando a indentação diminui. Para colocar um bloco dentro de outro, basta aumentar a indentação. De qualquer maneira, o bloco irá terminar dentro do bloco no qual foi iniciado.

Note também que as linhas dos comandos if e else terminam com : (dois pontos). Esses dois pontos foram usados na linguagem para facilitar a leitura dos programas em Python, e são obrigatórios. Como disse o criador de Python, Guido Van Rossum, ao ser perguntado sobre a função dos dois pontos: “Agora é tarde para mudar”.

 

EXERCÍCIO 3.1

 

Modi que o programa do exercício 2.9 de forma que este peça o valor do lado do

quadrado antes de calcular a área. (Use o conversor int)

 

EXERCÍCIO 3.2

Faça o mesmo programa do exercício anterior usando o conversor float.

 

EXERCÍCIO 3.3

 

Modi que as indentações dos programas desta seção e veja qual erro o

interpretador Python indica.

 

EXERCÍCIO 3.4

 

Escreva um programa que diga se um número inteiro digitado é par ou ímpar.

 

EXERCÍCIO 3.5

 

Escreva um programa que receba dois números inteiros pelo teclado e informe se

o segundo é um múltiplo do primeiro.

 

Fato 3.2 – Programação orientada a objetos.

Você deve ter ouvido falar muito sobre programação orientada a objetos (POO). Em

uma explicação simpli cada, neste paradigma, a programação estruturada é estendida

para combinar os dados com o código que atua nesses dados. Isto é feito de maneira

que código e dados sejam entendidos como uma única entidade chamada objeto.

Existe muita discussão sobre se a primeira linguagem de programação deve ser

ensinada juntamente com os conceitos de POO. Em minha experiência, apesar de a POO

ser bastante útil na reutilização de código, pode confundir os novatos. É melhor

aprender primeiro a base: programação modular, blocos, laços de execução, para, em

seguida, em um segundo tempo, aprender a POO. A POO possui uma série de conceitos

que confundem o novato mais do que explicam. Por isso é comum ver iniciantes

apenas decorando conceitos como polimor smo, herança e sobrecarga sem realmente

saber como utilizá-los na programação cotidiana.